方法1:免配对开机自启 5555 端口(卸载 Root 也不受影响)

对于安卓开发者和玩机爱好者来说,无线 ADB(Wireless Debugging)是一项必不可少的功能。然而,Android 11+ 官方推出的无线调试体验在日常使用中有着不少痛点:

  1. 端口随机化:每次关闭再开启无线调试,或者手机重启后,连接端口都会随机变化,导致电脑端连接命令极其繁琐 [1 2]。
  2. 繁琐的配对码:首次连接必须点击“使用配对码配对”,手动输入 6 位数配对码,步骤冗长 [1 2]。
  3. 系统崩溃 Bug:在部分深度定制的系统(如联发科芯片的小米/HyperOS)上,启动配对广播时极易触发 mDNS 内部服务错误(err=0),从而导致手机直接发生软重启(黑屏加载)

今天,我们将分享一套终极无线调试解决方案

你只需要利用一次临时的 Root 权限,就可以在系统底层打通一条绿色的“永久信任通道”。配置完成后,即使你彻底卸载 Magisk 还原回纯净无 Root 状态,该通道依然永久保留。每次开机,手机都会在后台静默开启固定的 5555 端口,电脑端一键即可完成无缝免配对的秒连!


核心原理解析:为什么卸载 Root 不受影响?

