Dünaamiline Android võimaldab arendajatel testida AOSP-d mis tahes Android Q seadmes

click fraud protection

Uus projekt nimega Dynamic Android võimaldab arendajatel testida AOSP Android Q GSI-sid mis tahes seadmes, milles töötab Android Q või uuem.

Tänu Projekt Treble, on nutitelefonide tootjad vähemalt lipulaevade nutitelefonide puhul Android Pie tarkvaravärskendusi tarninud kiiremini, kui nad seda Android Oreo värskenduse puhul teha suutsid. Google ei taha, et Project Treble'i eeliseid saaksid kasutada ainult originaalseadmete tootjad. Ettevõte on varem avaldas huvi Android Q üldise süsteemipildi (GSI) avaldamisel arendajatele, et nad ei peaks lootma emulaatoritele, kasutage pilveteenusvõi oodake oma seadmes värskendust, et testida rakendust uusima API tasemega. Teoreetiliselt peaks GSI väljalaskmine võimaldama igal arendajal, kellel on Project Treble'iga ühilduv seade (algselt Android 8.0 Oreo ja uuemad, kuid nüüd peetakse uusima Androidi testimiseks ainult seadmeid, mis käivituvad operatsioonisüsteemiga Android 9 Pie versioon. Kõik, mida arendaja peab tegema, on oma olemasoleva tarkvarainstalli peale süsteemi kujutise vilkuma – pole vaja kohandatud taaste-, alglaadimis- või müüja kujutist.

Praegusel GSI installiprotsessil on aga mitmeid probleeme. Esiteks vajate lukustamata alglaadurit, mis ei ole võimalik Huawei või Honori seadmetes (ilma maksmata tasu), HMD Globali Nokia seadmed (v.a Nokia 8) või USA operaatori kaubamärgiga seadmed. Järgmiseks, protsessi on raske kõigile, kes ei tunne kiirkäivituse kaudu vilkuvaid pilte. Lõpuks peate GSI vilkumiseks nüüd sisemälu täielikult pühkima, mis tähendab, et tõenäoliselt soovite testimiseks varuseadet. Praegu on GSI vilkumine vaid asi, mida originaalseadmete tootjad kasutavad oma seadmetes Project Treble'i ühilduvuse testimiseks ja peale selle on see ainult paadunud huvilistele ahvatlev. kohandatud ROM-i entusiastid. Google'i uus projekt "Dynamic Android" võib seda muuta.

Dünaamiline Android – testige hõlpsalt AOSP GSI-sid mis tahes Android Q-seadmes

Viimase paari kuu jooksul on Google töötanud selle kallal, kuidas GSI turvaliselt käivitada ilma alglaadurit avamata. Lühidalt öeldes arendab Google rakendust, millel on spetsiaalsed õigused, mis võimaldavad alla laadida GSI-d, reserveerida selle jaoks salvestusruumi ja märkida GSI buutivaks. Sellel projektil on mitu komponenti, seega arutame neid ükshaaval.

Dünaamiline Android ja Android On Tap

Android Q-le lisatakse kaks uut teenust: Dynamic Android ja Android On Tap teenused. Kui dünaamiline Android tegeleb GSI installimisega, siis Android On Tap teavitab süsteemirakendusi tagasihelistamiste ja levieesmärkidega. Näiteks Android On Tap hoiatab KeyguardManagerit, et paluda kasutajal installitaotlus kinnitada, kui seade on kaitstud PIN-koodi, parooli või mustriga. AOT hoiatab kasutajat ka siis, kui ta käivitatakse GSI-sse.

"DynamicAndroidManageri" kirjelduse kohaselt pakub teenus mehhanismi uue Androidi kasutamiseks pilt ajutiselt." Pärast installimist saab seade uuesti installitud kujutisega taaskäivitada /data. Taaskäivitamine GSI-s naaseb kasutaja algse süsteemipildi juurde, kuid äsja installitud pilt ja selle andmed lihtsalt keelatakse ja neid ei kustutata. Kui kasutaja nii otsustab, saab GSI ja selle andmed siiski täielikult eemaldada.

Allikad: [1], [2], [3], [4]

GSID

GSI deemon eraldab /data partitsioonis ruumi GSI kujutise ja selle andmete salvestamiseks ning kujutise buutimiseks. GSI metaandmed salvestatakse kaustas /metadata, samas kui GSI ise ja selle andmed salvestatakse kaustas /data/gsi. Vaikimisi eraldab GSID äsja installitud GSI jaoks 8 GB kasutajaandmeid. Üldiselt otsib GSID enne installi alustamist vähemalt 40% vaba ruumi. Lõpuks takistab deemon kasutajal arusaadavatel põhjustel GSI-d GSI-sse installimast.

Allikad: [1], [2], [3], [4]

Turvalisus

Android Verified Boot (AVB) on äsja installitud EXT4 süsteemipildi jaoks lubatud (system_gsi on ühendatud / system). Google on uute teenuste jaoks rakendanud ka SELinuxi eeskirju. Lõpuks peab GSI installimiseks rakendusel olema uus MANAGE_DYNAMIC_ANDROID luba. See on allkirjataseme luba, mis tähendab, et rakendus peab olema OEM-i poolt allkirjastatud.

Allikad: [1], [2]

ADB ja Fastboot käsud

GSI-sid saab installida ka uute ADB-käskude kaudu. Uus ADB gsi_tool shellikäsk võimaldab kasutajatel keelata, uuesti lubada, installida ja säilitada kasutajaandmed, installige ja looge kasutajaandmed, installige ja kustutage kasutajaandmed või kontrollige nende olekut paigaldus.

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

GSI haldamiseks lisatakse kaks uut kiirkäivituskäsku, kuigi kiirkäivituse installimist ei toetata, kuna kiirkäivitus ei saa kasutajaandmeid ühendada.

fastboot gsi wipe
fastboot gsi disable

Allikad: [1], [2]

Kellele see kasu on?

Tahan öelda, et rakenduste arendajad saavad dünaamilise Androidi ja Android On Tapi eeliseid kasutada, kuid ma pole päris kindel. Kuigi Google on just selle vastu huvi väljendanud, pole garantiid, et see funktsioon on saadaval kõigis Android Q versioonides mitte-Google'i originaalseadmete tootjad. Selle seadmes eelise kasutamiseks vajab tarkvara GSI valija rakendust, mis on allkirjastatud sama sertifikaadiga, mis ROM. Samuti pole ma kindel, et SELinuxi poliitikate tõttu on GSI-de installimine ADB-st võimalik ilma ADB juureta.Värskendus: Uus pühenduma kinnitab, et GSI_tool'i kasutamiseks on nõutav ADB juur. Kui see ei ole mõeldud rakenduste arendajatele oma rakenduste testimiseks Androidi puhtas järgus, siis tõenäoliselt ainult saavad kasu originaalseadmete tootjate insenerid, kes soovivad testida ühilduvuse testikomplekti (CTS) ja tarnija testikomplekti (VTS) seadmeid.

Eriline tänu XDA tunnustatud arendajale luca020400 tema abi eest selles artiklis.