„Android 11“ bus su „DSU Loader“, esančiu kūrėjo parinktyse, kuri leis automatiškai atsisiųsti ir įdiegti suderinamus GSI! Skaitykite toliau!
Gera programų ekosistema yra vienas iš svarbiausių operacinės sistemos sėkmės ramsčių. Tiek „Google“, tiek „Apple“ pripažįsta gerų programų savo platformose vertę, todėl abi įmonės stengiasi suderinti savo vartotojų ir programų kūrėjų poreikius. Vartotojai nuolat siekia keisti OS, ir nors dauguma žmonių paprastai vertina naujas funkcijas, jos pakeitimai ne visada yra įdomūs programų kūrėjams, nes jie gali pakeisti daug pagrindinių funkcijų ir elgesį. Kūrėjai, kurie nuolat stengiasi, kad jų programos būtų aktualios, šių pakeitimų tvarkymas papildo jų darbo sąrašą. Net jei šie pakeitimai neturi tiesioginės įtakos jų programoms, kūrėjai vis tiek turi įsitikinti, kad jų programos veiks su naujuoju OS atnaujinimu. Bėgant metams „Google“ padarė daug pakeitimų, kad šis procesas būtų lengvesnis „Android“ programų kūrėjams, o dabar – nauja „Android 11“ funkcija, vadinama „DSU Loader“, leis programų kūrėjams dar lengviau išbandyti savo programas naujoje „Android“ versijos.
Jis prasideda nuo projekto Treble
Projektas Treble, pristatytas Android 8.0, yra pagrindinis „Android“ OS pertvarkymas. „Project Treble“ tikslas buvo padalinti „Android“ OS į dvi dideles dalis: sistemą ir pardavėjo diegimą. ("pardavėjas" čia reiškia bet kurio patentuoto aparatūros komponento, esančio įrenginyje, gamintoją, paprastai nurodant silicis). „Android“ OS sistema yra pati operacinė sistema, įskaitant visas sistemos programas, vartotojo sąsają ir jos komponentus bei API, kurios yra bendrinamos „Android“ įrenginiuose. Pardavėjo diegimą sudaro tiekėjo HAL (Hardware Abstraction Layers) ir Linux branduolio bei Linux branduolio moduliai.
Kadangi originalios įrangos gamintojai pristato išmaniuosius telefonus su daugybe skirtingų aparatinės įrangos komponentų iš daugybės skirtingų pardavėjų, jie turi daug dirbti, kad aparatinė įranga būtų įdiegta ir paleista viename „Android“ OS leidime. Tada su kiekvienu nauju „Android“ OS atnaujinimu jie turi padaryti dar daugiau darbo, kad įsitikintų, jog jų aparatinė įranga veikia su nauja versija. Tačiau „Project Treble“ standartizuoja ABI (Application Binary Interface) tarp „Android“ OS sistemos ir HAL tam tikrai „Android“ versijai, „Android“ originalios įrangos gamintojai gali pradėti testuoti savo įrenginių naujinimus, nelaukdami, kol silicio gamintojai ir kiti komponentų gamintojai atnaujins savo kodas. Šis pokytis pastebimai paspartėjo kaip tvarkomi „Android“ naujinimai.
Tai esmė to, ką „Project Treble“ padarė „Android“ naujinimams, bet kas svarbiau programoms kūrėjai yra tai, kad „Treble“ suderinamumui užtikrinti įgalino naudoti bendruosius sistemos vaizdus (GSI). testavimas.
GSI atsiradimas
Kad originalios įrangos gamintojai galėtų patikrinti, ar jie tinkamai įdiegė „Project Treble“, „Google“ įpareigoja, kad OĮG turėtų turėti galimybę įrenginyje paleisti švarią „Android“ versiją iš AOSP. Ši švari „Android“ versija vadinama bendruoju sistemos vaizdu arba GSI. Jei GSI paleidžiama ir dauguma pagrindinės aparatinės įrangos veikia tinkamai, tada OĮG žino, kad jų įrenginys atitinka Project Treble reikalavimus. Taigi pradinis GSI tikslas buvo išbandyti Treble suderinamumą, tačiau, kaip matėme su XDA-Developers kūrėjų bendruomene, jie gali būti naudojami kitiems tikslams. Mes matėme, kaip GSI iš esmės galėtų leisti įrenginiams su sunkiomis Android UX mėgautis naujausia Android versija su veikiančiomis funkcijomis per kelias dienas nuo naujo leidimo. Tačiau „Google“ numato kitą GSI tikslą: suteikti programų kūrėjams galimybę išbandyti savo programas naujoje „Android“ versijoje fiziniame įrenginyje, kurį jie jau turi.
Naudodama „Android 10“, „Google“ išleido savo GSI versijas kūrėjams. „Google“ patvirtino idėją, kad programų kūrėjai turėtų naudoti GSI, norėdami paleisti švarią „Android“ versiją savo aparatinėje įrangoje, kad būtų lengviau išbandyti savo programos elgseną, palyginti su „Android“. Taigi šis metodas papildė esamas programų suderinamumo testavimo „Android“ sistemoje, nepakeitus OĮG elgsenos, parinkčių. naudojant „Pixel“ išmanųjį telefoną, naudojant oficialų „Android“ emuliatorių „Android Studio“ arba diegiant programos versijos įrenginio egzempliorių debesyje.
Nepaisant visų GSI teikiamų patogumų, jų diegimas vis dar buvo sudėtingas procesas. Programų kūrėjams gali nepatikti rankiniu būdu mirksintis sistemos vaizdas Android įrenginyje, nes tai paprastai žino tik mėgėjai arba Android OS kūrėjai. Norint įdiegti GSI, reikėjo per greitą paleidimą paleisti sistemos vaizdą, todėl reikia išjungti „Android Verified Boot“ ir atrakinti įkrovos įkroviklį. Savo ruožtu, norint atrakinti įkrovos įkroviklį, reikia visiškai ištrinti vartotojo duomenis. Ir kaip mes visi žinome, nėra vieno proceso ar vadovo, kaip atrakinti kiekvieno „Android“ įrenginio įkrovos įkroviklį, todėl nėra jokio nuoseklumo. Pavyzdžiui, „Samsung“ įrenginiuose nėra greito įkrovimo, o „Xiaomi“ įrenginiai verčia peršokti keletą lankų, kad atrakintumėte įkrovos įkroviklį. Tai patogi netvarka, kurią galima išpainioti į kažką paprastesnio.
Čia atsiranda dinaminiai sistemos naujinimai.
Dinaminiai sistemos naujinimai tiesiog įdiegiami GSI
„Google“ suprato, kad dabartinis GSI diegimo būdas nėra tobulas sprendimas, todėl pradėjo kurti geresnį sprendimą. „Android 10“, „Google“ pradėjo testuoti dinaminius sistemos naujinimus, arba DSU. DSU yra naujas būdas laikinai įdiegti GSI, nenaudojant greitosios įkrovos komandų, kad būtų suaktyvintas sistemos vaizdas, perrašant pradinį diegimą. Naudodami DSU galite paleisti iš GSI, išbandyti programą ir patogiai iš naujo paleisti į pradinį diegimą, kuris liko nepaliestas.
Priežastis, dėl kurios DSU gali įdiegti GSI nepaliesdamas pradinio diegimo, yra ta, kad jis sukuria naujus sistemos ir duomenų skaidinio vaizdus, kurie laikinai saugomi /data/gsi. Tada šie vaizdai montuojami įkrovos metu, o ne pradiniai sistemos ir duomenų skaidiniai. Kadangi telefonui reikia papildomos vietos šiems naujiems laikiniems vaizdams, jūsų telefone turi būti „loginių skaidinių“, kurios yra dinamiškai keičiamo dydžio skaidiniai. Loginiai skaidiniai yra nauja vartotojo erdvės skaidymo sistema, skirta „Android“, kuri yra privaloma įrenginiams, paleidžiamiems su „Android 10“. Jei jūsų įrenginys paleistas naudojant „Android 10“, jis turėtų palaikyti GSI diegimą per DSU.
„Android 10“ viskas, ką jums reikia padaryti įdiegti GSI per DSU yra pakeisti sistemos ypatybę ir paleisti DynamicSystemUpdatesInstallationService siunčiant ketinimą su keliu į GSI kaip ketinimą.
Nors šis procesas gali atrodyti nepažįstamas, jis yra daug lengvesnis ir mažiau įkyrus, palyginti su naudojimu „fastboot“ komandas ir susidoroti su viskuo, įskaitant pradinį diegimą nuvalytas. Norint naudoti DSU, jums reikia šiek tiek žinių apie ADB ir ketinimus, tačiau daugumai programų kūrėjų tai neturėtų būti problema. Vis dėlto nėra jokios priežasties, kodėl procesas negalėjo būti dar paprastesnis. Be to, yra tai, kad diegiant GSI per DSU vis tiek reikia atrakinti įkrovos tvarkyklę, išvalant visus vartotojo duomenis. Tuo tikslu „Google“ įgyvendino pakeitimus, kad pagerintų abu GSI diegimo aspektus. „Android 11“ įdiegiant GSI nebereikia naudoti komandinės eilutės. Atskirai jie taip pat leido įdiegti GSI neatrakinant įkrovos tvarkyklės.
DSU įkroviklis „Android 11“.
„DSU Loader“ yra naujas įrankis, esantis „Android 11“ kūrėjo parinktyse, leidžiantis tai padaryti parsisiųsti ir diegti naujausia „Google“ GSI, nereikia įvesti jokių „fastboot“ ar ADB komandų. Tiesiog nustatymuose bakstelėkite parinktį DSU Loader ir atsiras dialogo langas su palaikomų GSI sąrašu tiesiai iš „Google“. Šios palaikomos GSI bus pagrįstos jūsų dabartine OS ir architektūra, todėl galėsite įdiegti tik naujesnes nei jūsų OS versija ir atitinkančias jūsų SoC architektūrą GSI. Tiesiog pasirinkite norimą įdiegti GSI ir jis bus atsisiųstas iš Google serverių ir automatiškai įdiegtas fone.
Naudodami DSU Loader, kūrėjams niekada nereikia liesti komandų eilutės, kad įdiegtų GSI. Bent jau tokia svajonė, nes dar liko išspręsti vieną problemą.
Kelias pirmyn
Šiuo metu norint įdiegti GSI per DSU Loader, jums reikia atrakinto įkrovos įkroviklio. Nors tai gali nugalėti viso išbandymo tikslą, taip neturėtų būti, ir mums sakoma, kad tai bus išspręsta. „Google“ suplanavo, kad vartotojai galės paleisti „Google“ pasirašytus GSI per DSU, neatrakindami įkrovos tvarkyklės. Tiesą sakant, „Google“ tai įpareigoja visuose „Android 10“ paleidimo įrenginiuose yra „Android Verified Boot“ viešieji raktai „Google“ pasirašytų „Android 10“, „Android 11“ ir „Android 12“ GSI. AVB viešųjų raktų įtraukimas į įrenginio ramdisko užtikrins, kad AVB neatmes GSI, kurį bandote paleisti. Štai kodėl dabartinis metodas apima įkrovos įkėlimo programos atrakinimą – į vbmeta skaidinį mirksite tuščią vbmeta vaizdą, išjungiate AVB, kad jis neatmestų GSI, kurį ketinate paleisti. Tačiau AVB išjungimas yra didelė saugumo rizika, nes tai reiškia, kad bet koks modifikavimas sistemos / įkrovos / produkto / pardavėjo skaidinį galima įkelti į įrenginį, todėl „Google“ nori tai padaryti panaikinti šį reikalavimą.
Taigi, kada galima tikėtis paleisti GSI per DSU, neatrakinant įkrovos įkroviklio ar nenaudojant jokių komandinės eilutės įrankių? Tikimės, kad netrukus, nes „Google“ mums paminėjo, kad pradinėse „Android 11“ kūrėjų peržiūrose reikėjo išspręsti keletą problemų, kad visa tai veiktų tinkamai. Toliau galima tikėtis įdiegti būsimus kūrėjų peržiūros GSI per DSU, neatrakinant įkrovos. Galbūt, kai bus prieinamos „Android 12“ kūrėjų peržiūros, galėsite net visiškai ją paleisti naudodami „Android 11“ kūrėjo parinktyse esantį DSU įkroviklį. Programų kūrėjams tai reiškia, kad bus dar vienas būdas išbandyti programas fizinėje aparatinėje įrangoje, kurioje veikia nauja „Android“ versija.