Nov projekt, imenovan Dynamic Android, bo razvijalcem omogočil testiranje GSI-jev AOSP Android Q na kateri koli napravi z operacijskim sistemom Android Q ali novejšim.
Zahvale gredo Projekt Treble, so proizvajalci pametnih naprav dostavili posodobitve programske opreme Android Pie hitreje, kot so to lahko storili za posodobitev Android Oreo, vsaj za vodilne pametne telefone. Vendar Google ne želi, da bi le proizvajalci originalne opreme izkoristili prednosti projekta Treble. Podjetje je že prej izrazil interes pri izdaji generične slike sistema (GSI) za Android Q za razvijalce, da se jim ne bo treba zanašati na emulatorje, uporabite storitev v oblakuali počakati na posodobitev na lastni napravi, da preizkusijo aplikacijo glede na najnovejšo raven API-ja. Teoretično bi morala izdaja GSI omogočiti vsakemu razvijalcu z napravo, združljivo s Project Treble (prvotno Android 8.0 Oreo in novejšo različico, vendar zdaj velja samo za naprave, ki se izdajajo z Androidom 9 Pie), da preizkusite najnovejši Android različica. Vse, kar mora razvijalec storiti, je, da na obstoječo namestitev programske opreme namesti sliko sistema - ni potrebe po meri za obnovitev, zagon ali sliko dobavitelja.
Vendar pa obstaja več težav s trenutnim postopkom namestitve GSI. Najprej potrebujete odklenjen zagonski nalagalnik, ki ni mogoče na napravah Huawei ali Honor (brez plačila pristojbina), naprave Nokia družbe HMD Global (razen Nokia 8) ali naprave ameriškega operaterja. Naprej, postopek bo težko za vsakogar, ki ni seznanjen z utripanjem slik prek hitrega zagona. Nazadnje, če zdaj utripate GSI, boste morali popolnoma izbrisati notranji pomnilnik, kar pomeni, da boste verjetno želeli rezervno napravo za testiranje. Trenutno je utripanje GSI le nekaj, kar proizvajalci originalne opreme uporabljajo za preizkušanje združljivosti Project Treble na svojih napravah, poleg tega pa je privlačno samo za trde ljubitelji prilagojenih ROM-ov. Googlov novi projekt "Dynamic Android" bo morda želel to spremeniti.
Dinamični Android – Preprosto preizkusite GSI AOSP v kateri koli napravi Android Q
Zadnjih nekaj mesecev je Google delal na načinu za varen zagon GSI, ne da bi bilo treba odkleniti zagonski nalagalnik. Skratka, Google razvija aplikacijo, ki ima posebna dovoljenja, ki mu omogočajo prenos GSI, rezerviranje prostora za shranjevanje in označevanje GSI kot zagonskega. V tem projektu je več komponent, zato se o njih pogovorimo eno za drugo.
Dinamični Android in Android On Tap
Androidu Q sta dodani dve novi storitvi: storitvi Dynamic Android in Android On Tap. Medtem ko Dynamic Android skrbi za namestitev GSI, Android On Tap obvešča sistemske aplikacije s povratnimi klici in nameni oddajanja. Na primer, Android On Tap opozori KeyguardManager, da od uporabnika zahteva potrditev zahteve za namestitev, če je naprava zaščitena s kodo PIN, geslom ali vzorcem. AOT tudi opozori uporabnika, ko se zažene v GSI.
V skladu z opisom za "DynamicAndroidManager," storitev "ponuja mehanizem za uporabo novega Androida začasno." Po namestitvi se lahko naprava znova zažene v novo nameščeno sliko z novo ustvarjeno sliko /data. Ponovni zagon, medtem ko je v GSI, uporabnika vrne na prvotno sliko sistema, vendar so na novo nameščena slika in njeni podatki samo onemogočeni in ne izbrisani. Če se uporabnik tako odloči, lahko GSI in njegove podatke v celoti odstrani.
Viri: [1], [2], [3], [4]
GSID
Daemon GSI dodeli prostor v particiji /data za shranjevanje slike GSI in njenih podatkov ter omogoča zagon slike. Metapodatki GSI so shranjeni v /metadata, medtem ko so GSI in njegovi podatki shranjeni v /data/gsi. GSID privzeto dodeli 8 GB uporabniških podatkov za novo nameščen GSI. Na splošno GSID pred začetkom namestitve poišče vsaj 40 % prostega prostora. Nazadnje, demon uporabniku prepreči namestitev GSI znotraj GSI iz očitnih razlogov.
Viri: [1], [2], [3], [4]
Varnost
Android Verified Boot (AVB) je omogočen za novo nameščeno sistemsko sliko EXT4 (system_gsi nameščen v /system). Google je uvedel tudi politike SELinux za nove storitve. Nazadnje, namestitev GSI zahteva, da ima aplikacija novo dovoljenje MANAGE_DYNAMIC_ANDROID. To je dovoljenje na ravni podpisa, kar pomeni, da mora aplikacijo podpisati OEM.
Viri: [1], [2]
Ukazi ADB in Fastboot
GSI bo mogoče namestiti tudi prek novih ukazov ADB. Nov lupinski ukaz ADB gsi_tool bo uporabnikom omogočil onemogočanje, ponovno omogočanje, namestitev in ohranjanje uporabniških podatkov, namestite in ustvarite uporabniške podatke, namestite in izbrišite uporabniške podatke ali preverite stanje namestitev.
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
Dva nova ukaza za hitri zagon bosta dodana za upravljanje GSI, čeprav namestitev hitrega zagona ni podprta, ker hitri zagon ne more priklopiti uporabniških podatkov.
fastboot gsi wipe
fastboot gsi disable
Viri: [1], [2]
Komu bo to koristilo?
Želim povedati, da bodo razvijalci aplikacij lahko izkoristili Dynamic Android in Android On Tap, vendar nisem povsem prepričan. Čeprav je Google izrazil zanimanje prav za to, ni nobenega zagotovila, da bo ta funkcija na voljo v vsaki izdaji Androida Q od proizvajalci originalne opreme, ki niso Googlovi. Če želite to izkoristiti v napravi, programska oprema potrebuje aplikacijo GSI picker, ki je podpisana z istim potrdilom kot ROM. Prav tako nisem prepričan, da bo namestitev GSI-jev iz ADB mogoča brez korena ADB zaradi pravilnikov SELinux.Nadgradnja: Nov zavezati potrjuje, da bo za uporabo orodja GSI_tool potreben ADB root. Če to ni namenjeno razvijalcem aplikacij za preizkušanje svojih aplikacij na čisti različici Androida, bo verjetno le koristijo inženirjem proizvajalcev originalne opreme, ki želijo preizkusiti zbirko testov združljivosti (CTS) in zbirko preskusov dobavitelja (VTS) na svojih naprave.
Posebna zahvala priznanemu razvijalcu XDA luca020400 za njegovo pomoč pri tem članku.