Dinaminiai sistemos naujinimai sistemoje „Android“ Klausimas: kaip „Project Treble“ pagerins būsimas „Android“ versijas

„Google“ atskleidė „Dynamic System Update“ – naują būdą įdiegti GSI „Android Q“, kuriam nereikia atrakinti įkrovos tvarkyklės.

Kartu su „Android 8.0 Oreo“ išleidimu „Google“ pristatė Projektas Treble: esminis „Android“ OS sistemos ir pardavėjo HAL bei „Linux“ branduolio bendravimo būdo pertvarkymas. Treble yra pagrindinė iniciatyva, skirta sumažinti Android platformos versiją ir saugos pataisos suskaidymas, o visi „Android“ prekės ženklo įrenginiai, paleidžiami su „Android Pie“, turi palaikyti „Project Treble“. Originalios įrangos gamintojai ir pardavėjai išbando „Treble“ suderinamumą paleisdami bendrąjį sistemos vaizdą (GSI) – gryną „Android“ versiją iš AOSP – ir išlaikydami Pardavėjo testų rinkinys (VTS) ir suderinamumo testų komplektas-on-Generic System Image (CTS-on-GSI). GSI pasirodė naudinga ne tik leidžiant originalios įrangos gamintojams dirbantiems programinės įrangos inžinieriams išbandyti Treble suderinamumą, bet ir atvėrė duris didelė pasirinktinė ROM bendruomenė ant XDA. „Android Q“ leidime „Google“ nori, kad GSI būtų naudingi kitai grupei: programų kūrėjams.

Paprastai išleidžiamas pirmasis stabilus bet kurios „Android“ platformos leidimas ir šaltinio kodas rugpjūtį, kūrėjams, kurie norėtų išbandyti kitą „Android“ leidimą tikrame įrenginyje, paprastai reikia prieigos prie „Google“ išmaniojo telefono, jei nenori laukti, kol naujinimas pasieks jų pačių aparatinę įrangą. Tačiau „Google“ dirbo su originalios įrangos gamintojais, kad sukurtų Android P beta versija keliems įrenginiams praėjusiais metais, o šiemet jie tai tęsė su Android Q beta versija. Be oficialios „Android Q“ beta versijos, „Google“ šiais metais taip pat išleido oficiali Q beta GSI todėl bet kuris kūrėjas, turintis su „Project Treble“ suderinamą įrenginį, gali įdiegti naujausią Q leidimą nelaukdamas mėnesių, kol versija pasieks jų įrenginius. Šis naujas būdas išbandyti kitą „Android“ leidimą suteikia kūrėjams daugiau galimybių, taigi ir daugiau laiko, išbandyti savo programas pagrindiniai Android pakeitimai.

Deja, dabartinis metodas GSI įdiegimas gali būti sunku. Tam reikia atrakinti įkrovos įkroviklį, o tai reiškia, kad reikia ištrinti visus vartotojo duomenis ir (arba) panaikinti garantiją, ir paleisti vaizdą naudojant greitosios įkrovos protokolą. Tai nėra greitas ir paprastas procesas, kurį turi atlikti programų kūrėjas, jei jo įrenginys netgi leidžia atrakinti įkrovos tvarkyklę. Štai kodėl, už pastaruosius kelis mėnesius, „Google“ sukūrė naują GSI paleidimo būdą. Įveskite naują funkciją, pavadintą Dinaminis sistemos naujinimas arba DSU.

(Ši funkcija anksčiau buvo sukurta pavadinimais „Live Image“, „Dynamic Android“ ir „Android on Tap“, todėl nenustebkite, jei po kelių savaičių ar mėnesių „Google“ ją pavadins kitaip.)

Dinaminiai sistemos naujiniai sistemoje „Android Q“.

DSU funkcijos tikslas – leisti kūrėjui paleisti GSI netrukdant dabartiniam diegimui. Tai reiškia, kad įkrovos tvarkyklės nereikia atrakinti ir nereikia ištrinti vartotojo duomenų. Diegimo procesas taip pat labai supaprastintas, nes „Google“ suteikė komandų eilutės sąsają per ADB ir programą, kurią galima valdyti naudojant ketinimus. Štai kaip atrodo paleisti GSI naudojant DSU:

Šiame vaizdo įraše* „Google Pixel 3 XL“, kuriame veikia „Android Q beta 3“, iš naujo paleidžiamas į GSI. Šioje aplinkoje programos kūrėjas gali įdiegti ir išbandyti savo programą, ar jos suderinamas su Q API. Baigę testavimą, jie gali tiesiog iš naujo paleisti įprastą Q beta 3 programinę įrangą įrenginyje. Iš esmės GSI paleidžiate dvigubai, kad galėtumėte saugiai išbandyti savo programą!

* Šį vaizdo įrašą įrašėme „Google I/O 2019“, kai DSU dar nebuvo viešai pasiekiamas, todėl „Q beta 3“ versija, pagrįsta nufilmuotu „Pixel 3 XL“, buvo šiek tiek pakeista „Google“, įtraukdama DSU palaikymą. Įrenginiai, kuriuose veikia Q beta 4 ir naujesnės versijos, gali palaikyti DSU, jei atitinka toliau nurodytus reikalavimus.

