行业知识
Android13 网络 Adb 默认开启
2026-11-08 09:08:26
来源:互联网转载
Android 13 网络 Adb 默认开启
文章目录
- Android 13 网络 Adb 默认开启
- 一、前言
- 二、默认adb 代码实现
- 1、修改的目录:
- 2、具体修改:
- (1)在XXX_device.mk 添加属性
- (2)设置固定端口号
- (3)去除判断网络后,设置 ADB_WIFI_ENABLED 为 0 的代码
- 三、日志查看
- 四、其他
- 1、adb 相关属性
- (1) prop属性:persist.adb.tls_server.enable
- (2)prop属性:service.adb.tls.port
- (3)Settings属性:Settings.Global.ADB_WIFI_ENABLED "adb_wifi_enabled"
- 2、AdbService.java、AdbDebuggingManager.java、adb_wifi.cpp 的关系
- (1) adb_wifi 是底层init/cpp 启动的服务
- (2)AdbService启动时机
- (3)ramework\base\core\java\android\debug\IAdbManager.aidl
一、前言
通过代码分析发现Android13 上对 网络adb 进行了限制!
()Android13原生代码要求:必现连接上某个wifi,才能进行adb ,并且切换wifi或者关闭wifi都是会停止adb。
如果要做成Android11 或者之前一样,设备连接WiFi/有线网络后电脑可以直接进行adb连接,就要对系统代码进行适配修改。
()关键:1、mk 设置系统属性:persist.adb.tls_server.enable=12、写***端口号 55553、注释若干判断Wifi情况停止adb的代码
之前以为设置端口号和persist.adb.tls_server.enable 属性就ok了,但是还是有些小bug,还是要完全研究一遍具体流程。
二、默认adb 代码实现
1、修改的目录:
packages\modules\adb\daemon\adb_wifi.cppframework\base\services\core\java\com\android\server\adb\AdbDebuggingManager.java//修改前面两个文件就可以实现adb了,后面的文件试辅助分析的。//虽然 SettingsProvider 也有加载 Settings属性 Settings.Global.ADB_WIFI_ENABLED ,//但是 prop那个属性更优先,所以可以不用考虑这里默认情况framework\base\packages\SettingsProvider\src\com\android\providers\settings\SettingsProvider.java//增加分析定位文件,系统服务启动后会判断 属性persist.adb.tls_server.enable 进行相关操作//如果属性设置不生效,可以在这里添加打印日志查看过程framework\base\services\core\java\com\android\server\adb\AdbService.java
2、具体修改:
(1)在XXX_device.mk 添加属性
persist.adb.tls_server.enable = 1
手动添加,也是会记忆的!
(2)设置固定端口号
+++ b/release/packages/modules/adb/daemon/adb_wifi.cpp@@ -160,7 +160,8 @@ static void enable_wifi_debugging() { if (sTlsServer != nullptr) { delete sTlsServer; }- sTlsServer = new TlsServer(0);+ // default port 0 means random,change to 5555 ,by liwenzhi+ sTlsServer = new TlsServer(5555); if (!sTlsServer->Start()) { LOG(ERROR)
下一篇:怎么给服务器改密码啊?