当前位置:   article > 正文

高通平台(Qualcomm) Android 10 /11/12 user版本默认打开adb 调试小结_android10 默认开启adb调试

android10 默认开启adb调试

1.流程

  USB插入接收广播授权->建立adb连接服务->执行adb 命令

2.adb相关属性

ro.secure = 0

开启root权限

ro.adb.secure = 1

1开启adb RSA 指纹认证 ,0关闭

ro.debuggable = 1

1开启adb debug,0关闭

3.修改源码位置   build/core/main.mk 部分代码如下图所示

4、/PA1032/frameworks/base/packages/SystemUI/src/com/android/systemui/usb

5其他:需要注意更换电脑 需要将默认.android目录adbkey.pub/adbkey文件 替换到misc目录adb_keys文件即可

6.Android 9与Android 10 Android11 Android12 异同

6.1 Android 9

 /system/core/adb/Android.mk(注意Android 10此目录是Android.bp文件,不了解Android.bp文件请查看这篇文章android - Android.bp 简介_个人文章 - SegmentFault 思否)

  1. - LOCAL_CFLAGS += -DALLOW_ADBD_NO_AUTH=$(if $(filter userdebug eng,$(TARGET_BUILD_VARIANT)),1,0)
  2. + LOCAL_CFLAGS += -DALLOW_ADBD_NO_AUTH=$(if $(filter user userdebug eng,$(TARGET_BUILD_VARIANT)),1,0)

6.2关闭弹窗提示

源码位置:

frameworks/base/packages/SystemUI/src/com/android/systemui/usb/UsbDebuggingActivity.java

  1.    boolean connected = intent.getBooleanExtra(UsbManager.USB_CONNECTED, false);
  2. +        //    boolean connected = intent.getBooleanExtra(UsbManager.USB_CONNECTED, false);
  3. +        boolean connected = false;
  4.          if (!connected) {
  5.              mActivity.finish();
  6.          }
  7. +        try {
  8. +             IBinder b = ServiceManager.getService(USB_SERVICE);
  9. +             IUsbManager service = IUsbManager.Stub.asInterface(b);
  10. +             service.allowUsbDebugging(true, mKey); //USB授权通过                
  11. +             //    service.clearUsbDebuggingKeys();
  12. +        } catch (Exception e) {
  13. +             Log.e(TAG, "Unable to notify Usb service", e);
  14. +        }  

  

6.3 Android 10  去掉默认授权弹窗代码如下,只需要在接收到USB插入广播之后进行adb  ipc跨进程通信即可 如下图所示

6.4 Android 11 和12 去掉默认授权弹窗代码如下,只需要在接收到USB插入广播之后进行adb  ipc跨进程通信即可(前面默认打开adb操作 见步骤3)如下图所示

6.5  Anoroid 9 源码位置framework/base/core/java/android/hardware/usb/IUsbManager.aidl

6.6 Android 10源码位置framework/base/core/java/android/hardware/usb/IUsbManager.aidl

6.7 Android 11/12源码位置framework/base/core/java/android/hardware/usb/IUsbManager.aidl

6.8 执行 source build/envsetup.sh->lunch 25-> make installclean -> make -j32(不了解编译指令查看这里玩转AOSP源码编译_yzm65580952的博客-CSDN博客_aosp编译)烧录软件之后 查看修改 到这里基本结束了。默认打开adb调试 如下图所示

 7.总结

 虽然这个功能不难但是涉及很多细节 

1、adb 基础 root权限 sytem/bin/ 或者 xbin

2、aidl 这里不再赘述有需要自行百度 

3、跨进程通信 binder服务(java binder 和 native binder) 

4、framework/base/packages/SystemUI/systemui/usb

5、AOSP 源码 答案一般都是来自源码 网上百度不到源码一定可以找到答案 

AOSP 源码学习网站

1、学习网站

(1) http://aospxref.com/(Android13)

(2)http://aosp.opersys.com/(Android12)

(3)https://android.googlesource.com(需要vpn翻墙)

(4) http://androidxref.com/(目前最新Android 9.0)

2、学习源码阅读工具

(1)SouceInsight(无法编译源码/无法获取最新源码)

(2)Android Studio

(3)VsCode

(4)SublimeText

(5)NodePad++

(6)Xshell

感谢

android user版本默认开启adb调试,不弹出对话框_王不六的博客-CSDN博客_adb调试弹窗         

注意:这里只是高通平台 具体其他平台请以实际平台为主例如RK(瑞芯)/AllWinner(全志)/MTK/展讯

有一起想学framework可以加我wx (kdanmobile)

转载请注明出处 ,谢谢。高通平台(Qualcomm) Android 10/11/12 user版本默认打开adb 调试小结_KdanMin的博客-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/240038?site
推荐阅读
相关标签
  

闽ICP备14008679号