Reikalavimai dinaminiams sistemos naujinimams

Paleisti ir paleisti tai, kas iš esmės yra dviguba, „Google“ nebuvo lengva užduotis. Reikėjo padaryti esminių pakeitimų, kaip skaidiniai tvarkomi „Pixel 3“, „Google“ DSU bandymo platformoje. Taigi, pirmasis pagrindinis reikalavimas DSU palaikymui yra tai, kad įrenginys palaiko dinaminės pertvaros. Dinaminiai skaidiniai apima vieną tikrą saugyklos skaidinį, kuris yra padalintas į keičiamo dydžio loginius skaidinius, pvz., sistemos, tiekėjo, odm, oem, produkto ir kt. Diegiant GSI, vieta rezervuojama naujoms sistemos ir vartotojo duomenų skaidiniams, paimant nepanaudotus blokus iš esamo vartotojo duomenų skaidinio. Kadangi šie nauji skaidiniai gali būti kelių gigabaitų dydžio, DSU palaikymas prasmingas tik naudojant loginį pertvaros, kitaip įrenginiui reikės nuolat rezervuoti kelis gigabaitus GSI saugyklos vietos instaliacijos.

Kiti reikalavimai apima ramdiską, kuris nusprendžia, ar paleisti iš atkūrimo, sistemos ar loginio skaidinio, ir metaduomenų skaidinį, kuriame saugomi GSI metaduomenys. Apskritai, pagrindiniai DSU palaikymo elementai yra „Android Q“ paleidimo reikalavimai, pasak projekto „Treble“ vadovo Iliyano Malchevo. Nesame tikri, ar viskas kurio reikia norint palaikyti DSU, yra „Android Q“ paleidimo reikalavimas, tačiau galime manyti, kad dauguma, jei ne visi, įrenginiai paleidžiami naudojant „Android Q“ gali palaiko DSU, net jei „Google“ šiuo metu to nereikalauja. Kol kas tik „Pixel 3“, „Pixel 3 XL“, „Pixel 3a“ ir „Pixel 3a XL“ turi dinaminius skaidinius, o iš šių įrenginių „Android Q beta 4“ DSU palaiko tik „Pixel 3“ ir „Pixel 3 XL“. Nors DSU palaikymas nereikalingas, „Google“ tikisi, kad originalios įrangos gamintojai vis tiek įjungs šią funkciją, nes tai supaprastina saugų „Treble“ suderinamumo testavimą. Pavyzdžiui, OĮG programinės įrangos inžinierius gali įdėti GSI SD kortelėje todėl jie gali greitai paleisti kelis įrenginius ir išbandyti Treble suderinamumą.

Dinaminių sistemos naujinimų sauga

Kadangi DSU į rinkinį iš esmės pristato antrąją operacinę sistemą, „Google“ turi užtikrinti, kad šio naujo diegimo nebūtų galima sugadinti, kad būtų pažeistas įrenginio vientisumas. Taigi, GSI diegimui taikomos tos pačios pagrindinės saugos priemonės, skirtos pradiniam diegimui: „Android Verified Boot“ ir „SELinux“ politika. Be to, tik programos, turinčios INSTALL_DYNAMIC_SYSTEM parašo|privilegijuotą leidimą, gali inicijuoti GSI diegimas, o programos, turinčios MANAGE_DYNAMIC_SYSTEM parašo leidimą, gali įjungti / išjungti arba ištrinti GSI įrengimas. Tai reiškia, kad su DSU gali veikti tik patikimos sistemos lygio programos.

Siekdama užtikrinti, kad pirminiai naudotojo duomenys būtų apsaugoti, „Google“ pridėjo papildomas apsaugos mechanizmas „Android Q“. Vadinamas "Patikrinimo taškas“, ši funkcija apsaugo nuo vartotojo duomenų sunaikinimo, atkurdama kontrolinių skaidinių pradinę būseną. Tačiau patikros taškai naudingi ne tik DSU. Jie taip pat naudojami apsaugoti nuo sugadinimo Pagrindinis projektas APEX modulis ir A/B OTA atnaujinimai. (Įrenginiai su A/B pertvaromis jau turi atšaukimo apsaugą, tačiau norint atkurti gamyklinius duomenis reikia iš naujo nustatyti, o naudotojo duomenų tikrinimo taškuose to nereikia.)

GSI diegimas

Jei jūsų įrenginys palaiko DSU, pvz., „Pixel 3“ seriją, įdiegti GSI nesunku. Pirmiausia turite įsitikinti, kad dinaminės sistemos funkcijos vėliavėlė įjungta vienu iš dviejų būdų:

  1. Jei naudojate vartotojo derinimo versiją, įgalinkite vėliavėlę settings_dynamic_android skiltyje Nustatymai > Sistema > Kūrėjo parinktys > Funkcijų vėliavėlės.
  2. Jei naudojate vartotojo versiją, paleiskite šią adb apvalkalo komandą:
    setproppersist.sys.fflag.override.settings_dynamic_system 1

