Разработчики разбирают библиотеки Android, чтобы сообщить о баге в bionic

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

В Android 17 (сборка CP3A.260905.009) функции wcscspn() и wcspbrk() ошибочно считают совпадением любой символ wchar_t >= U+0100, если набор отвергаемых символов состоит из двух и более символов, все из которых меньше U+0100. Это ломает разбор широких строк с эмодзи, CJK, кириллицей и другими не-ASCII символами. Ошибка отсутствует в публичных исходниках android-17.0.0_r1 (июнь 2026), но присутствует в сентябрьских сборках. Разработчики обнаружили её, дизассемблировав libc.so, так как исходный код AOSP был опубликован с опозданием.

Публичные исходники android17-release (android-17.0.0_r1, июнь 2026) собирают wcscspn/wcspbrk из external/llvm-libc, где используется простой вложенный цикл по wchar_t, и он корректен. Код в сентябрьских сборках отличается, значит, регрессия была внесена между июньским и сентябрьским релизами.
  1. kodebach

    Я не могу это доказать, но всё ещё думаю, что это (отчасти) из-за недавнего регламента ЕС, который сильно ударил бумерангом.

    Не помню, какой именно, но один из недавних регламентов требует, чтобы устройства получали обновления в течение определённого периода. В течение этого периода производитель должен предоставлять каждое обновление для всех своих устройств в короткие сроки. Цель была в том, чтобы флагманы не получали обновления сразу, а устройства нижнего ценового сегмента не ждали месяцами.

    Однако из-за некоторых (тоже благих по намерению) формулировок об открытом исходном коде выпуск исходного кода считается первым выпуском обновления и запускает таймер.

    Я почти уверен, что Google задерживает публичные обновления AOSP, чтобы дать своим партнёрам (в основном Samsung, полагаю) больше времени закончить сборку своих обновлений поверх AOSP.

  2. userbinator

    Один символ: обычный цикл сравнения. Верно.

    Неудивительно, что в тексте я замечаю лёгкие отголоски клаудизма.

    ИИ, «открывающий» исходники программного обеспечения — одна из лучших вещей, которые я пока что видел в его пользу.

  3. reddalo

    Новый девиз Google, похоже, звучит так: «будь настолько злым, насколько можешь».

    Нам нужна альтернатива Android — что-то, что уважает свободу пользователей.

  4. evan_a_a

    Немного гиперболизированный заголовок. Суть баг-репорта не требует дизассемблирования библиотеки. Автор бага просто сделал дополнительный шаг и провёл исследование первопричины, что, конечно, требует лёгкой работы по реверс-инжинирингу.

  5. dethos

    Нам нужен третий вариант. Будь то SalfishOS, Ubuntu Touch, Nura или что угодно, что наберёт значительное сообщество. Нам просто нужно начать развивать и инвестировать в него. Он не будет идеальным, но он предложит альтернативу и контроль для пользователей.

  6. Retr0id

    Было бы слегка забавно, если бы это привело к тому, что кто-то сделал декомпиляцию AOSP на базе ИИ.

  7. senfiaj

    ИИ начинает успешно декомпилировать бинарники; если только бинарник не обфусцирован намеренно, полагаю, это почти «открытый исходный код».

  8. duttonw

    То, что Google не выпускает, теперь не поможет в эпоху ИИ…

Ещё за этот день

2026-10-14