AOSPソース遅延でバグ調査にバイナリ逆アセンブルが必要に

原題: AOSP Source Releases Are So Late Developers Disassemble Libraries to Report Bugs

なぜ重要か

AOSPソース遅延は開発者の透明性を損ない、ワイド文字処理バグはUnicode対応アプリ全般に影響するため、影響範囲が広い。

Android 17の2026年9月ビルド(CP3A.260905.009)において、bionic ライブラリの `wcscspn()` および `wcspbrk()` 関数がU+0100以上のワイド文字を誤って「一致」と判定するバグが報告された。公開ソースは6月版が最新であり、9月ビルドとの差分が存在しないため、開発者はライブラリを逆アセンブルして原因調査を余儀なくされている。

2026年10月12日、開発者のfrancisdb氏がAndroid NDKリポジトリにissueを提出した。問題はPixel 7・Pixel 8aで確認されており、Android 17の9月5日セキュリティパッチビルドでのみ発生する。同一端末でも8月パッチのNothing Phone 2では再現しないことから、6月〜9月の間に導入された変更が原因とみられる。

具体的な挙動は深刻だ。`wcscspn()` と `wcspbrk()` は、2文字以上のASCII文字からなる「拒否セット」を使用した場合、文字列中にU+0100以上の文字(絵文字・CJK・キリル文字・ギリシャ文字・拡張ラテン文字など)が含まれていると、その文字を誤って「セット内の一致」と判定して処理を停止する。`wcsspn()` や `wcschr()` など他の関数は正常動作している。

問題の核心は、AOSPのソース公開の遅延にある。公開されている `android-17.0.0_r1`(2026年6月)では、`wcscspn` と `wcspbrk` は `external/llvm-libc` のシンプルなネストループ実装で正しく動作する。しかし実際の9月ビルドに含まれるバイナリはそれとは異なるコードになっており、ソースが公開されていないため、開発者は逆アセンブルによって内部実装を解析しなければバグの詳細を報告できない状況に置かれている。

AOSPのソース公開がリリースビルドより数ヶ月遅れること自体は以前から指摘されてきたが、今回のケースはその影響が開発者のデバッグプロセスにまで直接響いていることを示す具体例として注目されている。

出典

github.com — 元記事を読む →