You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android 12环境下华硕Tinker Board(RK3399平台)Wi-Fi ADB自动重启及端口持久化配置方案咨询

Android 12环境下华硕Tinker Board(RK3399平台)Wi-Fi ADB自动重启及端口持久化配置方案咨询

太懂你这种糟心的情况了——服务器柜里的设备没法插USB物理连接,Wi-Fi一断连,ADB不仅直接失效,连端口都随机变,每次还要掏设备出来手动开,完全违背了服务器自动化的初衷。不用折腾Android Studio写Java/Kotlin app,咱们直接改系统配置就能搞定固定ADB端口+Wi-Fi断连后自动重启ADB,下面给你一步步来:

一、先把ADB网络端口固定死

首先解决端口随机变更的问题,让ADB每次启动都用同一个固定端口(比如常用的5555):

  1. 确保设备已获取Root权限:因为要修改系统核心文件,华硕Tinker Board的官方Android镜像可以通过adb root命令临时获取,或者刷入对应型号的Root包实现永久Root(具体Root方法可以查Tinker Board官方社区的教程)。
  2. 修改系统属性文件固定端口
    • 先把系统分区挂载为可写:
      mount -o rw,remount /system
      
    • 编辑/system/build.prop文件(用vi/nano或者直接用echo追加内容):
      echo "service.adb.tcp.port=5555" >> /system/build.prop
      echo "persist.adb.tcp.port=5555" >> /system/build.prop
      
    • 这两行参数中,service.adb.tcp.port设置当前ADB启动端口,persist.开头的是持久化参数,重启设备后依然生效。
  3. 备选方案:修改ADB启动脚本
    如果修改build.prop后端口还是随机,就去改ADB的启动配置文件/system/etc/init/adbd.rc,找到启动adbd的语句,添加固定端口参数:
    # 找到类似行,追加--port 5555参数
    start adbd --port 5555
    

二、设置Wi-Fi断连后自动重启ADB

接下来解决Wi-Fi重连后ADB自动恢复的问题,我们可以写一个简单的监控脚本,让系统在Wi-Fi恢复时自动重启ADB服务:

  1. 编写ADB重启脚本
    创建/data/local/adb_restart.sh文件,内容如下:

    #!/system/bin/sh
    # 停止当前ADB服务
    stop adbd
    # 等待1秒确保服务完全停止
    sleep 1
    # 启动ADB并指定固定端口
    start adbd --port 5555
    

    给脚本添加执行权限:

    chmod +x /data/local/adb_restart.sh
    
  2. 编写Wi-Fi状态监控脚本
    创建/data/local/wifi_monitor.sh文件,用来监听Wi-Fi连接成功的日志事件,一旦检测到Wi-Fi重连就触发ADB重启:

    #!/system/bin/sh
    while true; do
        # 清空日志缓存,监听Wi-Fi状态机的连接成功日志
        logcat -b main -c && logcat -b main -s WifiStateMachine | grep -E "CONNECTED"
        # 检测到连接成功后,执行ADB重启脚本
        /data/local/adb_restart.sh
    done
    

    同样给脚本加执行权限:

    chmod +x /data/local/wifi_monitor.sh
    
  3. 设置脚本开机自启
    Android 12可以通过init服务实现开机自动启动监控脚本,步骤如下:

    • 创建/system/etc/init/adbd_wifi.rc文件,内容:
      service adbd_wifi_monitor /system/bin/sh /data/local/wifi_monitor.sh
          class main
          user root
          group root
          disabled
          oneshot
      
      on boot
          # 开机时自动启动ADB服务(固定端口)
          start adbd --port 5555
          # 启动Wi-Fi监控脚本
          start adbd_wifi_monitor
      
    • 把系统分区改回只读(可选,但建议操作):
      mount -o ro,remount /system
      
    • 重启设备后,系统会自动加载这个服务。

三、验证配置是否生效

  1. 重启设备后,在电脑上执行adb connect <你的Tinker Board IP>:5555,看是否能直接连接成功。
  2. 手动断开设备的Wi-Fi,等待它自动重连后,再次执行上面的连接命令,看是否不需要任何手动操作就能重新连接ADB。

注意事项

  • 如果修改系统文件后重启被还原,可能是设备开启了系统分区的写保护,需要先解除写保护(不同设备方法不同,Tinker Board可以查官方文档的分区解锁教程)。
  • 部分Android 12设备的系统文件可能在/product/vendor分区,修改前先确认文件位置。

备注:内容来源于stack exchange,提问作者Duya25446

火山引擎 最新活动