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

您所在的位置:网站首页 请关闭usb调试功能 高通平台(Qualcomm) Android 10 /11/12 user版本默认打开adb 调试小结

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

2024-07-11 22:58| 来源: 网络整理| 查看: 265

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3