本文转载自:https://blog.csdn.net/kris_fei/article/details/70157137

Platform: ROCKCHIP
OS: Android 6.0
Kernel: 3.10.92

默认user版本不显示开发者选项这一栏,需要通过连续点击版本号7次来显示.
packages\apps\Settings\src\com\android\settings\DeviceInfoSettings.java

  1. static final int TAPS_TO_BE_A_DEVELOPER = 7;
  2. public void onResume() {
  3. super.onResume();
  4. mDevHitCountdown = getActivity().getSharedPreferences(DevelopmentSettings.PREF_FILE,
  5. Context.MODE_PRIVATE).getBoolean(DevelopmentSettings.PREF_SHOW,
  6. android.os.Build.TYPE.equals("eng")) ? -1 : TAPS_TO_BE_A_DEVELOPER;
  7. mDevHitToast = null;
  8. }
  9. public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
  10. ......
  11. if (mDevHitCountdown > 0) {
  12. mDevHitCountdown--;
  13. if (mDevHitCountdown == 0) {
  14. getActivity().getSharedPreferences(DevelopmentSettings.PREF_FILE,
  15. Context.MODE_PRIVATE).edit().putBoolean(
  16. DevelopmentSettings.PREF_SHOW, true).apply();
  17. if (mDevHitToast != null) {
  18. mDevHitToast.cancel();
  19. }
  20. mDevHitToast = Toast.makeText(getActivity(), R.string.show_dev_on,
  21. Toast.LENGTH_LONG);
  22. mDevHitToast.show();
  23. // This is good time to index the Developer Options
  24. Index.getInstance(
  25. getActivity().getApplicationContext()).updateFromClassNameResource(
  26. DevelopmentSettings.class.getName(), true, true);
  27. } else if (mDevHitCountdown > 0
  28. && mDevHitCountdown < (TAPS_TO_BE_A_DEVELOPER-2)) {
  29. if (mDevHitToast != null) {
  30. mDevHitToast.cancel();
  31. }
  32. mDevHitToast = Toast.makeText(getActivity(), getResources().getQuantityString(
  33. R.plurals.show_dev_countdown, mDevHitCountdown, mDevHitCountdown),
  34. Toast.LENGTH_SHORT);
  35. mDevHitToast.show();
  36. }
  37. } else if (mDevHitCountdown < 0) { //点击完7次之后显示
  38. if (mDevHitToast != null) {
  39. mDevHitToast.cancel();
  40. }
  41. mDevHitToast = Toast.makeText(getActivity(), R.string.show_dev_already,
  42. Toast.LENGTH_LONG);
  43. mDevHitToast.show();
  44. }
  45. }
  46. ......
  47. }

而默认开机是否显示由变量showDev控制
packages\apps\Settings\src\com\android\settings\SettingsActivity.java

  1. private void updateTilesList(List<DashboardCategory> target) {
  2. final boolean showDev = mDevelopmentPreferences.getBoolean(
  3. DevelopmentSettings.PREF_SHOW,
  4. android.os.Build.TYPE.equals("eng"));    //因此eng才返回true
  5. ......
  6. } else if (id == R.id.development_settings) {
  7. if (!showDev || um.hasUserRestriction(
  8. UserManager.DISALLOW_DEBUGGING_FEATURES)) {
  9. removeTile = true;    //showDev为false则不显示
  10. }
  11. }
  12. }

