一. USB debugger 默认打开

1. build\make\core\main.mk

将ro.debuggable 值改为1

ADDITIONAL_DEFAULT_PROPERTIES += ro.debuggable=1

2. frameworks\base\services\usb\java\com\android\server\usb\UsbDeviceManager.java

修改    public void systemReady() {

Settings.Global.putInt(mContentResolver,Settings.Global.ADB_ENABLED, 1 );

3. system\core\adb\daemon\main.cpp

修改为

//        if (ALLOW_ADBD_NO_AUTH && !android::base::GetBoolProperty("ro.adb.secure", false)) {
            auth_required = false;
//        }

二. 打开"开发者选项" 设置崩溃

log:

04-27 09:30:05.410  3402  3402 W ndroid.settings: type=1400 audit(0.0:1042): avc: denied { read } for name="u:object_r:logpersistd_logging_prop:s0" dev="tmpfs" ino=11447 scontext=u:r:system_app:s0 tcontext=u:object_r:logpersistd_logging_prop:s0 tclass=file permissive=0
04-27 09:30:05.416  3402  3402 E libc    : Access denied finding property "logd.logpersistd.enable"
04-27 09:30:05.417  3402  3402 W libc    : Unable to set property "persist.logd.logpersistd.buffer" to "": error code: 0x18
04-27 09:30:05.418  3402  3402 D AndroidRuntime: Shutting down VM
04-27 09:30:05.419  3402  3402 E AndroidRuntime: FATAL EXCEPTION: main
04-27 09:30:05.419  3402  3402 E AndroidRuntime: Process: com.android.settings, PID: 3402
04-27 09:30:05.419  3402  3402 E AndroidRuntime: java.lang.RuntimeException: Unable to resume activity {com.android.settings/com.android.settings.SubSettings}: java.lang.RuntimeException: failed to set system property
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3815)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3847)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:51)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1836)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java:106)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at android.os.Looper.loop(Looper.java:193)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:6702)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
04-27 09:30:05.419  3402  3402 E AndroidRuntime: Caused by: java.lang.RuntimeException: failed to set system property
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at android.os.SystemProperties.native_set(Native Method)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at android.os.SystemProperties.set(SystemProperties.java:183)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at com.android.settingslib.development.AbstractLogpersistPreferenceController.setLogpersistOff(AbstractLogpersistPreferenceController.java:185)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at com.android.settingslib.development.AbstractLogpersistPreferenceController.writeLogpersistOption(AbstractLogpersistPreferenceController.java:233)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at com.android.settingslib.development.AbstractLogpersistPreferenceController.onLogdSizeSettingUpdate(AbstractLogpersistPreferenceController.java:129)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at com.android.settingslib.development.AbstractLogpersistPreferenceController.access$000(AbstractLogpersistPreferenceController.java:39)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at com.android.settingslib.development.AbstractLogpersistPreferenceController$1.onReceive(AbstractLogpersistPreferenceController.java:65)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at android.support.v4.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:312)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at android.support.v4.content.LocalBroadcastManager.sendBroadcastSync(LocalBroadcastManager.java:290)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at com.android.settingslib.development.AbstractLogdSizePreferenceController.updateLogdSizeValues(AbstractLogdSizePreferenceController.java:112)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at com.android.settings.development.LogdSizePreferenceController.updateState(LogdSizePreferenceController.java:34)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at com.android.settings.dashboard.DashboardFragment.updatePreferenceStates(DashboardFragment.java:317)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at com.android.settings.dashboard.DashboardFragment.onResume(DashboardFragment.java:169)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at com.android.settings.dashboard.RestrictedDashboardFragment.onResume(RestrictedDashboardFragment.java:137)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at android.app.Fragment.performResume(Fragment.java:2568)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1341)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at android.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1576)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1637)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at android.app.FragmentManagerImpl.dispatchMoveToState(FragmentManager.java:3046)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at android.app.FragmentManagerImpl.dispatchResume(FragmentManager.java:3008)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at android.app.FragmentController.dispatchResume(FragmentController.java:204)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at android.app.Activity.performResume(Activity.java:7314)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3807)
04-27 09:30:05.419  3402  3402 E AndroidRuntime:        ... 11 more
04-27 09:30:05.225  1001  2897 I chatty  : uid=1000(system) Binder:1001_F identical 1 line
04-27 09:30:05.234  1001  2897 E UserRestrictionsUtils: Unknown restriction: null
04-27 09:30:05.423  1001  3417 W ActivityManager:   Force finishing activity com.android.settings/.SubSettings

1. 看到log 首先注意到 绿色字体部分

com.android.settingslib.development.AbstractLogpersistPreferenceController.setLogpersistOff(AbstractLogpersistPreferenceController.java:185)

找到相应位置 SystemProperties.set(SELECT_LOGPERSIST_PROPERTY_BUFFER, ""); 发现是修改配置文件时报错,

04-27 09:30:05.419  3402  3402 E AndroidRuntime: FATAL EXCEPTION: main
04-27 09:30:05.419  3402  3402 E AndroidRuntime: Process: com.android.settings, PID: 3402
04-27 09:30:05.419  3402  3402 E AndroidRuntime: java.lang.RuntimeException: Unable to resume activity {com.android.settings/com.android.settings.SubSettings}: java.lang.RuntimeException: failed to set system property

2. 猜想应该和权限相关,于是在向上分析log 看到如下:

