我这个人,做什么事情都喜欢从头到尾自己摸一遍,尤其是在系统这块。我刚开始接触凤凰系统(Phoenix OS)的时候,是手里有一台淘汰下来的老旧笔记本,配置简直是蜗牛,跑Windows卡得让人心烦。我就琢磨着,能不能给它换个轻便又能跑安卓应用的系统,废物利用一下。装完之后,问题就来了。
这系统虽然基础功能能用,但是那汉化程度,简直就是半吊子工程。重要的设置选项、系统弹窗,甚至通知栏里的小提示,好多都还是英文的,用起来总感觉隔着一层膜,特别不痛快。我这个人有强迫症,既然要用,那就必须得是全中文,要彻底本土化。
第一步:定位和拆解
既然官方的汉化不行,那就自己动手。我要做的,就是把整个系统镜像抓出来,然后定位那些核心的系统文件。安卓系统,核心就在那些.apk和.jar包里。我找到了负责用户界面的和负责框架的。
接下来就是拆包。我把这两个关键文件拖进反编译工具里。这个过程比想象中要麻烦得多。因为凤凰系统毕竟是在AOSP(安卓开源项目)基础上改动过的,里面的资源ID和字符串的结构跟原生的安卓有一点区别。我得睁大眼睛,一个一个地去搜寻那些未翻译的或者翻译得特别生硬的字符串资源。
第二步:痛苦的字符串填补
这活儿说起来简单,干起来简直是体力活。因为光是语言文件里,成千上万的字符串,我必须对照着我知道的中文语境,一个一个修改、补全。特别是很多设置项,比如电源管理、多窗口模式这些凤凰系统特有的功能,原生的安卓系统里根本就没有对应的翻译模板,我只能自己重新编写。我甚至动了Framework包里的一些XML文件,确保日期和时间格式能完全符合国人的习惯,而不是欧美的格式。
最让我头疼的是输入法。它自带的那个输入法简直是残废,根本没法用。我花了两天时间,研究怎么能把一个主流的第三方中文输入法打包进去,并且设置成默认。这不只是简单地塞进去一个APK包,还得修改系统的启动配置脚本,让它能在系统级别被识别和激活。
第三步:打包和验证,见证奇迹
等我把所有修改过的文件都搞定,重新打包、签名,我尝试了第一次刷入。结果,系统卡在了启动画面,死活进不去。我当时心里骂了一句,知道肯定又是某个资源文件索引弄错了。
我硬着头皮,回过头去翻阅了大量的日志,排查到底是哪个文件出了问题。最终定位到是*里的一个资源映射出了岔子。修正之后,我又小心翼翼地重新打包,再次刷入。这回它动起来了。
当我看到开机动画过去,整个界面清爽流畅,设置、通知栏、甚至是多窗口的提示,全部都显示着地道的中文时,那感觉别提多舒服了。
话说回来,我为啥非要这么较真地抠这些细节,搞这个汉化?当时我在家折腾这事儿的时候,正是我工作上最烦躁、最无助的时候。那会儿公司进行了一轮大裁员,虽然没轮到我,但是整个气氛压抑得不行。上级领导天天开会,搞什么组织架构调整,喊着要我们“保持活力”。
我当时就觉得特荒谬,办公室里人人自危,谁还有心思去保持活力?我看着他们天天吵架,扯皮,心里就窝火。我逃回家,钻进这个汉化系统里。外面越是混乱,我就越要把我手里这个系统弄得干干净净,一丝不苟。
我把所有的精力都砸在了这个虚拟的世界里。我控制着每一个字符,决定着每一个UI元素应该如何显示。外面我控制不了,但至少在我自己的系统里,所有东西都是井井有条,完全符合我的心意。这个汉化包我搞完的那天,我心情好得不行,第二天就辞职了。我看着电脑上流畅运行的凤凰系统,我知道,有些事,是时候自己做主了。