华为Mate 70 Air深度解析:开启手机新纪元
|
跟人吵架。那天晚上十一点零七分,测试妹子把Mate 70 Air摔进防静电袋里推过来,说“系统弹窗卡在半透明态不动”,我伸手接,指尖蹭到她手背——她刚撕完第三张贴膜,指甲缝还沾着蓝胶。我原以为是UI线程被RenderThread塞满了,结果连adb shell dumpsys activity top都返回空,连个ProcessRecord影子都没有。真就没了。 桌上机械键盘敲F9的时候,嗒、嗒、嗒,像有人用螺丝刀轻轻凿主板焊点。我盯着那台刚刷进去的样机,它亮着,但没响应。不是ANR,不是Watchdog触发,是整个ActivityRecord从AMS里蒸发了。我说不准是不是厂商自己删的——他们上个月砍掉了一整套旧版权限代理模块,文档里写“统一收口”,结果收口收得连Binder call都打不进SystemServer。我敢打包票:那个弹窗根本没走到WMS addWindow流程,它死在了Instrumentation#callActivityOnCreate里,before super.onCreate。对,就那一行之前。 窗外洒水车经过,声音闷,水柱打在水泥地上像一串漏气的鼓点。我起身去关窗,顺手摸了下窗台——六台Mate 70 Air排成一列晒着,屏幕朝天,玻璃面烫得能煎蛋。上周三测试时还没这现象,周四加了个热补丁,周五起屏温高了十二度。没人提这事,我问对接人老张,他叼着烟笑:“发热?发啥热?用户又不摸后盖。”他边说边用指关节叩两下其中一台,咔,壳子有点松动,是拆过模组换过摄像头排线留下的。他扣完就走,去楼下便利店买关东煮,我闻见味儿,萝卜和海带混着酱油香,飘上来的时候,我正在重跑Gradle,等编译的十八秒里,看见自己倒影映在发烫的屏幕上,歪的。 优胜劣汰?哈。不是优胜,是幸存。Mate 70 Air这版系统,把所有老路径全封了——NotificationListenerService的onNotificationPosted回调不走IPC了,直接往本地Socket扔字节流;AccessibilityService的findAccessibilityNodeInfosByText,底层改成了共享内存+环形buffer;甚至InputMethodService的onStartInput,现在要先校验调用方签名SHA256再决定给不给InputBinding。不是优化,是砌墙。我们原先适配的三个灰产渠道包,连通知栏展开动画都播不出来——不是崩,是静音式失效:View.animate().alpha(0).start()执行完,alpha值变成0.0001,但onAnimationEnd死活不回调。测了十七遍,Logcat里干干净净,就像那段代码从来不存在。 我昨天让外包同事小林拉日志,他跑完logcat -b events | grep am_activity,回来跟我说“没看到任何ACTIVITY_START”。我让他换-b main,他顿了三秒,说“哦,main里有,但全是debug level,过滤条件我设错了”。他设的是tag=ActivityManager,可这版系统早把AM日志切到tag=AMS-Core里去了,连TAG名都换了。我说你搜AMS-Core试试,他试了,回来摇头:“没这tag。”我抢过电脑查,/system/build.prop里写着ro.build.version.sdk=34,但logcat -b all | grep AMS-Core——空。我当场愣住。后来翻内核dmesg才发现,日志重定向被改在init.rc里,走的是一个自定义logger socket,连logcat二进制都没权限读。这个我说不准——厂商没留任何说明,连个readme.md都没有。 楼下便利店关东煮摊主换人了,新来那大姐总把竹签掰成两截插进萝卜里,说“这样好拿”。我今早买了两串,她掰签子时指甲盖崩掉一小块白边,我就站在那儿看,忘了掏手机付钱。她抬头问我:“扫码还是现金?”我没应声,只觉着那截断签尖儿正对着我拇指肉里一道旧划痕——去年在OPPO工厂做双清适配时,拆机刀片划的,疤早没了,但一到阴天还麻。 这代系统连WebView都动了根。不是Chromium升级,是把WebChromeClient里的onProgressChanged重写了三遍,第三遍才进JSContext。我们有个页面加载进度条卡在87%,查了三天,最后发现是厂商在setProgress()里插了个isPageInSecureMode()判断,而我们的H5没走HTTPS,但证书链里含了个被他们策略库标记为“潜在降级”的根证书——于是progress直接锁死,不抛异常,不打印log,就停在87。我说不准那个根证书名字是什么,我只记得调试时用openssl s_client -connect 抓包,回显第一行是“Verify return code: 21 (unable to verify the first certificate)”,然后手机就自动断开了SSL handshake。就这么干干净净地断了。 我现在线上还挂着两个未合入的patch:一个是绕过AMS的ActivityRecord强校验,靠反射偷塞mState字段;另一个是给WebView进度监听套个Handler#postDelayed兜底,延后三百七十二毫秒再check。不敢推,怕哪天系统OTA后mState字段被改成private final。现在先压着,等下周华为那边来人——听说是个叫阿哲的,去年在P60项目里跟我吵过三次,每次都在午休时间,因为他非要站在茶水间门口说事,身后微波炉正转着一杯隔夜咖啡,滋滋响。
产品概念图,仅供参考 先不管了。我得下楼再买串关东煮。这回得挑萝卜软的。 (编辑:52刷机网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

