Android 13 wifi adb设置固定端口解决
本文只管解决介绍不做代码层面具体分析。
文章目录
- Android 13 wifi adb设置固定端口解决
- 一、前言
- 二、设置wifi 固定端口号
- 三、打开 "无线调试"
- 1、手动打开设置里面的开发者选项 里面的“无线调试”
- 2、通过命令设置打开 "无线调试"
- 其他
一、前言
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