A dinamikus Android lehetővé teszi a fejlesztők számára az AOSP tesztelését bármely Android Q eszközön

A Dynamic Android nevű új projekt lehetővé teszi a fejlesztők számára, hogy teszteljék az AOSP Android Q GSI-ket bármely Android Q-t vagy újabbat futtató eszközön.

Köszönet Projekt Treble, az okostelefonok gyártói gyorsabban szállították az Android Pie szoftverfrissítéseket, mint az Android Oreo frissítéséhez, legalábbis a zászlóshajó okostelefonokhoz. A Google azonban nem szeretné, ha csak az OEM-ek élveznék a Project Treble előnyeit. A cég korábban érdeklődését fejezte ki az Android Q általános rendszerképe (GSI) kiadásakor a fejlesztők számára, hogy ne kelljen emulátorokra hagyatkozniuk, használjon felhő szolgáltatás, vagy várja meg a frissítést a saját eszközén, hogy tesztelje az alkalmazást a legújabb API-szinten. Elméletileg a GSI kiadása minden fejlesztő számára lehetővé teszi a Project Treble-kompatibilis eszközzel (eredetileg Android 8.0 Oreo és újabb, de már csak az Android 9 Pie rendszerrel induló eszközöknek tekintendők) a legújabb Android teszteléséhez változat. A fejlesztőnek mindössze egy rendszerképet kell felvillantania a meglévő szoftvertelepítésükre – nincs szükség egyéni helyreállítási, rendszerindítási vagy gyártói lemezképre.

Számos probléma van azonban a jelenlegi GSI telepítési folyamattal. Először is szüksége van egy feloldott rendszerbetöltőre, amely nem lehetséges Huawei vagy Honor eszközökön (fizetés nélkül egy díj), a HMD Global Nokia készülékei (kivéve a Nokia 8), vagy egyesült államokbeli szolgáltatói márkájú eszközök. Következő, a folyamat nehéz lesz mindenkinek, aki nem ismeri a gyorsindításon keresztüli villogó képeket. Végül, ha most villogtatja a GSI-t, akkor teljesen törölnie kell a belső tárhelyet, ami azt jelenti, hogy valószínűleg egy tartalék eszközt szeretne tesztelni. Jelenleg a GSI villogása csak olyan dolog, amelyet az OEM-ek a Project Treble-kompatibilitás tesztelésére használnak eszközeiken, és ezen túlmenően ez csak a megrögzöttek számára vonzó. egyedi ROM rajongók. A Google új „Dynamic Android” projektje valószínűleg változtatni fog ezen.

Dinamikus Android – Könnyen tesztelheti az AOSP GSI-ket bármely Android Q-eszközön

Az elmúlt néhány hónapban a Google azon dolgozott, hogy biztonságosan indítsa el a GSI-t a rendszerbetöltő feloldása nélkül. Röviden: a Google egy olyan alkalmazást fejleszt, amely speciális engedélyekkel rendelkezik, amelyek lehetővé teszik a GSI letöltését, tárhely lefoglalását és a GSI-t indíthatóként való megjelölését. Ennek a projektnek több összetevője van, ezért beszéljük meg ezeket egyenként.

Dinamikus Android és Android On Tap

Két új szolgáltatással bővül az Android Q: a Dynamic Android és az Android On Tap szolgáltatásokkal. Míg a Dynamic Android kezeli a GSI telepítését, az Android On Tap visszahívásokkal és sugárzási szándékokkal tájékoztatja a rendszeralkalmazásokat. Például az Android On Tap figyelmezteti a KeyguardManagert, hogy kérje meg a felhasználót a telepítési kérelem megerősítésére, ha az eszközt PIN-kód, jelszó vagy minta védi. Az AOT figyelmezteti a felhasználót, ha GSI-be bootol.

A „DynamicAndroidManager” leírása szerint a szolgáltatás „mechanizmust kínál egy új Android használatához kép ideiglenesen." Telepítés után az eszköz újraindulhat az újonnan telepített lemezképpel egy újonnan létrehozott képpel /data. A GSI-ben történő újraindítás visszaállítja a felhasználót az eredeti rendszerképhez, de az újonnan telepített lemezkép és annak adatai csak letiltásra kerülnek, és nem törlődnek. Ha azonban a felhasználó úgy dönt, a GSI és annak adatai teljes mértékben eltávolíthatók.

Források: [1], [2], [3], [4]

GSID

A GSI démon helyet foglal le a /data partícióban a GSI képfájl és annak adatai tárolására, valamint a képfájl indíthatóvá tételére. A GSI metaadatai a /metadata, míg magát a GSI-t és annak adatait a /data/gsi mappában tárolják. Alapértelmezés szerint a GSID 8 GB felhasználói adatot foglal le az újonnan telepített GSI számára. Általában a GSID legalább 40% szabad területet keres a telepítés megkezdése előtt. Végül a démon nyilvánvaló okokból megakadályozza, hogy a felhasználó GSI-t telepítsen a GSI-n belül.

Források: [1], [2], [3], [4]

Biztonság

Az Android Verified Boot (AVB) engedélyezve van az újonnan telepített EXT4 rendszerképhez (a system_gsi a /system fájlhoz van csatlakoztatva). A Google SELinux szabályzatot is bevezetett az új szolgáltatásokhoz. Végül a GSI telepítéséhez egy alkalmazásnak új MANAGE_DYNAMIC_ANDROID engedéllyel kell rendelkeznie. Ez egy aláírás szintű engedély, ami azt jelenti, hogy az alkalmazást az OEM-nek alá kell írnia.

Források: [1], [2]

ADB és Fastboot parancsok

A GSI-k új ADB-parancsokkal is telepíthetők lesznek. Az új ADB gsi_tool shell parancs lehetővé teszi a felhasználók számára, hogy letiltsák, újra engedélyezzék, telepítsék és megőrizzék userdata, telepítse és hozzon létre felhasználói adatokat, telepítse és törölje a felhasználói adatokat, vagy ellenőrizze az állapotát telepítés.

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

Két új gyorsindítási parancs kerül hozzáadásra a GSI kezeléséhez, bár a gyorsindítási telepítés nem támogatott, mivel a fastboot nem tudja csatlakoztatni a felhasználói adatokat.

fastboot gsi wipe
fastboot gsi disable

Források: [1], [2]

Kinek lesz ebből haszna?

Azt akarom mondani, hogy az alkalmazásfejlesztők ki tudják használni a Dynamic Android és az Android On Tap előnyeit, de nem vagyok benne teljesen biztos. Bár a Google érdeklődését fejezte ki ez iránt, nincs garancia arra, hogy ez a funkció minden Android Q kiadásban elérhető lesz nem Google OEM-ek. Ennek kihasználásához a szoftvernek szüksége van egy GSI picker alkalmazásra, amely ugyanazzal a tanúsítvánnyal van aláírva, mint a ROM. Abban sem vagyok biztos, hogy a GSI-k telepítése ADB-ből lehetséges lesz ADB root nélkül a SELinux házirendek miatt.Frissítés: Egy új elkövetni megerősíti, hogy ADB root szükséges a GSI_tool használatához. Ha ezt nem az alkalmazásfejlesztőknek szánták, hogy teszteljék alkalmazásaikat egy tiszta Android-felépítésen, akkor valószínűleg csak a kompatibilitási tesztcsomagot (CTS) és a szállítói tesztcsomagot (VTS) tesztelni kívánó OEM-ek mérnökei számára előnyös. eszközöket.

Külön köszönet az XDA elismert fejlesztőnek luca020400 a cikkben nyújtott segítségéért.