关于“允许USB调试弹框”

        一般来讲在user版本我们打开开发者模式(点击多次build number)后再打开USB debug,插入usb会弹出一个标题为“允许USB调试吗?”的弹框,但是我最近遇到一个问题,即使是user版本的软件,这个弹框也并不会弹出,这是为什么呢?

        首先我发现没有弹框的情况下开发者模式中“撤销USB调试授权”这一栏也没有了,而从代码中可以看到:

        mClearAdbKeys = findPreference(CLEAR_ADB_KEYS);
        if (!SystemProperties.getBoolean("ro.adb.secure", false)) {
            if (debugDebuggingCategory != null) {
                debugDebuggingCategory.removePreference(mClearAdbKeys);
            }
        }

这说明在ro.adb.secure的值为空或者false还有debugDebuggingCategory不为空的时候会将这个item移除,我查看了一下bulid.prop文件发现果然没有这个值,这里就误导了我,让我认为没有添加过这个属性值,接着我直接在device.mk里面加上了PRODUCT_PROPERTY_OVERRIDES += ro.adb.secure=1。在我误以为解决问题的时候发现虽然bulid.prop里面的ro.adb.secure值为1,但是通过adb shell getprop出来的值却为0,这中间必定有哪个地方对这个值进行过修改,一般不是在build文件夹下就是在system下。果然让我在alps/build/make/core/main.mk找到了将其设为0的地方:

  ifeq (yes, $(strip $(TRAN_DISABLE_ADB_RSA_SUPPORT)))
  ADDITIONAL_DEFAULT_PROPERTIES += ro.adb.secure=1
  else ifeq ($(user_variant),user)
    ADDITIONAL_DEFAULT_PROPERTIES += ro.adb.secure=1
  endif

原来是许久之前为了老化测试apk修改的值,现在已经不需要了可是一直没有改过来,所以最后将这个值修改就行了。

你可能感兴趣的:(framework)