Un nou proiect numit Dynamic Android va permite dezvoltatorilor să testeze AOSP Android Q GSI pe orice dispozitiv care rulează Android Q sau o versiune ulterioară.
Mulțumită Proiect Treble, producătorii de dispozitive smartphone au furnizat actualizări de software Android Pie mai repede decât au putut să facă acest lucru pentru actualizarea Android Oreo, cel puțin pentru smartphone-urile emblematice. Totuși, Google nu dorește să vadă numai OEM-urile culegând beneficiile Proiectului Treble. Compania a avut anterior a manifestat interesul pentru a lansa o imagine de sistem generică (GSI) a Android Q pentru dezvoltatori, astfel încât aceștia să nu fie nevoiți să se bazeze pe emulatori, utilizați un serviciu cloud, sau așteptați o actualizare pe propriul dispozitiv pentru a testa o aplicație cu cel mai recent nivel API. În teorie, lansarea unui GSI ar trebui să permită oricărui dezvoltator cu un dispozitiv compatibil Project Treble (inițial Android 8.0 Oreo și versiuni ulterioare, dar acum luate în considerare doar dispozitivele care se lansează cu Android 9 Pie) pentru a testa cel mai recent Android versiune. Tot ceea ce trebuie să facă dezvoltatorul este să flasheze o imagine de sistem peste instalarea software-ului existent - nu este nevoie de o recuperare personalizată, de boot sau de o imagine de furnizor.
Cu toate acestea, există mai multe probleme cu procesul actual de instalare GSI. În primul rând, aveți nevoie de un bootloader deblocat, care nu este posibil pe dispozitivele Huawei sau Honor (fără a plăti o taxa), dispozitivele Nokia de la HMD Global (cu excepția Nokia 8), sau dispozitive marca operatorului din S.U.A. În continuare, cel proces va fi dificil pentru oricine nu este familiarizat cu imaginile intermitente prin fastboot. În cele din urmă, dacă afișați un GSI acum, va trebui să ștergeți complet spațiul de stocare intern, ceea ce înseamnă că probabil că veți dori un dispozitiv de rezervă pentru a testa. În acest moment, intermiterea unui GSI este doar ceva pe care OEM-urile îl folosesc pentru a testa compatibilitatea cu Project Treble pe dispozitivele lor și, dincolo de asta, este atrăgător doar pentru cei mai tari. pasionații de ROM personalizate. Noul proiect „Dynamic Android” al Google ar putea încerca să schimbe asta.
Android dinamic — Testați cu ușurință GSI-urile AOSP pe orice dispozitiv Android Q
În ultimele luni, Google a lucrat la o modalitate de a porni în siguranță un GSI, fără a fi nevoie să deblocheze bootloader-ul. Pe scurt, Google dezvoltă o aplicație care are permisiuni speciale care îi permit să descarce un GSI, să-i rezerve spațiu de stocare și să marcheze GSI-ul ca bootabil. Există mai multe componente ale acestui proiect, așa că haideți să le discutăm unul câte unul.
Android dinamic și Android la atingere
Două servicii noi sunt adăugate la Android Q: serviciile Dynamic Android și Android On Tap. În timp ce Dynamic Android se ocupă de instalarea unui GSI, Android On Tap informează aplicațiile de sistem cu apeluri inverse și intenții de difuzare. De exemplu, Android On Tap alertează KeyguardManager pentru a cere utilizatorului să confirme o solicitare de instalare dacă dispozitivul este protejat de un PIN, parolă sau model. De asemenea, AOT alertează utilizatorul atunci când este pornit într-un GSI.
Conform descrierii pentru „DynamicAndroidManager”, serviciul „oferă un mecanism de utilizare a unui nou Android imagine temporar.” După instalare, dispozitivul poate reporni în imaginea nou instalată cu o imagine nou creată /data. Repornirea în timp ce se află în GSI readuce utilizatorul la imaginea originală a sistemului, dar imaginea nou instalată și datele acesteia sunt doar dezactivate și nu șterse. Dacă utilizatorul alege să facă acest lucru, GSI și datele sale pot fi totuși eliminate complet.
Surse: [1], [2], [3], [4]
GSID
Daemonul GSI alocă spațiu în partiția /data pentru a stoca imaginea GSI și datele acesteia și pentru a face imaginea bootabilă. Metadatele GSI sunt stocate în /metadata, în timp ce GSI-ul și datele sale sunt stocate în /data/gsi. În mod implicit, GSID alocă 8 GB de date utilizator pentru GSI nou instalat. În general, GSID caută cel puțin 40% spațiu liber înainte de a începe o instalare. În cele din urmă, demonul împiedică utilizatorul să instaleze un GSI în cadrul unui GSI, din motive evidente.
Surse: [1], [2], [3], [4]
Securitate
Android Verified Boot (AVB) este activat pentru imaginea de sistem EXT4 nou instalată (system_gsi montată pe /system). Google a implementat și politici SELinux pentru noile servicii. În cele din urmă, instalarea unui GSI necesită ca o aplicație să aibă noua permisiune MANAGE_DYNAMIC_ANDROID. Aceasta este o permisiune la nivel de semnătură, ceea ce înseamnă că aplicația trebuie să fie semnată de OEM.
Surse: [1], [2]
Comenzi ADB și Fastboot
GSI-urile vor fi, de asemenea, instalabile prin noi comenzi ADB. Noua comandă shell ADB gsi_tool va permite utilizatorilor să dezactiveze, să reactiveze, să instaleze și să păstreze userdata, instalați și creați userdata, instalați și ștergeți userdata sau verificați starea instalare.
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
Două noi comenzi fastboot vor fi adăugate pentru a gestiona GSI, deși instalarea fastboot nu este acceptată, deoarece fastboot nu poate monta datele utilizatorului.
fastboot gsi wipe
fastboot gsi disable
Surse: [1], [2]
Cine va beneficia asta?
Vreau să spun că dezvoltatorii de aplicații vor putea profita de Dynamic Android și Android On Tap, dar nu sunt complet sigur. Deși Google și-a exprimat interesul doar pentru asta, nu există nicio garanție că această funcție va fi disponibilă în fiecare lansare de Android Q OEM non-Google. Pentru a profita de acest lucru pe dispozitiv, software-ul are nevoie de o aplicație de selecție GSI care este semnată de același certificat ca și ROM. De asemenea, nu sunt sigur că instalarea GSI-urilor din ADB va fi posibilă fără root ADB din cauza politicilor SELinux.Actualizați: Un nou comite confirmă că root ADB va fi necesar să folosească GSI_tool. Dacă acest lucru nu este destinat dezvoltatorilor de aplicații să își testeze aplicațiile pe o versiune curată de Android, atunci probabil că beneficiază inginerii de la OEM-urile care doresc să testeze Compatibility Test Suite (CTS) și Vendor Test Suite (VTS) pe dispozitive.
Mulțumiri speciale dezvoltatorului XDA Recunoscut luca020400 pentru ajutorul lui în acest articol.