Google выпустила GSI второй бета-версии Android Q. Эти образы системы можно установить на устройства, совместимые с Project Treble, для тестирования приложений. Вот как.
По мере того, как мы приближаемся к окончательному выпуску Android Q, время, необходимое разработчикам для обновления своих приложений, сокращается. Хотя Android 9 Pie (уровень API 28) еще не доступен на подавляющем большинстве устройств, требования к уровню API Google Play, которые вам следует уже хорошо осведомлен, заставит вас перейти на уровень API 29 в 2020 году. Если вы еще не обновили свое приложение для Android 9 Pie, затем у вас есть время до августа, если вы планируете запустить новое приложение, или до ноября, если вы планируете обновить существующее приложение. Те из вас, кто хочет начать разработку для следующей версии Android, уже могут протестировать свое приложение на Эмулятор Android Studio или на физическом оборудовании, если у вас есть любой смартфон Google Pixel. Однако в этом году Google предоставляет разработчикам еще один способ протестировать свои приложения на последней версии Android: прошивку
Android Q бета-версия GSI на устройство, совместимое с Project Treble.Проект Требл — это крупная инициатива, направленная на повышение скорости, с которой производители смартфонов могут выпускать обновления программного обеспечения и безопасности. Короче говоря, Treble требует, чтобы производители устройств отделяли программное обеспечение, обеспечивающее работу оборудования, от программного обеспечения, лежащего в основе ОС. Это позволяет производителям устройств загружать новые версии Android на свои существующие устройства, чтобы они могли приступить к трудной задаче по переносу существующей базы кода поверх новой версии исходного кода Android. Дополнением к CTS является VTS, или Vendor Test Suite, набор тестов, которые производители устройств используют для проверки соответствия своих устройств требованиям Project Treble. Одной из наиболее важных проверок, которую должны проверить производители устройств, является способность Treble-совместимого смартфона загружать так называемый GSI, или универсальный образ системы. GSI — это немодифицированная сборка AOSP, предназначенная для производителей устройств, чтобы проверить, правильно ли они реализовали Treble. Однако помимо OEM-производителей Google верит что GSI могут использоваться разработчиками для тестирования совместимости приложений Android.
Например, если у вас нет Google Pixel, это единственный способ проверить поведение вашего приложения в условиях, которые лучше всего соответствуют условиям Google. Документация предназначена для того, чтобы вы либо приобрели собственное устройство Pixel, загрузили эмулятор Android Studio, либо изучили облачное тестирование. услуга. У каждого из них есть свои плюсы и минусы, но если у вас есть Treble-совместимое устройство и вы не хотите тратить деньги или сталкиваться с ограничениями эмулятора, почему бы не подключить к нему GSI? Если ваше приложение работает на GSI, оно должно работать практически на всех устройствах с этой версией Android.
Именно такой мыслительный процесс лежит в основе решения Google выпустить Android Q GSI, или, по крайней мере, мы так думаем. Исходный код Android Q не будет доступен до августа, поэтому официальные двоичные файлы GSI от Google на данный момент — единственный способ протестировать Android Q на реальном оборудовании, отличном от Pixel. Вот как вы можете начать.
Требования
Прежде чем вы даже подумаете об установке бета-версии Android Q, вам следует проверить, совместимо ли ваше устройство с Project Treble и может ли оно принимать прошивку системных образов из загрузчика.
Требования:
- Твое устройство ДОЛЖЕН есть разблокируемый загрузчик. Смартфоны Samsung с процессором Snapdragon, продаваемые в США, устройства под брендом Huawei, устройства под брендом Honor и устройства под брендом HMD Global от Nokia (кроме Нокиа 8) сюда не подходят.
- На вашем компьютере установлены последние двоичные файлы ADB и Fastboot, которые вы можете найти здесь. Устаревшие версии Fastboot могут привести к неправильной прошивке.
- Твое устройство ДОЛЖЕН встретиться один следующих критериев, которые считаются совместимыми с Project Treble:
- Устройство ЗАПУЩЕНО под управлением Android 9 Pie. Если это так, то вы можете пропустить подтверждение совместимости с Treble после достижения конца этого раздела.
- Устройство было запущено с Android 8.0 Oreo или Android 8.1 Oreo, но было обновлено до Android 9 Pie с изоляцией VNDK и системой с правами root. О том, как это узнать, мы подробно расскажем в разделе ниже.
Прежде чем идти дальше, стоит упомянуть, что для прошивки GSI вам потребуется выполнить полную очистку раздела пользовательских данных. Это означает, что вы потеряете все фотографии, видео, музыку, документы или что-либо еще во внутренней и внешней памяти устройства (/data/media). Таким образом, перед дальнейшими действиями настоятельно рекомендуется сделать резервную копию вне устройства.
Далее, имейте в виду, что эти GSI не прошли проверку CTS, поэтому, если ваше приложение использует API аттестации SafetyNet для проверки целостности устройства с помощью соответствия профиля CTS, это не сработает. Кроме того, эти сборки не предназначены для ежедневного использования, поэтому не удивляйтесь, если одна или несколько основных аппаратных функций не будут работать помимо уже задокументированных ошибок в Android Q. Google уже перечислил несколько известных проблем с GSI, которые вы можете найти здесь. Любые новые ошибки, которые вы обнаружите, должны быть зарегистрированы. здесь.
Подтверждение совместимости Treble
Выполните следующую команду:
adbshellgetpropro.treble.enabled
Если ответ ЛОЖЬ, то ваше устройство несовместимо с Project Treble, и вам не следует продолжать. Если ответ истинный, то вы можете двигаться дальше.
Затем проверьте поддержку разных версий, выполнив следующие команды:
adb shell
cat /system/etc/ld.config.28.txt | grep -A 20"\[vendor\]"
В выводе найдите раздел [продавец], а затем в этом разделе найдите пространство имен.default.isolated. Если значение этого атрибута равно истинный, то ваше устройство должно поддерживать загрузку Android Q GSI поверх образа поставщика Android 9 Pie. Если значение ЛОЖЬ, то ваше устройство сможет использовать GSI только для той же версии ОС, установленной на устройстве.
Наконец, вам необходимо подтвердить, является ли ваше устройство корневым, в котором виртуальный диск объединен с образом системы. Использование root-доступа к системе не является обязательным для устройств, обновляющихся до Android 9 Pie, но необходимо для поддержки OTA только для системы, например, в случае прошивки новой версии ОС через GSI. Выполните следующие команды и убедитесь, что выходные данные соответствуют «системе от имени root»:
adb shell
cat /proc/mounts | grep -q /dev/root && echo"system-as-root" || echo"non-system-as-root"
Теперь, когда вы знаете, что ваше устройство совместимо с Treble, вам нужно выяснить, какую версию двоичного файла GSI загрузить, поскольку для разных архитектур существуют разные образы. Чтобы узнать, какую архитектуру имеет ваше устройство, выполните следующую команду:
adbshellgetpropro.product.cpu.abi
Запишите здесь вывод, так как он понадобится вам при загрузке GSI.
Загрузка GSI
Ссылки для скачивания официальных сборок бета-версии Android Q GSI доступны в Google. здесь. Вам следует скачать соответствующую версию, исходя из архитектуры вашего устройства, которую вы выяснили на предыдущем шаге. Загрузка будет довольно большой, если вы загрузите сборку с помощью GMS или Google Mobile Services, что мы настоятельно рекомендуем, чтобы вы могли протестировать свое приложение на сборке с помощью Google Play Services.
После завершения загрузки файла его можно разархивировать. Внутри находятся два файла, system.img, и vbmeta.img.
Прошивка GSI
- Перезагрузитесь в загрузчик вашего устройства, используя комбинацию кнопок или введя команду:
adb reboot bootloader
- Далее нам нужно отключить Android Verified Boot (AVB). Вы можете сделать это, введя следующую команду:
fastbootflashvbmetavbmeta.img
- Далее сотрим системный раздел:
fastboot erase system
- Наконец-то мы можем прошить Android Q GSI с помощью:
fastbootflashsystemsystem.img
- Как только это будет сделано, сотрите раздел пользовательских данных с помощью:
fastboot -w
- Перезагрузите устройство, используя кнопку питания или введя:
fastboot reboot
Надеюсь, он загрузится через несколько минут. Эти шаги были проверены на Pixel 3 XL, но они должны работать универсально. Мы можем убедиться, что Android Q beta 2 GSI не загружается на OnePlus 6T, но загружается на Xiaomi Mi 9. Возможно, он работает на Sony Xperia XZ3, но нам говорят, что он не загружается на Moto G7. Ваш опыт может отличаться, поскольку требования Google подтверждают только совместимость GSI той же версии ОС.