AOSP без Pixel: Google оставила кастомные прошивки без опоры

AOSP без Pixel: Google оставила кастомные прошивки без опоры

Формальная публикация кода — без кода, который реально нужен.

image

В начале года Google объявила, что теперь будет разрабатывать Android полностью за закрытыми дверями, чтобы упростить и ускорить работу. Речь шла о переходе на единую внутреннюю ветку вместо нескольких параллельных. Тогда часть сообщества Android-разработчиков отнеслась к новости с тревогой, но буря быстро утихла, ведь компания и раньше большую часть изменений вносила в закрытом режиме, при этом пообещав, что исходный код по-прежнему будет публиковаться. Однако недавние изменения в открытой части Android снова вызвали волну опасений, что Google может отказаться от полноценного распространения исходников.

На этой неделе компания всё-таки выложила исходный код Android 16, как и обещала, в рамках проекта AOSP под открытой лицензией Apache 2.0. Но разработчики заметили, что в этот раз чего-то явно не хватает. Из публикации исчезли так называемые device tree-файлы для устройств Pixel — это набор конфигураций, который раньше позволял легко собирать Android для конкретных моделей. Кроме того, не были выложены новые бинарные драйверы, а история коммитов в исходниках ядра была сжата до одного общего коммита. Раньше Google всё это регулярно публиковала, и исчезновение таких элементов стало тревожным сигналом.

Некоторые решили, что это первый шаг к сворачиванию проекта AOSP. В ответ на это вице-президент Google по платформе Android Шон Чау заявил, что слухи необоснованны, и подчеркнул, что проект остаётся открытым. Он объяснил, что Android нуждается в референсном устройстве, которое не зависит от конкретного производителя и может свободно использоваться разработчиками. В качестве такой платформы теперь будет выступать виртуальное устройство Cuttlefish, которое запускается на обычных ПК и позволяет тестировать новые функции Android без привязки к аппаратному обеспечению. Также Google продолжит поддержку универсальных системных образов GSI, подходящих для большинства устройств.

С точки зрения Google логика изменений понятна. Компания больше не хочет использовать Pixel как эталон для AOSP, так как этот смартфон представляет собой конечный потребительский продукт с множеством фирменных доработок. Виртуальный Cuttlefish в этом смысле выглядит более универсальным, хотя и не способен на сто процентов воспроизвести поведение настоящего железа.

Куда важнее другое — последствия для сообщества разработчиков кастомных прошивок, таких как LineageOS. Один из ключевых участников проекта, Нолан Джонсон, заявил, что собирать прошивки для Pixel станет «болезненно» сложно. Раньше разработчики могли просто взять готовые конфигурации от Google, внести свои изменения и собрать систему. Теперь же им придётся использовать устаревшие конфигурации от Android 15 и методом проб и ошибок выяснять, что изменилось, анализируя предварительно собранные бинарники.

Без device tree невозможно полноценно собрать Android для конкретного устройства, поскольку эти файлы описывают аппаратную начинку, драйверы и другие важные параметры. Кроме того, исчезновение истории коммитов в ядре лишает разработчиков возможности отслеживать исправления ошибок и уязвимостей. Хотя Google юридически не обязана публиковать эти данные, она делала это годами, потому что Pixel рассматривался как открытая тестовая платформа.

Теперь же всё изменилось. Для команд LineageOS и GrapheneOS, которые создают собственные сборки Android для Pixel, процесс стал заметно труднее. Хотя технически они по-прежнему могут собирать AOSP, теперь им придётся с нуля восстанавливать всю конфигурацию, как это уже давно приходится делать при работе с другими Android-устройствами. Единственное преимущество Pixel осталось в том, что его по-прежнему легко разблокировать и установить заводской образ, но путь к стабильной кастомной прошивке стал гораздо более тернистым.