ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

老Flyme 官方 root 开启 ADB TCP 方案

老Flyme 官方 root 开启 ADB TCP 方案 Flyme 官方 root 开启 ADB TCP 方案2026/7/3问题Flyme 官方 root 的su运行在u:r:shell:s0上下文无法直接控制 adbdctl.restart adbd— 需要 init 上下文shell 无权stop/start adbd— adbd 是 oneshot 服务shell 拉不起来直接写/dev/socket/adbd— 内部传输接口不接受用户命令ADB 协议帧 — 连接即断EOF解决方案sys.usb.config 切换法APP → su → 脚本 ├── setprop service.adb.tcp.port 5555 ├── setprop sys.usb.config none ← init 监听到变化 ├── sleep 1 └── setprop sys.usb.config adb ← init 再次监听到 ↓ init 执行 on property 触发器 ├── stop adbd └── start adbd ← init 有权限 ↓ 新 adbd 读到端口 → TCP 5555 开放 ✓关键原理sys.usb.config是 Android 系统属性init 进程会监听它的变化。当值变为adb时init.rc 中定义的触发器被执行on property:sys.usb.configadb property:sys.usb.configfs0 start adbd因为init 自己执行start adbd不受 SELinux 上下文限制adbd 正常启动并读取service.adb.tcp.port属性。对比直接ctl.restart方法执行者SELinux 上下文结果setprop ctl.restart adbdshellu:rs0拒绝sys.usb.configadb触发器initu:r:init:s0允许 ✓部署脚本/data/local/flyme_adb.sh#!/system/bin/shsetprop service.adb.tcp.port5555setprop sys.usb.config nonesleep1setprop sys.usb.config adb开机自启 APP编译 ADB Boot Helper APKBootReceiver 前台服务安装后打开一次授权 su打开 APP → 授权 su → ADB TCP 即刻开启 ✓ 重启后BootReceiver → 前台服务 → 15秒后执行脚本 → TCP 自启 ✓验证adb connect设备IP:5555 adb devices注意切换sys.usb.config会短暂断开 USB 连接系统播放断开声属于正常现象Flyme 官方 root 的授权记忆可能不覆盖后台 BroadcastReceiver依赖前台服务保持生命周期
返回列表