开机默认usb debug 调试,且不弹窗自动确认选择。默认开启开发者模式(不是仅仅开启开发者菜单)。
总结下这个默认开启开发者模式问题就是,
Settings.Global.putInt(getContentResolver(), Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1);+ Settings.Global.putInt(context.getContentResolver(), Settings.Global.ADB_ENABLED, 1);
这两句放在一个随便哪个能接受开机广播的就成,然后默认确认弹窗,最后把开发者模式的activity一开始就存在好可以开机就可以调用
最好的方式是加在开机完之后就直接执行,不需要接广播,下面systemui要慢一些,
在override/frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java
final void finishBooting() {方法最后加上
vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/SystemUIApplication.java
这个文件就是systemui刚起来,需要接受一个广播,就相当于全局了,所以一定接到,因为开机就是加载systemui了,但是!有些低内存或者低版本的机器,开机之后加载系统太慢,所以会导致迟迟接不到广播,高版本或高性能的手机更新的就很快,所以看不出来,onCreate方法里面有个注册了个广播接受者
registerReceiver(new BroadcastReceiver() {public void onReceive(Context context, Intent intent) {//*/tyd.yantao 20220817 default usbDebugSettings.Global.putInt(context.getContentResolver(), Settings.Global.ADB_ENABLED, 1);Settings.Global.putInt(getContentResolver(), Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1);//*/
Settings.Global.putInt(context.getContentResolver(), Settings.Global.ADB_ENABLED, 1);就加这句,就是全局设置,
这个广播的意图过滤是bootCompletedFilter
IntentFilter bootCompletedFilter = new IntentFilter(Intent.ACTION_BOOT_COMPLETED);bootCompletedFilter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
这个开机广播系统最高优先级
每次不需要弹窗显示确认
./override/frameworks/base/services/core/java/com/android/server/adb/AdbDebuggingManager.java在
case MESSAGE_ADB_CONFIRM: {
这里面源码有startConfirmationForKey(key, mFingerprints);这句就是弹窗的,但这方法里没有写到我认知的Dialog,或许是吧字符串传到外服务用了。
把这句注释掉,直接用这个类里面已经定义好的方法allowDebugging(true,key);
开发者选项这个preference默认显示开启只需改下面,但下面的只是表面上把这个菜单显示出来了而已,实际上还是得按五下版本号开启开发者,而且点进开发者选项后其实这个开关是关的,所以不能在这改,而且插上数据线后点状态栏通知也会提示先进入开发者模式
这个提示是一个activity就是在MtkSettings / src/com/android/settings/development/DevelopmentSettingsDisabledActivity.java
要想把这个提示去掉,在vendor/mediatek/proprietary/packages/apps/MtkSettings/ AndroidManifest.xml 里面Settings$DevelopmentSettingsDashboardActivity这个activty就是开发者选项的activity,这边源码android:enabled="false",改成true就成。就是刚开始压根就没这activity,所以自然就会进入DevelopmentSettingsDisabledActivity。这个activity就一个toast提示。所以需要进入设置里面动态唤醒那个开发模式的activity才可以。
MtkSettings / src/com/android/settings/SettingsActivity.java
里面
somethingChanged = setTileEnabled(changedList, new ComponentName(packageName,Settings.DevelopmentSettingsDashboardActivity.class.getName()),- showDev, isAdmin)
showDev变成true就行
另外一种开启开发者选项菜单的,需要在framework层改,不过这样刚开始点击通知提示请先开启开发者模式,到了设置里面的系统看到开发者模式了,或者是到关于手机里面看到版本号了,就可以点击通知进入usb调试模式了。所以也不能在这改,这也只是改了开发者选项菜单,且不需要按版本号了而已
最简单的方法是vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/SystemUIApplication.java还是在这,
多加一个
Settings.Global.putInt(getContentResolver(), Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1);
这句话就是下面这个方法的意思,效果一样
override/frameworks/base/packages/SettingsLib/src/com/android/settingslib/development/DevelopmentSettingsEnabler.java
里面有个静态方法public static boolean isDevelopmentSettingsEnabled(Context context) {
源码是返回return isAdmin && !hasRestriction && settingEnabled;
现在直接让他返回true就行。
源码主要是settingEnabled这个因素控制的,另外俩都是true
final boolean settingEnabled = Settings.Global.getInt(context.getContentResolver(),Settings.Global.DEVELOPMENT_SETTINGS_ENABLED,Build.TYPE.equals("eng") ? 1 : 0) != 0;
意思是如果是debug版本那就打开为true,不是就是false
所以debug版本是默认开启的
开机默认usb debug 调试,且不弹窗自动确认选择。默认开启开发者模式(不是仅仅开启开发者菜单)。相关推荐
- 计算机可移动磁盘自动启动,(在线求助)为什么一开机所有硬盘就自动设为默认共享?...
HOW TO:删除 Windows 2000 或 Windows NT 4.0 中的管理共享 Applies To 有关本文的 Microsoft Windows XP Professional.Wi ...
- 高通平台(Qualcomm) Android 10 /11/12 user版本默认打开adb 调试小结
1.流程 USB插入接收广播授权->建立adb连接服务->执行adb 命令 2.adb相关属性 ro.secure = 0 开启root权限 ro.adb.secure = 1 1开启ad ...
- 2022-08-29 AndroidR 修改默认usb连接模式为MTP(Media Transfer Protocol)),UsbDeviceManager.java里面处理OTG口usb设备拔插侦听
一.默认是做为adb 调试功能,实际测试修改persist.sys.usb.config 是没有用. 二.拔插usb设备默认的选项是No data transfer 三.按下面的修改就可以修改默认u ...
- 恕我直言,IDEA 的 Debug 调试,你可能只用了 10%
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:bojiangzhou cnblogs.com/chiang ...
- IDEA 点击进入方法内部_【推荐收藏】IDEA的Debug调试,你全会用么?
Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化.通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方 ...
- idea 导出war包_使用IDEA实现远程代码DEBUG调试教程详解
我们在使用 IDEA DEBUG调试代码的时候,常常见到控制台会输出一句这样的话:「Connected to the target VM, address: '127.0.0.1:62981', tr ...
- 安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)
From:https://www.52pojie.cn/forum.php?mod=viewthread&tid=742250 jeb 动态调试 smali 代码:https://www.bi ...
- Eclipse Debug调试详解
目录 一.debug透视图: 1.进入方式:右上角点击添加框,选择"臭虫",再点击小虫. 2.debug调试下的一些常用一些透视图,如果没有自行添加,windows---> ...
- IDEA —— Debug调试模式
前言 [图1.1] 在设置里勾选Show debug window on breakpoint,则请求进入到断点后自动激活Debug窗口. [图1.2] 如果你的IDEA底部没有显示工具栏或状态栏,可 ...
最新文章
- java里锛是什么意思,java实验总结
- 分布式服务(RPC)+分布式消息队列(MQ)面试题精选
- [Voice communications] 看得到的音频流
- Android stadio
- 数据库:数据库水平切分?垂直切分?整合方案?可能存在的问题?
- 【每周NLP论文推荐】 生成式聊天机器人论文介绍
- position定位说明
- 【机器学习】三层神经网络
- WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
- python关键字驱动框架搭建_python webdriver混合驱动测试框架(数据驱动+关键字驱动)...
- 从「猜画小歌」,谈企业的「数据困惑」该何去何从?
- keras中TimeDistributed的用法
- C/C++[指针/引用]
- y85手机Android密码,vivoy85忘记解锁密码怎么办?vivoy85解锁屏幕锁教程工具
- LDA算法和PCA算法的总结(原理和思想)
- java 两张图片合成
- iOS逆向开发(2):获取APP的类声明 | class-dump | dumpdecrypted
- 【转】目前最常见的”无线通信(数据)传输技术“有哪些?
- CIDR(构成超网)
- Oauth与Shiro整合的开源项目