Проект Project Treble — как сделать свой Андроид уникальным?

Project Treble

Если вы хотите начать разработку приложения для следующей версии Android – вы уже можете протестировать своё приложение с помощью эмулятора Android Studio, или смартфона линейки Google Pixel. В этом году Google представила очередную разработку под названием Project Treble, которая позволит производителям быстрее выпускать обновления для приложений на Android. Вы можете установить официальную GSI-сборку Android Q на своё устройство, если оно совместимо с Project Treble.

Суть Project Treble заключается в модульности операционной системы, когда основа ОС отделена от установленных поверх неё прошивок. Это позволит производителям менять только основу ОС при выходе новых версий Android, что увеличит скорость выхода обновлений. В дополнение к тестам CTS, с помощью которых тестируются приложения, появился новый набор тестов VTS, или Vendor Test Suite.

С помощью тестов VTS производители смогут проверить, соответствуют ли их устройства требованиям Project Treble. Одна из самых главных деталей, которую необходимо проверять производителям устройств при выходе очередного обновления – это возможность загрузки GSI-сборки на устройства, совместимые с Project Treble. GSI-сборка – это чистая версия Android, которую используют производители устройств для проверки на наличие поддержки Project Treble, при выпуске нового смартфона. Однако Google хочет, чтобы разработчики использовали GSI-сборки для проверки своих приложений на совместимость с актуальной версией Android.

Например, если у вас смартфон Google Pixel, единственный способ протестировать своё приложение в будущей версии Android – это установить эмулятор Android Studio. Вы также можете воспользоваться специальным облачным сервисом для тестирования, ну или купить смартфон Google Pixel.

У каждого из этих способов есть свои преимущества и недостатки, но если у вас есть рабочее устройство, которое совместимо с Project Treble, и вы не хотите тратить деньги на покупку полной версии Android Studio, чтобы снять все ограничения, почему бы не установить GSI-сборку на своё устройство? Если ваше приложение будет хорошо работать на GSI-сборке, то оно, скорее всего, будет также работать на всех устройствах с этой версией Android.

Открытый код Android Q не будет доступен до августа 2019 года, поэтому официальные GSI-сборки – это единственный способ протестировать Android Q на смартфонах, которые не входят в линейку устройств Pixel.

Для чего treble на колонках

Как выяснили, надпись treble на колонках обозначает высокочастотность или дискантную частоту. Дискантная отвечает за громкость и усиленный музыкальный сигнал. Она вступает в некую гармоничную связь с низкой частотой, то есть с Bass и в итоге образуется чистая мелодия. Проверить показатель позволит амплитудная частотная характеристика, которая изображается на графиках компьютеров профессиональных студиях или музыкальных стерео-системах. Любые отклонения выражаются в децибелах. Чем ровнее график, тем звучание музыки лучше. Резкие колебания частот говорят об искажении звука.

Надпись treble, как правило, есть на вч-динамиках или твитерах. Они работают только с высокими частотами и делают звук мощнее. Таким образом, treble отвечает за бас или мощность подачи звука, и чем он чище, тем лучше. Также treble часто можно встретить на самых обычных колонках в музыкальной студии.

Требования

Перед началом установки бета-версии Android Q необходимо проверить устройство на совместимость с Project Treble, и можно ли установить образ системы из загрузчика.

Что нужно сделать в-первую очередь?

  1. Разблокировать загрузчик, если он заблокирован. Некоторые смартфоны Samsung на Snapdragon, Huawei, Honor, Nokia (кроме Nokia 8) не подойдут.
  2. На вашем ПК должны быть установлены последние утилиты и . Использование устаревших версий утилиты Fastboot может привести к различным ошибкам.
  3. Ваше устройство должно подходить под один из этих пунктов, чтобы поддерживать работу с Project Treble:
    • Устройство работает на Android 9 Pie прямо из коробки. В случае, если вы купили устройство с предустановленным Android 9 Pie, то можете пропускать следующий шаг.
    • При выходе на рынок, устройство работало под управлением Android 8.0 или 8.1 Oreo, но было обновлено до Android 9 Pie. Чуть ниже мы расскажем, как выяснить это.

Перед тем, как мы приступим к следующему шагу, мы должны вас предупредить, что при установке GSI-сборки придётся полностью форматировать ваше устройство. Поэтому сделайте резервную копию своих данных, прежде чем приступать к каким-либо действиям.

Ещё один важный момент, все GSI-сборки не проходят тесты CTS на момент своего выхода. Поэтому, если ваше приложение использует протокол SafetyNet для проверки устройства на прохождение CTS-теста – ничего не получится. Кроме того, эти сборки не рекомендуется использовать на постоянной основе, так как они полны различных багов. Google опубликовала список с известными на данный момент багами GSI-сборок у себя на сайте. В случае обнаружения новых багов, вы можете сообщить об этом Google, заполнив соответствующую форму (см. Google Issue Tracker).

A/B-разметка

Еще одна проблема с обновлениями — отказ пользователей. Как показывает практика, многие владельцы смартфонов не хотят обновлять свои устройства, потому что: а) это отнимает время, в течение которого смартфон будет недоступен для использования; б) после обновления смартфон может работать некорректно или не включиться вообще.

В свое время разработчики Chrome OS также столкнулись с этой проблемой и создали надежную и незаметную пользователю систему бесшовного обновления (Seamless updates). Суть ее состоит в том, что вместо одного системного раздела, поверх которого накладывались бы обновления системы, Chrome OS использует два идентичных системных раздела, каждый из которых содержит свою копию операционной системы.

Обновление в Chrome OS происходит следующим образом: когда ОС обнаруживает наличие обновления, она скачивает его в фоне, устанавливает на второй (неактивный) системный раздел и помечает этот раздел как активный. После перезагрузки (не обязательно сразу после обновления) ОС запускается уже с этого раздела.

Благодаря такой схеме пользователь даже не подозревает, что система обновилась, он просто попадает в обновленную ОС после перезагрузки или включения ноутбука. При этом Chrome OS способна гарантировать, что после обновления пользователь не получит кирпич: если во время загрузки с обновленного раздела произойдет сбой — система пометит текущий раздел флагом unbootable, сделает активным «старый» системный раздел и загрузит заведомо рабочую версию ОС.

Начиная с седьмой версии Android также поддерживает бесшовные обновления и так называемую A/B-разметку разделов. Однако, так как системных разделов в устройствах с Android намного больше, чем в хромбуках, сама раскладка разделов получается более запутанной. Вот только часть разделов, которые пришлось дублировать:

  • boot — содержит ядро и RAM-диск, на устройствах с A/B-разметкой также консоль восстановления (recovery);
  • system — содержит Android, системные библиотеки, системные приложения, стандартные рингтоны, обои и так далее;
  • vendor — драйверы и все необходимые прослойки для работы с железом (Project Treble);
  • userdata — настройки, приложения и данные пользователя;
  • radio — прошивка радиомодуля (поддержка сотовых сетей);
  • vbmeta — раздел Android Verified Boot 2.0 (механизм доверенной загрузки), содержащий контрольные суммы компонентов системы.

Всего дублированных разделов может быть несколько десятков. Например, на OnePlus 6 с A/B-разметкой общее количество разделов — 72 и несколько десятков из них используются только загрузчиком.

От других разделов, наоборот, стало возможным отказаться. Устройства с A/B-разметкой не включают в себя отдельный раздел recovery (консоль восстановления, нужна для установки обновления и сброса до заводских настроек) и раздел cache, который использовался для хранения файлов обновлений (теперь обновление скачивается напрямую в неактивный раздел).


Двойные разделы на смартфоне OnePlus 6

A/B-разметка также позволила вдвое сократить размер раздела system, что вкупе с удалением разделов recovery и cache сделало переход на новую схему разметки менее болезненным. Например, на смартфонах Pixel потеря пространства составила всего несколько сотен мегабайт.

РазделРазмер A/BРазмер A-only
Bootloader 50 Мбайт × 2 50 Мбайт
Boot 32 Мбайт × 2 32 Мбайт
Recovery 0 32 Мбайт
Cache 0 100 Мбайт
Radio 70 Мбайт × 2 70 Мбайт
Vendor 300 Мбайт × 2 300 Мбайт
System 2048 Мбайт × 2 4096 Мбайт
Всего 5000 Мбайт 4680 Мбайт

Еще одно достоинство A/B-разметки — отсутствие экрана «Android is upgrading…» после обновления. Система просто загружается как обычно. Также A/B-разметка упрощает тестирование кастомных прошивок: кастом можно поставить второй системой и откатиться на первую, если что-то пойдет не так.

