Вместе с выходом Android 16 компания Google выпустила открытую версию системы AOSP (Android Open Source Project), и теперь в ней отсутствуют компоненты, которые присутствовали ранее, пишет Android Authority. Это вызвало в сообществе разработчиков опасения, что Google намеревается закрыть проект, однако в компании это опровергли.
В этом году Google объявила, что будет разрабатывать Android исключительно собственными силами, чтобы упростить процесс — единая ветка существенно оптимизирует ранее разделённую работу. На сообщество инициатива оказала незначительное влияние, поскольку компания и раньше создавалa значительную часть кода платформы за закрытыми дверями. С выходом Android 16 разработчик опубликовал код AOSP под традиционной лицензией Apache 2.0, и выяснилось, что в нём отсутствуют деревья устройств (Device Tree) линейки Pixel и двоичные файлы драйверов для них, а история коммитов представлена в урезанном виде.
Ранее Google благополучно публиковала все эти данные, и отказом от этого спровоцировала новую волну опасений о прекращении поддержки AOSP. Их пришлось опровергать вице-президенту Google и генеральному менеджеру платформы Android Сэану Чау (Seang Chau). Он пояснил, что «AOSP нужно гибкое, настраиваемое и доступное эталонное устройство — независимое от какого-либо конкретного оборудования, включая таковое от Google». Поэтому теперь компания будет поддерживать виртуальное эталонное устройство Cuttlefish, которое работает на ПК и позволяет тестировать новые аппаратные функции. Google также обязалась поддерживать универсальные образы системы (Generic System Images — GSI), которые ставятся почти на любое Android-устройство.
С одной стороны, это логично: компания отказалась от использования устройств Pixel в качестве эталонных для AOSP и внесла соответствующие изменения. С другой — Cuttlefish является виртуальным устройством и может лишь имитировать работу аппаратных функций, поэтому такой эталон нельзя назвать полноценным. На практике это значительно усложнит разработку альтернативных сборок Android для устройств Pixel, сообщили в проекте LineageOS. В частности, придётся использовать деревья устройств из кода Android 15 и угадывать, какие изменения были внесены в предварительно собранные двоичные файлы каждый месяц, или же прибегать к обратной разработке. Дерево устройства представляет собой набор файлов конфигурации, определяющих аппаратную компоновку, периферийные устройства, списки проприетарных файлов и другие данные для конкретного устройства, необходимые для создания корректного образа. Ранее Google выполняла эту работу самостоятельно, теперь же разработчикам придётся создавать свои собственные деревья устройств без доступа к соответствующему исходному коду.
Проблемой может стать и решение Google об объединении истории коммитов исходного кода ядра — ранее она использовалась для извлечения отдельных функций, исправления ошибок и закрытия уязвимостей. Однако когда вся история сведена к единственному коммиту, это становится невозможным. Google не брала на себя обязательств публиковать деревья устройств, размещать двоичные драйверы или делиться полной историей коммитов ядра, но делала это годами. В результате устройства Pixel оказались по уровню открытости сведены к обычным Android-гаджетам. На смартфонах Google по-прежнему легко разблокировать загрузчик и получить заводской образ, но теперь разработчикам предстоит проделывать больший объём работы, чтобы обеспечить стабильную работу альтернативных сборок.