Android 17 字符串函数 Bug 致 Emoji 崩溃
AOSP Source Releases Are So Late Developers Disassemble Libraries to Report Bugs
Android 17 在 2026 年 9 月的更新中引入了一个严重 Bug,导致 wcscspn() 和 wcspbrk() 函数在处理宽字符时出现逻辑错误。当拒绝集包含两个及以上小于 U+0100 的字符时,任何大于等于 U+0100 的字符(如 Emoji、CJK 汉字或西里尔字母)都会被错误地判定为匹配项。这一缺陷直接导致 Visual Pinball on Android 等应用无法加载包含 Emoji 注释的 VBScript 代码,甚至将包含非 ASCII 字符的文件路径误判为通配符模式。开发者不得不通过反编译 libc.so 库来定位问题根源,因为官方 AOSP 源码发布严重滞后,无法及时复现和修复这一回归问题。
任何扫描宽字符串以查找 ASCII 分隔符的代码,一旦文本中包含 Emoji、CJK、西里尔字母、希腊字母或拉丁扩展字符,就会立即崩溃。
HN 评论区
183- kodebach
我无法证明,但我仍然认为这(部分)归咎于近期某项欧盟法规的重大反噬。
我记不清具体是哪一项了,但其中一项规定要求设备必须在一定期限内获得更新。在该期限内,制造商必须在短时间内为其所有设备提供每次更新。其初衷是防止旗舰机立即获得更新,而低端机却需等待数月。
然而,由于某些(同样出于好意)关于开源的措辞,源代码的发布被视为更新的首次发布,并由此启动倒计时。
我很确定 Google 正在推迟公开 AOSP 更新,以给其合作伙伴(主要是 Samsung 吧)更多时间,让他们在 AOSP 之上完成自己的更新构建。
- userbinator
一个字符:一个简单的比较循环。正确。
不出所料,我在文中隐约察觉到一点 Claudism 的味道。
AI“开启”软件源代码,是我迄今为止看到的最棒的应用之一。
- reddalo
Google 的新口号似乎是“能多邪恶就多邪恶”。
我们需要一个 Android 的替代方案,某种尊重用户自由的东西。
- dethos
我们需要第三个选项。无论是 SalfishOS、Ubuntu Touch、Nura,还是任何能获得可观社区支持的项目。我们只需要开始开发和投资那个选项。它不会完美,但会为用户提供替代方案和掌控权。
- Retr0id
如果这导致有人对 AOSP 进行 AI 驱动的逆向反编译,那倒会有点令人忍俊不禁。
- evan_a_a
标题有点夸张。该 Bug 报告的核心并不需要反编译库。Bug 作者只是多走了一步,进行了根本原因调查,这当然需要一些轻量级的逆向工程工作。
- duttonw
在 AI 时代,Google 不发布(源代码)现在也帮不上忙了……
- typ
鉴于目前所有事物的发展轨迹,我认为对于像 AOSP 这样的项目,由于经济模式的转变,其弊端将超过益处。SBOM 的减少(从而攻击面的缩小)将比节省数百个导入依赖项的工作量大得多。软件领域的垂直整合趋势迟早会发生。