这套方案之所以能在卸载 Magisk(完全去掉 Root)后依然完美运行,得益于 Android 底层的两个设计:

  1. 公钥免配对认证(adb_keys
    Android 系统之所以能信任你的电脑,是因为电脑的 ADB 公钥被保存在了手机的 /data/misc/adb/adb_keys 白名单文件中。只要我们有 Root 权限时手动将电脑公钥写入该文件,电脑就会被手机“永久信任”。
  2. 持久化配置属性(persist.adb.tcp.port
    Android 系统提供了一个名为 persist.adb.tcp.port 的全局属性。任何带有 persist. 前缀的属性,都会被系统加密写入到手机的 /data/property/persistent_properties 目录中。
  3. 分区分离机制
    Magisk 的安装与完全卸载,主要涉及系统引导分区(/boot/init_boot)。而我们上述写入白名单和系统配置的目录都在 /data 数据分区。卸载 Magisk 还原系统并不会清理 /data 分区,因此我们配置的一切都会完美保留。

🛠️ 终极配置实操步骤

请准备好手机(目前处于 Root 状态)电脑以及一条 USB 数据线。root参考第五章:Magisk Root 刷机全攻略

第一阶段:获取电脑公钥并注入手机(免配对核心)

  1. 定位电脑公钥文件
    在 Windows 电脑上,你的 ADB 公钥位于:
    C:\Users\<你的Windows用户名>\.android\adbkey.pub
  2. 将公钥推送到手机临时目录
    在电脑的 PowerShell(或 CMD)中,利用 USB 调试将公钥推送到手机的虚拟 SD 卡中:
    # 请将 yyszo 替换为您电脑的实际用户名,9xgiheqwjbbmxovo 替换为您的实际手机序列号
    adb -s 9xgiheqwjbbmxovo push C:\Users\yyszo\.android\adbkey.pub /sdcard/adbkey.pub
    
  3. 进入手机 shell 并注入白名单
    为了防止 Windows 命令行和手机 Shell 之间的重定向符号 >> 发生解析冲突 [1.2.8],最稳妥的做法是直接进入交互式命令行执行
    adb -s 9xgiheqwjbbmxovo shell
    
    此时你会进入手机 Shell 环境。接下来依次输入:
    # 1. 切换至 Root 权限(请在手机屏幕上允许 Magisk 的超级用户请求)
    su
    
    # 2. 将临时公钥追加写入系统信任数据库
    cat /sdcard/adbkey.pub >> /data/misc/adb/adb_keys
    
    # 3. 修复密钥文件的权限与所有者组,防止后续无 Root 时无法读取, 规范密钥文件的权限与所有者组,并修复 SELinux 标签
    chmod 640 /data/misc/adb/adb_keys
    chown system:shell /data/misc/adb/adb_keys
    chcon u:object_r:adb_keys_file:s0 /data/misc/adb/adb_keys
    
    # 4. 清理手机里的临时公钥文件
    rm -f /sdcard/adbkey.pub
    
    
    # 5. 连续输入两次 exit 退出 shell
    exit
    exit
    

 

这命令root卸载后就不行了,考虑不用

# 5.重新写入开机自启脚本,自动同意adb 连接(只留这一条安全无害的命令)
echo '#!/system/bin/sh
resetprop ro.adb.secure 0' > /data/adb/post-fs-data.d/disable_adb_secure.sh

# 确保有执行权限
chmod +x /data/adb/post-fs-data.d/disable_adb_secure.sh

 


第二阶段:配置永久 TCP 5555 端口(自启核心)

手机和电脑通过 USB 连接好,在电脑的 PowerShell 中执行以下命令:

  1. 写入系统底层的永久属性
    adb -s 9xgiheqwjbbmxovo shell su -c "setprop persist.adb.tcp.port 5555"
    
  2. 检查是否成功写入
    adb -s 9xgiheqwjbbmxovo shell getprop persist.adb.tcp.port
    
    (如果终端返回了 5555,说明系统已经成功将该参数持久化记录到 /data 中。)
  3. 应用该属性(关键)
    不需要使用任何可能导致 USB 调试突然中断的 stop/start 终端命令。
    你只需要拿起手机,进入 “系统设置 -> 开发者选项”
    • 将“USB 调试”开关关闭,然后再重新开启。
      (这个“关 -> 开”的操作会让系统重新加载 persist.adb.tcp.port 属性,并在后台自动开启 5555 端口。)

第三阶段:拔线测试无线连接

现在,你可以彻底拔掉 USB 数据线了。在电脑端直接输入你的手机局域网 IP 进行连接:

# 1. 直接连接
adb connect 192.168.31.240:5555

# 2. 查看连接状态
adb devices

此时终端会直接显示 connected to 192.168.31.240:5555,并在列表中显示状态为 device!不需要任何配对码,更没有闪退和重启。


第四阶段:完全卸载 Root 体验“真·免Root无线调试”

当你测试无线连接完全正常后,你就可以前往手机上的 Magisk App

  1. 打开 Magisk App,点击最下方的 “卸载 Magisk”
  2. 选择 “完全卸载”(或“还原原厂镜像”)。
  3. 等待手机自动重启完成。

重启后,你的手机系统已经恢复为完全没有 Magisk没有常规 Root 残留的纯净原厂状态。

注意:若重启Magisk 还在(自动安装),无法卸载,直接fastboot 刷入原厂boot.img或者下载最新完整包安装。

此时,你只需要确保手机的 “USB 调试” 开关保持开启(注意:不是那个有 Bug 的“无线调试”开关,就是最基础的那个 USB 调试)。
系统内部的 adbd 服务由于读取到了我们之前写入的永久属性,会在后台自动将 5555 端口与 USB 调试进行双重绑定 [1.2.1]。

任何时候,你的电脑只要输入:
adb connect <手机IP>:5555
无需任何操作,瞬间秒连!


第五阶段:ADB 检查手机是否 Root

方法一:测试 su 提权并查看身份(最推荐最准确)

这个方法能直接测试手机的 Root 权限是否能被正常调用。请在终端执行:

adb shell "su -c id"

(注:如果连接了多台设备,请记得加上 -s <设备IP或序列号>,例如 adb -s 192.168.31.109:5555 shell "su -c id")

  • 已成功 Root 的结果
    终端会输出包含 uid=0(root) 的信息,例如:
    uid=0(root) gid=0(root) groups=0(root) context=u:r:magisk:s0
    
    这说明 su 命令执行成功,且当前已经成功拿到了系统的最高权限(uid=0 就是 root 身份)。
  • 未 Root(或 Root 权限被拒绝)的结果
    终端会报错提示:
    /system/bin/sh: su: inaccessible or not found
    
    或者在手机屏幕弹出的授权申请中你点击了“拒绝”,终端会提示 Permission denied(权限被拒绝)。

方法二:检查 su 文件是否存在(检查 Root 痕迹)

这个方法用于查看系统里有没有放置 Root 提权文件:

adb shell which su
  • 已成功 Root 的结果
    终端会输出 su 文件在手机里的具体路径,常见的路径有:
    • /system/bin/su
    • /system/xbin/su
    • /data/adb/magisk/su
  • 未 Root 的结果
    终端无任何输出(返回空白行)

方法三:测试 ADB 守护进程原生 Root(开发/测试版系统常见)

如果你使用的是官方的开发版(Userdebug)系统,或者是某些专门的测试系统,可以直接尝试让整个 ADB 进程以 Root 身份运行:

adb root
  • 支持 ADB Root 的结果
    终端会提示:restarting adbd as root
    此时你再输入 adb shell 进入手机,提示符会直接变成 #,不需要再手动输入 su,你发出的任何 ADB 指令都默认拥有最高 Root 权限。
  • 不支持(普通零售版系统)的结果
    终端会提示:adbd cannot run as root in production builds(生产版本中 adbd 无法以 root 运行)。

🔒 终极方案的安全建议

虽然通过该方案可以获得极致的无线调试体验,但由于 5555 端口在手机开机后处于常开状态,请遵循以下安全防范建议:

  1. 切勿在公共 Wi-Fi 网络下暴露调试
    在商场机场等公共 Wi-Fi 网络中,局域网内的攻击者可能会通过扫描 5555 端口来尝试连接。
  2. 不要随意允许未知的授权申请
    如果局域网内有其他不认识的设备尝试发起连接,虽然它们因为没有私钥会被直接拒绝,但你的手机屏幕上依然会弹出标准的“是否允许 USB 调试”的询问弹窗。一旦看到不属于你电脑的未知请求,请一律点击拒绝

方法2:root解决,然后卸载root

20260623失效,发现没这个文件


一发现问题

抓取日志定位崩溃原因:

adb -s 9xgiheqwjbbmxovo logcat -v threadtime | findstr /i "adbd crash reboot AdbDebugging"

日志关键行:

E AdbDebuggingManager: Expected keyStore but got tag=adbKey
E AdbDebuggingManager: Failed to register pairing service(err=0)
E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: AdbDebuggingManager
       at AdbDebuggingManager$PairingThread.run(AdbDebuggingManager.java:247)

根本原因: Android 12 迁移了 TLS 配对证书存储格式,MIUI 没有正确处理旧格式 adbKey 到新格式 keyStore 的迁移,每次配对都往 /data/misc/keystore/ 写入一条损坏记录,积累约5天后 PairingThread 初始化崩溃 → system_server 崩溃 → 手机强制重启。


二获取 root(参考:第五章:Magisk Root 刷机全攻略) 

前提:BL 已解锁

1. 下载 Magisk

https://github.com/topjohnwu/Magisk/releases/latest 下载 Magisk-v28.1.apk 安装到手机。

2. 修补 boot.img

从当前系统线刷包(cannon_images_V14.0.6.0.SJECNXM_xxx)解压出 boot.img,传到手机:

adb -s 9xgiheqwjbbmxovo push D:\miui\not95g\boot.img /sdcard/boot.img

打开 Magisk App → 安装 → 选择并修补一个文件 → 选 boot.img → 开始,生成 magisk_patched_xxx.img,传回电脑:

adb -s 9xgiheqwjbbmxovo pull /sdcard/Download/magisk_patched_xxx.img D:\miui\not95g\

3. 刷入(手机进 fastboot 模式:关机 + 音量下 + 电源键)

fastboot flash boot "D:\miui\not95g\magisk_patched_xxx.img"
fastboot reboot

联发科平台 vbmeta.img 不是标准 AVB 格式,跳过不刷,直接刷 boot 即可正常开机。


三root 后清除损坏证书文件

adb -s 9xgiheqwjbbmxovo shell su -c "rm -rf /data/misc/adb/*"
adb -s 9xgiheqwjbbmxovo shell su -c "rm -rf /data/misc/keystore/user_0/USRPKEY_adb*"
adb -s 9xgiheqwjbbmxovo shell reboot

重启后配对码功能恢复正常,不再重启。


四卸载 Magisk 还原干净

Magisk App → 右上角齿轮⚙️ → 卸载 Magisk还原原厂镜像 → 确认

手机自动重启,boot.img 还原为原始状态,root 彻底清除,系统恢复出厂干净状态。


五复发处理(约每5天一次)

问题会周期性复发,复发时重复二三四步骤即可。

或者保留 Magisk root,在 myaccessibility App 里加定期自动清理,彻底根治:

// 每2天自动执行一次
Runtime.getRuntime().exec(arrayOf("su" "-c"
    "rm -rf /data/misc/adb/* && rm -rf /data/misc/keystore/user_0/USRPKEY_adb*"))

方法3:(失效)

一、核心结论

你这个问题是 MIUI 14.0.6.0 底层 BUG: 只要点 使用配对码配对设备 → 系统进程崩溃 → 手机强制重启 无法通过开关设置修复,只能绕开配对码

你执行的命令 已经永久修复,原理:

  1. 用 USB 线 强制开启 5555 无线端口
  2. 彻底跳过配对码弹窗
  3. 以后 永远不用点配对,直接连接
  4. 全程不触发重启机制

二、完整可复制教程(别人也能用)

准备工作

  1. 手机开启:USB 调试 + 无线调试
  2. 手机用 USB 线连接电脑
  3. 电脑打开 PowerShell

三、直接复制这 6 条命令(按顺序)

# 1. 关闭无线调试
adb shell settings put global adb_wifi_enabled 0

# 2. 关闭全局ADB
adb shell settings put global adb_enabled 0

# 3. 清除旧授权(修复冲突)
adb shell rm -rf /data/system/adb_keys
adb shell rm -rf /data/local/tmp/*

# 4. 重新开启ADB
adb shell settings put global adb_enabled 1

# 5. 强制固定无线端口 5555(关键!跳过配对)
adb tcpip 5555

# 6. 无线连接(拔掉USB也能用)
adb connect 192.168.31.240:5555

四、成功标志

出现这两句 = 100% 成功

restarting in TCP mode port: 5555
connected to 192.168.31.240:5555

五、以后使用方法(永远不重启)

1. 拔掉 USB 线

2. 以后每次只用这 1 条命令

adb connect 192.168.31.240:5555

3. 绝对不要做

❌ 永远不要点:使用配对码配对设备 一点就重启,这是系统 BUG


六、为什么这命令能解决?(原理)

  1. settings put global adb_wifi_enabled 0 关闭系统无线调试,切断崩溃触发点

  2. rm -rf /data/system/adb_keys 删除损坏的授权文件,这是重启根源

  3. 最重要:adb tcpip 5555 直接通过有线 强制开启无线调试 不经过配对流程 → 不弹窗 → 不崩溃 → 不重启


七、手机重启后怎么办?

只需要重新输一次:

adb connect 192.168.31.240:5555

不用插线 不用配对 不弹窗 不重启


你现在的状态

✅ 无线调试正常 ✅ 不用配对码 ✅ 不弹窗 ✅ 不重启 ✅ 拔掉线能用 ✅ 永久稳定

需要我给你做一个 1 句话极简使用说明 吗?你以后照着用就行。