diff --git a/scripts/run/cursor_mac_id_modifier.sh b/scripts/run/cursor_mac_id_modifier.sh index bf8ac02..efac5dd 100644 --- a/scripts/run/cursor_mac_id_modifier.sh +++ b/scripts/run/cursor_mac_id_modifier.sh @@ -440,7 +440,7 @@ start_cursor_to_generate_config() { fi } -# �️ 确保Cursor目录权限正确(新增函数) +# 🛡️ 确保Cursor目录权限正确(新增函数) ensure_cursor_directory_permissions() { log_info "🛡️ [增强权限修复] 开始深度权限修复和诊断..." @@ -809,7 +809,7 @@ apply_macos_advanced_permissions() { return 0 } -# �️ 增强的Cursor权限完整修复(新增函数) +# 🛡️ 增强的Cursor权限完整修复(新增函数) ensure_cursor_complete_permissions() { log_info "🛡️ [完整权限] 开始Cursor权限完整修复..." @@ -931,7 +931,7 @@ ensure_cursor_complete_permissions() { return 0 } -# �🛠️ 修改机器码配置(增强版) +# 🛠️ 修改机器码配置(增强版) modify_machine_code_config() { local mode=${1:-"FULL"} @@ -1249,20 +1249,6 @@ validate_mac_address() { -# 🔍 MAC地址验证函数(基于randommac.sh) -validate_mac_address() { - local mac="$1" - local regex="^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$" - - if [[ $mac =~ $regex ]]; then - return 0 - else - return 1 - fi -} - - - # 🔄 增强的WiFi断开和重连机制 manage_wifi_connection() { local action="$1" # disconnect 或 reconnect @@ -1587,28 +1573,50 @@ _change_mac_for_one_interface() { sleep 2 done - # 验证修改结果 + # 🔍 验证修改结果 if [[ $mac_change_success == true ]]; then + log_info "🔍 [验证] 验证MAC地址修改结果..." + sleep 3 # 等待系统更新 + local final_mac_check=$(ifconfig "$interface_name" | awk '/ether/{print $2}') - log_info "最终验证接口 '$interface_name' 新 MAC 地址: $final_mac_check" + log_info "📍 [检查] 接口 '$interface_name' 最终MAC地址: $final_mac_check" + if [ "$final_mac_check" == "$random_mac" ]; then - echo -e "${GREEN}✅ 成功使用 $method_used 方法修改接口 '$interface_name' 的 MAC 地址${NC}" + echo + log_info "🎉 [成功] MAC地址修改成功!" + echo " ✅ 使用方法: $method_used" + echo " ✅ 接口: $interface_name" + echo " ✅ 原MAC: $current_mac" + echo " ✅ 新MAC: $final_mac_check" + + # 🔄 WiFi后处理 + manage_wifi_connection "reconnect" "$interface_name" + return 0 else - log_warn "验证失败,MAC地址可能未生效或已被重置" + log_warn "⚠️ [验证失败] MAC地址可能未生效或已被系统重置" + log_info "💡 [提示] 期望: $random_mac, 实际: $final_mac_check" mac_change_success=false fi fi - # 失败处理 + # ❌ 失败处理和用户选择 if [[ $mac_change_success == false ]]; then - log_error "所有MAC地址修改方法都失败了" + echo + log_error "❌ [失败] 所有MAC地址修改方法都失败了" + log_info "📋 [尝试过的方法]: ${methods_tried[*]}" + + # 🔄 WiFi恢复 + manage_wifi_connection "reconnect" "$interface_name" + + # 📊 显示故障排除信息 _show_troubleshooting_info "$interface_name" - # 🔧 失败时提供选择:重试、跳过或退出 + # 🎯 提供用户选择 + echo + echo -e "${BLUE}💡 [说明]${NC} MAC地址修改失败,您可以选择:" + echo -e "${BLUE}💡 [备注]${NC} 如果所有接口都失败,脚本会自动尝试JS内核修改方案" echo - echo -e "${BLUE}� [说明]${NC} MAC地址修改失败,可以重试或跳过此接口" - echo -e "${BLUE}� [备注]${NC} 如果所有接口都失败,脚本会自动尝试JS内核修改方案" # 简化的用户选择 echo "请选择操作:" @@ -2313,15 +2321,13 @@ change_system_mac_address() { log_info "📋 [完成] 所有活动接口的MAC地址修改尝试完成" - log_info "所有活动接口的 MAC 地址修改尝试完成。" - if $overall_success; then return 0 # 所有尝试都成功 else # 🔧 MAC地址修改失败时自动切换到JS内核修改 echo log_warn "⚠️ [警告] MAC地址修改失败或部分失败" - log_info "� [智能切换] 自动切换到JS内核修改方案..." + log_info "🔧 [智能切换] 自动切换到JS内核修改方案..." log_info "💡 [说明] JS内核修改直接修改Cursor设备检测逻辑,绕过效果更好" if modify_cursor_js_files; then