高通平台(Qualcomm) Android 10 /11/12 user版本默认打开adb 调试小结 |
您所在的位置:网站首页 › 请关闭usb调试功能 › 高通平台(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博客 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |