Google je otkrio Dynamic System Update, novi način instaliranja GSI-ja u Android Q koji ne zahtijeva otključavanje bootloadera.
Uz izdanje Androida 8.0 Oreo, Google je predstavio Projekt Treble: velika rearhitektura u načinu na koji komuniciraju Android OS framework i HAL-ovi dobavljača i Linux kernel. Treble je velika inicijativa osmišljena za smanjenje verzije Android platforme i fragmentacija sigurnosne zakrpe, a svi uređaji s oznakom Android koji se pokreću s Androidom Pie moraju podržavati Project Treble. Proizvođači originalne opreme i dobavljači testiraju kompatibilnost s visokim frekvencijama pokretanjem Generic System Image (GSI)—čiste standardne verzije Androida od AOSP-a—i prosljeđivanjem Komplet za testiranje dobavljača (VTS) i Compatibility Test Suite-on-Generic System Image (CTS-on-GSI). GSI se pokazao korisnim ne samo što omogućuje softverskim inženjerima koji rade za OEM-ove da testiraju visokotonsku kompatibilnost, već je također otvorio vrata za velika prilagođena ROM zajednica
na XDA. Za izdanje Androida Q, Google želi GSI učiniti korisnim za drugu skupinu: programere aplikacija.Od prvog stabilnog izdanja i pada izvornog koda bilo kojeg izdanja Android platforme obično dolazi u kolovozu, programeri koji bi željeli testirati sljedeće izdanje Androida na stvarnom uređaju obično trebaju pristup Google pametnom telefonu ako ne žele čekati da ažuriranje stigne do njihovog vlastitog hardvera. Međutim, Google je surađivao s proizvođačima originalne opreme kako bi donio Android P beta na nekoliko uređaja prošle godine, a ove su godine na to nadovezali s Android Q beta. Uz službenu beta verziju Androida Q, Google je ove godine također objavio službeni Q beta GSI tako da svaki programer s uređajem kompatibilnim s Project Treble može instalirati najnovije izdanje Q bez čekanja mjesecima da verzija stigne na njihove uređaje. Ovaj novi način testiranja sljedećeg izdanja Androida daje razvojnim programerima više mogućnosti, a time i više vremena, za testiranje svojih aplikacija velike promjene u Androidu.
Nažalost, trenutna metoda instaliranje GSI-ja može biti teško. Zahtijeva otključavanje bootloadera—što znači brisanje svih korisničkih podataka i/ili poništavanje jamstva—i flashanje slike putem protokola za brzo pokretanje. To nije brz i jednostavan postupak za programera aplikacije, ako njegov uređaj čak omogućuje i otključavanje bootloadera. Zato, za proteklih nekoliko mjeseci, Google je radio na novom načinu pokretanja GSI-ja. Unesite novu značajku pod nazivom Dinamičko ažuriranje sustava ili DSU.
(Ova je značajka prethodno razvijena pod nazivima "Live Image", "Dynamic Android" i "Android on Tap", pa se nemojte iznenaditi ako je Google za nekoliko tjedana ili mjeseci nazove drugačije.)
Dinamička ažuriranja sustava u Androidu Q
Cilj značajke DSU je omogućiti programeru da se podigne u GSI bez ometanja trenutne instalacije. To znači da se bootloader ne mora otključati i da se korisnički podaci ne moraju brisati. Proces instalacije također je uvelike pojednostavljen jer je Google osigurao sučelje naredbenog retka putem ADB-a i aplikaciju kojom se može upravljati putem intenta. Evo kako izgleda pokretanje GSI-ja pomoću DSU-a:
U ovom videu*, Google Pixel 3 XL sa sustavom Android Q beta 3 ponovno se pokreće u GSI. U ovom okruženju razvojni programer aplikacije može instalirati i testirati svoju aplikaciju na kompatibilnost s Q API-jem. Kada završe s testiranjem, mogu se jednostavno ponovno pokrenuti u uobičajeni Q beta 3 softver na uređaju. Vi u osnovi dvostruko pokrećete GSI tako da možete sigurno testirati svoju aplikaciju!
*Ovaj smo videozapis snimili na Google I/O 2019. kada DSU još nije bio javno dostupan, pa je Google malo modificirao Q beta 3 nadogradnju na snimljenom Pixelu 3 XL kako bi uključio podršku za DSU. Uređaji s Q beta 4 i novijim verzijama ispunjavaju uvjete za podršku DSU ako ispunjavaju zahtjeve u nastavku.
Zahtjevi za dinamičko ažuriranje sustava
Osposobiti i pokrenuti ono što je u biti dvostruko dizanje nije bio lak zadatak za Google. Morale su biti napravljene velike promjene u načinu na koji se upravlja particijama na Pixelu 3, Googleovoj testnoj platformi za DSU. Dakle, prvi glavni zahtjev za DSU podršku je da uređaj podržava dinamičke particije. Dinamičke particije uključuju jednu stvarnu particiju pohrane koja je podijeljena na logičke particije promjenjive veličine kao što su sistem, dobavljač, odm, oem, proizvod itd. Tijekom instalacije GSI-ja, prostor je rezerviran za nove particije sustava i korisničkih podataka uzimanjem neiskorištenih blokova iz postojeće particije korisničkih podataka. Budući da te nove particije mogu biti veličine nekoliko gigabajta, DSU podrška ima smisla samo s logikom particije inače bi uređaj trebao trajno rezervirati nekoliko gigabajta prostora za pohranu za GSI instalacije.
Ostali zahtjevi uključuju ramdisk, koji odlučuje hoće li se pokrenuti sustav za oporavak, sustav ili logičku particiju, te particiju metapodataka za pohranjivanje metapodataka GSI-ja. Općenito, sastavni dijelovi za DSU podršku su zahtjevi za pokretanje Androida Q, prema voditelju Projekta Treble Iliyanu Malchevu. Nismo sigurni je li sve koji je potreban za podršku DSU je zahtjev za pokretanje Androida Q, ali možemo pretpostaviti da većina, ako ne i svi uređaji koji se pokreću s Androidom Q limenka podržavaju DSU čak i ako Google to trenutno ne zahtijeva. Do sada samo Pixel 3, Pixel 3 XL, Pixel 3a i Pixel 3a XL imaju dinamičke particije, a od ovih uređaja samo Pixel 3 i Pixel 3 XL podržavaju DSU u Android Q beta 4. Iako podrška za DSU nije potrebna, Google se nada da će proizvođači originalne opreme ipak omogućiti tu značajku jer pojednostavljuje sigurno testiranje kompatibilnosti s visokim tonovima. Na primjer, OEM softverski inženjer može staviti GSI na SD kartici tako da se mogu brzo pokrenuti na više uređaja za testiranje kompatibilnosti s visokim tonovima.
Sigurnost za dinamička ažuriranja sustava
Budući da DSU uvodi drugi operativni sustav u kombinaciju, Google mora osigurati da se ova nova instalacija ne može mijenjati kako bi se narušio integritet uređaja. Dakle, iste osnovne sigurnosne zaštite za izvornu instalaciju postoje i za GSI instalaciju: Android Verified Boot i SELinux pravila. Nadalje, samo aplikacije s potpisom INSTALL_DYNAMIC_SYSTEM|privilegiranim dopuštenjem mogu pokrenuti GSI instalacija, dok aplikacije s dopuštenjem potpisa MANAGE_DYNAMIC_SYSTEM mogu omogućiti/onemogućiti ili obrisati GSI montaža. To znači da samo pouzdane aplikacije na razini sustava mogu raditi s DSU-om.
Kako bi osigurao zaštitu izvornih korisničkih podataka, Google je dodao dodatni zaštitni mehanizam u Androidu Q. pod nazivom "Kontrolna točka," značajka štiti od uništavanja korisničkih podataka vraćanjem particija s kontrolnim točkama u njihovo izvorno stanje. No, kontrolne točke nisu korisne samo za DSU. Također se koriste za zaštitu od neuspjeha Glavni projekt APEX modul i A/B OTA ažuriranja. (Uređaji s A/B particijama već imaju zaštitu od vraćanja, ali ta vraćanja zahtijevaju vraćanje na tvorničke postavke, dok kontrolne točke korisničkih podataka ne.)
Instaliranje GSI
Ako vaš uređaj podržava DSU kao Pixel 3 serija, GSI je jednostavno instalirati. Najprije se morate uvjeriti da je značajka dinamičkog sustava omogućena na jedan od dva načina:
- Ako koristite userdebug build, omogućite oznaku settings_dynamic_android u Postavke > Sustav > Opcije za razvojne programere > Oznake značajki.
- Ako ste na korisničkoj verziji, pokrenite sljedeću naredbu adb ljuske:
setproppersist.sys.fflag.override.settings_dynamic_system 1
Zatim preuzmite najnoviji Android Q beta GSI s Google ili OEM-a vašeg uređaja. (DSU dopušta samo instaliranje GSI-ja koje je potpisao Google ili OEM.) Nakon preuzimanja, koristite simg2img za pretvaranje rijetke slike u neobrađenu sliku. Upotrijebite gzip za spakiranje neobrađene slike, a zatim kopirajte dobivenu arhivu na mjesto na uređaju vanjska pohrana (npr. /data/media/0/Download) ili stvarni vanjski medij za pohranu (kao što je fizički SD kartica). Na kraju, pokrenite aplikaciju DynamicSystemInstallationService s pravom namjerom za početak instalacije:
adb shell am start-activity \ -n com.android.dynsystem/com.android.dynsystem.VerificationActivity \ -a android.os.image.action.START_INSTALL \ -d file:///storage/emulated/0/Download/system_raw.gz \ --el KEY_SYSTEM_SIZE $(du -b system_raw.img|cut -f1) \ --el KEY_USERDATA_SIZE 8589934592
Nakon što kliknete ponovno pokretanje, pokrenut ćete se u GSI. Upotrebljivost uređaja u GSI ovisi o tome koliko je dobro OEM vašeg uređaja implementirao Treble (ili bolje rečeno, koliko su malo kršili Treble kompatibilnost.) Neki će uređaji bolje raditi s GSI-jem od drugih, ali općenito, nemojte očekivati da ćete ovu instalaciju koristiti kao svakodnevnu vozač. Trebate testirati svoju aplikaciju, a zatim izaći ponovnim pokretanjem. Ako želite ostati u GSI instalaciji za daljnje testiranje, tada možete koristiti gsi_alat naredba ljuske.
Možete pronaći potpune upute za instalaciju GSI za DSU ovdje. Bugovi se mogu prijaviti na Google Issue Tracker,Reddit, ili Stack Overflow.
Razlog iza dinamičkih ažuriranja sustava
Kad sam razgovarao s Iliyanom Malchevom na Google I/O-u, ponovio je ono što je Hung-ying Tyan iz Treble tima rekao o ranom GSI pristupu na Android Dev Summit u studenom. Google je izradio DSU za tražiti povratne informacije od što je moguće šire publike. Cilj je poboljšati kvalitetu GSI-a, što pak poboljšava kvalitetu budućeg izdanja Androida budući da je GSI najčišći oblik Androida. Google je trenutačno jedina tvrtka koja testira GSI kompatibilnost sa sljedećom verzijom (na primjer, koliko dobro slika sustava Android Q radi povrh Androida P implementacija dobavljača), ali kako sve više ljudi prikazuje GSI-ove i daje povratne informacije, OEM-ovi mogu popraviti kršenja kompatibilnosti visokih tonova tako da će GSI-ji raditi još bolje u budućnost. Iliyan kaže da postoji veliki interes OEM-a i dobavljača kao što je Qualcomm za ponovno korištenje slika dobavljača iz prethodnog izdanja Androida sa slikom sustava sljedeće verzije. Inicijative kao što je DSU pomažu Googleu i OEM-ovima da popune jaz u pokrivenosti automatiziranih testova kao što su VTS i CTS-on-GSI. Stoga Google dobiva više beta testera koji daju povratne informacije o sljedećem izdanju Androida, dok također čuje o kršenjima kompatibilnosti s visokim frekvencijama kako bi OEM-ovi mogli poboljšati svoj rad.
Dodatak dinamičkih ažuriranja sustava u Android Q je dobrodošao, ali to neće biti rješenje dvostrukog pokretanja kojem se neki od vas nadaju. Kao što je ranije spomenuto, mogu se instalirati samo slike sustava potpisane od strane Googlea ili OEM-a. Kad sam pitao Iliyana o mogućnosti proširenja DSU-a za podršku ekosustava alternativnog Androida sustava, rekao je da je to tehnički moguće učiniti jer je DSU jednostavno kanal za isporuku sustava slike. Svaki OEM ga može koristiti kako god želi sve dok je krajnji rezultat usklađen s Androidom. Google ovdje nije stvorio alternativu OTA sustavu, a DSU nije namijenjen za korištenje za pravo dvostruko dizanje. Bez obzira na to, posao koji je Google obavio na Trebleu čini Android modularnijim, pa me ne bi iznenadilo da nativno dvostruko pokretanje postane stvarnost.