Android 13 wifi adb设置固定端口解决

Android 13 wifi adb设置固定端口解决

本文只管解决介绍不做代码层面具体分析。

一、前言

Android13 wifi adb 做了一些变更,不管是代码层面还是用户使用层面都是做了修改!

具体来说应该是Android12 就变更了,因为我之前一直开发Android11 网络,
最近系统版本变更到 Android13 ,发现代码上确实做了较多变更。


代码层面的修改:
    以前wifi 和 有线网络的系统逻辑都是在framework内,现在变成在package\modules\Connectivity下面
    蓝牙方面也是做了相当大的改动!这里不做分析。
客户使用层面的修改:
    Android11之前 wifi adb 端口默认是 5555,adb connect ip即可完成adb 连接
    Android13 上,wifi adb 端口默认是 随机的6位数,每次wifi adb 连接需要打开开发者模式里面的"无线调试",
    并且最麻烦的是每次连接新的wifi,都需要重新打开开发者模式里面的"无线调试",会生成新的端口号,需要输入端口号才能进行adb 连接。

我这里是Tv平台,usb调试默认是打开的,并且基本是没有usb线调试的。

Android13 必须要打开wifi,才能打开“无线调试”,那么Android13 无法进行有线adb了?
刚开始,我以为是这样子的。后面发现设置两个属性后,就可以进行有线网络的adb了。哈哈。代码不绝人。

二、设置wifi 固定端口号

找到 adb_wifi.cpp 文件,修改默认端口号即可。

packages\modules\adb\daemon\adb_wifi.cpp


     if (sTlsServer != nullptr) {
         delete sTlsServer;
     }
-    sTlsServer = new TlsServer(0);
+    sTlsServer = new TlsServer(5555); //传入需要设置的端口号

这个 adb_wifi.cpp 是Android13 新增的文件,Android11 以前是没有的。

这个代码是全局搜索系统代码的wifi adb/adb wifi看到的,网上目前还没有相关的研究。

三、打开 “无线调试”

1、手动打开设置里面的开发者选项 里面的“无线调试”

代码里面原生Settings 点击"无线调试",开关控制的大概代码位置:

packages\apps\Settings\src\com\android\settings\development\WirelessDebuggingFragment.java

因为点击开关后还要弹框确认,具体到哪一行是有效设置未作具体分析,后续需要可以自行研究。

2、通过命令设置打开 “无线调试”

对比了下,打开“无线调试”前后,系统里面的所有adb 属性,发现设置中主要是修改了两个属性。

在这里插入图片描述
通过后续测试发现,确实只是要修改下面两个属性就可以进行wifi/有线的adb 网络调试了。

setprop persist.adb.tls_server.enable 1 //设置开启无线调试
setprop service.adb.tls.port 5555  //设置端口号

测试发现,连接网络后,设置这两个属性,不管是wifi 还是有线网都是可以进行adb调试的。完美!

其他

Android13 wifi/有线网 如果连接无法上网的网络,网络校验机制会一直进行重连。

Android13 中发现设置交换机的有线网的静态ip,无法进行adb 连接成功;路由器的静态ip可以连接,奇怪!

Android13 有线变更:
https://blog.csdn.net/wenzhi20102321/article/details/130607641

Android13 某些配置文件乱码问题:
https://blog.csdn.net/wenzhi20102321/article/details/130646878

猜你喜欢

转载自blog.csdn.net/wenzhi20102321/article/details/131056174