Android13 网络 Adb 默认开启

小明 2025-04-30 15:20:13 7

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=1
                2、写死端口号 5555
                3、注释若干判断Wifi情况停止adb的代码
                

                之前以为设置端口号和persist.adb.tls_server.enable 属性就ok了,但是还是有些小bug,还是要完全研究一遍具体流程。

                二、默认adb 代码实现

                1、修改的目录:

                packages\modules\adb\daemon\adb_wifi.cpp
                framework\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) 
The End
微信