荣耀Magic8 RSR曝光:性能影像双突破
|
亲历现场。那晚十一点半,荣耀对接人老张在群里甩出预置包,说“明早九点封板,你们适配完直接签收”。我手抖点开zip——里面连个build.prop都藏了三道校验,解压要等十八秒,解压完才发现meta-data里塞了个动态加载的vendor.overlay.so,不是system分区那个老路子。我原以为就是改个vendor_dlkm路径的事,结果进log一扒,它把hal_audio.primary.default给重命名成hal_audio.primary.rsr了,连HAL_MODULE_INFO_SYM都重写了,这哪是适配,这是让你现场反编译再写个stub。 桌上的机械键盘声咔嗒咔嗒响,青轴,没换过键帽,按shift键时右上角那个键帽已经磨白了。测试机堆在窗台晒到发烫,五台Magic8 RSR样机,两台屏下指纹亮得不一致,一台前置自拍带绿色残影,还有一台——你猜怎么着?插UFS卡槽的时候卡托弹出来两次,第三次我手滑把卡弹进了空调出风口缝隙,蹲那儿掏了七分钟,指甲缝全是灰。楼下便利店的关东煮汤底味飘上来,萝卜块沉底那股甜咸气混着安卓logcat的warning刷屏声,真挺魔幻。
产品概念图,仅供参考 老张说“优胜劣汰”是系统层策略,我差点笑出声。优胜在哪?劣汰又汰谁?我看就是把能跑通的模块全留着,不能跑通的——比如我们上个月提的三十七个SELinux avc deny——全归到“非核心路径”,一句“用户无感知”就划掉。上次提的surfaceflinger帧同步抖动,他们测试妹子小林连trace都懒得跑,只截图show了一下systrace里三个蓝条没对齐,“这个我说不准,但厂商给的baseline就是这么跑的”。可我敢打包票:只要打开GPU驱动debug开关,那个frame_drop_rate立刻从0.3%跳到十二点六——不是百分比,是实测值,我拿示波器怼着OLED背光信号测的,抖动峰峰值差三百七十二纳秒,刚好卡在VSYNC偏移临界点上。 编译等待时窗外洒水车经过,那种低频嗡嗡声,水柱打在水泥地上的溅射节奏,和adb shell getprop ro.build.version.release的回显延迟完全同频——你信不信?我试了四次,每次都是。而真正让我后怕的是第三台样机进recovery后自动触发OTA校验,结果校验失败又强行rollback,rollback过程中把/system/vendor/etc/permissions/hardware_features.xml给清空了,但boot镜像里的init.rc又照常加载feature list——导致开机后CameraService起不来,log里只有两行:E CameraProvider: Cannot open HAL device;W CameraService: No HAL provider found。就这么两行,查了四小时。不是日志太少,是太多——全是重复的binder thread stuck在ioctl 0x80187701上,卡死在vendor.qti.hardware.display.allocator@2.0.so里,而这个so根本没出现在他们给的symbols列表里。 上周外包同事阿伟用自己写的patch绕过那个HAL重命名,硬绑了个symbol alias,结果烧进工程机后WiFi RSSI读数翻倍,-67dBm显示成-34dBm,测试妹子小林当场拿着field test app追着他问:“你是不是动了wpa_supplicant的radio_prop计算?”阿伟摆手说没动,她不信,把手机塞我手里让我看log,我就扫了一眼,说:“你看这个ioctl返回的int值,高位字节全被mask掉了。”她愣了三秒,然后默默去改vendor下的wlan_hdd_cfg.ini,加了一行enable_snr_mask=0。这事没上bug单,也没留记录,现在那台机器还摆在她工位右边第二格抽屉里,贴着张便签:“别重启,重启变砖”。 那版系统对高帧率游戏做resource throttling的逻辑,居然是靠读取/sys/class/kgsl/kgsl-3d0/gpuclk的实时值,再乘一个硬编码系数(0.97),最后跟一个预设阈值比——但这个预设阈值写死在build.prop里,叫ro.product.gpu.throttle_threshold,值是750。问题是你知道吗?所有搭载这个soc的机型都读同一个prop,不管它实际是骁龙8 Gen2还是Gen3,也不管有没有锁频。老张昨天说“底层优化就是让弱的更弱、强的更强”,我听着耳熟,翻了翻去年Q3的内部分享PPT,第十七页写着“通过定向资源压制提升能效比”,底下配图是两列CPU利用率曲线,左边扁平,右边尖峰,备注写着:“建议适配方参考该形态进行thermal调度收敛”。我没收敛,我把它俩都砍了,用kernel panic复位重载,至少不卡死。 反正明天早上九点前得签收。我现在盯着那个预置包,心里盘算着要不要把vendor_dlkm里那个rsr专用的audio hal.so替换成我们自己编译的,带符号表、不strip、能debug的那种。可万一它校验签名呢?或者check ELF段头checksum?又或者……算了,先编吧。编完要是还能开机,就再拆一遍它的ota update payload看看里面到底埋了多少层dex。实在不行,就让阿伟再写个临时hook,用LD_PRELOAD劫持那个ioctl——他上回说能劫,但没真试,我信一半。 (编辑:52刷机网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

