Android 系统源码添加无线ADB调试开关

一,前言

首先,要在Android系统中添加无线ADB调试功能,只需要在system.prop中配置service.adb.tcp.port = 5555 即可。那么,我们如何在设置中,添加一个开关,去动态的控制无线ADB调试功能的打开或者关闭呢?

二,具体实现

关于这个开关的显示逻辑这里就不做详细的赘述,主要是利用系统的SwitchPreference就可以了,我们主要看功能的实现。

在system/core/rootdir/init.rc中:
+
+on property:sys.connect.adb.wiress=1
+   setprop service.adb.tcp.port 5555
+   stop adbd
+   start adbd
+   
+on property:sys.connect.adb.wiress=0
+   setprop service.adb.tcp.port ""
+   stop adbd
+   start adbd

然后在SwitchPreference的点击事件里面,去动态的控制sys.connect.adb.wiress这个系统属性就可以了。代码如下:

+   private void handleWirelessADBPreferenceScreenClick() {
+       boolean wirelessADBEnabled = mToggleWirelessADBPreference.isChecked();
+       if(wirelessADBEnabled){
+           SystemProperties.set("sys.connect.adb.wiress","1");
+       }else{
+           SystemProperties.set("sys.connect.adb.wiress","0");
+       }
+   }

三,总结

将sys.connect.adb.wiress属性值设为1时,系统会通过init.rc,将service.adb.tcp.port 设为5555,同理,将sys.connect.adb.wiress设为0时,系统会将service.adb.tcp.port 置空。这样就达到了动态控制无线ADB调试的目的。

你可能感兴趣的:(Android 系统源码添加无线ADB调试开关)