Tada atsisiųskite naujausią „Android Q beta GSI“ iš Google arba jūsų įrenginio OĮG. (DSU leidžia įdiegti tik „Google“ arba OĮG pasirašytus GSI.) Atsisiuntę naudokite simg2img retą vaizdą konvertuoti į neapdorotą vaizdą. Naudokite gzip, kad supakuotumėte neapdorotą vaizdą, tada nukopijuokite gautą archyvą į įrenginio vietą išorinė atmintis (pvz., /data/media/0/Download) arba tikroji išorinė laikmena (pvz., fizinis SD kortelę). Galiausiai paleiskite „DynamicSystemInstallationService“ programą su tinkamu ketinimu pradėti diegti:

adb shell am start-activity \ -n com.android.dynsystem/com.android.dynsystem.VerificationActivity \ -a android.os.image.action.START_INSTALL \ -d file:///storage/emulated/0/Download/system_raw.gz \ --el KEY_SYSTEM_SIZE $(du -b system_raw.img|cut -f1) \ --el KEY_USERDATA_SIZE 8589934592

Kai spustelėsite paleisti iš naujo, įkrausite GSI. Įrenginio tinkamumas naudoti GSI priklauso nuo to, kaip jūsų įrenginio OĮG įdiegė „Treble“ (tiksliau, kiek jie pažeidė „Treble“ suderinamumas.) Kai kurie įrenginiai veiks geriau su GSI nei kiti, bet apskritai nesitikėkite, kad šis diegimas bus naudojamas kasdien vairuotojas. Turite išbandyti programą, tada išeiti iš naujo paleisdami. Jei norite likti GSI įrenginyje ir atlikti tolesnius bandymus, galite naudoti gsi_tool apvalkalo komanda.

Visas DSU GSI diegimo instrukcijas galite rasti čia. Klaidas galima pateikti adresu „Google Issue Tracker“,Reddit, arba Stack Overflow.

Dinaminių sistemos atnaujinimų priežastis

Kai kalbėjausi su Iliyanu Malchevu „Google I/O“, jis pakartojo, ką Hung-ying Tyan iš „Treble“ komandos pasakė apie ankstyvą GSI prieigą Lapkričio mėn. Android Dev Summit. „Google“ sukūrė DSU prašyti kuo platesnės auditorijos atsiliepimų. Tikslas yra pagerinti GSI kokybę, o tai savo ruožtu pagerina būsimo Android leidimo kokybę nes GSI yra gryniausia Android forma. „Google“ šiuo metu yra vienintelė įmonė, kuri išbando naujos versijos GSI suderinamumą (pavyzdžiui, kaip gerai veikia „Android Q“ sistemos vaizdas su „Android P“ tiekėjo diegimas), tačiau vis daugiau žmonių siunčia GSI ir pateikia atsiliepimų, todėl originalios įrangos gamintojai gali ištaisyti Treble suderinamumo pažeidimus, kad GSI veiktų dar geriau ateitis. Iliyanas teigia, kad originalios įrangos gamintojai ir pardavėjai, tokie kaip „Qualcomm“, labai domisi ankstesnio „Android“ leidimo tiekėjų vaizdų pakartotiniu panaudojimu su kitos versijos sistemos atvaizdu. Tokios iniciatyvos kaip DSU padeda „Google“ ir originalios įrangos gamintojams užpildyti automatinių testų, pvz., VTS ir CTS-on-GSI, aprėpties spragą. Taigi, „Google“ gauna daugiau beta versijos bandytojų, kurie pateiks atsiliepimų apie kitą „Android“ leidimą, taip pat girdi apie „Treble“ suderinamumo pažeidimus, kad originalios įrangos gamintojai galėtų pagerinti savo darbą.

Dinaminių sistemos naujinimų pridėjimas „Android Q“ yra sveikintinas, tačiau tai nebus dvigubos įkrovos sprendimas, kurio kai kurie iš jūsų tikisi. Kaip minėta anksčiau, galima įdiegti tik „Google“ arba originalios įrangos gamintojų pasirašytus sistemos vaizdus. Kai paklausiau Iliyano apie galimybę išplėsti DSU, kad būtų palaikoma alternatyvios „Android“ ekosistema sistemoms, jis sakė, kad tai techniškai įmanoma padaryti, nes DSU yra tiesiog sistemos pristatymo kanalas vaizdai. Bet kuris originalios įrangos gamintojas gali jį naudoti, kaip nori tol, kol galutinis rezultatas yra suderinamas su „Android“.. „Google“ čia nesukūrė alternatyvos OTA sistemai, o DSU nėra skirtas naudoti tikram dvigubam paleidimui. Nepaisant to, darbas, kurį „Google“ atliko su „Treble“, daro „Android“ moduliškesnį, todėl nenustebčiau, jei pradinis dvigubas paleidimas taps realybe.