三星W26深度评测:奢华设计与旗舰性能的巅峰融合
|
亲历现场。那晚三星W26的OTA包压到我邮箱里时,测试机堆在窗台晒到发烫——三台竖着,两台横着,屏幕反光晃得人眼晕,我伸手推了下最边上的那台,它没倒,但听到了一声轻微的“咔”,是后壳跟中框咬合处松了,我自己拧过八次螺丝,这个声我敢打包票不是新问题。 厂商对接人老张十一点半打进来,嗓子劈叉:“老李你快看下‘奢华设计与旗舰性能的巅峰融合’那句文案,系统级弹窗里的title要同步替换。”我说这文案在SystemUI的strings.xml里根本没走resource ID,是硬编码在NotificationController里拼的。他说:“那就改。”我说:“改不了,那行字连着setContentView前的onCreate()里new出来的ToastBuilder。”他顿了两秒,说:“你先编译下试试。”——我点了Build,编译窗口卡在Dexing阶段,窗外洒水车正好经过,哗啦啦、哗啦啦,喷头转得特别慢,水珠子打在玻璃上一条条往下淌,像没擦干的指纹。 我原以为只是文案替换,结果拆开APK才发现,他们把W26的vendor overlay整个重打包塞进/system/priv-app/OneUIStub,而stub里那个叫DeviceSpecHelper的类,调用的是/lib/secure/featurelib.so里一个没export的symbol,名字叫getDeviceLuxuryLevel——就这一行,直接把咱们的SystemUI进程拉垮三次,Logcat里只吐出SIGSEGV + address 0x0000000000000018,这个地址我熟,三年前在华为Mate X2适配时见过一模一样的值,就是vendor blob没对齐page boundary导致的memcpy越界。 测试妹子小林蹲在工位边刷log,机械键盘声咔哒咔哒响,她敲的是F12切logcat filter,左手捏着半根冷掉的关东煮竹签,汤汁滴在键盘右下角空格键上,黏住了三个键帽——我没让她擦,反正今晚不打算重启AS。她突然抬头:“李哥,通知栏展开延迟是不是变长了?”我点开perfetto trace,一看:SurfaceFlinger那边commit帧全卡在doFrame之前,因为WindowManagerService在等一个叫LuxuryFeatureMonitor的binder call返回,而它在system_server里挂起了十八秒。这个我说不准——到底是HAL层没响应,还是vendor service自己在做同步IO,我只看到线程状态写着SLEEPING on BinderProxy.wait() 楼下便利店的关东煮收摊了,卷帘门哗啦一下落到底,震得我桌上两颗备用螺丝跳了一下。这时候老张又来消息:“领导说W26要体现优胜劣汰。”我回:“优胜劣汰?这词儿放这儿不就是指该淘汰的旧机型被筛掉了么?”他回了个OK手势,再没提那版系统到底筛了哪几个model。我翻build.prop,grep ro.build.product,发现它报的是w26q,但ro.product.vendor.device报的是s24ul。我截图发过去,他回:“啊,这个不重要,客户不看这个。”——可客户不看,OTA升级验证链路里那个vendor image完整性校验就过不去,校验失败的机型根本收不到推送,这才是真·优胜劣汰。但我没再回,手指悬在键盘上,停了半分钟,只点了删除键,把对话框清空了。
产品概念图,仅供参考 外包同事阿哲在群里甩了个链接,是高通那边刚发的qssi-vendor-14.2-hotfix2补丁,说“可能解决W26锁频后热降频异常”。我下下来解包,发现它偷偷patch了/lib64/hw/power.qcom.so里的setInteractive函数,加了额外条件判断:只有ro.boot.device_type==luxury时才启用深度节能策略。这个条件,我们那版系统根本没定义。阿哲说他试过强制写入prop,结果SystemServer直接OOM kill。我说你改init.rc里加一行setprop行不行?他说加了,但selinux deny log里打了三百七十二条avc: denied { setprop },类型叫sysfs_device,context是u:r:platform_app:s0。我笑了,这他妈比当年在OPPO Reno3上绕过coloros_safemode还难,至少那时候还能adb root之后touch /data/misc/coloros/.disable_safe_mode。 其实吧,那句“奢华设计与旗舰性能的巅峰融合”本身没问题。问题是它出现在三个地方:开机动画结束后的splash page、锁屏顶部的厂商定制banner、还有设置里关于本机的描述页。但三个页面加载逻辑完全不同:splash是surfaceflinger直绘,banner是SysUI里RemoteViews inflate,而设置页……是WebView套的H5。结果呢?splash页显示正常,banner里“巅峰”两个字被font fallback搞成方块,设置页干脆白屏。为什么?因为H5加载时会去fetch一个https://samsung.com/w26/spec.json,但那版系统的TrustManager里删了GlobalSign R3的root cert——删的原因居然是“客户说这个证书链太长影响启动速度”。我就想不通,删个证书能省多少毫秒?而webview为此多起三次DNS+TCP+TLS握手,哪个更快? 算了,我现在手边这台W26样机充电口有点松,插线时得往上抬五度角度才能充进电。我拍了张照发给小林,问她有没有遇到类似情况。她回:“有,昨天烧了两块BMS板,厂里说是批次问题。”——然后就没然后了。我也没再问,反正明天一早就要提交sign apk,签名密钥是客户给的,keystore alias叫w26_luxury_sign_2024,密码写在共享表格第三行第D列,但表格权限上周被IT锁了,我现在靠记的。我猜他们忘了更新权限,也可能故意的。无所谓。 你问我W26这版系统到底能不能过VTS?我只能说:CameraHal模块跑pass率92%,剩下的8%全是YUV格式转换精度误差超限——但测试妹子小林说,“这玩意儿客户不测”,她边说边用指甲刮掉键盘上那块干掉的关东煮汤渍,刮下来一团灰褐色碎屑,像烧焦的海苔。我点点头,关了Android Studio,打开Notepad++,新建个txt,打了一行://TODO: LuxFeatureOverlay必须重构,否则下次W27还得重来一遍。保存,没命名,也没关。现在十二点十七分,我要去楼下买杯冰美式。咖啡机声音大,听不见编译完成提示音。 (编辑:52刷机网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

