Dynamický Android umožní vývojárom testovať AOSP na akomkoľvek zariadení so systémom Android Q

Nový projekt s názvom Dynamic Android umožní vývojárom testovať AOSP Android Q GSI na akomkoľvek zariadení so systémom Android Q alebo novším.

Vďaka Projekt Treble, výrobcovia smartfónov dodali aktualizácie softvéru Android Pie rýchlejšie, ako to dokázali pri aktualizácii Android Oreo, aspoň pre vlajkové smartfóny. Google však nechce, aby výhody Project Treble využívali iba výrobcovia OEM. Spoločnosť už predtým prejavil záujem pri uvoľnení Generic System Image (GSI) systému Android Q pre vývojárov, aby sa nemuseli spoliehať na emulátory, použite cloudová službaalebo počkajte na aktualizáciu na ich vlastnom zariadení, aby otestovali aplikáciu podľa najnovšej úrovne API. Teoreticky by uvoľnenie GSI malo umožniť každému vývojárovi so zariadením kompatibilným s Project Treble (pôvodne Android 8.0 Oreo a novšie, ale teraz sa na testovanie najnovšieho Androidu považujú iba zariadenia so systémom Android 9 Pie) verzia. Všetko, čo vývojár musí urobiť, je flashovať obraz systému nad existujúcu inštaláciu softvéru – nie je potrebné vlastné obnovenie, zavádzanie alebo obraz dodávateľa.

Súčasný proces inštalácie GSI má však niekoľko problémov. Najprv potrebujete odomknutý bootloader, ktorý nie je možné na zariadeniach Huawei alebo Honor (bez platenia poplatok), zariadenia Nokia spoločnosti HMD Global (okrem Nokia 8), alebo zariadenia značky operátora v USA. Ďalej, proces bude ťažké pre každého, kto nepozná blikanie obrázkov cez fastboot. A nakoniec, ak chcete teraz flashovať GSI, budete musieť úplne vymazať interné úložisko, čo znamená, že pravdepodobne budete chcieť náhradné zariadenie na testovanie. Práve teraz je flashovanie GSI len niečo, čo OEM používajú na testovanie kompatibility Project Treble na svojich zariadeniach, a okrem toho je to príťažlivé len pre zarytých vlastných nadšencov ROM. Nový projekt spoločnosti Google „Dynamic Android“ to môže zmeniť.

Dynamický Android – jednoducho otestujte AOSP GSI na akomkoľvek zariadení so systémom Android Q

Posledných pár mesiacov Google pracoval na spôsobe, ako bezpečne spustiť GSI bez toho, aby bolo potrebné odomknúť bootloader. Stručne povedané, Google vyvíja aplikáciu, ktorá má špeciálne povolenia, ktoré jej umožňujú stiahnuť GSI, vyhradiť preň úložný priestor a označiť GSI ako bootovateľné. Tento projekt má niekoľko komponentov, takže si ich poďme rozobrať jeden po druhom.

Dynamický Android a Android On Tap

Do systému Android Q sa pridávajú dve nové služby: služby Dynamic Android a Android On Tap. Zatiaľ čo Dynamic Android zvláda inštaláciu GSI, Android On Tap informuje systémové aplikácie pomocou spätných volaní a vysielacích zámerov. Napríklad Android On Tap upozorní KeyguardManager, aby požiadal používateľa o potvrdenie požiadavky na inštaláciu, ak je zariadenie chránené kódom PIN, heslom alebo vzorom. AOT tiež upozorní používateľa, keď sa zavádza do GSI.

Podľa popisu pre „DynamicAndroidManager“ služba „ponúka mechanizmus na používanie nového Androidu image dočasne." Po inštalácii sa zariadenie môže reštartovať do novo nainštalovaného obrazu s novovytvoreným /data. Reštartovanie v GSI vráti používateľa do pôvodného obrazu systému, ale novo nainštalovaný obraz a jeho údaje sa iba deaktivujú a neodstránia sa. Ak sa tak používateľ rozhodne urobiť, GSI a jeho údaje môžu byť úplne odstránené.

Zdroje: [1], [2], [3], [4]

GSID

Démon GSI prideľuje priestor v oddiele /data na uloženie obrazu GSI a jeho údajov a na spustenie obrazu. Metadáta GSI sú uložené v /metadata, zatiaľ čo samotné GSI a jeho údaje sú uložené v /data/gsi. V predvolenom nastavení GSID prideľuje 8 GB používateľských údajov pre novo nainštalovaný GSI. Vo všeobecnosti GSID pred začatím inštalácie hľadá aspoň 40 % voľného miesta. A nakoniec, démon zo zrejmých dôvodov bráni používateľovi v inštalácii GSI v rámci GSI.

Zdroje: [1], [2], [3], [4]

Bezpečnosť

Android Verified Boot (AVB) je povolený pre novo nainštalovaný obraz systému EXT4 (system_gsi pripojený k /system). Google tiež implementoval pravidlá SELinux pre nové služby. Nakoniec, inštalácia GSI vyžaduje, aby aplikácia mala nové povolenie MANAGE_DYNAMIC_ANDROID. Toto je povolenie na úrovni podpisu, čo znamená, že aplikácia musí byť podpísaná výrobcom OEM.

Zdroje: [1], [2]

Príkazy ADB a Fastboot

GSI bude možné nainštalovať aj prostredníctvom nových príkazov ADB. Nový príkaz shellu ADB gsi_tool umožní používateľom zakázať, znova povoliť, nainštalovať a zachovať používateľské údaje, nainštalujte a vytvorte používateľské údaje, nainštalujte a vymažte používateľské údaje alebo skontrolujte stav inštalácia.

gsi_tool - command-line tool for installing GSI images.

Usage:
gsi_tool <disable|install|wipe|status> [options]

disable Disable the currently installed GSI.
enable Enable a previously disabled GSI.
installInstall a new GSI. Specify the image sizewith
--gsi-size and the desired userdata size with
--userdata-size (the latter defaults to 8GiB)
--wipe (remove old gsi userdata first)
wipe Completely remove a GSI and its associated data
status Showstatus

Na správu GSI budú pridané dva nové príkazy rýchleho spustenia, hoci inštalácia rýchleho spustenia nie je podporovaná, pretože rýchle spustenie nemôže pripojiť používateľské údaje.

fastboot gsi wipe
fastboot gsi disable

Zdroje: [1], [2]

Komu to prospeje?

Chcem povedať, že vývojári aplikácií budú môcť využívať výhody Dynamic Android a Android On Tap, ale nie som si úplne istý. Hoci spoločnosť Google prejavila záujem práve o to, neexistuje žiadna záruka, že táto funkcia bude k dispozícii v každom vydaní systému Android Q od výrobcov OEM mimo spoločnosti Google. Ak chcete využiť túto výhodu na zariadení, softvér potrebuje aplikáciu na výber GSI, ktorá je podpísaná rovnakým certifikátom ako ROM. Tiež si nie som istý, či inštalácia GSI z ADB bude možná bez ADB root kvôli politikám SELinux.Aktualizácia: Nový zaviazať sa potvrdzuje, že na používanie nástroja GSI_tool sa bude vyžadovať root ADB. Ak to nie je určené pre vývojárov aplikácií na testovanie ich aplikácií na čistej zostave Androidu, pravdepodobne to bude len profitovať inžinieri z OEM, ktorí chcú otestovať Compatibility Test Suite (CTS) a Vendor Test Suite (VTS) na svojich zariadení.

Špeciálne poďakovanie patrí vývojárovi XDA Recognized luca020400 za jeho pomoc v tomto článku.