DSU Loader u Androidu 11 pomaže programerima da testiraju aplikacije na standardnom Androidu

click fraud protection

Android 11 dolazi s DSU Loaderom unutar opcija za razvojne programere koji će vam omogućiti automatsko preuzimanje i instaliranje kompatibilnih GSI-ja! Čitajte dalje za više!

Dobar ekosustav aplikacija jedan je od najvažnijih stupova uspjeha operativnog sustava. I Google i Apple prepoznaju vrijednost dobrih aplikacija na svojim platformama, pa obje tvrtke pokušavaju uravnotežiti potrebe svojih korisnika i programere svojih aplikacija. Korisnici se stalno zalažu za promjene u operativnim sustavima, i dok većina ljudi općenito cijeni nove značajke, ove promjene nisu uvijek zabavne za programere aplikacija jer mogu promijeniti mnogo temeljnih funkcija i ponašanje. Razvojnim programerima koji neprestano rade na tome da svoje aplikacije održe relevantnima, suočavanje s ovim promjenama doprinosi njihovom rastućem popisu poslova. Čak i ako ove promjene ne utječu izravno na njihove aplikacije, programeri i dalje moraju biti sigurni da će njihove aplikacije raditi na novom ažuriranju OS-a. Google je napravio mnoge promjene tijekom godina kako bi ovaj proces bio lakši za razvojne programere Android aplikacija, a sada, novi značajka u Androidu 11, nazvana DSU Loader, još će lakše programerima aplikacija testirati svoje aplikacije na novom Androidu verzije.

Počinje s projektom Treble

Projekt Treble, predstavljen u Androidu 8.0, važan je re-arhitektiranje OS-a Android. Cilj projekta Treble bio je podijeliti OS Android na dva velika dijela: okvir i implementaciju dobavljača ("dobavljač" se ovdje odnosi na proizvođača bilo koje vlasničke hardverske komponente koja se nalazi unutar uređaja, obično se odnosi na silicij). Okvir OS Android sam je operativni sustav, uključujući sve aplikacije sustava, korisničko sučelje i njegove komponente te API-je koji se dijele na Android uređajima. Implementacija dobavljača sadrži HAL-ove dobavljača (Slojevi apstrakcije hardvera) i Linux kernel i module Linux kernela.

Budući da proizvođači originalne opreme isporučuju pametne telefone s mnogo različitih hardverskih komponenti od mnogo različitih dobavljača, moraju obaviti puno posla samo kako bi hardver pokrenuli i pokrenuli na jednom izdanju OS-a Android. Zatim sa svakim novim ažuriranjem OS-a Android moraju učiniti još više posla kako bi bili sigurni da njihov hardver radi s novom verzijom. Ali uz Project Treble koji standardizira ABI (Application Binary Interface) između Android OS okvira i HAL-ova za određenu verziju Androida, Proizvođači originalne opreme za Android mogu početi testirati ažuriranja svojih uređaja bez potrebe da čekaju da proizvođači silicija i drugi proizvođači komponenti ažuriraju svoju stranu kod. Ta se promjena osjetno ubrzala način na koji se postupa s ažuriranjima Androida.

To je bit onoga što je Project Treble učinio za ažuriranja Androida, ali ono što je važnije za aplikaciju programeri ovdje je da je Treble omogućio korištenje Generic System Images (GSI) za kompatibilnost testiranje.

Pojava GSI-ja

Kako bi OEM-ovi mogli testirati jesu li ispravno implementirali Project Treble, Google nalaže da OEM-i moraju moći pokrenuti čistu verziju Androida iz AOSP-a na uređaju. Ova čista verzija Androida zove se generička slika sustava ili GSI. Ako se GSI pokrene i većina osnovnog hardvera ispravno radi, onda OEM zna da njihov uređaj zadovoljava zahtjeve Project Treble. Početna svrha GSI-ja je stoga bila testiranje kompatibilnosti s visokim frekvencijama, ali kao što smo vidjeli kod razvojne zajednice ovdje na XDA-Developers, oni se mogu koristiti u druge svrhe. Vidjeli smo kako GSI bi u biti mogao omogućiti uređajima s teškim Android UX-ovima da uživaju u najnovijoj verziji Androida s radnim značajkama nekoliko dana nakon novog izdanja. Ali Google predviđa drugu svrhu iza GSI-ja: davanje mogućnosti programerima aplikacija da testiraju svoje aplikacije na novoj verziji Androida na fizičkom uređaju koji već posjeduju.

