矗立的高楼大厦,依赖于牢固的基底才能屹立不倒。如果说智能手机上的操作系统也有基底,那一定是位于底层的内核。小到每一次指纹解锁,大到畅玩手游大作,内核就像一位称职的经理默默地在底层工作,协调软件和各式硬件。
Android 系统的构成
内核是至关重要的系统组件,对于 Android 来说,更换内核却是一件不怎么稀罕的事——得益于 Android 生态的开放性,我们甚至可以像刷写第三方 Recovery 和定制 ROM 那样随意更换第三方内核,从底层着手为设备带来完全不同的使用体验。
那具体而言 Android 系统的第三方内核究竟能为我们的手机带来哪些改变,在支持的设备上我们又该如何选择和刷入一款第三方内核呢?
如何读懂第三方内核
以新鲜出炉的 arter97 kernel 为例,Arter97 作为一名负责的开发者,将能够解释的技术细节都罗列在了 Detail(细节)一栏里(这样做的开发者并不多)。
我们不妨就以这个面向一加手机 7/7 Pro 的内核为例进行讲解,了解第三方内核到底做了什么改动,进而更好地评估使用第三方内核带来的收益与风险。
arter97 所附带的所有内核特性
1、「重制内核,只保留必要的来自一加的官方源码」
这款内核并不基于一加的原厂内核制作,而是在高通提供的内核代码基础上移植原厂内核中的必要部分,比如一些特定的设备驱动。这会减少内核中用于调试的代码,使得内核更加轻量;同时也去掉了原厂内核中大量依赖 ZRAM 的内存利用机制(开发者阅读代码后不太认可)。
如果你不知道什么是 ZRAM,不妨查看我们的 这篇文章 了解 Android 系统中的相关参数。
2、「整合开源代码论坛(CAF)中来自高通的 4.14 内核版本源码」
Code Aurora Forum(CAF)是 Linux 基金会旗下的开源代码论坛,高通将会在这里发布基于 Android 通用内核的针对自己 SoC(也就是常见的高通骁龙系列)修改的源码,一般来说会提供更好的优化,厂家制作内核时也往往会从中整合代码。而这款内核正是从 CAF 源码中整合来自高通提交的最新、最好的代码,即 You'll be getting the latest and greatest Qualcomm has to offer with this kernel.
CAF 的首页,标注了三类人群:制造商、开发者、Makers
3、「更改配置:CONFIG_HZ = 300」
CONFIG_HZ 是 Linux 内核中的一个重要参数,决定了 CPU 主频的切换间隔,数值固定为 100、300 不等,越大则切换间隔越短。这个数值改为 300 可以将间隔从 10ms 降低为 3.33ms,是 Pixel 一直以来都沿用的数值,也是 Google 建议开发商们采用的数值,可以使得手机更为顺滑(当然也会稍稍消耗更多电量)。
开发者认为,这个改动的意义甚至比屏幕的物理刷新率(90hz)更加重要。
4、「优化部分配置以节省电量」
对于玩机用户来说,常常会在查看内核信息时看到 Gold cluster / Silver cluster 这样的字眼,可以将这个「金银簇」理解为 SoC 的大小核心集。查看下图来自 Anandtech 的表格我们也能够发现这样的称呼,对于使用三丛集的 855 来说,就会拥有两个 Gold cluster。