解决方法:
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 645add3..11a9c55 100755
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -1236,9 +1236,11 @@ public class SettingsActivity extends Activity
     }
 
     private void updateTilesList(List<DashboardCategory> target) {
-        final boolean showDev = mDevelopmentPreferences.getBoolean(
-                DevelopmentSettings.PREF_SHOW,
-                android.os.Build.TYPE.equals("eng"));
+       /*Kris, 170413, show development options anytime.*/
+      //  final boolean showDev = mDevelopmentPreferences.getBoolean(
+           //     DevelopmentSettings.PREF_SHOW,
+                //android.os.Build.TYPE.equals("eng"));
+         final boolean showDev = true;

[RK3288][Android6.0] 调试笔记 --- user版本默认显示开发者选项【转】的更多相关文章

  1. [RK3288][Android6.0] 调试笔记 --- Goodix GT9和GT9F区别【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/78341425 Platform: RK3288 OS: Android 6.0 Kernel ...

  2. [RK3288][Android6.0] 调试笔记 --- 系统识别不同硬件版本方法【转】

    本文转载自:http://m.blog.csdn.net/kris_fei/article/details/70226451 Platform: RockchipOS: Android 6.0Kern ...

  3. [RK3288][Android6.0] 调试笔记 --- 替换系统签名【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/55100299 Platform: RK3288OS: Android 6.0Kernel: ...

  4. [RK3288][Android6.0] 调试笔记 --- 普通串口的添加 【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/54574073   标签: rk3288 串口添加 2017-01-16 14:52 1079 ...

  5. [RK3288][Android6.0] 调试笔记 --- 软硬键盘同时使用【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/78748313 Platform: RK3288 OS: Android 6.0 Kernel ...

  6. [RK3288][Android6.0] 调试笔记 --- 测试I2C设备正常传输方法【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/71515020 Platform: RockchipOS: Android 6.0Kernel ...

  7. [RK3288][Android6.0] 调试笔记 --- eMMC分区号和名字的对应【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/77318410 Platform: Rockchip OS: Android 6.0 Kern ...

  8. [RK3288][Android6.0] 调试笔记 --- 通用GPIO驱动控制LED【转】

    本文转载自:http://m.blog.csdn.net/kris_fei/article/details/69553422 Platform: ROCKCHIPOS: Android 6.0Kern ...

  9. RK3288][Android6.0] 调试笔记 --- 关闭按键音后无法录音问题【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/70052413 Platform: ROCKCHIPOS: Android 6.0Kernel ...

随机推荐

  1. Unity3D学习笔记——GUI高级组件

    Unity3D中的高级控件都是由GUI类引出的,高级控件是由系统实现的,所以效率很高,但也可以自己实现,优点是任意修改灵活性高. 一:Label控件:用于展示一段文字的控件.可以输入字符串,也可以是贴 ...

  2. rest-framework框架的基本组件分析

    一.快速实例化 二.序列化 三.视图 四.身份认证,权限认证,频率限制 五.分页 六.响应器 七.路由 八.解释器

  3. android实现卸载提示

    这篇文章是整理的以前用过的一个功能,由于多种原因现在停用了,也希望这篇文章能帮助一些android入门的小童鞋.android是不提供监控卸载自己的功能的,这里使用了监控android日志的功能,an ...

  4. HTML学习笔记——标准网页设计+使用CSS、Javascript

    一.标准网页设计 1.标准网页概述: 标准网页设计要遵循,内容与表现相分离.   内容 + 表现 = 页面  ---  即 :XHTML + CSS = PAGE 内容与变现相分离,也就是内容使用HT ...

  5. Gcc手册(转)

    手册链接地址:http://www.shanghai.ws/gnu/gcc_1.htm GCC中文手册 GCC现在是GNU中最主要和最流行的c & c++编译器. gcc/g++在执行编译工作 ...

  6. 自然语言处理(NLP)资源

    1.HMM学习最佳范例全文文档,百度网盘链接: http://pan.baidu.com/s/1pJoMA2B 密码: f7az 2.无约束最优化全文文档 -by @朱鉴 ,百度网盘链接:链接:htt ...

  7. 初探webpack之环境配置

    先感叹一句,前端的发展真是太快了,ng和bb还没怎么学好就要过时了.现在感觉react当是未来的一个大方向. 以前一直用的grunt,不过前段时间作者已经停止更新了.正好webpack风头正盛,咱也不 ...

  8. Cocos2d-x Lua中使用标签

    游戏场景中的文字包括了静态文字和动态文字.静态文字如下图所示游戏场景中①号文字“COCOS2DX”,动态文字如图4-1所示游戏场景中的②号文字“Hello World”.静态文字一般是由美工使用Pho ...

  9. Object.defineProperties()

    w https://docs.microsoft.com/en-us/scripting/javascript/reference/object-defineproperty-function-jav ...

  10. PAT 1070. 结绳(25)

    给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连.每次串连后,原来两段绳子的长度 ...