真我GT8 Pro震撼发布:性能旗舰再定义
|
真我GT8 Pro震撼发布:性能旗舰再定义——我盯着这句话在PR稿里来回划了七遍,手抖。不是因为激动,是编译卡在aapt2资源合并那步,三百七十二次,窗外洒水车刚好第十八次路过楼下,水声混着高压泵的嗡鸣钻进来,震得我机械键盘右下角那个F12键松动了,按下去像踩进一滩凉水。 跟人吵架。厂商对接老陈蹲在我工位隔板边,手指甲掐着那版系统OTA包的MD5校验码截图:“你这签名链没打穿,底层驱动回调漏了一帧。”我说漏一帧你测得出来?他掏出三台真机——GT7、GT8、GT8 Pro——横排压在我测试机堆上,最底下那台GT7屏幕朝天,在窗台晒了快俩钟头,背壳烫得能煎蛋,我伸手去拿,指尖一缩,顺手把旁边便利店关东煮的纸碗碰翻了,汤汁洇开一张“萝卜已售罄”的小票。 我原以为只是SELinux策略没适配新内核的avc deny日志,结果拆包扫到vendor/bin/hw/android.hardware.graphics.mapper@4.0-impl.so,发现它调用的gralloc_alloc_buffer()在那版系统里被静默重写了两行汇编——就两行,加了cache coherency fence,但没暴露给HAL层接口。这个我敢打包票,我连反汇编窗口都还开着,汇编指令左边标着红色断点,右边挂着调试器里冻结的线程堆栈。可至于为什么只在GT8 Pro的GPU频率突变时才触发,我说不准。老陈后来甩给我一封高通的邮件草稿,标题写着“关于v5.1.x GPU driver patch note(非正式)”,附件名是乱码,打开全是十六进制,我扫了一眼就没再点第二下。 测试妹子小满来送log,穿着那件印着“Android 13 QPR3”字样的旧T恤,袖口磨得发毛,手里端着半杯凉透的美式,杯沿沾着一点褐色咖啡渍。她把log压缩包拖进我IDE的project窗口时,我正删第四遍gradle.properties里的android.useAndroidX=true。她说“小王说你这儿卡住?”我说小王谁?她眨眨眼,“外包组那个总坐你斜后方、戴银耳钉的”。哦,那个爱用vim改mk文件的。我点点头,她转身时T恤后领翘起来一小截,露出脊椎骨节的轮廓,我没接话,只点了三下鼠标右键,等IDE弹出“正在同步Gradle”——它卡在解析local.properties第三行,十七秒。 优胜劣汰?呵。昨天下午三点,我把GT8 Pro的system_ext/lib64/libstagefright_foundation.so拷进模拟器跑systrace,帧率曲线平得像死人脑电图,但同一份trace在GT7上跳成心电骤停。我切过去看vendor/qcom/proprietary/commonsys/adsprpcd的启动日志,发现它初始化时读了两次/sys/devices/soc/1b00000.qcom,spss/opp_table,第一次读的是默认值,第二次读突然跳到一个不存在的freq_level_index=19,然后整个adsprpcd进程sleep了整整四百二十一毫秒。这个时间点,刚好对应着主屏亮起瞬间的SurfaceFlinger合成卡顿——但你猜怎么着?厂商给的白皮书里压根没提opp_table结构变更,只在FAQ第三页末尾补了句“建议使用新API获取当前频点”。新API?我查了SDK目录,那个API class文件连jar包都没被打进去。 楼下便利店关东煮换汤了,今天是昆布鲣鱼味,味噌沉底没搅匀,我喝了一口,咸得舌根发麻。小满又来了一趟,这次没说话,放了张便签在我机械键盘空格键上,字是圆珠笔写的:“log_20240423_1642_crash_on_gesture_nav_swipe.txt”。我打开看了前五行,全是libinput_dispatch_event的backtrace,最后一行是“signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)”,地址是0x0。我删掉文件,重命名了个新名字扔进crash目录,但没上传。反正明天早上八点前要交全量兼容报告,他们只认zip包md5和test report summary的pass率数字,不认0x0。
产品概念图,仅供参考 冷眼?我现在连眼皮都不想抬。上个月在GT8 Pro上搞双屏副屏触摸延迟,折腾了十九个build,最后发现是vendor/bin/inputflinger硬编码了tp_device_name的字符串匹配长度为27字符,而真我把touchpanel设备节点从/dev/input/event4改成了/dev/input/event4_2024_q3_premium,多出来的字符直接让整个event loop挂起;还有一次,蓝牙SCO音频通路无声,查到是那版系统的audio HAL里,audio_hw.c的start_stream_out()函数在检测到耳机插拔中断后,强制把output flag置了false,但根本没广播这个状态变更——APP还在傻等onRoutingChanged callback。这两个bug,一个在驱动层,一个在HAL,都是真我自己塞进vendor分区的patch,源码注释里写着“Fix GT7 audio glitch (tbc)”,括号里的tbc现在还没补上。 我数了数桌角的测试机:GT7三台、GT8两台、GT8 Pro四台。窗台上六台全在晒,外壳烫手,其中一台GT8 Pro的侧边按键有点松动,按下去有细微的咔哒声,跟楼下洒水车经过时水泵泄压阀的声音几乎同频。我刚想伸手去拧螺丝,手机震了一下,是外包同事发来的消息:“兄弟,GT8 Pro的Camera2 CaptureResult timestamp精度是不是变了?我们录慢动作对不上帧了。”我没回。现在离deadline还有十小时四十三分钟,我得先让resource overlay的动态加载不崩在system_ext/framework/下。别的,等过了这版再说。 (编辑:52刷机网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

