Dynamisk Android lar utviklere teste AOSP på alle Android Q-enheter

Et nytt prosjekt kalt Dynamic Android vil la utviklere teste AOSP Android Q GSI-er på alle enheter som kjører Android Q eller nyere.

Takk til Prosjekt diskant, har produsenter av smarttelefonenheter levert Android Pie-programvareoppdateringer raskere enn de var i stand til å gjøre det for Android Oreo-oppdateringen, i det minste for flaggskipsmarttelefoner. Google vil imidlertid ikke se at bare OEM-er høster fordelene med Project Treble. Selskapet har tidligere uttrykt interesse ved å gi ut et generisk systembilde (GSI) av Android Q for utviklere slik at de ikke trenger å stole på emulatorer, bruk en skytjeneste, eller vente på en oppdatering på deres egen enhet for å teste en app mot det nyeste API-nivået. I teorien bør frigjøring av en GSI tillate enhver utviklere med en Project Treble-kompatibel enhet (opprinnelig Android 8.0 Oreo og nyere, men vurderes nå bare enheter som lanseres med Android 9 Pie) for å teste den nyeste Android versjon. Alt utvikleren trenger å gjøre er å flashe et systembilde på toppen av deres eksisterende programvareinstallasjon – ikke behov for en tilpasset gjenopprettings-, oppstarts- eller leverandørbilde.

Det er imidlertid flere problemer med den nåværende GSI-installasjonsprosessen. Først trenger du en ulåst bootloader, som er ikke mulig på Huawei- eller Honor-enheter (uten å betale en avgift), HMD Globals Nokia-enheter (unntatt Nokia 8), eller enheter med amerikansk operatørmerke. Neste, den prosess vil være vanskelig for alle som ikke er kjent med blinkende bilder via fastboot. Til slutt, hvis du blinker en GSI nå, må du tørke den interne lagringen fullstendig, noe som betyr at du sannsynligvis vil ha en ekstra enhet å teste på. Akkurat nå er det å blinke en GSI bare noe som OEM-er bruker for å teste Project Treble-kompatibilitet på enhetene deres, og utover det er det bare appellerende til die-hard tilpassede ROM-entusiaster. Googles nye «Dynamisk Android»-prosjekt kan se ut til å endre det.

Dynamisk Android – Test AOSP GSI-er enkelt på hvilken som helst Android Q-enhet

De siste månedene har Google jobbet med en måte å sikkert starte opp en GSI uten å måtte låse opp bootloaderen. Kort sagt, Google utvikler en app som har spesielle tillatelser som lar den laste ned en GSI, reservere lagringsplass for den og merke GSI som oppstartbar. Det er flere komponenter i dette prosjektet, så la oss diskutere dem én etter én.

Dynamisk Android og Android On Tap

To nye tjenester legges til Android Q: Dynamic Android og Android On Tap-tjenestene. Mens Dynamic Android håndterer installasjonen av en GSI, informerer Android On Tap systemapper med tilbakeringinger og kringkastingshensikter. Android On Tap varsler for eksempel KeyguardManager om å be brukeren om å bekrefte en installasjonsforespørsel hvis enheten er beskyttet av en PIN-kode, passord eller mønster. AOT varsler også brukeren når de startes opp i en GSI.

I følge beskrivelsen for "DynamicAndroidManager" tilbyr tjenesten en mekanisme for å bruke en ny Android bilde midlertidig." Etter installasjonen kan enheten starte på nytt til det nylig installerte bildet med en nyopprettet /data. Omstart mens du er i GSI returnerer brukeren til det opprinnelige systembildet, men det nylig installerte bildet og dets data blir bare deaktivert og ikke slettet. Hvis brukeren velger å gjøre det, kan GSI-en og dens data fjernes fullstendig.

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

GSID

GSI-daemonen tildeler plass i /data-partisjonen for å lagre GSI-bildet og dets data og gjøre bildet oppstartbart. Metadataene til GSI lagres i /metadata, mens selve GSI og dens data lagres i /data/gsi. Som standard tildeler GSID 8 GB med brukerdata for den nylig installerte GSI. Generelt ser GSID etter minst 40 % ledig plass før du starter en installasjon. Til slutt hindrer demonen brukeren fra å installere en GSI i en GSI, av åpenbare grunner.

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

Sikkerhet

Android Verified Boot (AVB) er aktivert for det nylig installerte EXT4-systembildet (system_gsi montert på /system). Google har også implementert SELinux-policyer for de nye tjenestene. Til slutt, installasjon av en GSI krever at en app har den nye MANAGE_DYNAMIC_ANDROID-tillatelsen. Dette er en tillatelse på signaturnivå som betyr at appen må være signert av OEM.

Kilder: [1], [2]

ADB- og Fastboot-kommandoer

GSI-er vil også kunne installeres via nye ADB-kommandoer. Den nye ADB gsi_tool shell-kommandoen vil tillate brukere å deaktivere, reaktivere, installere og bevare brukerdata, installer og opprett brukerdata, installer og slett brukerdata, eller sjekk statusen til installasjon.

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

To nye fastboot-kommandoer vil bli lagt til for å administrere GSI, selv om fastboot-installasjon ikke støttes siden fastboot ikke kan montere brukerdata.

fastboot gsi wipe
fastboot gsi disable

Kilder: [1], [2]

Hvem vil dette ha nytte av?

Jeg vil si at apputviklere vil kunne dra nytte av Dynamic Android og Android On Tap, men jeg er ikke helt sikker. Selv om Google har uttrykt interesse for nettopp det, er det ingen garanti for at denne funksjonen vil være tilgjengelig i alle Android Q-utgivelser fra ikke-Google OEM-er. For å dra nytte av dette på enheten trenger programvaren en GSI-velger-app som er signert med samme sertifikat som ROM. Jeg er heller ikke sikker på at installasjon av GSI-er fra ADB vil være mulig uten ADB-rot på grunn av SELinux-policyer.Oppdater: En ny begå bekrefter at ADB-rot vil være nødvendig for å bruke GSI_tool. Hvis dette ikke er ment for at apputviklere skal teste appene sine på en ren versjon av Android, vil det sannsynligvis bare dra nytte av ingeniører fra OEM-er som ønsker å teste Compatibility Test Suite (CTS) og Vendor Test Suite (VTS) på deres enheter.

Spesiell takk til XDA Recognized utvikler luca020400 for hans hjelp i denne artikkelen.