Як установити Android Q Beta GSI на свій пристрій, щоб ви могли тестувати свої програми

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 beta GSI на пристрій, сумісний із Project Treble.

Проект Treble це головна ініціатива, спрямована на підвищення швидкості, з якою виробники смартфонів можуть випускати оновлення програмного забезпечення та системи безпеки. У двох словах, Treble вимагає, щоб виробники пристроїв відокремили програмне забезпечення, яке забезпечує роботу обладнання, від програмного забезпечення, що стоїть за ОС. Це дозволяє виробникам пристроїв завантажувати нові версії Android на своїх існуючих пристроях, щоб вони могли почати важке завдання портування існуючої кодової бази поверх нової версії вихідного коду Android. Доповненням до CTS є VTS, або Vendor Test Suite, набір тестів, які виробники пристроїв використовують для перевірки відповідності своїх пристроїв вимогам Project Treble. Однією з найважливіших перевірок для виробників пристроїв є здатність смартфона, сумісного з Treble, завантажувати так званий GSI або Generic System Image. 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 і чи може він приймати миготливі системні образи із завантажувача.

Вимоги:

  • Ваш пристрій ПОВИНЕН мати розблокований завантажувач. Смартфони Snapdragon Samsung, що продаються в США, пристрої під брендом Huawei, пристрої під брендом Honor і пристрої під брендом Nokia HMD Global (крім Nokia 8) тут не кваліфікуються.
  • На вашому комп’ютері встановлено останні двійкові файли ADB і Fastboot, які ви можете знайти тут. Застарілі версії Fastboot можуть призвести до неправильного спалаху.
  • Ваш пристрій ПОВИНЕН зустріти один наступних критеріїв, щоб вважатися Project Treble-сумісним:
    • Пристрій ЗАПУЩЕНО з Android 9 Pie. Якщо це так, ви можете пропустити підтвердження сумісності з високими частотами після досягнення кінця цього розділу.
    • Пристрій був запущений з 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, які ви можете знайти тут. Будь-які нові помилки, які ви знайдете, повинні бути подані тут.

Підтвердження сумісності з високими частотами

Виконайте таку команду:

adbshellgetpropro.treble.enabled

Якщо відповідь є помилковий, то ваш пристрій не сумісний з Project Treble, і вам не слід продовжувати. Якщо відповідь є правда, тоді ви можете рухатися далі.

Далі перевірте наявність міжверсійної підтримки, виконавши ці команди:

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

У вихідних даних знайдіть розділ [постачальник], а потім у цьому розділі знайдіть namespace.default.isolated. Якщо значення для цього атрибута є правда, тоді ваш пристрій має підтримувати завантаження Android Q GSI поверх образу постачальника Android 9 Pie. Якщо значення є помилковий, то ваш пристрій може використовувати лише GSI для тієї самої версії ОС на пристрої.

Зразок виводу з OnePlus 6T.

Нарешті, вам потрібно підтвердити, чи ваш пристрій є системним як кореневий, у якому RAM-диск об’єднано з образом системи. System-as-root не є обов’язковим для пристроїв, які оновлюються до Android 9 Pie, але він необхідний для підтримки лише системного OTA, наприклад, у випадку прошивки нової версії ОС через GSI. Виконайте наведені нижче команди та переконайтеся, що результат відповідає "system-as-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

  1. Перезавантажте завантажувач свого пристрою за допомогою комбінації кнопок або команди:
    adb reboot bootloader
  2. Далі нам потрібно вимкнути Android Verified Boot (AVB). Ви можете зробити це, ввівши таку команду:
    fastbootflashvbmetavbmeta.img
  3. Далі очищаємо системний розділ:
    fastboot erase system
  4. Нарешті ми можемо прошити Android Q GSI за допомогою:
    fastbootflashsystemsystem.img
  5. Коли це буде зроблено, зітріть розділ даних користувача за допомогою:
    fastboot -w
  6. Перезавантажте пристрій, натиснувши кнопку живлення або ввівши:
    fastboot reboot

Сподіваємось, він має завантажитися через кілька хвилин. Ці кроки перевірено на Pixel 3 XL, але вони повинні працювати повсюдно. Ми можемо перевірити, що Android Q beta 2 GSI не завантажується на OnePlus 6T, але завантажується на Xiaomi Mi 9. Він може працювати на Sony Xperia XZ3, але нам сказали, що він не завантажується на Moto G7. Ваш пробіг може відрізнятися, оскільки вимоги Google підтверджують сумісність лише з GSI однієї версії ОС.