Nový projekt s názvem Dynamic Android umožní vývojářům testovat AOSP Android Q GSI na jakémkoli zařízení se systémem Android Q nebo novějším.
Díky Projekt Treble, výrobci chytrých telefonů dodali aktualizace softwaru Android Pie rychleji, než to dokázali pro aktualizaci Android Oreo, alespoň pro vlajkové smartphony. Google však nechce, aby výhody Project Treble sklízeli pouze výrobci OEM. Společnost již dříve projevil zájem při uvolňování Generic System Image (GSI) Android Q pro vývojáře, aby se nemuseli spoléhat na emulátory, použijte cloudová službanebo počkejte na aktualizaci na svém vlastním zařízení, aby otestovali aplikaci na nejnovější úrovni API. Teoreticky by vydání GSI mělo umožnit každému vývojáři se zařízením kompatibilním s Project Treble (původně Android 8.0 Oreo a vyšší, ale nyní jsou považovány pouze za zařízení se systémem Android 9 Pie) k testování nejnovějšího Androidu verze. Vše, co musí vývojář udělat, je nahrát bitovou kopii systému nad stávající instalaci softwaru – není potřeba vlastní obnova, boot nebo bitová kopie dodavatele.
Současný instalační proces GSI má však několik problémů. Nejprve potřebujete odemčený bootloader, který není možné na zařízeních Huawei nebo Honor (bez placení poplatek), zařízení Nokia společnosti HMD Global (kromě Nokia 8), nebo zařízení se značkou operátora v USA. Dále, proces bude obtížné pro každého, kdo není obeznámen s blikajícími obrázky přes fastboot. A konečně, flashování GSI nyní bude vyžadovat úplné vymazání vnitřního úložiště, což znamená, že pravděpodobně budete chtít náhradní zařízení, které byste otestovali. Právě teď je flashování GSI pouze něco, co OEM používají k testování kompatibility Project Treble na svých zařízeních, a kromě toho je to jen přitažlivé pro zaryté vlastní nadšenci ROM. Nový projekt společnosti Google „Dynamic Android“ to může změnit.
Dynamický Android – snadno otestujte AOSP GSI na jakémkoli zařízení Android Q
V posledních několika měsících Google pracoval na způsobu, jak bezpečně spustit GSI, aniž by bylo nutné odemykat bootloader. Stručně řečeno, Google vyvíjí aplikaci, která má speciální oprávnění, která mu umožňují stáhnout GSI, vyhradit pro něj úložný prostor a označit GSI jako spouštěcí. Tento projekt má několik komponent, takže si je proberme jeden po druhém.
Dynamický Android a Android On Tap
Do systému Android Q se přidávají dvě nové služby: služby Dynamic Android a Android On Tap. Zatímco Dynamic Android zpracovává instalaci GSI, Android On Tap informuje systémové aplikace pomocí zpětných volání a záměrů vysílání. Například Android On Tap upozorní KeyguardManager, aby požádal uživatele o potvrzení požadavku na instalaci, pokud je zařízení chráněno kódem PIN, heslem nebo vzorem. AOT také upozorní uživatele, když je zaveden do GSI.
Podle popisu pro „DynamicAndroidManager“ služba „nabízí mechanismus pro použití nového Androidu image dočasně." Po instalaci se může zařízení restartovat do nově nainstalovaného obrazu s nově vytvořeným /data. Restartování v GSI vrátí uživatele do původního obrazu systému, ale nově nainstalovaný obraz a jeho data jsou pouze zakázány a nejsou odstraněny. Pokud se tak uživatel rozhodne, může být GSI a jeho data zcela odstraněna.
Prameny: [1], [2], [3], [4]
GSID
Démon GSI alokuje místo v oddílu /data pro uložení obrazu GSI a jeho dat a pro zavádění obrazu. Metadata GSI jsou uložena v /metadata, zatímco samotné GSI a jeho data jsou uložena v /data/gsi. Ve výchozím nastavení GSID alokuje 8 GB uživatelských dat pro nově nainstalované GSI. Obecně platí, že GSID před zahájením instalace hledá alespoň 40 % volného místa. A konečně, démon ze zřejmých důvodů brání uživateli v instalaci GSI v rámci GSI.
Prameny: [1], [2], [3], [4]
Bezpečnostní
Android Verified Boot (AVB) je povolen pro nově nainstalovaný obraz systému EXT4 (system_gsi připojený k /system). Google také implementoval zásady SELinux pro nové služby. A konečně, instalace GSI vyžaduje, aby aplikace měla nové oprávnění MANAGE_DYNAMIC_ANDROID. Toto je oprávnění na úrovni podpisu, což znamená, že aplikace musí být podepsána výrobcem OEM.
Prameny: [1], [2]
Příkazy ADB a Fastboot
GSI bude také možné nainstalovat pomocí nových příkazů ADB. Nový příkaz prostředí ADB gsi_tool umožní uživatelům zakázat, znovu povolit, nainstalovat a zachovat uživatelská data, nainstalujte a vytvořte uživatelská data, nainstalujte a vymažte uživatelská data nebo zkontrolujte stav instalace.
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
Pro správu GSI budou přidány dva nové příkazy rychlého spouštění, ačkoli instalace rychlého spouštění není podporována, protože rychlé spouštění nemůže připojit uživatelská data.
fastboot gsi wipe
fastboot gsi disable
Prameny: [1], [2]
Komu to prospěje?
Chci říci, že vývojáři aplikací budou moci využívat Dynamic Android a Android On Tap, ale nejsem si úplně jistý. I když Google projevil zájem právě o to, nelze zaručit, že tato funkce bude dostupná v každém vydání Androidu Q od OEM výrobců mimo Google. Abyste toho mohli na zařízení využít, potřebuje software aplikaci pro výběr GSI, která je podepsána stejným certifikátem jako ROM. Také si nejsem jistý, že instalace GSI z ADB bude možná bez ADB root kvůli zásadám SELinuxu.Aktualizace: Nový spáchat potvrzuje, že pro použití GSI_tool bude vyžadován root ADB. Pokud to není určeno pro vývojáře aplikací, aby testovali své aplikace na čistém sestavení Androidu, pravděpodobně to bude pouze těží inženýři z OEM, kteří chtějí otestovat Compatibility Test Suite (CTS) a Vendor Test Suite (VTS) na svém zařízení.
Zvláštní poděkování vývojáři XDA Recognized luca020400 za jeho pomoc v tomto článku.