高通平台(Qualcomm) Android 10 /11/12 user版本默认打开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 思否)

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

+ 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

   boolean connected = intent.getBooleanExtra(UsbManager.USB_CONNECTED, false);

+        //    boolean connected = intent.getBooleanExtra(UsbManager.USB_CONNECTED, false);

+        boolean connected = false;

         if (!connected) {

             mActivity.finish();

         }

+        try {

+             IBinder b = ServiceManager.getService(USB_SERVICE);

+             IUsbManager service = IUsbManager.Stub.asInterface(b);

+             service.allowUsbDebugging(true, mKey); //USB授权通过                

+             //    service.clearUsbDebuggingKeys();

+        } catch (Exception e) {

+             Log.e(TAG, "Unable to notify Usb service", e);

+        }  

  

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博客

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值