Открыть сервис

Project Treble

Project Treble — это архитектурная инициатива компании Google, направленная на реструктуризацию программного стека операционной системы Android. Целью проекта является упрощение и ускорение процесса выпуска обновлений операционной системы производителями устройств за счёт отделения кода, специфичного для конкретного чипа (вендорной реализации), от основной платформы Android. Project Treble был представлен в 2017 году и впервые реализован в Android 8.0 Oreo.

История

До внедрения Project Treble процесс обновления Android был крайне фрагментированным. Каждый производитель смартфонов (OEM) получал новый исходный код Android Open Source Project (AOSP) от Google, после чего производитель чипа (SoC-вендор, например, Qualcomm или MediaTek) адаптировал его под своё «железо», предоставляя бинарные драйверы и HAL (Hardware Abstraction Layer). Затем OEM-производитель интегрировал эту адаптацию, добавлял свои оболочки и приложения, и только после этого выпускал обновление. Этот цикл мог занимать от нескольких месяцев до года, а для многих устройств обновления не выпускались вовсе.

Основная проблема заключалась в том, что код вендора был тесно переплетён с кодом фреймворка Android. Любое изменение в AOSP требовало перекомпиляции и тестирования всего стека, включая вендорный код, что делало обновления дорогостоящими и трудоёмкими.

Project Treble был анонсирован на конференции Google I/O в мае 2017 года. Начиная с Android 8.0 Oreo, все новые устройства, выпускаемые с этой версией, должны были поддерживать Treble. Для устройств, обновляющихся до Oreo, поддержка была опциональной.

Архитектура и принцип работы

Project Treble вводит чёткое разделение между фреймворком Android (верхний уровень, включающий системные приложения, API и службы) и вендорной реализацией (нижний уровень, включающий драйверы, HAL и код, специфичный для чипа). Ключевым компонентом является Vendor Interface (интерфейс вендора), который представляет собой стабильный API, гарантирующий совместимость между разными версиями Android.

Ключевые компоненты:

  1. Vendor Partition (раздел вендора): На устройствах с Treble выделяется отдельный системный раздел /vendor, который содержит все бинарные файлы, библиотеки и конфигурации, предоставленные производителем чипа. Этот раздел не изменяется при обновлении фреймворка Android.
  2. HIDL (HAL Interface Definition Language): Язык определения интерфейсов, который используется для описания взаимодействия между фреймворком Android и HAL в разделе вендора. HIDL позволяет вызывать функции вендорного кода через стабильный, версионированный интерфейс, не требуя перекомпиляции.
  3. Stable Vendor NDK (VNDK): Набор библиотек, которые предоставляются вендором и могут быть использованы фреймворком. Это гарантирует, что вендорные библиотеки не будут случайно перезаписаны или изменены при обновлении системы.

Процесс обновления с Treble:

  1. Google выпускает новую версию AOSP (например, Android 9 Pie).
  2. OEM-производитель берёт новый код фреймворка.
  3. Фреймворк компилируется и устанавливается на системный раздел (system).
  4. Раздел вендора (/vendor) остаётся нетронутым, так как он содержит код, написанный для старой версии Android, но совместимый с новой через стабильный Vendor Interface.
  5. Устройство загружается с новым фреймворком, используя старые драйверы и HAL из раздела вендора.

Это позволяет OEM-производителю обновлять только фреймворк, не требуя от производителя чипа новой адаптации драйверов, что значительно сокращает время разработки и тестирования.

Преимущества и недостатки

Преимущества:

  • Ускорение обновлений: Основное преимущество. Время выпуска обновлений для устройств сократилось с 6–12 месяцев до 2–3 месяцев для некоторых моделей.
  • Снижение затрат: Производители тратят меньше ресурсов на адаптацию каждой новой версии Android.
  • Увеличение срока поддержки: Устройства могут получать обновления дольше, так как основная работа сводится к обновлению фреймворка.
  • Упрощение разработки кастомных прошивок: Сообщество разработчиков (например, LineageOS) может портировать новые версии Android на устройства с Treble быстрее и проще, так как не требуется полная переработка вендорного кода.

Недостатки:

  • Сложность реализации: Внедрение Treble требует значительных изменений в архитектуре прошивки на этапе разработки устройства. Некоторые производители, особенно китайские, изначально игнорировали требования.
  • Необходимость поддержки со стороны вендора чипа: Производитель чипа должен предоставить HIDL-интерфейсы для своих драйверов, что не всегда делается для устаревших или бюджетных платформ.
  • Ограниченная совместимость: Несмотря на стандартизацию, некоторые функции, специфичные для конкретного чипа (например, камера с уникальными алгоритмами обработки), могут быть не полностью совместимы с новым фреймворком без дополнительной адаптации.

Generic System Image (GSI)

Одним из ключевых результатов Project Treble является возможность запуска Generic System Image (GSI) — универсального образа системы Android, который не содержит специфичного для устройства кода. GSI может быть установлен на любое устройство с поддержкой Treble. Это позволяет Google и сообществу тестировать новые версии Android на широком спектре устройств без необходимости иметь физический доступ к каждому из них. GSI также используется для быстрой проверки совместимости и отладки.

Критика и ограничения

Несмотря на успехи, Project Treble не решил проблему фрагментации полностью. Критики отмечают, что:

  • Многие производители не соблюдают требования: Некоторые OEM-производители, особенно в бюджетном сегменте, выпускают устройства с Treble, но не предоставляют обновления, ссылаясь на экономические или маркетинговые причины.
  • Проблема с драйверами для камеры: Качество работы камеры часто зависит от проприетарных алгоритмов обработки изображений, которые не могут быть обновлены через GSI или стандартный Treble-интерфейс. Это приводит к тому, что на устройствах с GSI камера может работать хуже или не работать вовсе.
  • Зависимость от вендора: Даже с Treble, для выпуска обновления требуется, чтобы производитель чипа предоставил обновлённые драйверы для новой версии ядра Linux, что не всегда происходит.

Влияние на экосистему

Project Treble стал важным шагом в борьбе с фрагментацией Android. Он позволил Google выпускать обновления безопасности для устройств, работающих на Android 8.0 и выше, даже если производитель не выпускает полные обновления системы. Кроме того, Treble упростил жизнь разработчикам кастомных прошивок, сделав процесс портирования более предсказуемым. Начиная с Android 10, Google также ввёл Project Mainline, который позволяет обновлять ключевые компоненты системы (например, WebView, MediaCodec) через Google Play Store, независимо от производителя устройства.

Источники

  • Android Open Source Project (AOSP) — документация по Project Treble.
  • Google I/O 2017 — анонс Project Treble.
  • Статья «Project Treble: What it is and how it works» на сайте XDA Developers.
  • Официальный блог Google Android Developers.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →