Что такое gsi и non gsi
Android 10. GSI образы системы уже доступны для скачивания. Что это такое и зачем они нужны
При включении смартфона, компьютера, ноутбука, планшета и прочих устройств подобного типа запускается операционная система. Например, на мобильных устройствах это может быть Android. На компьютере или ноутбуке при желании мы можем запустить вторую операционную систему, а как быть в случае с Android?
Для этого существуют «живые» (Live) загрузочные версии Android 10, первые образы которой стали доступны начиная с сегодняшнего дня. Это так называемые GSI или Generic System Images, которые Google начала выпускать как для ARM64, так и для x86 платформ.
Компания подчеркивает, что GSI предназначены для разработчиков и в настоящий момент их поддержку (начиная с Android Q Beta 4) имеют смартфоны Google Pixel. Речь идет о новой функции Android, которую Google называет «Динамическое обновление системы.
С помощью программы ADB, вы можете создать временный системный раздел на устройствах поддерживающих Treble в который можно установить образ Android из GSI и запускать его как вторую операционную систему.
Это похоже на загрузочные (Live) дистрибутивы Linuх, которые можно запускать на ПК, ноутбуках и некоторых планшетах.
Таким образом, несмотря на то, что GSI предназначены для разработчиков программного обеспечения, некоторые из обычных пользователей Android наверняка захотят запустить на своих устройствах самую свежую на сегодняшний день версию операционной системы Google, не теряя при этом заводскую прошивку.
Все прошивки в одном посте
В данном посте я разберу все(Ну может многие) виды и подвиды прошивок на android.
Тут будут как официальные, так и сделанные Васей из соседнего двора.
Для всех тестов я использовал один из самых популярных для прошивки телефон Xiaomi Redmi Note 7. Начнём!
Приставка GSI означает то что прошивка идёт со встроенным говном от производителя. Иногда это может быть просто одна программка которую можно удалить, а иногда может быть пак встроенных программ таких как инстаграм либо тик ток.
1. Pixel Experience
Стоковая прошивка. Имеет крутой дизайн. Не стабильная. Батарейку держит очень хорошо. Кучу багов и ограничений. Рекомендую бежать от нее подальше.
3. Oxygen OS GSI/nun GSI
Очень крутая прошивка, батарейку держит очень хорошо. Некоторые траблы с камерой и стабильно раз в пару дней намертво зависает. В целом рекомендую.
Голый Android. Если вы умеете сами кастомизировать прошивки(Тут нет нечего сложного) тогда для вас она отлично подойдёт.
6. Ubuntu Touch GSI
Моя любимая прошивка. Сразу скажу это не андроид, а полноценный линукс на вашей трубе. Пользовался около 2х месяцев и очень понравилась. Из багов:
•В случае некоторых юзеров, не работал Bluetooth. Вам может повезти.
•Подтормажиает список недавних приложений.
Так как почти все по портировано под Arm то соответственно они пашут на убунту тач.
Удалось поставить gimp, blender, wine(arm) и какой-то эмулятор апк. Почему ушёл? Выпала кнопка на телефоне из-за чего пришлось уйти на зелёного робота. А на убунте были проблемы с включением телефона. Также на данный момент разрабы работают уже на нативном запуске андроид программ. Ну и в таком случае уже можно будет мне как некрофилу вернуться к своему трупу.
Очень интересный проект с огромным количеством функций. К примеру можно поставить графический пароль 8*8.
Для ознакомления. Ознакомился. Говно говном. Дальше
Ну что сказать, прикольно. Но для полноценного использования не стоит.
Прошивок куча, но все работают как говно. Рана ещё.
Что такое GSI-версия Android и чем она отличается от кастомной прошивки?
Четыре года назад появилась технология Project Treble, а вместе с ней GSI-версии операционной системы Android. Рассказываем, как после этого изменился мир Android.
В 2017-ом году Google реализовала самое значимое обновление за все время существования Android: изменила структуру операционной системы на модульную. Нововведение (оно получило название Project Treble) преследовало самую что ни на есть благую цель – ускорить выпуск обновлений для смартфонов от разных производителей.
GSI Android – это общий образ системы (от английского Generic System Image), почти аналог кастомной прошивки, но с несколькими отличиями.
Что такое общий образ системы GSI?
В течение многих лет распространение апдейтов для Android осложнялось двумя вещами: огромным разнообразием мобильного железа, под который вендорам приходилось «допиливать» очередную сборку ОС, и необходимостью эти самые изменения согласовывать с Google.
Те, кого не устраивало положение дел с официальными обновлениями, могли перейти на одну из кастомных версий Android, например, Lineage OS, которые зачастую и обновлялись быстрее, и давали устройству больше функциональности.
Кастомные прошивки существуют и по сей день, хотя уже и не пользуются такой популярностью, как 7-8 лет назад. Основная их часть создается на основе исходного кода Android с учетом особенностей конкретной модели. В сборку входит не только сам образ системы, но и ядро, а также все специфические разделы и библиотеки, необходимые для того, чтобы заменить оригинальную прошивку и обеспечить работу большинства функций смартфона.
Поскольку кастомные ROM’ы разрабатываются под каждую отдельно взятую модель, разработчику под силу устранить некоторые слабые места устройства, например, сбои в работе Wi-Fi или камеры.
Созданием сторонних сборок редко занимается один человек. Поскольку работа включает в себя тестирование, выявление ошибок и их оперативное исправление, для ее выполнения требуется целая команда специалистов. Без этого всего обеспечить стабильную работу сборки невозможно.
Кастомные сборки ценились не только за продолжительные апдейты, высокую производительность, но и за возможность модифицировать телефон так, как не позволяла официальная версия системы.
Но со временем это преимущество потеряло смысл: Google внесла в Android столько функций, что теперь и на официальных прошивках у пользователей практически неограниченные возможности для моддинга.
А в 2017 году большие изменения произошли и в области обновления. В Oreo Google впервые применила технологию модульности Project Treble, которая разделила программное обеспечение устройства на две части: непосредственно операционную систему и код нижнего уровня (ПО, специфичное для «железа» конкретного устройства).
Так и появилась концепция GSI – универсальный образ системы Android, который способен функционировать на разных телефонах независимо от их аппаратного обеспечения. Образ системы выступает тут в качестве слоя, который не затрагивает код нижнего уровня, а просто накладывается поверх него.
Project Treble позволяет изменить операционную систему смартфона, не вмешиваясь в нижний слой программного обеспечения, который отвечает за работу аппаратных компонентов.
Этим действием Google решила победить проблему медленного и слабоэффективного распространения обновлений. Начиная с Android Oreo, производителям больше не нужно переписывать каждую очередную версию Android с нуля под все актуальные девайсы.
Недовольными остались только владельцы старых устройств. Новые возможности обновлений коснулись только тех смартфонов, которые из коробки работали на Android Oreo, да и то не всех.
А что пользовательские ROM’ы? Они по-прежнему остаются доступным способом моддинга Android, просто теперь часть из них выходит в универсальной форме GSI. Единственным требованием для установки такой сборки является наличие разблокированного загрузчика.
Что будет, если установить на смартфон GSI-версию Android?
Изменения могут быть явными, а могут и вовсе отсутствовать. Поскольку кастомные дистрибутивы разрабатываются под индивидуальные особенности каждого устройства, они позволяют полностью раскрыть его аппаратные возможности. Если в таких сборках обнаружится баг, разработчики постараются устранить его в кратчайшие сроки.
GSI-версии Android такого пристального внимания не получают, поскольку они являются универсальной прошивкой для разных моделей телефонов. Проблемы в них обнаруживаются довольно часто, и к чести сообщества разработчиков, на их исправление направляются огромные усилия, ведь от их стабильной работы зависит функциональность огромного числа устройств.
Но абсолютно на все сообщения об ошибках отреагировать невозможно. Если проблему зафиксировали всего пара-тройка пользователей, разработчики не дадут ей приоритета в очереди на исправление.
Это не значит, что все GSI-сборки полны багов. По большей части их функциональность не вызывает вопросов, и для многих смартфонов Android это единственный способ уйти с официальной прошивки на пользовательский ROM.
Что лучше – кастомная прошивка или GSI?
В мире по-прежнему много людей, заинтересованных в моддинге Android. Это и программисты, и простые пользователи, которым нравится экспериментировать с возможностями своих девайсов.
Если у вас есть сильное желание кастомизировать свой смартфон по максимуму, лучше поискать для него неофициальный ROM: с ним меньше вероятности столкнуться с багами, а если таковые возникнут, шанс получить апдейт с исправлениями будет выше.
Но если кастомные ROM’ы под ваш телефон отсутствуют, можно попробовать GSI-прошивку. Только в обязательном порядке стоит поискать информацию от людей, которые уже запускали ее на вашей модели смартфона, изучить проблемы, с которыми они столкнулись, и по возможности отписаться о результате.
GSI-сборку получится установить только в том случае, если ваш телефон участвует в программе Project Treble.
Что такое gsi и non gsi
Начнем с общих вопросов:
Q: Ну и кто все это придумал? Проклятые производители простым гикам жизнь усложняют?
A: Новая структура «A/B разделов» разработана непосредственно Google-ом как часть глобальных изменений в архитектуре Android. Она успешно используется в смартфонах Google Pixel, Essential Phone и различных других устройствах. В дальнейшем все больше устройств от сторонних производителей будут ее использовать. Ничего плохого и страшного в этом нет, наоборот, открывается много новых возможностей.
Таблица разделов на примере Google Pixel:
Дабы наглядно отобразить, изложенную выше, теорию и увидеть отличия по сравнению с другими устройствами — познакомимся с таблицей разделов Google Pixel.
Если вы вообще не знакомы со структурой разделов в Linux-подобных системах, и Android в частности, — советую поискать информацию об этом в Google, благо ее полно.
Нас интересуют конкретные разделы, существующие в двух копиях для наглядности и демонстрации.
Итак (раскрываем код полностью):
/dev/block/bootdevice/by-name/aboot_a # Разделы первого загрузчика (Слот «a»)
/dev/block/bootdevice/by-name/apdp_a # Разделы первого загрузчика (Слот «a»)
/dev/block/bootdevice/by-name/bootlocker_a # Разделы первого загрузчика (Слот «a»)
/dev/block/bootdevice/by-name/cmnlib32_a # Разделы первого загрузчика (Слот «a»)
/dev/block/bootdevice/by-name/cmnlib64_a # Разделы первого загрузчика (Слот «a»)
/dev/block/bootdevice/by-name/devcfg_a # Разделы первого загрузчика (Слот «a»)
/dev/block/bootdevice/by-name/hosd_a # Разделы первого загрузчика (Слот «a»)
/dev/block/bootdevice/by-name/hyp_a # Разделы первого загрузчика (Слот «a»)
/dev/block/bootdevice/by-name/keymaster_a # Разделы первого загрузчика (Слот «a»)
/dev/block/bootdevice/by-name/msadp_a # Разделы первого загрузчика (Слот «a»)
/dev/block/bootdevice/by-name/pmic_a # Разделы первого загрузчика (Слот «a»)
/dev/block/bootdevice/by-name/rpm_a # Разделы первого загрузчика (Слот «a»)
/dev/block/bootdevice/by-name/tz_a # Разделы первого загрузчика (Слот «a»)
/dev/block/bootdevice/by-name/xbl_a # Разделы первого загрузчика (Слот «a»)
/dev/block/bootdevice/by-name/aboot_b # Разделы второго загрузчика (Слот «b»)
/dev/block/bootdevice/by-name/apdp_b # Разделы второго загрузчика (Слот «b»)
/dev/block/bootdevice/by-name/bootlocker_b # Разделы второго загрузчика (Слот «b»)
/dev/block/bootdevice/by-name/cmnlib32_b # Разделы второго загрузчика (Слот «b»)
/dev/block/bootdevice/by-name/cmnlib64_b # Разделы второго загрузчика (Слот «b»)
/dev/block/bootdevice/by-name/devcfg_b # Разделы второго загрузчика (Слот «b»)
/dev/block/bootdevice/by-name/hosd_b # Разделы второго загрузчика (Слот «b»)
/dev/block/bootdevice/by-name/hyp_b # Разделы второго загрузчика (Слот «b»)
/dev/block/bootdevice/by-name/keymaster_b # Разделы второго загрузчика (Слот «b»)
/dev/block/bootdevice/by-name/msadp_b # Разделы второго загрузчика (Слот «b»)
/dev/block/bootdevice/by-name/pmic_b # Разделы второго загрузчика (Слот «b»)
/dev/block/bootdevice/by-name/rpm_b # Разделы второго загрузчика (Слот «b»)
/dev/block/bootdevice/by-name/tz_b # Разделы второго загрузчика (Слот «b»)
/dev/block/bootdevice/by-name/xbl_b # Разделы второго загрузчика (Слот «b»)
/dev/block/bootdevice/by-name/modem_a # Раздел первого модема/радиомодуля (Слот «a»)
/dev/block/bootdevice/by-name/modem_b # Раздел второго модема/радиомодуля (Слот «b»)
/dev/block/bootdevice/by-name/boot_a # Раздел первого ядра (Слот «a»)
/dev/block/bootdevice/by-name/boot_b # Раздел второго ядра (Слот «b»)
/dev/block/bootdevice/by-name/vendor_a # Первый проприетарный раздел (Слот «a»)
/dev/block/bootdevice/by-name/vendor_b # Второй проприетарный раздел (Слот «b»)
/dev/block/bootdevice/by-name/system_a # Первый системный раздел (Слот «a»)
/dev/block/bootdevice/by-name/system_b # Второй системный раздел (Слот «b»)
Как видно из выдержки выше, — имеются два, независимых между собой, слота, а именно «группы разделов», которые содержат в себе основные, обновляемые компоненты прошивки.
Два представленных слота состоят из:
Bootloader (загрузчик) — 28 разделов (14 на каждый слот).
Radio/Modem (радиомодуль) — 2 раздела (по одному на слот).
Boot (ядро) — 2 раздела (по одному на слот).
Vendor (драйверы) — 2 раздела (по одному на слот).
System (система) — 2 раздела (по одному на слот).
Остальные разделы, не указанные в таблице, представлены в одном экземпляре за ненадобностью их деления.
Обратите внимание раздел пользовательского хранилища (userdata) всегда один! Именно поэтому вы не можете (без очистки хранилища) одновременно использовать две абсолютно разных прошивки, будет конфликт. Возможно одновременное использование одинаковых по типу прошивок (а в некоторых случаях и это невозможно без сброса данных).
Принципиальные отличия по сравнению с другими устройствами:
С дублированием разделов и, структурой в целом, разобрались. Однако, вы могли заметить (если просматривали полную таблицу разделов) отсутствие, привычных в любом устройстве, разделов «/recovery» и «/cache». Да, их действительно нет. Но могут и встречаться в отклонениях от нормы.
Q: Стоп. Но если раздела для Recovery нет, а сам Recovery есть (Он ведь есть, правда?), где же он находится?
A: Система восстановления (Recovery) включена в состав образа ядра (boot). А потому, наличие, отсутствие и тип установленного recovery напрямую зависят от ядра системы. Переключение в него (Recovery), как и раньше, осуществляется специальным флагом в «/misc» разделе.
Именно в этом и состоит загвоздка установки TWRP — его как-то нужно «засунуть» в ядро. Потому TWRP сначала временно загружают (устанавливать то его некуда), а затем уже из TWRP, специальным скриптом, на лету распаковывается ядро и вшивается в него TWRP. Такая же схема «перепаковки ядра на лету» применяется при получении «systemless» рут-прав через SuperSU и Magisk.
Q: Хорошо, а что же тогда случилось с «/cache» разделом?
A: В привычных устройствах он необходим лишь для хранения OTA обновлений и системных логов Recovery, в данном же случае, ввиду применения новой схемы этих самых обновлений (см. ниже), раздел стал попросту «не нужОн». Вот от него и избавились.
Ручное переключение слотов:
Естественно, помимо самих слотов, должен быть способ ручного взаимодействия с ними. И он есть. Для ручного переключения текущего активного слота необходимо воспользоваться утилитой fastboot. Команды:
Итоги и положения:
1. Между слотами как система, так и сам пользователь могут переключаться.
2. Изначально (с завода) слоты полностью идентичны между собой. Различия появляются после применения любого OTA обновления системы.
3. Слоты изолированы между собой. Состояние и целостность одного слота никак не влияет на другой. За исключением применения OTA обновлений (см. ниже).
«Seamless» система обновлений:
Итак, с разделами и слотами разобрались. Но что же там с обновлениями, наверняка их тоже коснулись изменения, ввиду описанного выше?
Да, OTA обновления на устройствах с A/B структурой кардинально отличаются от того, что мы можем видеть на других устройствах.
Android 8.0+ — трансляция обновлений:
Начиная с версии Android 8.0 возможна (но не обязательна) частичная реализация трансляции обновлений с одновременным их применением (прямая запись).
Это значит, что обновления не нуждаются в предварительной их загрузке, а применяются «на лету».
Как установить Android 11 GSI на любое устройство Project Treble
Замечания: Как вы знаете, мы тестируем GSI Android 11 на Poco F1. Кроме того, обязательно сделайте резервную копию всех ваших файлов, поскольку, скорее всего, вам придется полностью стереть внутреннее хранилище из-за проблем с шифрованием.
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 не будет доступен до августа 2021 года, поэтому официальные GSI-сборки – это единственный способ протестировать Android Q на смартфонах, которые не входят в линейку устройств Pixel.
Как узнать, поддерживает ли мой смартфон 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.
Требования
Перед началом установки бета-версии Android Q необходимо проверить устройство на совместимость с Project Treble, и можно ли установить образ системы из загрузчика.
Что нужно сделать в-первую очередь?
Перед тем, как мы приступим к следующему шагу, мы должны вас предупредить, что при установке GSI-сборки придётся полностью форматировать ваше устройство. Поэтому сделайте резервную копию своих данных, прежде чем приступать к каким-либо действиям.
Ещё один важный момент, все GSI-сборки не проходят тесты CTS на момент своего выхода. Поэтому, если ваше приложение использует протокол SafetyNet для проверки устройства на прохождение CTS-теста – ничего не получится. Кроме того, эти сборки не рекомендуется использовать на постоянной основе, так как они полны различных багов. Google опубликовала список с известными на данный момент багами GSI-сборок у себя на сайте. В случае обнаружения новых багов, вы можете сообщить об этом Google, заполнив соответствующую форму (см. Google Issue Tracker).
Treble
Вопреки расхожему мнению, основная проблема, с которой сталкиваются производители смартфонов при обновлении прошивок своих телефонов, — это вовсе не пофигизм и лень (хотя это тоже часто встречается), а необходимость ждать, пока производители чипсетов и других хардварных компонентов обновят драйверы до новой версии Android.
Дело в том, что Android, как и многие другие продукты Google, очень долгое время развивался в режиме вечной беты. Это значит, что Android менялся. Не только и не столько в плане интерфейса, сколько в плане внутренней архитектуры.
В Android никогда не было устоявшегося, обратно совместимого интерфейса между системой и драйверами. В большинстве случаев нельзя было просто взять новую версию Android и «посадить» ее на драйверы и ядро Linux от старой версии. Почти всегда что-нибудь да отваливалось.
Требовались обновленные драйверы, разработкой которых занимался производитель железа, а вовсе не производитель смартфона. Поэтому, если производитель чипсета, камеры или Wi-Fi-адаптера по тем или иным причинам отказывался поддерживать старое железо (что происходит очень часто, а в случае с такими компаниями, как MediaTek, постоянно), полноценный порт новой версии Android становится почти невозможен.
Создатели кастомных прошивок искали обходные пути, чтобы заставить новую версию Android работать на старых драйверах. В дело шли любые приемы от простого «не работает, забейте» до различных программных прослоек, обеспечивающих работу на устаревших драйверах. Так, в кастомных прошивках для Xiaomi Redmi 1s есть прослойка, которая позволяет использовать камеру в Android 7.1.1, хотя драйверы для нее застряли еще на уровне версии 4.4.4.
Однако для компании — производителя смартфона такой подход зачастую неприемлем. Устройство с выполненным подобным образом портом может просто не пройти сертификацию Google. Кроме того, такие прослойки нередко приводят к сбоям в неожиданных местах и не обеспечивают новую функциональность, которая может требоваться Android для корректной работы (например, поддержка новых режимов камеры).
К счастью, в какой-то момент Google решила положить конец этой вакханалии и стандартизовать-таки программный интерфейс между драйверами и Android. Это и есть инициатива Treble, и она была воплощена в жизнь в Android 8.0.
Суть Treble проста и уже должна быть понятна: код Android разделяется на две независимые части, одна из которых содержит драйверы и весь зависимый от железа код, а вторая — саму операционную систему. Программный интерфейс между этими компонентами стандартизуется и остается стабильным между релизами Android. Как результат, для портирования новой версии Android достаточно портировать платформенно независимую часть системы, и она корректно заработает на имеющихся драйверах и версии ядра Linux, с которой смартфон был выпущен на рынок.
Так было…
…а так теперь
Это в теории. На практике же есть пара подводных камней.
Теперь о самих Treble-совместимых прошивках. Сразу после выпуска Android 8.0 Google начала публиковать так называемые образы GSI (Generic System Image). Это официальная сборка «чистого» Android (AOSP) для Treble-совместимых устройств. В теории ее можно прошить на разблокированное устройство с помощью fastboot и получить официальный Android.
Android 10 GSI на 15 различных устройствах
Чуть позже GSI-сборки начали подготавливать и разработчики кастомных прошивок. Например, ты можешь скачать GSI-сборку от phhusson с множеством фиксов для разных устройств. В теме, посвященной Treble, на 4PDA есть множество Treble-совместимых прошивок, включая LineageOS. Ну а проверить свое устройство на совместимость с Treble можно с помощью приложения Treble Check.
Проверяем совместимость с Project Treble
Откройте консоль на компьютере и введите следующую команду:
adb shell getprop ro.treble.enabled
Если в ответ придёт false, значит ваше устройство не совместимо с Project Treble. Так что дальше можете не продолжать. Если же ответ true, переходим к следующему шагу.
Затем вводим эти команды:
В полученном ответе нужно найти раздел [vendor], а внутри этого раздела найти строку namespace.default.isolated. Если напротив стоит значение true, значит на ваше устройство можно установить GSI-сбоку поверх образа Android 9 Pie. Если же стоит значение false, тогда вы можете установить GSI-сборку только той версии, которая сейчас стоит на вашем устройстве.
Как это должно выглядеть на примере OnePlus 6T
Теперь вам нужно подтвердить, есть ли на вашем устройстве рут. Если ваше устройство было обновлено до Android 9 Pie, наличие рута необязательно, но он необходим для поддержки OTA-обновлений. Введите следующие команды, чтобы проверить, есть ли на вашем устройстве рут:
Теперь, когда вы убедились, что ваше устройство поддерживает Project Treble, вам нужно выяснить какую версию GSI-сборки скачивать, так как есть различные образы для различных архитектур. Введите следующую команду, чтобы узнать, какая архитектура используется на вашем устройстве:
adb shell getprop ro.product.cpu.abi
Выпишите на листок бумаги полученную информацию: она вам понадобится при скачивании GSI-сборки.
Вывод
По мнению Google, Project Treble ускорит и упростит выход обновлений. А первой модульной версией ОС, станет Android 8.0 Oreo, где реализована установка обновлений, при полном отсутствии свободного места во внутреннем накопителе. Так же, если производитель мобильного устройства прекратит дальнейшую поддержку, при помощи Google Play получится и дальше получать актуальные патчи безопасности, где закрыты различные уязвимости системы. Владелец не получит новые функции, за то снизится вероятность взлома и кражи личной информации.
Скачиваем GSI-сборку
Как только файл скачается, распакуйте его. Внутри должно быть 2 файла: system.img и vbmeta.img.
Установка GSI-сборки
На этом всё, при дальнейшем запуске смартфона он должен запуститься с установленной GSI-сборкой. Стоит отметить, что Android Q beta 2 GSI не получается установить на OnePlus 6T, а вот на Xiaomi Mi 9 можно. Пишите свои мысли о новом Android Q в комментариях.