Android 7.0 正式版隐藏了太多功能。
从最初我们和大家分享的开启隐藏的夜间模式,到此前报道过的隐藏在 SystemUI 代码中的导航栏定制功能,再到今天外媒又曝出的隐藏彩蛋集锦……诚然,Google 不想让用户在当前版本中体验到这些隐藏功能自有其系统稳定性和功能成熟度方面的考虑,但既然他们将这些功能埋在了系统代码中,自然就会被那些爱动手的 Android 玩家给「挖」出来。
今天,我们就将介绍如何开启 Android 7.0 隐藏的导航栏定制功能。
反编译 SystemUI.apk
注:此部分内容需要基础反编译知识,感兴趣的玩家可以自行 Google 相关教程或留意我们的后续文章。如果你不具备相关技能条件或只是来寻求「干货」的,请直接跳过此部分内容。
Android 7.0 的导航栏定制功能是埋藏在系统代码当中的,我们需要对 SystemUI 中的部分内容进行反编译才能让相关功能「重见天日」。因而在这一部分中,我们将介绍如何通过反编译 SystemUI.apk 来开启隐藏的导航栏定制功能:
- 用反编译工具解包 SystemUI.apk 后,在解包目录 SystemUI\res\xml 下找到
tuner_prefs.xml
文件,用 Notepad++ 打开进行编辑; - 找到
<Preference android:title="@string/other" android:key="other" android:fragment="com.android.systemui.tuner.OtherPrefs" />
这一行代码,在这行代码前另起一行,输入<Preference android:title="@string/nav_bar" android:key="nav_bar" android:fragment="com.android.systemui.tuner.NavBarTuner" />
,即可完成导航栏定制相关功能的添加; - 如果你想在此基础上将夜间模式的相关功能也添加回「系统界面调节器」,可在上一步中额外添加一行
<Preference android:title="@string/color_and_appearance" android:key="color_transform" android:fragment="com.android.systemui.tuner.ColorAndAppearanceFragment" />
语句。
代码添加完成后,保存并关闭tuner_prefs.xml
,然后将修改之后的 SystemUI 用反编译工具重新打包为 SystemUI.apk 文件。
(完整添加导航栏定制和夜间模式功能后的 xml 样式,请自行参考)
至此,一个开启了导航栏定制和夜间模式功能的定制版 SystemUI.apk 就做好了,你可以将它做成刷机包刷入或直接用带有 root 文件管理功能的文件管理器进行替换。不管采用哪种替换方式,请一定注意备份原文件。
这里是「干货」
我知道,部分读者看了上面一部分内容之后肯定会有些摸不着头脑。
对于那些没有反编译经验的用户,在征求了以上教程创作者 @AL_IRAQI 的许可后,我们为 Android One(General Mobile 4G)、Nexus 5X、Nexus 6、Nexus 6P、Nexus 7(2013)以及 Nexus 9(WiFi)用户搬运了经他修改之后的 SystemUI 直刷包。你可以点击这里下载。
需要你注意的是:
- Android 版本不是 7.0 的用户,请看看这篇文章的标题再动手;
- 没有进行 root 和解密(decryption)的用户通过 TWRP 可能无法对系统文件进行正常修改,相关教程请自行搜索;
- 请根据自己的机型下载对应文件夹中的内容;
- 每个机型文件夹中都有两个压缩包:Mod_SystemUI_xxx.zip 是用于开启相关功能的修改版 SystemUI 直刷包,Stock_SystemUI_xxx.zip 是用于还原 Android 7.0 正式版原生 SystemUI.apk 文件的恢复包。请把这两个压缩包一并下载并存放至手机储存当中以备不时之需。
(请务必根据自己的机型下载正确的直刷包)
确保自己下载了正确的直刷包以后,重启至第三方 Recovery,无需任何清除操作,刷入 Mod_SystemUI_xxx.zip,重启后即可在「系统界面调节器」中看见导航栏定制和夜间模式的相关功能入口,开启界面调节器的步骤如下:
- 下拉打开快速设置面板,找到「设置」界面入口(用户头像旁的齿轮图标);
- 长按齿轮图标,齿轮开始转动,收到震动反馈后松开,系统会将我们带至「设置」界面;
- 同时,系统会发出 Toast 通知提示我们「系统界面调节器」已经打开,下拉至「设置」界面底部即可看见「系统界面调节器」。
最后,如果因为操作不当发生不测,也可重启至第三方 Recovery,刷入我们提供的 Stock_SystemUI_xxx.zip 进行还原。当然,如果你很快厌倦了 Google 提供的原生导航栏定制功能,也可以通过这个方式进行还原。
导航栏定制功能简单上手体验
最后来谈一谈这个导航栏定制功能。
导航栏定制功能将导航栏分为左、中、右三个部分,我们可以向这三个部分中任意增删不同功能的虚拟按键,可供选择虚拟按键的类型有这样几种:
- Spacer:用于增加按键之间的间距;
- Back:返回键;
- Home:Home 键;
- Overview:多任务概览键;
- Menu / Kerboard Swithcer:菜单/输入法切换键;
- Clipboard:剪贴板;
- Keycode:实体键盘键码。
其中,Clipboard 和 Keycode 这两种虚拟按键的作用相当有意思。
Clipboard 可以将剪贴板直接放在导航栏中,目前还不能正常工作。不过根据介绍,用户可以将内容直接拖拽至导航栏的剪贴板上进行复制,打开剪贴板后也可以将里面的内容直接拖拽出来进行粘贴。
值得注意的是,这里的「内容」Google 所使用的提示语原文是「items」,也就是说这个 Clipboard 很有可能不只是一个文字内容的剪贴板。
而 Keycode 则可以将实体键盘中的按键(字母、数字甚至是 F1-F12 这样的功能键)映射到导航栏当中,对平板用户来说应该会相当有用。
此外,不同虚拟按键之间的间距以及虚拟键自身的宽度也都可自行调节。这一点则可以提升一些大屏设备用户的单手操作体验,他们可以将常用的虚拟按键放到惯用手一侧,还可以减少虚拟键间距的同时通过增加每个按键的宽度来减少误触几率。
总的来说,导航栏定制出现在原生 Android 7.0 当中是一件相当让人惊艳的事情,毕竟其可定制细节的丰富程度甚至已经可以媲美目前国外的一些第三方定制 ROM。但目前这个功能并不能完全正常工作,这也应该就是 Google 将它埋藏起来的原因。
但这也至少给我们留下了一个念想,完整的导航栏定制功能(甚至是夜间模式)会不会在今年秋季 Android Nougat 的首个更新 MR1 中正式推出呢?
(注:本文教程和资源均已获得 XDA 论坛原文作者 @AL_IRAQI 的授权。)