Dynaaminen Android antaa kehittäjille mahdollisuuden testata AOSP: tä millä tahansa Android Q -laitteella

Uusi projekti nimeltä Dynamic Android antaa kehittäjille mahdollisuuden testata AOSP Android Q GSI: itä kaikilla laitteilla, joissa on Android Q tai uudempi.

Kiitokset Projekti Treble, älypuhelinlaitteiden valmistajat ovat toimittaneet Android Pie -ohjelmistopäivitykset nopeammin kuin he pystyivät tekemään niin Android Oreo -päivityksen osalta, ainakin lippulaivapuhelimille. Google ei kuitenkaan halua, että vain OEM-valmistajat hyötyisivät Project Treblesta. Yhtiö on aiemmin ilmaissut kiinnostuksensa julkaisemalla Android Q: n Generic System Image (GSI) -kuvan kehittäjille, jotta heidän ei tarvitse luottaa emulaattoreihin, käytä pilvipalvelutai odottavat päivitystä omalla laitteellaan testatakseen sovellusta uusimman API-tason kanssa. Teoriassa GSI: n julkaisun pitäisi sallia kaikki kehittäjät, joilla on Project Treble -yhteensopiva laite (alun perin Android 8.0 Oreo ja uudemmat, mutta nyt katsotaan vain laitteet, joissa on Android 9 Pie) testata uusinta Androidia versio. Kehittäjän tarvitsee vain päivittää järjestelmäkuva olemassa olevan ohjelmistoasennuksen päälle – ei tarvita mukautettua palautusta, käynnistystä tai toimittajan näköistiedostoa.

Nykyisessä GSI-asennusprosessissa on kuitenkin useita ongelmia. Ensinnäkin tarvitset lukitsemattoman käynnistyslataimen, joka ei ole mahdollista Huawei- tai Honor-laitteilla (maksamatta maksu), HMD Globalin Nokia-laitteet (paitsi Nokia 8) tai yhdysvaltalaisilla operaattorimerkillä varustettuja laitteita. Seuraavaksi, käsitellä asiaa on vaikeaa kaikille, jotka eivät tunne flash-kuvien vilkkumista pikakäynnistyksen kautta. Lopuksi, GSI: n vilkkuminen nyt edellyttää, että sisäinen tallennustila on tyhjennettävä kokonaan, mikä tarkoittaa, että haluat todennäköisesti testattavaksi varalaitteen. Tällä hetkellä GSI: n vilkkuminen on vain jotain, jota OEM-valmistajat käyttävät Project Treble -yhteensopivuuden testaamiseen laitteissaan, ja sen lisäksi se houkuttelee vain kovia. mukautetut ROM-harrastajat. Googlen uusi "Dynamic Android" -projekti saattaa näyttää muuttavan tämän.

Dynaaminen Android – Testaa helposti AOSP GSI: itä millä tahansa Android Q -laitteella

Muutaman viime kuukauden ajan Google on työskennellyt tavan käynnistää GSI: n turvallisesti ilman käynnistyslataimen lukitusta. Lyhyesti sanottuna Google kehittää sovellusta, jolla on erityisoikeudet, joiden avulla se voi ladata GSI: n, varata sille tallennustilaa ja merkitä GSI: n käynnistettäväksi. Tässä projektissa on useita osia, joten keskustellaan niistä yksitellen.

Dynaaminen Android ja Android On Tap

Android Q: hun lisätään kaksi uutta palvelua: Dynamic Android ja Android On Tap -palvelut. Dynaaminen Android hoitaa GSI: n asennuksen, kun taas Android On Tap ilmoittaa järjestelmäsovelluksille takaisinkutsuilla ja lähetysaikeilla. Esimerkiksi Android On Tap varoittaa KeyguardManageria pyytämään käyttäjää vahvistamaan asennuspyynnön, jos laite on suojattu PIN-koodilla, salasanalla tai kuviolla. AOT myös varoittaa käyttäjää, kun hän käynnistetään GSI: lle.

