Не так много времени остаётся до официального релиза Android Q, поэтому разработчики вовсю трудятся над обновлением своих приложений под новую версию самой популярной мобильной операционной системы. Хотя большинство устройств так ещё и не обновилось до Android 9 Pie (API level 28), новые обязательные требования по целевому уровню API, о которых вы уже должны были слышать, вынудят вас перейти на API 29 в 2020 году.
Если вы ещё не обновили своё приложение, согласно требованиям API 28 – рекомендуем сделать это как можно скорее, так как Google дал время разработчикам обновить свои, находящиеся в разработке, приложения до августа 2019 года. А уже релизнутые приложения нужно обновить до ноября 2019 года.
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.
Требования
Перед началом установки бета-версии Android Q необходимо проверить устройство на совместимость с Project Treble, и можно ли установить образ системы из загрузчика.
Что нужно сделать в-первую очередь?
- Разблокировать загрузчик, если он заблокирован. Некоторые смартфоны Samsung на Snapdragon, Huawei, Honor, Nokia (кроме Nokia 8) не подойдут.
- На вашем ПК должны быть установлены последние утилиты ADB и Fastboot. Использование устаревших версий утилиты Fastboot может привести к различным ошибкам.
- Ваше устройство должно подходить под один из этих пунктов, чтобы поддерживать работу с 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).
Проверяем совместимость с 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-сборки.
Скачиваем GSI-сборку
Ссылки на скачивание официальных GSI-сборок Android Q доступны на официальном сайте здесь. Вам нужно скачать подходящую версию, в зависимости от архитектуры устройства, которую мы узнали из предыдущего шага. Скачивание может занять продолжительное время, если вы выбрали билд с мобильными сервисами Google. Рекомендуем скачивать именно такой вариант, так как вы сможете протестировать своё приложение сразу с установленными Google-сервисами.
Как только файл скачается, распакуйте его. Внутри должно быть 2 файла: system.img и vbmeta.img.
Установка GSI-сборки
- Перезагрузите загрузчик устройства, используя следующую команду:adb reboot bootloader
- Далее нам нужно отключить Android Verified Boot (AVB). Вводим следующую команду:fastboot flash vbmeta vbmeta.img
- Форматируем систему:fastboot erase system
- Теперь можно начинать установку GSI-сборки Android Q:fastboot flash system system.img
- Как только установка завершится, удаляем пользовательские данные:fastboot -w
- Перезагружаем устройство:fastboot reboot
На этом всё, при дальнейшем запуске смартфона он должен запуститься с установленной GSI-сборкой. Стоит отметить, что Android Q beta 2 GSI не получается установить на OnePlus 6T, а вот на Xiaomi Mi 9 можно. Пишите свои мысли о новом Android Q в комментариях.