总结下这个默认开启开发者模式问题就是,

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 调试,且不弹窗自动确认选择。默认开启开发者模式(不是仅仅开启开发者菜单)。相关推荐

  1. 计算机可移动磁盘自动启动,(在线求助)为什么一开机所有硬盘就自动设为默认共享?...

    HOW TO:删除 Windows 2000 或 Windows NT 4.0 中的管理共享 Applies To 有关本文的 Microsoft Windows XP Professional.Wi ...

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

    1.流程 USB插入接收广播授权->建立adb连接服务->执行adb 命令 2.adb相关属性 ro.secure = 0 开启root权限 ro.adb.secure = 1 1开启ad ...

  3. 2022-08-29 AndroidR 修改默认usb连接模式为MTP(Media Transfer Protocol)),UsbDeviceManager.java里面处理OTG口usb设备拔插侦听

    一.默认是做为adb 调试功能,实际测试修改persist.sys.usb.config 是没有用. 二.拔插usb设备默认的选项是No data transfer  三.按下面的修改就可以修改默认u ...

  4. 恕我直言,IDEA 的 Debug 调试,你可能只用了 10%

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:bojiangzhou cnblogs.com/chiang ...

  5. IDEA 点击进入方法内部_【推荐收藏】IDEA的Debug调试,你全会用么?

    Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化.通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方 ...

  6. idea 导出war包_使用IDEA实现远程代码DEBUG调试教程详解

    我们在使用 IDEA DEBUG调试代码的时候,常常见到控制台会输出一句这样的话:「Connected to the target VM, address: '127.0.0.1:62981', tr ...

  7. 安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)

    From:https://www.52pojie.cn/forum.php?mod=viewthread&tid=742250 jeb 动态调试 smali 代码:https://www.bi ...

  8. Eclipse Debug调试详解

    目录 一.debug透视图: 1.进入方式:​右上角点击添加框,选择"臭虫",再点击小虫. 2.debug调试下的一些常用一些透视图,如果没有自行添加,windows---> ...

  9. IDEA —— Debug调试模式

    前言 [图1.1] 在设置里勾选Show debug window on breakpoint,则请求进入到断点后自动激活Debug窗口. [图1.2] 如果你的IDEA底部没有显示工具栏或状态栏,可 ...

最新文章

  1. java里锛是什么意思,java实验总结
  2. 分布式服务(RPC)+分布式消息队列(MQ)面试题精选
  3. [Voice communications] 看得到的音频流
  4. Android stadio
  5. 数据库:数据库水平切分?垂直切分?整合方案?可能存在的问题?
  6. 【每周NLP论文推荐】 生成式聊天机器人论文介绍
  7. position定位说明
  8. 【机器学习】三层神经网络
  9. WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
  10. python关键字驱动框架搭建_python webdriver混合驱动测试框架(数据驱动+关键字驱动)...
  11. 从「猜画小歌」,谈企业的「数据困惑」该何去何从?
  12. keras中TimeDistributed的用法
  13. C/C++[指针/引用]
  14. y85手机Android密码,vivoy85忘记解锁密码怎么办?vivoy85解锁屏幕锁教程工具
  15. LDA算法和PCA算法的总结(原理和思想)
  16. java 两张图片合成
  17. iOS逆向开发(2):获取APP的类声明 | class-dump | dumpdecrypted
  18. 【转】目前最常见的”无线通信(数据)传输技术“有哪些?
  19. CIDR(构成超网)
  20. Oauth与Shiro整合的开源项目

热门文章

  1. 猜丁壳(面向对象 封装 继承 多态)
  2. db2数据库sql中计算两个时间字段的差值用到timestampdiff函数
  3. SuperMap iMobile for Android定位实现
  4. 单片机c语言面试笔试,c语言面试题集(单片机)..doc
  5. Flink CEP编程
  6. AVI文件格式之RIFF格式参考
  7. python爬虫之爬取时光网电影影评
  8. 查询出的数据显示的HTML标签上
  9. RAM和ROM的区别
  10. 计算机学科导论-2014级教学材料