当李言乘坐的飞机在万迈克尔空,划开太平洋上空厚重的云层,向着东方破晓的晨光飞驰时,深圳南山科技园,位于科兴科学园18层的“星辰之心”研发中心,正被深夜的寂静和浓厚的咖啡苦香所笼罩。
时间,凌晨两点。
巨大的开放式工作区里,只亮着几盏孤零零的台灯,光晕之下,是一张张因极度专注而显得有些苍白的脸。
空气中弥漫着一股奇特的气味,是焊锡膏加热后散发的松香、过载的服务器风扇吹出的暖风、以及不知是第几杯的速溶咖啡混合而成的味道。
这里,是代号“启明星”的软件团队所在地。
“不行!还是不行!内核一加载到引导地址,就直接崩溃了!连个错误代码都没有!
一个名叫刘宇的年轻工程师猛地将手中的鼠标推开,靠在椅背上,烦躁地抓了抓自己那本已乱成一团的头发。
他眼窝深陷,双眼布满血丝,面前的三块显示器上,布满了密密麻麻、如同天书般的底层代码和编译日志。
他身边,几个同样年轻的同事也是一脸的疲惫与沮—丧。。
这在2008年的任何一个业内人士看来,都是一个彻头彻尾的、荒谬的笑话。
这无异于要将一架波音747的喷气式发动机,硬塞进一辆夏利轿车的引擎盖里。
tk的功能机平台,如当时星辰s1/s2所使用的t6226系列,其内核架构是ar
7tdi。
这种架构简单、高效、功耗极低,但它缺少一个关键的部件—u(内存管理单元)。
而安卓系统所基于的lu内核,从诞生之初,就是为拥有u的、更高级别的arv9或x86架构设计的。
没有u,意味着无法实现虚拟内存、进程隔离这些现代作业系统的基本功能o
“韩博,”刘宇转过头,看向不远处那个始终保持着镇静的身影,声音里带着一丝泄气,“我们是不是————在做一件根本不可能完成的事?这个硬件平台,从根上就和安卓不兼容。我们每解决一个编译错误,就会冒出来十个新的。这就象在一个漏水的木桶里,试图把水装满。”
韩立博士没有立刻回答。
他正站在一块巨大的白板前,上面用红蓝黑三色笔,画满了复杂的内核架构图和引导流程图。
他看着那些如同迷宫般的线条,沉默了片刻,才缓缓转过身。
他的脸色同样苍白,眼袋很重,但那双镜片后的眼睛,却异常明亮。
“小刘,大家,”他的声音不高,却很沉稳,有一种能安抚人心的力量,“李总在布置这个任务的时候,说过一句话。他说,他不指望我们能把这辆夏利送上天,他要的,是让我们通过拆解和重组这台波音发动机,把我们自己,变成一群真正懂得造发动机的人。”
他走到刘宇的工位旁,看着屏幕上那片令人绝望的红色错误提示。
“这个任务,本身就不是为了商业量产。它的唯一目的,是练兵。是让我们在tk的第一代智能机平台方案到来之前,把安卓这个黑匣子”,从最底层的每一行代码、每一个驱动、每一个协议开始,彻底吃透。”
他拍了拍刘宇的肩膀:“我们现在遇到的每一个不可能”,都是未来我们在t6516平台上,能够领先竞争对手一步的资本”。别人还在等着tk喂饭,而我们,要学会自己做饭。”
他的一番话,让实验室里压抑的气氛稍稍缓和了一些。
年轻的工程师们脸上虽然依旧疲惫,但眼神里重新燃起了一丝斗志。
“好了,”韩立博士推了推眼镜,“都别钻牛角尖了。既然常规的引导方式走不通,我们就换个思路。老王,你那边对tk的固件反编译,有什么进展?”
角落里,一个年纪稍长的、头发花白的工程师抬起头,他的面前摆着一台拆开的星辰a1,各种数据线连接到一台逻辑分析仪上。
“进展不大,韩博。tk的固件加密和校验机制非常复杂。但是————我发现了一个有趣的地方。”
他将屏幕转向众人:“它的bootloader在加载内核前,会对一个特定的内存地址进行一次硬件自检。如果这个地址的数据异常,就会进入一个极少被触发的、用于工厂底层调试的安全模式”。在这个模式下,大部分的硬件校验都会被临时屏蔽掉。”
韩立博士的眼睛猛地一亮!
他快步走到老王身后,死死地盯着屏幕上那段晦涩的汇编代码。
“你的意思是————”
“我的意思是,”老王的脸上露出了一丝属于老技术宅的、狡黠的笑容,“我们或许————可以给它喂”一段伪造的自检数据,骗它进入安全模式”。然后,在这个没有任何守卫”的模式下,再强行把我们那个阉割版的lu内核,灌进去。”
整个实验室,瞬间陷入了死一般的寂静。
所有工程师都停下了手中的工作,目光聚焦在老王的屏幕上。
这个思路,简直是————胆大包天!
这无异于一个盗贼,不去费力地破解银行金库的密码,而是通过伪造煤气渠道泄漏的警报,