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: мигане на an Android Q бета 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. Ако случаят е такъв, тогава можете да пропуснете потвърждаването на съвместимост с Treble, след като стигнете до края на този раздел.
- Устройството стартира с Android 8.0 Oreo или Android 8.1 Oreo, но беше актуализирано до Android 9 Pie с VNDK изолация и система като root. Ние описваме подробно как да разберете това в раздела по-долу.
Преди да продължим, струва си да споменем, че флашването на GSI ще изисква да извършите пълно изтриване на дяла с потребителски данни. Това означава, че ще загубите всички снимки, видеоклипове, музика, документи или всичко друго във вътрешното и външното (/data/media) хранилище на устройството. Затова силно се препоръчва да направите резервно копие извън устройството, преди да продължите.
След това имайте предвид, че тези GSI не са преминали CTS, така че ако приложението ви използва SafetyNet Attestation API, за да провери целостта на устройството със съвпадение на CTS профил, това няма да работи. Освен това тези компилации не са предназначени за ежедневна употреба, така че не се изненадвайте, ако една или повече основни хардуерни функции не работят в допълнение към вече документираните грешки в Android Q. Google вече изброи няколко известни проблема с GSI, които можете да намерите тук. Всички нови грешки, които откриете, трябва да бъдат регистрирани тук.
Потвърждаване на съвместимост с Treble
Изпълнете следната команда:
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 за същата версия на операционната система на устройството.
И накрая, трябва да потвърдите дали вашето устройство е система като root, в която ramdisk е обединен със системния образ. System-as-root не е задължителен за устройства, надграждащи до Android 9 Pie, но е необходим за поддръжка на OTA само за системата, като например в случай на мигане на нова версия на OS чрез GSI. Изпълнете следните команди и проверете дали изходът съответства на "система като корен":
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 beta 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 съвместимост.