Uz Android 10, Google je izdao vlastite GSI verzije za programere. Google je učvrstio ideju da programeri aplikacija trebaju koristiti GSI za pokretanje čiste verzije Androida na vlastitom hardveru, što olakšava testiranje ponašanja njihove aplikacije u odnosu na standardni Android. Ova je metoda stoga dodana postojećim opcijama testiranja kompatibilnosti aplikacije na standardnom Androidu bez promjena ponašanja OEM-a, a ostale su korištenjem Pixel pametnog telefona, korištenjem službenog Android emulatora unutar Android Studija ili uvođenjem verzija aplikacije na instancu uređaja u oblaku.

Unatoč svim pogodnostima koje su GSI-ji donijeli, njihova je instalacija još uvijek bila glomazan proces. Programerima aplikacija možda neće biti ugodno ručno fleširanje slike sustava na Android uređaju jer je to nešto s čime su obično upoznati samo hobisti ili programeri Android OS-a. Instalacija GSI-ja zahtijevala je bljeskanje slike sustava preko brzog pokretanja, što zahtijeva onemogućavanje Android Verified Boot i otključavanje bootloadera. Otključavanje pokretačkog programa, pak, zahtijeva potpuno brisanje korisničkih podataka. I kao što svi znamo, ne postoji točno jedan postupak ili vodič za otključavanje bootloadera svakog Android uređaja, tako da nema dosljednosti. Na primjer, Samsung uređaji nemaju fastboot, dok Xiaomi uređaji vas tjeraju da preskočite nekoliko obruča kako biste otključali bootloader. To je zgodan nered koji ima potencijal da se raspetlja u nešto jednostavnije.

Ovdje dolaze dinamička ažuriranja sustava.

Dinamičko ažuriranje sustava jednostavno instalira GSI

Google je shvatio da trenutna metoda instaliranja GSI-ja nije savršeno rješenje, pa su počeli raditi na boljem rješenju. U Androidu 10, Google je počeo testirati dinamička ažuriranja sustava, odnosno DSU. DSU je novi način za privremenu instalaciju GSI-ja bez potrebe za korištenjem naredbi brzog pokretanja za flashanje slike sustava, čime se prepisuje izvorna instalacija. Uz DSU, možete se pokrenuti na GSI, testirati svoju aplikaciju, a zatim se jednostavno ponovno pokrenuti natrag na svoju izvornu instalaciju koja je ostala netaknuta.

Razlog zašto DSU može instalirati GSI bez diranja izvorne instalacije je taj što stvara nove slike sustava i particije podataka koje su privremeno pohranjene u /data/gsi. Te se slike zatim montiraju tijekom podizanja sustava, a ne izvorni sustav i particije podataka. Budući da je telefonu potreban dodatni prostor za pohranu za ove nove, privremene slike, vaš telefon mora imati "logičke particije" na ploči, koje su particije s dinamičkom promjenom veličine. Logičke particije su novi sustav particioniranja korisničkog prostora za Android, koji je obavezan za uređaje koji se pokreću s Androidom 10. Ako je vaš uređaj pokrenut s Androidom 10, trebao bi podržavati instaliranje GSI-ja putem DSU-a.

U Androidu 10 sve što trebate učiniti da instalirajte GSI preko DSU je promijeniti svojstvo sustava i zatim pokrenuti DynamicSystemUpdatesInstallationService slanjem namjere s putanjom do GSI-ja kao dodatka namjere.