04-27 09:30:05.410  3402  3402 W ndroid.settings: type=1400 audit(0.0:1042): avc: denied { read } for name="u:object_r:logpersistd_logging_prop:s0" dev="tmpfs" ino=11447 scontext=u:r:system_app:s0 tcontext=u:object_r:logpersistd_logging_prop:s0 tclass=file permissive=0

其中tcontext=u:object_r:logpersistd_logging_prop:s0

于是在 grep -rn "logpersistd_logging_prop" ./system/sepolicy/ 查找相关权限配置

./system/sepolicy/prebuilts/api/28.0/private/system_app.te:47:userdebug_or_eng(`set_prop(system_app, logpersistd_logging_prop)')

打开system_app.te 添加相应权限, remake验证. ok

问题搞定.

userdebug_or_eng(`set_prop(system_app, logpersistd_logging_prop)') 这句配置 字面意思都可以理解, 只有在userdebug 或者eng 模式下 才会有set_prop 权限

MTK6757 9.0 USB debugger 默认打开, 开发者选项无法打开相关推荐

  1. 魅蓝和vivo怎么打开开发者选项或者打开usb调试(设置~关于本机~连续点击7次版本)

    设置~关于本机~连续点击7次版本号 vivo:设置-更多设置--底部开发者选项 手机设置--开发者选项--usb调试

  2. Android9.0默认将开发者选项中的OEM锁开关打开

    做项目时偶尔会遇到客户需求中有这样的要求:默认将开发者选项中的OEM锁开关打开 修改这个需求可以: 到frameworks/base/services/usb/java/com/android/ser ...

  3. Android系统默认打开开发者选项中的TP触摸开关

    在定制系统开发中,有时会遇到客户为了方便生产测试硬件主板,客户会提出生产测试软件需要默认打开开发者选项中的TP触摸开关,也就是show_touches和pointer_location 具体实现方法如 ...

  4. Android 11 默认打开开发者选项

    Android 11 默认打开开发者选项 修改部分 packages/apps/Settings/src/com/android/settings/SettingActivity.java 在 doU ...

  5. 开发打开设置洁面_用了两到三年的华为手机,一键打开开发者选项,帮助性能加速...

    用了两到三年的华为手机,可以一键打开"开发者选项",帮助性能加速 我们手机用了两到三年,速度和刚买的时候相比,明显是变慢了一大截.今天笔者就带来一个华为手机的使用小技巧,华为开发者 ...

  6. Android12默认显示开发者选项

    user或者userdebug版本系统默认开发者选项一般都是隐藏的,如果想要默认显示.需要修改哪里呢? 从点击7下系统版本号显示开发者选项查找. Settings\src\com\android\se ...

  7. 小米3 打开开发者选项

    小米3 打开开发者选项 进入设置界面,点击关于手机选项,如下图: 点击四次版本号! 然后就打开了开发者选项了. 点击返回键就能看到设置中多了开发者选项,如下图: 点击开发者选项就可以进入设置USB调试 ...

  8. android : 小米手机 打开开发者 选项 PC 端 安装 apk

    红米手机 打开 开发者选项: 设置 –> 我的设备–> 全部参数 –> MIUI版本 连续 点击 5下 在全部参数界面,我们找到MIUI版本这一条,然后点击这一条5次,点击的时候,屏 ...

  9. 怎么用计算机打开开发者模式,win10如何打开开发者选项模式

    我们的win10系统中自带有开发者选项模式,该模式为Win10技术预览版开发此风格应用你需要开启"开发者模式",开启之后,在将应用提交给微软进行测试和认证前,你可以先在本地计算机上 ...

最新文章

  1. 转载 用ShadowVolume画模型的影子
  2. 具有只读属性的ComboBox
  3. Windows Update Error: 80244019
  4. 操作系统04进程同步与通信
  5. c语言程序设计题2015,2015年荐C语言程序设计等级考试习题汇编.doc
  6. linux dev nfc,linux下的nfc开发
  7. jQuery中的$(“this“)和$(this)的区别
  8. Lucene多字段排序备忘(Sorting by multiple fields)
  9. EndNote常见问题:更改DOI号为超链接/用URL代替DOI号等
  10. js return加分号_JS代码中加分号和不加分号的区别
  11. 自燃、断轴、失控,新能源车还能买吗?
  12. UVALive 6657
  13. 浪子回头,不是因你,而是他心已倦
  14. 51单片机教程:8*8 点阵显示字符、数字、简单汉字
  15. C语言——Hello World
  16. 智能家居app开发十大核心功能
  17. Java波斯王子时之沙攻略_波斯王子时之沙详细操作按键指南
  18. 数据库与MPP数仓(十三):数据仓库的模型构建
  19. js点击图片实现验证码刷新操作
  20. 2023年有效的rtsp,rtmp,hls流媒体测试地址整理汇总

热门文章

  1. python计算24点
  2. 联盛德 HLK-W806 (五): W801开发板上手报告
  3. 医院门诊软件与处方软件对接,实现自动化
  4. 基于消失点检测的道路检测(附源码)
  5. python小游戏毕设 炸弹人小游戏设计与实现 (源码)
  6. web远程访问Windows桌面(二)
  7. 创业故事,终生受用 之 创业必须抓住人性弱点及需求
  8. unity3D 坦克大战
  9. 做事情需要坚持需要毅力更加需要观察和方法。(人生会遭遇许多事,其中很多是难以解决的,这时心中被盘根错结的烦恼纠缠住,茫茫然不知如何面对?如果能静下心來思考,往往会恍然大悟。 )...
  10. python反转一个三位数的整数_Python学习笔记3-整数反转