В целом одни плюсы и никаких минусов. Проблема только в том, что A/B-разметка до сих пор остается опциональной, а перешли на нее далеко не все производители смартфонов. Даже Samsung — крупнейший производитель устройств на Android — до сих пор использует старую разметку. И связано это, скорее всего, с нежеланием тратить средства и время на перепрофилирование уже работающей и отлаженной системы обновления.

Проверить, поддерживает ли твой смартфон A/B-разметку, можно с помощью все того же приложения Treble Check из предыдущего раздела или прочитав переменную ro.build.ab_update с помощью ADB:

Как узнать, поддерживает ли мой смартфон Project Treble?

Мой смартфон имеет поддержку Project Treble с типом обновления «А» Узнать, поддерживает ли её ваш смартфон крайне просто. Для этого есть бесплатное приложение Treble Check, доступное в Google Play. Софт не только даст вам информацию о том, поддерживает ли ваш девайс технологию, о которой мы говорим, но и какой тип обновления системы предусмотрен производителем. Это важный момент, так как если ваш смартфон имеет схему обновления «A», то в таком случае вам не подойдут прошивки от схемы «A/B» и наоборот. На профильных форумах этой теме и подборкам прошивок посвящены целые разделы.

Разница между прошивками «A» и «A/B» кроется в типе обновления. В случае с «А» прошивка вносит изменения только на уровне операционной системы Android, все остальное — графическая оболочка и прочие программные надстройки от производителя остаются нетронутыми. А прошивки с методом обновления «A/B» вносят изменения на обоих уровнях. Примечательно, что есть смартфоны, которые поддерживают исключительно первый, либо второй вариант. Изменить данное свойство, к сожалению, не представляется возможным.

У вас также мог возникнуть резонный вопрос, насчет того, почему я пишу этот материал в 2021 году, ведь технологии уже целых два года. Согласно последней официальной статистике, опубликованной Google в мае 2021 года процент устройств, работающих на версиях Android 8 Oreo и Android 9 Pie, в которых и реализована поддержка пресловутой технологии Project Treble, достиг 37%.

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

Обсудить будущее операционной системы Android и не только вы можете вместе с участниками нашего лампового чата в Telegram.

Проверяем совместимость с Project Treble

Откройте консоль на компьютере и введите следующую команду:

adb shell getprop ro.treble.enabled

Если в ответ придёт false, значит ваше устройство не совместимо с Project Treble. Так что дальше можете не продолжать. Если же ответ true, переходим к следующему шагу.

Затем вводим эти команды:

adb shell
cat /system/etc/ld.config.28.txt | grep -A 20 “[vendor]”

В полученном ответе нужно найти раздел [vendor], а внутри этого раздела найти строку namespace.default.isolated. Если напротив стоит значение true, значит на ваше устройство можно установить GSI-сбоку поверх образа Android 9 Pie. Если же стоит значение false, тогда вы можете установить GSI-сборку только той версии, которая сейчас стоит на вашем устройстве.

Теперь вам нужно подтвердить, есть ли на вашем устройстве рут. Если ваше устройство было обновлено до Android 9 Pie, наличие рута необязательно, но он необходим для поддержки OTA-обновлений. Введите следующие команды, чтобы проверить, есть ли на вашем устройстве рут:

adb shell
cat /proc/mounts | grep -q /dev/root && echo “system-as-root” || echo “non-system-as-root”

Теперь, когда вы убедились, что ваше устройство поддерживает Project Treble, вам нужно выяснить какую версию GSI-сборки скачивать, так как есть различные образы для различных архитектур. Введите следующую команду, чтобы узнать, какая архитектура используется на вашем устройстве:

adb shell getprop ro.product.cpu.abi

Выпишите на листок бумаги полученную информацию: она вам понадобится при скачивании GSI-сборки.

Установите Android 11 GSI на любом устройстве проекта Treble

Прежде чем идти дальше, Я предполагаю, что вы настроили ADB, разблокировали загрузчик и проверили совместимость Treble с вашего смартфона. Теперь, когда мы ознакомились с основами и загрузили необходимые файлы, мы собираемся установить Android 11 GSI на любое устройство Project Treble.

