Android 13 设置自动进入wifi adb模式
文章目录
一、前言:
Android11之前 wifi adb 端口默认是 5555,adb connect ip即可完成adb 连接
Android13 上,wifi adb 端口默认是 随机的6位数,每次wifi adb 连接需要打开开发者模式里面的"无线调试",
并且最麻烦的是每次连接新的wifi,都需要重新打开开发者模式里面的"无线调试",会生成新的端口号,需要输入端口号才能进行adb 连接。
Android 13 wifi adb设置固定端口解决:
https://blog.csdn.net/wenzhi20102321/article/details/131056174
二、解决Android 13 wifi adb每次重启自动重置问题方法
上面说到Android13 开启wifi adb后,每次重启后都会自动关闭,那么如何解决这个问题呢?
提供下面两种思路。
1、分析系统中每次重置wifi adb属性的代码
大致要分析的代码:
packages\modules\adb\daemon\adb_wifi.cppframework\base\services\core\java\com\android\server\adb\AdbService.java
还有里面涉及到的相关类,这里不做具体分析。有兴趣的可以自己进一步进行分析。
2、在开机广播里面进行设置wifi adb 相关属性
无论是监听开机广播还是设置prop属性,都是要系统权限的!
(1)定义开机广播
src\main\AndroidManifest.xml
(2)开机广播监听中进行设置adb 属性:
import android.os.SystemProperties;public class BootReceiver extends BroadcastReceiver { private static final String ACTION_ANDROID_BOOT_COMPLETED = "android.intent.action.BOOT_COMPLETED"; public static final String ADB_ENABLE_PROP = "persist.adb.tls_server.enable"; public static final String ADB_PORT_PROP = "service.adb.tls.port"; @Override public void onReceive(final Context context, Intent intent) { LogUtil.debugInform("action=" + intent.getAction()); switch (intent.getAction()) { case ACTION_ANDROID_BOOT_COMPLETED: //开机广播 //设置wifi adb 属性 SystemProperties.set(ADB_ENABLE_PROP, "1"); SystemProperties.set(ADB_PORT_PROP, "5555"); Toast.makeText(context, "已设置wifi adb开启", Toast.LENGTH_LONG).show(); break; default: LogUtil.error("no user receiver!"); } }
3、值得注意
不要再SystemServer 系统服务启动的时候,进行设置adb wifi相关属性,会不生效的。
因为后面 AdbService 启动的时候会重新设置一次,所以在开机广播里面做设置时比较保险的。
wifi adb demo代码(需要自己配置对应平台的签名文件)
https://download.csdn.net/download/wenzhi20102321/88056639
来源地址:https://blog.csdn.net/wenzhi20102321/article/details/131774893