Google on avalikustanud dünaamilise süsteemivärskenduse, mis on uus viis GSI installimiseks Android Q-sse, mis ei nõua alglaaduri avamist.
Lisaks Android 8.0 Oreo väljalaskmisele avalikustas Google Projekt Treble: Android OS-i raamistiku ning müüja HAL-ide ja Linuxi kerneli suhtluse oluline ümberarhiveerimine. Treble on suur algatus, mille eesmärk on vähendada Androidi platvormi versiooni ja turvapaiga killustatusja kõik Androidi kaubamärgiga seadmed, mis käivituvad rakendusega Android Pie, peavad toetama Project Treble'i. OEM-id ja müüjad testivad Treble'i ühilduvust, käivitades üldise süsteemipildi (GSI) – Androidi puhas varuversioon AOSP-lt – ja läbides Müüja testikomplekt (VTS) ja ühilduvuse testikomplekti-on-Generic System Image (CTS-on-GSI). GSI on osutunud kasulikuks mitte ainult selleks, et võimaldada originaalseadmete tootjate jaoks töötavatel tarkvarainseneridel testida Treble'i ühilduvust, vaid see on avanud ka ukse suur kohandatud ROM-i kogukond XDA-s. Android Q versiooni puhul soovib Google muuta GSI-d kasulikuks ka teisele rühmale: rakenduste arendajatele.
Alates sellest, kui Androidi platvormi väljalaske esimene stabiilne väljalase ja lähtekood tavaliselt välja kukutatakse augustis, arendajad, kes soovivad testida järgmist Androidi versiooni päris seadmes, vajavad tavaliselt juurdepääsu Google'i nutitelefonile, kui nad ei taha oodata, kuni värskendus jõuab nende enda riistvarani. Google töötas aga originaalseadmete tootjatega, et tuua Android P beeta eelmisel aastal mitmele seadmele ja sel aastal on nad sellele järgnenud Android Q beeta. Lisaks ametlikule Android Q beetaversioonile andis Google sel aastal välja ka ametlik Q beeta GSI nii et iga Project Treble'iga ühilduva seadmega arendaja saab installida uusima Q väljalaske, ilma et peaks ootama kuid, kuni järg oma seadmetesse jõuab. See uus viis järgmise Androidi versiooni testimiseks annab arendajatele rohkem võimalusi ja seega rohkem aega oma rakenduste testimiseks. suured muudatused Androidis.
Kahjuks praegune meetod GSI paigaldamine võib olla raske. See nõuab alglaaduri avamist – see tähendab kõigi kasutajaandmete kustutamist ja/või garantii tühistamist – ning pildi vilkumist kiirkäivitusprotokolli kaudu. Rakenduse arendaja jaoks ei ole see kiire ja lihtne protsess, kui see on tema seade võimaldab isegi alglaaduri avamist. Sellepärast, et viimased mitu kuud, Google on töötanud uue viisi kallal GSI-de käivitamiseks. Sisestage uus funktsioon nimega Dynamic System Update ehk DSU.
(See funktsioon töötati varem välja nimede "Live Image", "Dynamic Android" ja "Android on Tap" all, nii et ärge imestage, kui Google nimetab seda mõne nädala või kuu pärast mõnel muul viisil.)
Dünaamilised süsteemivärskendused Android Q-s
DSU funktsiooni eesmärk on võimaldada arendajal käivituda GSI-sse ilma praegust installi segamata. See tähendab, et alglaadurit ei pea avama ja kasutajaandmeid kustutama. Installiprotsess on samuti oluliselt lihtsustatud, kuna Google on pakkunud ADB kaudu käsurea liidest ja rakendust, mida saab juhtida kavatsuste kaudu. GSI käivitamine DSU abil näeb välja järgmine:
Selles videos* taaskäivitub Google Pixel 3 XL, milles töötab Android Q beetaversioon 3, GSI-ks. Selles keskkonnas saab rakenduse arendaja installida ja testida oma rakendust Q API ühilduvuse osas. Kui nad on testimise lõpetanud, saavad nad lihtsalt taaskäivitada seadme tavalises Q beeta 3 tarkvaras. Põhimõtteliselt käivitate GSI kaks korda, et saaksite oma rakendust turvaliselt testida!
*Salvestasime selle video 2019. aasta Google I/O-s, kui DSU ei olnud veel avalikult saadaval, nii et Google muutis filmitud Pixel 3 XL-il põhinevat Q beeta 3 versiooni veidi, et lisada DSU tugi. Seadmed, milles käitatakse Q beeta 4 ja uuemat versiooni, on sobilikud DSU-d toetama, kui need vastavad allolevatele nõuetele.
Dünaamiliste süsteemivärskenduste nõuded
Sisuliselt kahekordse alglaadimise käivitamine ja käivitamine ei olnud Google'i jaoks lihtne ülesanne. Sektsioonide haldamise viisis Pixel 3-s, mis on Google'i DSU jaoks mõeldud katsealus, tuli teha suuri muudatusi. Seega on DSU toe esimene suurem nõue, et seade toetaks dünaamilised vaheseinad. Dünaamilised partitsioonid hõlmavad ühte reaalset salvestussektsiooni, mis on jagatud muudetava suurusega loogilisteks partitsioonideks, nagu süsteem, tarnija, odm, oem, toode jne. GSI installimise ajal reserveeritakse ruumi uutele süsteemi- ja kasutajaandmete partitsioonidele, võttes olemasolevast kasutajaandmete partitsioonist kasutamata plokke. Kuna need uued partitsioonid võivad olla mitme gigabaidi suurused, on DSU toel mõtet ainult loogikaga vaheseinad, vastasel juhul peaks seade reserveerima GSI jaoks püsivalt mitu gigabaiti salvestusruumi installatsioonid.
Muud nõuded hõlmavad mäluketast, mis otsustab, kas käivitada taaste-, süsteemi- või loogilise partitsiooni, ja metaandmete partitsiooni GSI metaandmete salvestamiseks. Üldiselt on DSU toe ehitusplokkideks Android Q käivitusnõuded, vastavalt Project Treble juht Iliyan Malchev. Me pole kindlad, kas kõike mis on vajalik DSU toetamiseks, on Android Q käivitamise nõue, kuid võime eeldada, et enamik, kui mitte kõik Android Q-ga käivituvad seadmed saab toetada DSU-d isegi siis, kui Google seda praegu ei nõua. Seni on ainult Pixel 3, Pixel 3 XL, Pixel 3a ja Pixel 3a XL dünaamilised partitsioonid ning nendest seadmetest toetavad Android Q beeta 4 DSU-d ainult Pixel 3 ja Pixel 3 XL. Kuigi DSU tugi pole vajalik, loodab Google, et originaalseadmete tootjad lubavad selle funktsiooni siiski, kuna see lihtsustab Treble ühilduvuse turvalist testimist. Näiteks võib OEM-i tarkvarainsener panna GSI SD-kaardil et nad saaksid Treble'i ühilduvuse testimiseks kiiresti käivitada mitmes seadmes.
Dünaamiliste süsteemivärskenduste turvalisus
Kuna DSU lisab segusse sisuliselt teise operatsioonisüsteemi, peab Google tagama, et seda uut installi ei saaks seadme terviklikkuse rikkumiseks rikkuda. Seega, GSI-paigaldise jaoks on paigas samad põhilised turvakaitsed algse installi jaoks: Android Verified Boot ja SELinuxi eeskirjad. Lisaks saavad GSI algatada ainult INSTALL_DYNAMIC_SYSTEM signatuuri|privilegeeritud loaga rakendused installimine, samas kui MANAGE_DYNAMIC_SYSTEM allkirjaõigusega rakendused saavad GSI-d lubada/keelata või kustutada paigaldus. See tähendab, et DSU-ga saavad töötada ainult usaldusväärsed süsteemitaseme rakendused.
Algsete kasutajaandmete kaitsmise tagamiseks on Google lisanud täiendav kaitsemehhanism Android Q-s. kutsus "Kontrollpunkt”, kaitseb funktsioon kasutajaandmete hävitamise eest, taastades kontrollpunktiga partitsioonid nende algsesse olekusse. Kontrollpunktid on kasulikud mitte ainult DSU jaoks. Neid kasutatakse ka kaitseks vigade eest Projekti põhiliin APEX moodul ja A/B OTA värskendused. (A/B vaheseintega seadmed on juba tagasipööramise kaitse, kuid need tagasipööramised nõuavad tehaseandmete lähtestamist, samas kui kasutajaandmete kontrollpunktid seda ei tee.)
GSI paigaldamine
Kui teie seade toetab DSU-d nagu Pixel 3 seeria, on GSI installimine lihtne. Esmalt peate veenduma, et dünaamilise süsteemi funktsiooni lipp on lubatud kahel viisil.
- Kui kasutate userdebugi järgu, lubage lipp settings_dynamic_android menüüs Seaded > Süsteem > Arendaja valikud > Funktsiooni lipud.
- Kui kasutate kasutajajärku, käivitage järgmine adb shellikäsk:
setproppersist.sys.fflag.override.settings_dynamic_system 1
Seejärel laadige alla uusim Android Q beetaversioon GSI aadressilt Google või teie seadme originaalseadmete valmistaja. (DSU võimaldab installida ainult Google'i või OEM-i allkirjastatud GSI-sid.) Pärast allalaadimist kasutage simg2img hõreda pildi teisendamiseks töötlemata pildiks. Kasutage toorkujutise pakkimiseks gzipi ja seejärel kopeerige saadud arhiiv mõnda asukohta oma seadmes väline mälu (nt /data/media/0/Download) või tegelik väline salvestusmeedium (nt füüsiline SD kaart). Lõpuks käivitage rakendus DynamicSystemInstallationService õige kavatsusega installimise alustamiseks.
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
Kui klõpsate nuppu Taaskäivita, käivitate GSI-sse. Seadme kasutatavus GSI-s sõltub sellest, kui hästi teie seadme OEM-i Treble'i rakendas (või õigemini, kui vähe nad Treble'i rikkusid ühilduvus.) Mõned seadmed töötavad GSI-dega paremini kui teised, kuid üldiselt ärge eeldage, et kasutate seda installi igapäevaselt autojuht. Peate oma rakendust testima ja seejärel taaskäivitades sellest väljuma. Kui soovite edasiseks testimiseks jääda GSI installisse, saate kasutada gsi_tööriist kesta käsk.
DSU täielikud GSI paigaldusjuhised leiate siin. Vigu saab esitada aadressil Google Issue Tracker,Reddit, või Stack Overflow.
Dünaamiliste süsteemivärskenduste põhjus
Kui ma rääkisin Iliyan Malcheviga Google I/O-s, kordas ta, mida Hung-ying Tyan Treble'i meeskonnast varase GSI juurdepääsu kohta Novembrikuu Android Dev Summit. Google tegi DSU paluda tagasisidet võimalikult laialt publikult. Eesmärk on parandada GSI kvaliteeti, mis omakorda parandab tulevase Androidi versiooni kvaliteeti kuna GSI on Androidi puhtaim vorm. Google on praegu ainus ettevõte, mis testib järgmise versiooni GSI ühilduvust (näiteks kui hästi Android Q süsteemipilt Android P peal töötab tarnija juurutus), kuid kuna rohkem inimesi vilgub GSI-sid ja annab tagasisidet, saavad originaalseadmete tootjad parandada Treble'i ühilduvuse rikkumisi, et GSI-d töötaksid tulevik. Iliyan ütleb, et originaalseadmete tootjad ja müüjad, nagu Qualcomm, tunnevad suurt huvi eelmise Androidi väljalaske müüja piltide taaskasutamise vastu koos järgmise versiooni süsteemipildiga. Sellised algatused nagu DSU aitavad Google'il ja originaalseadmete tootjatel vähendada automaattestide, nagu VTS ja CTS-on-GSI, levialas. Seega saab Google rohkem beetatestijaid, et anda tagasisidet järgmise Androidi versiooni kohta, kuuldes samal ajal ka Treble'i ühilduvuse rikkumisi, et originaalseadmete tootjad saaksid oma tööd parandada.
Dünaamiliste süsteemivärskenduste lisamine Android Q-sse on teretulnud, kuid see ei ole kahekordse alglaadimise lahendus, mida mõned teist loodavad. Nagu varem mainitud, saab installida ainult Google'i või originaalseadmete tootjate allkirjastatud süsteemipilte. Kui küsisin Iliyanilt DSU laiendamise võimaluse kohta alternatiivse Androidi ökosüsteemi toetamiseks Ta ütles, et seda on tehniliselt võimalik teha, kuna DSU on lihtsalt kanal süsteemi tarnimiseks pilte. Iga OEM võib seda kasutada nii, nagu soovib seni, kuni lõpptulemus on Androidiga ühilduv. Google ei ole siin OTA-süsteemile alternatiivi loonud ja DSU-d pole mõeldud tõeliseks topeltkäivitamiseks. Sellest hoolimata muudab Google'i töö Treble'i osas Androidi modulaarsemaks, nii et ma ei oleks üllatunud, kui native topeltkäivitamine muutub reaalsuseks.