1. Подключите устройство Android к компьютеру и скопируйте четыре файла, которые вы скачали – восстановление ZIP-файла, образа GSI, EDF, полного ПЗУ или образа поставщика – на ваш смартфон. После этого выполните следующую команду, чтобы войти в режим fastboot / bootloader.

2. Затем распакуйте ZIP-файл OrangeFox на свой компьютер и сохранить файл recovery.img в той же папке ADB.

Установите Android 11 GSI на любом устройстве проекта Treble

3. После перехода в режим быстрой загрузки введите следующую команду, чтобы запустить образ для восстановления. Обязательно сохраните образ восстановления в той же папке ADB, После запуска восстановления OrangeFox нажмите «Установить» и проведите вправо, чтобы обновить ZIP-файл восстановления OrangeFox. Он будет установлен и перезапущен в рекавери автоматически.

Note: Этот шаг относится к установке восстановления OrangeFox. Если вы используете TWRP, вам нужно будет следовать инструкциям по установке TWRP.

fastboot boot recovery.img

Установите Android 11 GSI на любом устройстве проекта Treble 1

4. Теперь перейдите в Clean -> Advanced Sweep. Вот, выберите Dalvik, кеш, систему, провайдера и данные и сделать чистую тряпку для мытья посуды. Обязательно установите флажок «Поставщик», так как мы должны сначала заменить поставщика. Кроме того, НЕ трогайте «внутреннее хранилище», так как все наши файлы сохранены здесь.

Установите Android 11 GSI на любом устройстве проекта Treble 2

5. Затем перейдите в «Установить» и файл Flash pixel 4 ROM что у вас есть правильная реализация поставщика или образ поставщика.

Note: Если вы отобразили выделенное изображение провайдера, вы можете перейти к шагу n. ° 9 немедленно.

Установите Android 11 GSI на любом устройстве проекта Treble

6. После этого установите Force Disablery Encryption на избегать аппаратного шифрования в первой загрузке.

Установите Android 11 GSI на любом устройстве проекта Treble

7. После этого протрите кэш один раз и нажмите «Перезагрузить систему». Он загрузится в новый Пиксель 4 ROM. Если вы проблема шифрования затем перейдите к следующему разделу для решения.

Установите Android 11 GSI на любое устройство с проектами Treble 3

8. Теперь, когда вы успешно загрузились в Пиксель 4 ROM, снова включите ADB из настроек разработчика и перезапустите восстановление OrangeFox. Вы можете запустить восстановление OrangeFox, выполнив следующую команду ADB. Чтобы прояснить ситуацию, мы установили Пиксель 4 для правильной реализации вендора, и теперь мы установим Android 11 GSI поверх этого.

Note: В случае, если вам пришлось стереть внутреннее хранилище из-за проблем с шифрованием, обязательно скопируйте образ GSI обратно на смартфон перед перезагрузкой для восстановления.

Установите Android 11 GSI на любое устройство с проектами Treble 4

9. Теперь, когда мы снова в процессе восстановления, нажмите Установить -> Установить образ. Вот, выберите образ GSI, а затем выберите «Образ системы». После этого проведите пальцем, чтобы прошить GSI, и после этого нажмите «Перезагрузить систему». Нет необходимости чистить что-либо до или после установки.

Установите Android 11 GSI на любое устройство проекта Treble 7

10. Вы загрузитесь прямо в Android 11 GSI.

Возникли проблемы с шифрованием после установки Android? 11 GSI?

1. В рекавери зайдите в Удалить -> Форматировать данные и введите «да», чтобы полностью стереть внутреннюю память. Это расшифрует устройство, и вы можете легко загрузить.

Установите Android 11 GSI на любое устройство с проектами Treble 3

2. Если вышеуказанный метод не сработал, вам нужно изменить раздел данных с f2fs на ext4. Для этого откройте Sweep -> Advanced Sweep -> Partition Options -> Select. Данные -> Параметры раздела снова -> Изменить ФС (файловая система), Здесь выберите «ext4», а затем проведите пальцем, чтобы изменить. После этого нажмите «Перезагрузить систему». На этот раз он загрузится без проблем с шифрованием.

Установите Android 11 GSI на любое устройство с проектами Treble 4

Понравилась статья? Поделиться с друзьями:
NokiaGid.ru
Adblock
detector