Формальная публикация кода — без кода, который реально нужен.
В начале года 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 осталось в том, что его по-прежнему легко разблокировать и установить заводской образ, но путь к стабильной кастомной прошивке стал гораздо более тернистым.
В Матрице безопасности выбор очевиден