"DynamicAndroidManagerin" kuvauksen mukaan palvelu "tarjoaa mekanismin uuden Androidin käyttöön kuva väliaikaisesti." Asennuksen jälkeen laite voi käynnistyä uudelleen äskettäin asennetulle näköistiedostolle /data. Uudelleenkäynnistys GSI: ssä palauttaa käyttäjän alkuperäiseen järjestelmänäköistiedostoon, mutta juuri asennettu näköistiedosto ja sen tiedot vain poistetaan käytöstä, eikä niitä poisteta. Jos käyttäjä niin päättää, GSI ja sen tiedot voidaan kuitenkin poistaa kokonaan.

Lähteet: [1], [2], [3], [4]

GSID

GSI-daemon varaa tilaa /data-osiossa GSI-kuvan ja sen tietojen tallentamiseksi ja kuvan tekemiseksi käynnistettäväksi. GSI: n metatiedot tallennetaan kansioon /metadata, kun taas itse GSI ja sen tiedot tallennetaan kansioon /data/gsi. Oletuksena GSID varaa 8 Gt käyttäjätietoja juuri asennetulle GSI: lle. Yleensä GSID etsii vähintään 40 % vapaata tilaa ennen asennuksen aloittamista. Lopuksi demoni estää käyttäjää asentamasta GSI: tä GSI: n sisään ilmeisistä syistä.

Lähteet: [1], [2], [3], [4]

Turvallisuus

Android Verified Boot (AVB) on otettu käyttöön äskettäin asennetulle EXT4-järjestelmäkuvalle (system_gsi liitetty kohtaan /system). Google on myös ottanut käyttöön SELinux-käytännöt uusissa palveluissa. Lopuksi GSI: n asennus edellyttää, että sovelluksella on uusi MANAGE_DYNAMIC_ANDROID-käyttöoikeus. Tämä on allekirjoitustason lupa, mikä tarkoittaa, että OEM: n on allekirjoitettava sovellus.

Lähteet: [1], [2]

ADB- ja Fastboot-komennot

GSI: t voidaan asentaa myös uusilla ADB-komennoilla. Uuden ADB gsi_tool shell -komennon avulla käyttäjät voivat poistaa käytöstä, ottaa uudelleen käyttöön, asentaa ja säilyttää userdata, asenna ja luo käyttäjätiedot, asenna ja pyyhi käyttäjätiedot tai tarkista käyttäjän tila asennus.

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

Kaksi uutta pikakäynnistyskomentoa lisätään GSI: n hallintaan, vaikka pikakäynnistysasennusta ei tueta, koska pikakäynnistys ei voi liittää käyttäjätietoja.

fastboot gsi wipe
fastboot gsi disable

Lähteet: [1], [2]

Ketä tämä hyödyttää?

Haluan sanoa, että sovelluskehittäjät voivat hyötyä Dynamic Androidista ja Android On Tapista, mutta en ole täysin varma. Vaikka Google on ilmaissut kiinnostuksensa juuri tähän, ei ole takeita siitä, että tämä ominaisuus on saatavilla kaikissa Android Q -julkaisuissa muut kuin Googlen OEM-valmistajat. Hyödyntääkseen tätä laitteella ohjelmisto tarvitsee GSI-valitsinsovelluksen, joka on allekirjoitettu samalla varmenteella kuin ROM. En myöskään ole varma, että GSI: iden asentaminen ADB: stä on mahdollista ilman ADB: n juuria SELinux-käytäntöjen vuoksi.Päivittää: Uusi tehdä vahvistaa, että ADB-root vaaditaan käyttämään GSI_tool-työkalua. Jos tätä ei ole tarkoitettu sovellusten kehittäjille testaamaan sovelluksiaan puhtaalla Android-versiolla, se todennäköisesti vain hyötyvät OEM-valmistajien insinöörit, jotka haluavat testata Compatibility Test Suite (CTS) ja Vendor Test Suite (VTS) -ohjelmiston laitteet.

Erityiset kiitokset XDA Recognised -kehittäjälle luca020400 hänen avustaan ​​tässä artikkelissa.