拒绝广告,自己动手:给小米 K90 编译 crDroid 的血泪史
最近入手了一台小米 K90,拿到手第一件事就是解锁 Bootloader。说实话,HyperOS 用了不到半天我就实在受不了了,那个系统广告和各种操作逻辑真的不是我的菜。对于玩机党来说,原生或者类原生的第三方 ROM 才是归宿。
当时网上虽然有现成的大佬编译好的 crDroid 镜像,但是一看日期,已经停更两个月了。这对于追求稳定的日常机来说可是大忌,bug 肯定不少。于是我就萌生了自己动手编译的念头。
在 VPS 上编译 Android 系统消耗了大量流量,需注意流量配额。
编译准备与资源消耗:VPS 流量预警
在开始之前,必须先给想折腾的朋友提个醒:编译 Android 系统是一个非常吃资源的活儿。
我这次是在 VPS 上进行的编译,原本以为代码拉取和编译过程也就是百来 GB 的流量,结果没想到整个流程跑下来,流量消耗直接飙到了 600 多 GB。差点把 VPS 的流量配额榨干,差点就要为此买单。所以,如果你打算在云端编译,一定要选择流量充足或者带宽足够的机型,或者干脆在本地高性能机上跑,虽然配置要求高,但至少不用担心流量费。
NFC 修复与设备树调整
之前的版本最大的问题之一就是 NFC 功能异常。好在 LineageOS 的社区维护比较活跃,我参考了 LineageOS 的设备树代码,对相应的驱动和配置文件进行了移植和修复。
经过一番折腾,新编译出来的版本刷入后,NFC 终于可以正常识别公交卡和门禁卡了。对于日常通勤来说,这个功能的修复至关重要,不然手机这就只能是个“平板”了。
利用 AI 分析内核日志和 Lights HAL 代码,快速定位自动亮度失效的原因。
遇到的新坑:自动亮度失效怎么办?
NFC 修好了,本以为可以安稳用机,结果又发现了新问题:自动调节亮度功能失效了。
无论环境光线怎么变,屏幕亮度都死死地钉在原来的数值上,只能手动调节。这在室外或者光线变化大的场景下非常影响体验。这通常是由于传感器驱动配置、HAL 层接口或者权限配置不一致导致的。
这里有个思路可以分享给大家,不一定非要去啃晦涩的内核日志或者对比 LineageOS 的每一次提交。
现在 AI 辅助编程这么发达,我们可以尝试利用 AI 来分析问题。你可以把相关的 msm8998 (或者是你对应的平台代号) 的内核日志、Lights HAL 的代码片段,甚至是报错信息喂给 GPT-4 或 Claude 等大模型。直接问它:“为什么这个传感器读不到数值?”或者“这段权限配置有什么问题?”
很多时候,AI 能快速定位到是缺了一个权限声明,或者是某个 DTS (设备树源码) 节点的属性配置不对。利用 AI 现成的大数据库,往往比自己去搜报错信息要高效得多。
总结
虽然编译过程折磨,VPS 流量也告急,但看着手机跑起自己编译的系统,NFC 正常工作,那种成就感是刷现成包给不了的。至于自动亮度这个问题,不管是请教社区大佬还是借助 AI 分析,相信很快也能搞定。
如果你也在玩小米机型的编译,欢迎在评论区交流避坑经验,毕竟搞机这条路,抱团才不冷!

评论已关闭