Android user编译版本 默认打开adb及关闭adb设备认证

Android编译有3种方式:

  1. eng
  2. userdebug
  3. user

 

三种编译方式的不同,这里暂不做具体描述,但可以告诉大家如何去了解这三种编译方式产生的区别:

在source build/envsetup.sh   lunch xx之后,会将变量TARGET_BUILD_VARIANT赋值为eng或者userdebug或者user

然后你就可以在build目录下去grep TARGET_BUILD_VARIANT这个变量的使用情况,从而分析出这三种编译方式的区别

(注:想学习android编译原理的同学,可以仔细学习build目录,鼓励自己学习源代码)

 

 好了,开始正题,我们知道通常正式发布的android产品,如果你想使用adb来连接设备,那么需要进入开发者选项中打开允许adb调试的开关,那么你才能进行adb连接的,那么如果某种特殊的需求出现在你面前,“我们不想提供开发者选项,而且将有大批量的设备需要在user模式下进行测试“,这时你会想到的就是,那我把adb默认打开吧

 

打开方式如下:

打开build/make/core/main.mk文件

1,找到

ifeq($(user_variant),user)

    ADDITIONAL_DEFAULT_PROPERTIES += ro.adb.secure=1        ===>改成0

endif

 

2,找到

ifeq (true,$(strip $(enable_target_debugging)))

    xxxxxxxxxxxxxx

else

    ADDITIONAL_DEFAULT_PROPERTIES += ro.debuggable=0        ===>改成1

endif

修改上述两处地方后,再编译user版本的image,adb就是默认可以使用的了,也不需要设备验证

 

如果你对上面的两处修改做研究的话,就会发现其实真正影响adb的就是persist.sys.usb.config和ro.adb.secure这两个属性

然后你就可以从源码中这两个属性的使用来学习adb这个东东了,再具体点的我就不多说了,欢迎大家学习源代码后与我一起讨论,加油!

你可能感兴趣的:(Android)