编译Android系统默认打开USB调试功能
(2015-10-12 16:49:00)| 标签: android4.2android2.3android4.0usb调试 | 分类: Linux-Android | 
如何默认打开user 版本的USB debug 选项, 默认打开adb 连接
 
user usb debug root adb 连接
  
user usb debug root adb 连接
【方法】
1. 在android 4.0 之前,这个设置是在frameworks/base/service/..../SystemServer.java 里面设置会根据system property 的persist.service.adb.enable 来设置。您可以看到类似如代码:
       
// make sure the ADB_ENABLED setting value matches the secure
property value
       
Settings.Secure.putInt(mContentResolver,
Settings.Secure.ADB_ENABLED,
               
"1".equals(SystemProperties.get("persist.service.adb.enable")) ? 1
: 0);                             
1. 在android 4.0 之前,这个设置是在frameworks/base/service/..../SystemServer.java 里面设置会根据system property 的persist.service.adb.enable 来设置。您可以看到类似如代码:
2. 在android 4.0 之后,因为adb 的控制,统一使用了persist.sys.usb.config 来控制,于是对应的设置点也改到了frameworks/base/service/...../usb/UsbDeviceManager.java 中,您也可以看到类似的代码如:
public
public void  systemReady() {
 // make sure the ADB_ENABLED setting value
matches the current state
   
Settings.Secure.putInt(mContentResolver,
Settings.Secure.ADB_ENABLED, mAdbEnabled ? 1 : 0);
 
而这个persist.sys.usb.config 中adb 的配置是在alps/build/tools/post_process_props.py 中根据ro.debuggable = 1 or 0 来设置,1 就是开启adb, 0 即关闭adb debug. 而这个ro.debuggable 也是在alps/build/core/main.mk 中设置,和2.3 修改类似     
而这个persist.sys.usb.config 中adb 的配置是在alps/build/tools/post_process_props.py 中根据ro.debuggable = 1 or 0 来设置,1 就是开启adb, 0 即关闭adb debug. 而这个ro.debuggable 也是在alps/build/core/main.mk 中设置,和2.3 修改类似
不过您这样打开之后,对于user 版本adb shell 开启的还是shell 权限,而不是root 权限,如果您需要root
权限,需要再改一下system/core/adb/adb.c 里面的should_drop_privileges()
这个函数,在#ifndef ALLOW_ADBD_ROOT 时return 0; 而不是return 1; 即可。
博客来源:http://blog.csdn.net/pfgmylove/article/details/16985159
							
		前一篇:浅淡ADB的公私钥认证机制
										
					
 加载中…
加载中…