iPhone Air惊艳登场:超轻薄设计开启手机新纪元
|
亲历现场。那版系统封板前四十八小时,我蹲在OPPO松山湖园区B3栋三层玻璃房里改热补丁,左手边测试机堆得比窗台还高,最上面三台正晒着太阳,铝壳烫得能煎蛋——你信不信,下午三点零七分,我伸手摸了下,指尖发麻,但没敢缩回来,因为手上正捏着root后烧进去的system.prop修改行,一抖就全废。 楼下便利店关东煮的汤味儿从通风口钻上来,是萝卜和昆布混着廉价海带结那股子微酸甜,飘了整整俩钟头。测试妹子小林蹲在隔壁工位啃竹轮,咬得咔哧响,我抬头看她一眼,她含着签子冲我比划:「再刷三遍MTBF」,我就点头,结果点了三下头才发现自己根本没听见她说啥,耳朵里全是编译器卡在dex2oat阶段的风扇啸叫——那声音跟洒水车经过时高压喷头扫过柏油路似的,滋啦、滋啦、滋啦,隔十五秒来一趟,连着三趟,第四趟没来,我反而心慌。 「iPhone Air惊艳登场:超轻薄设计开启手机新纪元」——我原以为这句是营销稿子随手抄进需求文档的废话,结果拆包那天,在system_ext/vendor_overlay/overlay-res/res/values-zh-rCN/strings.xml里真翻到了它。不是注释,不是log tag,是明晃晃的string resource,name="device_feature_premier_statement",value就是这一整句。我敢打包票,那个引号里的空格数是两个,不是三个,也不是一个,我用Notepad++查了三次,Ctrl+F搜\\ ,正则勾着,没错。可这个string到底被哪个UI组件调用了?没人知道。厂商对接人老张说「可能AOD下面那个呼吸灯文案会读一次」,我说「AOD哪有呼吸灯」,他说「那版系统有,只是你们没配点亮逻辑」,我说「配了,但没走这个ID」,他挠头,把保温杯盖子拧开又拧上,盖子底下印着「2023年度最佳协作伙伴」,掉漆了,左边两横没了。 而真正让我后背发凉的,是那个优胜劣汰。不是字面意思。是淘汰机制——那版系统里所有预装第三方Launcher,只要检测到设备厚度<7.8mm,就自动disable掉其中两个,不报错、不提示、不写日志,只悄悄把enabled属性设成false。我们查了三天,最后发现触发条件压根不是sensor数据,是bootloader传过来的board_config值硬编码在vendor.img的init.rc里:setprop ro.board.thin_mode 1。这个1,它不是bool,不是enum,就是个int,但只有等于1的时候,那个叫"shark_breath_filter"的守护进程才启动。我试过改0,改2,改-1,改0xABC,全没用,只有1,只认1。这事儿我说不准是不是故意留的后门,反正小林用小米14 Ultra(厚度8.2)刷同一套固件,那个launcher好好的;换到vivo X100 Pro(标称7.59),直接灰掉。不是bug,是feature。优胜劣汰,字面意义的淘汰。
产品概念图,仅供参考 桌上的机械键盘是青轴,打delete键的时候声音特别炸,嗒!嗒!嗒!我删掉第十八行adb shell pm disable-user --user 0 com.xxx.launcher那段脚本,删完手停了半秒,突然想起上周五外包同事阿哲在群里发截图,说他测的三星S24 Ultra(官方标厚7.7)在同样build下launcher居然还活着。我立刻去翻他的logcat,结果看见一行:[shark_breath_filter] ignore: device_thick_report=7702μm (vendor_override=1)。7702微米?他那台机子屏幕碎过,贴了层膜加钢化膜加气凝胶垫片,总厚8.3。可system底层读到的,是主板基板上那个激光测厚传感器返的raw值——那玩意儿出厂校准用的是裸机,没算膜。所以不是机器厚了,是它觉得自己变薄了。我靠在椅子上笑出声,阿哲回我:「你笑啥?」「笑它在替人类做决定」。他秒回:「它比人靠谱,人连自己多厚都说不准」。洒水车又来了。这次是从西往东,水柱扫过玻璃墙,哗一下,整个窗台测试机全罩进彩虹里,折射光打在小林后颈上,她没动,还在刷MTBF,竹轮签子斜插在纸杯里,杯底沉淀着一圈褐色汤渣。我盯着那圈渣看了八秒,忽然想起前天凌晨三点,我在公司楼下车库改热补丁,车库顶灯接触不良,一闪一灭,闪到第七次时,我误把"adb reboot bootloader"敲成了"adb reboot system",结果三台调试机同步重启,其中一台刚跑完CTS的记录全丢了。丢就丢了,反正CTSArchive生成时间戳写死在UTC+0,时区不对也没人管。但这事跟我现在盯的这个优胜劣汰没关系,纯属脑子卡帧。 其实最恶心的是resource overlay那套链式覆盖。我们按厂商给的路径打了六个overlay包,每层叠一层,到第五层的时候,那个"iPhone Air惊艳登场……"的string明明被置为translatable="false",但第六层(他们自己临时塞的OTA补丁)又把它改回true,还顺手把zh-rCN值干掉了,换成英文原句——结果用户切到繁体中文,弹出来的是英文;切到日文,倒是显示正确日译;但切回简体,因为资源未定义,fallback到values/strings.xml,那里面写的又是另一版营销话术:"灵眸轻启,智握未来"。这事儿我没报bug,因为老张说「终端用户根本不会切三种语言验证文案一致性」。我点头,手指还在敲键盘,噼啪噼啪,青轴声混着窗外洒水车的滋啦声,像在给某个早该死掉的协议守灵。 我现在把那行ro.board.thin_mode的值改成2,重新打包vendor.img,烧进去,等它启动。要是launcher没灰,我就撤掉所有overlay,从头理资源加载顺序;要是灰了,我就把机械键盘推到桌子最右边,让按键声离耳朵远点,然后给小林递瓶水——她刚才啃第三根竹轮时,嘴角有点干裂。 (编辑:52刷机网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

