加入收藏 | 设为首页 | 会员中心 | 我要投稿 52刷机网 (https://www.52shuaji.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 热门品牌 > 华为 > 正文

华为nova 15 Ultra:影像与续航双飞跃

发布时间:2026-10-15 16:15:17 所属栏目:华为 来源:DaWei
导读:  亲历现场。那晚十一点半,nova 15 Ultra 第三方相机 APK 掉帧卡死在快门键按下去那半秒——不是预览卡,是 shutter callback 被 system_server 拦了三十七次,logcat 里全是 IPC wait timeout。我盯着屏幕右上角

  亲历现场。那晚十一点半,nova 15 Ultra 第三方相机 APK 掉帧卡死在快门键按下去那半秒——不是预览卡,是 shutter callback 被 system_server 拦了三十七次,logcat 里全是 IPC wait timeout。我盯着屏幕右上角那个小红点(测光区域),它明明亮着,但一碰快门就灭。不是 crash,没 tombstone,连 ANR 都没触发。就是……不响。


  桌上的机械键盘声。青轴,敲空格键时会咔哒弹两下。我左手悬在 F12 上,右手拇指反复戳测试机侧键,戳到第三遍才想起这台压根没侧键——它是超窄边框,指纹叠在电源键里。我原以为只是 sensor config 加载慢,结果抓 kernel log 看见 thermal throttle 从 62℃ 开始就锁住了 ISP clock,锁得比 vendor 层的 powerhal 还早半拍。这个我敢打包票,因为 thermal zone name 是“tsens_tz0”,跟上代一模一样,但阈值表被重写了——不是 patch,是整张表塞进 dtsi 里硬编译进去的。


  楼下便利店的关东煮。八点四十我下楼买了一盒萝卜和魔芋结,汤还在冒热气,回到工位时发现测试机堆在窗台那儿晒到发烫。七台 nova 15 Ultra 并排躺着,屏幕全朝上,玻璃盖板反着路灯那种惨白光。其中三台自动亮屏又灭屏,循环往复,像是在刷 idle state。我伸手摸最左边那台背壳,烫得缩手,温度计测出来四十一度整——不是机身,是后摄模组凸起那圈铝环。厂商对接人老陈说“散热好着呢”,他刚发完微信,语音转文字还卡着“……跑分都……”那句,没说完就断了。


  编译等待时窗外洒水车经过。凌晨一点零七分,车灯扫过工位玻璃,蓝白交替闪了五下,水雾扑在窗上,糊掉我贴在玻璃上的便签:“check hal3 capture request queue depth”。洒水车过去后,我才发现自己一直在数空调外机滴水声:滴、滴、滴、停顿、滴。总共十八秒。测试妹子小满蹲在对面隔间地上拆第五台样机后盖,螺丝刀拧到第三颗时,她说:“哥,这个胶是不是换配方了?”我嗯了一声,她没再问——其实我早拆过两台,胶体发灰,撕下来带细绒毛,不像硅基,倒像某种热熔胶混了云母粉。这个我说不准。


  优胜劣汰?呵。我刚把 camera hal 的 binder thread count 从 4 改成 6,编译完 push 到机器上,快门响应确实快了——可一开夜景模式,预览直接降成 15fps,而且连续拍三张后,第三张的 EXIF 里 DateTimeOriginal 时间戳居然比第一张早十七分钟。对,倒着走。不是系统时间错,是 ISP firmware 自己写的 timestamp 寄存器溢出后没清零,就那么挂着。我们改过两次 clocksource,没用。最后是外包同事老周,拿 USB 协议分析仪蹲守三天,抓到一条 vendor private ioctl 命令里藏着个 uint16 的 frame counter——溢出位根本没映射到用户态。我们删了那行注释,补了溢出判断,提 PR 时备注写“此处需确认是否所有 hal 版本均兼容”,那边回了个表情包:一个咧嘴笑的熊猫头,眼睛眯成线。


  再说续航。那版系统里,后台 app 启动 activity 会被 ActivityManagerService 强制插入一个 idle check point,只要 target sdk ≥ 34 就生效。但 nova 15 Ultra 把这个检查逻辑硬怼进了 PowerManagerService 里,和 thermal 状态联动。结果就是:你前台看视频,播到一半,突然跳黑屏两秒,日志里只有一行 “PM: entering doze due to thermal constraint”,可 temperature sensor 显示才 43℃。这算什么?不是 thermal,是 thermal adjacent。就像隔壁工位有人打喷嚏,你被传染感冒。我试过关掉所有 thermal service,问题照旧——因为它的 trigger 其实绑在 GPU freq governor 的回调里,而这个回调名被重命名为 “thermal_aware_boost”。骗鬼呢?


产品概念图,仅供参考

  我盯着小满桌上那杯冷掉的关东煮汤,表面浮着一层薄油膜,油膜上倒映着我头顶的日光灯管,一共四根,其中第二根在闪。闪得不规律,有时隔十二秒,有时隔三百七十二。她刚才说她表姐也在华为做结构,去年被派去东莞跟线,回来后左手食指关节变形,握鼠标都打滑。我没接话。我只记得那版系统 OTA 包里有个叫 libcameraservice_preload.so 的东西,体积比上一代大了百分之八十七,md5 校验通不过任何已知公开镜像,也不在 vendor 分区 manifest 里登记。没人承认见过它。但我们每天都在跑它。


  所以现在你让我夸“影像与续航双飞跃”?飞哪去了?飞进 thermal zone 里烧 fuse 了?飞进 timekeeping register 里倒着跑了?我昨天把 demo apk 的 target sdk 改回 33,快门延迟降了 120ms,但系统提示“部分功能受限”。我点了“确定”,它弹出第二层提示:“此操作可能影响电池健康度”。我点了“继续”,它弹出第三层:“请确保手机未处于高温环境”。我摸了摸后壳,还是温的。我把手机翻过来,对着窗外路灯照了照,看见摄像头玻璃上有一道几乎看不见的划痕,细得像头发丝,但从左上角斜穿到右下角,刚好擦过主摄光心位置。这道划痕我上周就没注意到。可能之前就有。也可能上周还没有。


  先扔结论后补细节。这个我敢打包票。我现在要改掉那个 timestamp 溢出位检测,顺手看看 powerhal 里有没有漏掉 thermal-aware boost 的 reset path。老陈说今晚必须合进 daily build,我说好。但他没说 build 里要不要带那个 libcameraservice_preload.so。所以我待会儿先把它拷一份出来,用 strings 扫一遍,看有没有硬编码的 soc id。扫完如果真有,我就把它 rename 成 libplaceholder.so,丢进 /vendor/lib64/hw/ 下,看看机器会不会直接 bootloop——要是不 loop,说明它根本没被加载。要是 loop,至少我知道,它到底在哪儿拦我。

(编辑:52刷机网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章