Novi projekt nazvan Dynamic Android omogućit će programerima da testiraju AOSP Android Q GSI na bilo kojem uređaju koji koristi Android Q ili noviji.
Zahvaljujući Projekt Treble, proizvođači pametnih telefona isporučili su ažuriranja softvera Android Pie brže nego što su to mogli učiniti za ažuriranje Android Oreo, barem za vodeće pametne telefone. Google ipak ne želi vidjeti da samo OEM-ovi mogu iskoristiti prednosti Project Treble. Tvrtka je prethodno iskazao interes u izdavanju generičke slike sustava (GSI) Androida Q za programere kako se ne bi morali oslanjati na emulatore, koristite usluga u oblaku, ili pričekati ažuriranje na vlastitom uređaju kako bi testirali aplikaciju u odnosu na najnoviju razinu API-ja. U teoriji, izdavanje GSI-a trebalo bi omogućiti bilo kojem programeru s uređajem kompatibilnim s Project Treble (izvorno Android 8.0 Oreo i noviji, ali sada se smatraju samo uređajima koji se pokreću s Androidom 9 Pie) za testiranje najnovijeg Androida verzija. Sve što razvojni programer treba učiniti je flash slike sustava povrh postojeće instalacije softvera—nema potrebe za prilagođenim oporavkom, dizanjem ili slikom dobavljača.
Međutim, postoji nekoliko problema s trenutnim postupkom instalacije GSI-ja. Prvo, potreban vam je otključan bootloader, koji nije moguće na Huawei ili Honor uređajima (bez plaćanja naknada), Nokia uređaji tvrtke HMD Global (isključujući Nokia 8) ili uređaja američkih operatera. Dalje, postupak bit će teško za svakoga tko nije upoznat s flashanjem slika putem fastboota. Na kraju, za flashanje GSI-ja sada ćete morati potpuno obrisati unutarnju pohranu, što znači da ćete vjerojatno htjeti rezervni uređaj za testiranje. Trenutačno je treptanje GSI-ja samo nešto što proizvođači originalne opreme koriste za testiranje kompatibilnosti s projektom Treble na svojim uređajima, a osim toga, privlačan je samo tvrdoglavima prilagođeni ROM entuzijasti. Googleov novi projekt "Dynamic Android" mogao bi to promijeniti.
Dinamički Android—Jednostavno testirajte AOSP GSI na bilo kojem Android Q uređaju
Proteklih nekoliko mjeseci Google je radio na načinu sigurnog pokretanja GSI-ja bez potrebe za otključavanjem bootloadera. Ukratko, Google razvija aplikaciju koja ima posebna dopuštenja koja mu omogućuju preuzimanje GSI-ja, rezerviranje prostora za pohranu za njega i označavanje GSI-ja kao mogućnosti pokretanja. Postoji nekoliko komponenti ovog projekta, pa raspravimo o njima jednu po jednu.
Dinamički Android i Android On Tap
Androidu Q dodaju se dvije nove usluge: usluge Dynamic Android i Android On Tap. Dok Dynamic Android upravlja instalacijom GSI-ja, Android On Tap obavještava sistemske aplikacije povratnim pozivima i namjerama emitiranja. Na primjer, Android On Tap upozorava KeyguardManager da traži od korisnika potvrdu zahtjeva za instalaciju ako je uređaj zaštićen PIN-om, lozinkom ili uzorkom. AOT također upozorava korisnika kada se podigne u GSI.
Prema opisu za "DynamicAndroidManager", usluga "nudi mehanizam za korištenje novog Androida slika privremeno." Nakon instalacije, uređaj se može ponovno pokrenuti u novo instaliranu sliku s novostvorenom slikom /data. Ponovno pokretanje dok je u GSI-ju vraća korisnika na originalnu sliku sustava, ali novoinstalirana slika i njeni podaci samo su onemogućeni i ne brišu se. Međutim, ako korisnik tako odluči, GSI i njegovi podaci mogu se u potpunosti ukloniti.
Izvori: [1], [2], [3], [4]
GSID
GSI demon dodjeljuje prostor u /data particiji za pohranjivanje GSI slike i njenih podataka te kako bi sliku omogućio podizanje sustava. Metapodaci GSI-a pohranjeni su u /metadata, dok su sam GSI i njegovi podaci pohranjeni u /data/gsi. Prema zadanim postavkama, GSID dodjeljuje 8 GB korisničkih podataka za novoinstalirani GSI. Općenito, GSID traži najmanje 40% slobodnog prostora prije početka instalacije. Na kraju, demon sprječava korisnika da instalira GSI unutar GSI-a, iz očitih razloga.
Izvori: [1], [2], [3], [4]
Sigurnost
Android Verified Boot (AVB) omogućen je za novoinstaliranu sliku sustava EXT4 (system_gsi montiran na /system). Google je također implementirao SELinux pravila za nove usluge. Na kraju, instalacija GSI-ja zahtijeva da aplikacija ima novo dopuštenje MANAGE_DYNAMIC_ANDROID. Ovo je dopuštenje na razini potpisa što znači da aplikaciju mora potpisati OEM.
Izvori: [1], [2]
ADB i Fastboot naredbe
GSI će se također moći instalirati putem novih ADB naredbi. Nova naredba ljuske ADB gsi_tool omogućit će korisnicima da onemoguće, ponovno omoguće, instaliraju i sačuvaju korisničkih podataka, instalirajte i stvorite korisničke podatke, instalirajte i obrišite korisničke podatke ili provjerite status montaža.
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
Dvije nove naredbe za brzo pokretanje bit će dodane za upravljanje GSI-jem, iako instalacija brzog pokretanja nije podržana jer brzo pokretanje ne može montirati korisničke podatke.
fastboot gsi wipe
fastboot gsi disable
Izvori: [1], [2]
Kome će ovo koristiti?
Želim reći da će programeri aplikacija moći iskoristiti Dynamic Android i Android On Tap, ali nisam posve siguran. Iako je Google izrazio interes upravo za to, nema jamstva da će ova značajka biti dostupna u svakom izdanju Androida Q od OEM-ovi koji nisu Googleovi. Da biste to iskoristili na uređaju, softveru je potrebna GSI aplikacija za odabir koja je potpisana istim certifikatom kao i ROM. Također nisam siguran da će instalacija GSI-ja iz ADB-a biti moguća bez ADB roota zbog SELinux pravila.Ažuriraj: Nova počiniti potvrđuje da će ADB root biti potreban za korištenje GSI_tool. Ako ovo nije namijenjeno programerima aplikacija da testiraju svoje aplikacije na čistoj verziji Androida, tada će vjerojatno samo koristi inženjerima iz OEM-a koji žele testirati Compatibility Test Suite (CTS) i Vendor Test Suite (VTS) na svojim uređaja.
Posebna zahvala XDA Recognized programeru luca020400 za njegovu pomoć u ovom članku.