From 1c898ec5942a94a943ded70ccae635effb92abd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=85=8E=E9=A5=BC=E6=9E=9C=E5=AD=90=E5=8D=B7=E9=B2=A8?= =?UTF-8?q?=E9=B1=BC=E8=BE=A3=E6=A4=92?= Date: Tue, 4 Feb 2025 22:38:17 +0800 Subject: [PATCH] feat: Add system ID backup and modification for Linux and Mac scripts - Implemented `backup_system_id()` function for both Linux and Mac scripts - Added system ID backup with timestamped files and detailed information - Introduced machine-id modification for Linux systems - Added system UUID modification option for Mac systems - Enhanced logging and user interaction for system ID changes --- scripts/run/cursor_linux_id_modifier.sh | 42 +++++++++++++++++++++++++ scripts/run/cursor_mac_id_modifier.sh | 40 +++++++++++++++++++++++ 2 files changed, 82 insertions(+) diff --git a/scripts/run/cursor_linux_id_modifier.sh b/scripts/run/cursor_linux_id_modifier.sh index 399885d..1af7430 100644 --- a/scripts/run/cursor_linux_id_modifier.sh +++ b/scripts/run/cursor_linux_id_modifier.sh @@ -112,6 +112,32 @@ check_and_kill_cursor() { exit 1 } +# 备份系统 ID +backup_system_id() { + log_info "正在备份系统 ID..." + local system_id_file="$BACKUP_DIR/system_id.backup_$(date +%Y%m%d_%H%M%S)" + + # 获取并备份 machine-id + { + echo "# Original Machine ID Backup" > "$system_id_file" + echo "## /var/lib/dbus/machine-id:" >> "$system_id_file" + cat /var/lib/dbus/machine-id 2>/dev/null >> "$system_id_file" || echo "Not found" >> "$system_id_file" + + echo -e "\n## /etc/machine-id:" >> "$system_id_file" + cat /etc/machine-id 2>/dev/null >> "$system_id_file" || echo "Not found" >> "$system_id_file" + + echo -e "\n## hostname:" >> "$system_id_file" + hostname >> "$system_id_file" + + chmod 444 "$system_id_file" + chown "$CURRENT_USER:$CURRENT_USER" "$system_id_file" + log_info "系统 ID 已备份到: $system_id_file" + } || { + log_error "备份系统 ID 失败" + return 1 + } +} + # 备份配置文件 backup_config() { # 检查文件权限 @@ -170,6 +196,22 @@ generate_new_config() { exit 1 fi + # 修改系统 machine-id + if [ -f "/etc/machine-id" ]; then + log_info "正在修改系统 machine-id..." + local new_machine_id=$(uuidgen | tr -d '-') + + # 备份原始 machine-id + backup_system_id + + # 修改 machine-id + echo "$new_machine_id" | sudo tee /etc/machine-id > /dev/null + if [ -f "/var/lib/dbus/machine-id" ]; then + sudo ln -sf /etc/machine-id /var/lib/dbus/machine-id + fi + log_info "系统 machine-id 已更新" + fi + # 将 auth0|user_ 转换为字节数组的十六进制 local prefix_hex=$(echo -n "auth0|user_" | xxd -p) local random_part=$(generate_random_id) diff --git a/scripts/run/cursor_mac_id_modifier.sh b/scripts/run/cursor_mac_id_modifier.sh index 0e91e16..31e993c 100644 --- a/scripts/run/cursor_mac_id_modifier.sh +++ b/scripts/run/cursor_mac_id_modifier.sh @@ -106,6 +106,26 @@ check_and_kill_cursor() { exit 1 } +# 备份系统 ID +backup_system_id() { + log_info "正在备份系统 ID..." + local system_id_file="$BACKUP_DIR/system_id.backup_$(date +%Y%m%d_%H%M%S)" + + # 获取并备份 IOPlatformExpertDevice 信息 + { + echo "# Original System ID Backup" > "$system_id_file" + echo "## IOPlatformExpertDevice Info:" >> "$system_id_file" + ioreg -rd1 -c IOPlatformExpertDevice >> "$system_id_file" + + chmod 444 "$system_id_file" + chown "$CURRENT_USER" "$system_id_file" + log_info "系统 ID 已备份到: $system_id_file" + } || { + log_error "备份系统 ID 失败" + return 1 + } +} + # 备份配置文件 backup_config() { if [ ! -f "$STORAGE_FILE" ]; then @@ -146,6 +166,26 @@ generate_new_config() { exit 1 fi + # 修改系统 ID + log_info "正在修改系统 ID..." + + # 备份当前系统 ID + backup_system_id + + # 生成新的系统 UUID + local new_system_uuid=$(uuidgen) + + # 尝试修改系统 UUID (需要用户确认) + log_warn "注意:修改系统 UUID 需要重启系统才能生效" + log_warn "是否要修改系统 UUID?(y/N)" + read -r choice + if [[ "$choice" =~ ^[Yy]$ ]]; then + sudo nvram SystemUUID="$new_system_uuid" + log_info "系统 UUID 已更新,请重启系统以应用更改" + else + log_info "跳过系统 UUID 修改" + fi + # 将 auth0|user_ 转换为字节数组的十六进制 local prefix_hex=$(echo -n "auth0|user_" | xxd -p) local random_part=$(generate_random_id)