Iako se ovaj postupak može činiti nepoznatim, daleko je lakši i manje nametljiv u usporedbi s korištenjem naredbe za brzo pokretanje i suočavanje s gnjavažom oko svega, uključujući izvornu instalaciju obrisana. Potrebna su vam određena znanja o ADB-u i namjere za korištenje DSU-a, ali to ne bi trebao biti problem za većinu programera aplikacija. Ipak, nema razloga zašto se proces ne bi mogao učiniti još jednostavnijim. Osim toga, postoji činjenica da instalacija GSI-ja putem DSU-a i dalje zahtijeva da otključate bootloader, brišući sve korisničke podatke u procesu. U tu svrhu, Google je implementirao promjene kako bi poboljšao oba aspekta GSI instalacije. U Androidu 11 eliminirali su potrebu za korištenjem naredbenog retka uopće za instaliranje GSI-ja. Zasebno, također su omogućili instaliranje GSI-ja bez otključavanja bootloadera.

DSU Loader u Androidu 11

DSU Loader novi je alat prisutan u opcijama za razvojne programere Androida 11 koji vam omogućuje da preuzimanje datoteka i instalirati najnoviji GSI od Googlea bez potrebe za unosom naredbi za brzo pokretanje ili ADB. Jednostavno dodirnite opciju DSU Loader unutar postavki i pojavit će se dijaloški okvir s popisom podržanih GSI-ja izravno od Googlea. Ovi podržani GSI temeljit će se na vašem trenutnom OS-u i arhitekturi, tako da možete instalirati samo GSI-je koji su noviji od vaše verzije OS-a i koji odgovaraju vašoj SoC arhitekturi. Jednostavno odaberite GSI koji želite instalirati i on će se preuzeti s Googleovih poslužitelja i automatski instalirati u pozadini.

DSU Loader na Androidu 11

Uz DSU Loader, programeri nikada ne moraju dodirivati ​​naredbeni redak da bi instalirali GSI. Barem je to san, jer još je jedan problem ostao za riješiti.

Put naprijed

Trenutno vam je za instaliranje GSI-ja putem DSU Loadera potreban otključan bootloader. Iako bi ovo moglo poništiti svrhu cijele muke, ne bi trebalo biti tako i rečeno nam je da će se to popraviti. Google je planirao da korisnici mogu pokrenuti GSI s Googleovim potpisom putem DSU-a bez potrebe za otključavanjem bootloadera. Zapravo, Google to nalaže svi Android 10 uređaji za pokretanje uključuju javne ključeve Android Verified Boot Android 10, Android 11 i Android 12 GSI-ova koje je potpisao Google. Uključivanje AVB javnih ključeva u ramdisk uređaja osigurat će da AVB neće odbiti GSI koji pokušavate pokrenuti. Zbog toga trenutna metoda uključuje otključavanje bootloadera - bljeskanjem prazne vbmeta slike na vbmeta particiju, onemogućujete AVB tako da ne odbije GSI koji namjeravate flashati. Ipak, onemogućavanje AVB-a predstavlja veliki sigurnosni rizik jer znači da sve izmjene particija system/boot/product/vendor može se učitati na uređaj, zbog čega Google želi učiniti daleko od tog zahtjeva.

Zahtjevi za pokretanje Androida 10 GSI

Dakle, kada možete očekivati ​​pokretanje GSI-ja putem DSU-a bez potrebe za otključavanjem pokretačkog programa ili korištenja alata naredbenog retka? Nadamo se uskoro, budući da nam je Google spomenuo da su morali riješiti nekoliko problema s početnim pregledima za razvojne programere za Android 11 prije nego što počnu raditi kako treba. Ubuduće se može očekivati ​​instaliranje budućih Developer Preview GSI-ja putem DSU-a bez potrebe za otključavanjem bootloadera. Možda kada Android 12 Developer Previews budu dostupni, čak ćete ga moći u potpunosti pokrenuti pomoću DSU Loadera u Android 11 Developer Options. Za programere aplikacija to znači da će postojati još jedan način da testirate svoje aplikacije na fizičkom hardveru s novom verzijom Androida.