diff --git a/scripts/run/cursor_mac_id_modifier.sh b/scripts/run/cursor_mac_id_modifier.sh index a531714..81c4920 100644 --- a/scripts/run/cursor_mac_id_modifier.sh +++ b/scripts/run/cursor_mac_id_modifier.sh @@ -154,6 +154,53 @@ backup_config() { fi } +# 修改系统 MAC 地址 (临时) +change_system_mac_address() { + log_info "开始尝试修改系统 MAC 地址..." + echo + echo -e "${YELLOW}[警告]${NC} 即将尝试修改您主网络接口的 MAC 地址。" + echo -e "${YELLOW}[警告]${NC} 此更改是 ${RED}临时${NC} 的,将在您重启 Mac 后恢复为原始地址。" + echo -e "${YELLOW}[警告]${NC} 修改 MAC 地址可能会导致临时的网络中断或连接问题。" + echo -e "${YELLOW}[警告]${NC} 请确保您了解相关风险。此操作主要影响本地网络识别,而非互联网身份。" + echo + + # 尝试自动检测主网络接口 (Wi-Fi 或 Ethernet) + local primary_interface=$(networksetup -listallhardwareports | awk '/Hardware Port: (Wi-Fi|Ethernet)/{getline; print $2}' | head -n 1) + + if [ -z "$primary_interface" ]; then + log_warn "未能自动检测到主要的 Wi-Fi 或以太网接口。默认尝试使用 'en0'。" + primary_interface="en0" + else + log_info "检测到主网络接口: $primary_interface" + fi + + # 获取当前 MAC 地址用于日志记录 + local current_mac=$(ifconfig "$primary_interface" | awk '/ether/{print $2}') + log_info "接口 '$primary_interface' 当前 MAC 地址: $current_mac" + + # 生成随机 MAC 地址 (保留本地管理位,避免冲突) + # OUI (前三字节) 可以是任意的,这里使用 02 (本地管理) 开头确保不与厂商 OUI 冲突 + local random_mac=$(printf '02:%02x:%02x:%02x:%02x:%02x' $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256))) + log_info "生成新的随机 MAC 地址: $random_mac" + + log_info "执行命令: sudo ifconfig $primary_interface ether $random_mac" + if sudo ifconfig "$primary_interface" ether "$random_mac"; then + log_info "成功将接口 '$primary_interface' 的 MAC 地址临时修改为: $random_mac" + local new_mac_check=$(ifconfig "$primary_interface" | awk '/ether/{print $2}') + log_info "验证新 MAC 地址: $new_mac_check" + if [ "$new_mac_check" != "$random_mac" ]; then + log_warn "验证失败,MAC 地址似乎未成功设置。" + fi + echo -e "${GREEN}已临时修改接口 '$primary_interface' 的 MAC 地址。重启后恢复。${NC}" + else + log_error "修改接口 '$primary_interface' 的 MAC 地址失败。" + log_error "请检查接口名称是否正确,或尝试手动执行: sudo ifconfig $primary_interface ether <新MAC地址>" + echo -e "${RED}修改 MAC 地址失败。请检查日志: $LOG_FILE ${NC}" + # 即使失败也继续执行脚本的其他部分 + fi + echo +} + # 生成随机 ID generate_random_id() { # 生成32字节(64个十六进制字符)的随机数 @@ -224,34 +271,6 @@ modify_or_add_config() { return 0 } -# 生成新的配置 -generate_new_config() { - echo - log_warn "机器码处理" - - # 默认不重置机器码 - reset_choice=0 - - # 记录日志以便调试 - echo "[INPUT_DEBUG] 机器码重置选项: 不重置 (默认)" >> "$LOG_FILE" - - # 处理 - 默认为不重置 - log_info "默认不重置机器码,将仅修改js文件" - - # 确保配置文件目录存在 - if [ -f "$STORAGE_FILE" ]; then - log_info "发现已有配置文件: $STORAGE_FILE" - - # 备份现有配置(以防万一) - backup_config - else - log_warn "未找到配置文件,这是正常的,脚本将跳过ID修改" - fi - - echo - log_info "配置处理完成" -} - # 清理 Cursor 之前的修改 clean_cursor_app() { log_info "尝试清理 Cursor 之前的修改..." @@ -981,7 +1000,7 @@ main() { log_info "当前用户: $CURRENT_USER" log_cmd_output "sw_vers" "macOS 版本信息" log_cmd_output "which codesign" "codesign 路径" - log_cmd_output "ls -la \"$CURSOR_APP_PATH\"" "Cursor 应用信息" + log_cmd_output "ls -ld "$CURSOR_APP_PATH"" "Cursor 应用信息" # 新增环境检查 if [[ $(uname) != "Darwin" ]]; then @@ -1005,7 +1024,7 @@ main() { echo -e "${YELLOW} 一起交流更多Cursor技巧和AI知识(脚本免费、关注公众号加群有更多技巧和大佬) ${NC}" echo -e "${BLUE}================================${NC}" echo - echo -e "${YELLOW}[重要提示]${NC} 本工具优先修改js文件,更加安全可靠" + echo -e "${YELLOW}[重要提示]${NC} 本工具默认会修改系统 MAC 地址 (临时) 并修改 JS 文件以重置设备标识。" echo -e "${YELLOW}[重要提示]${NC} 本工具免费,如果对您有帮助,请关注公众号【煎饼果子卷AI】" echo @@ -1014,8 +1033,8 @@ main() { check_and_kill_cursor backup_config - # 处理配置文件,默认不重置机器码 - generate_new_config + # 新增:默认执行系统 MAC 地址修改 + change_system_mac_address # 执行主程序文件修改 log_info "正在执行主程序文件修改..."