Google ir atklājis dinamisko sistēmas atjauninājumu — jaunu veidu, kā instalēt GSI operētājsistēmā Android Q, kam nav nepieciešams atbloķēt sāknēšanas ielādētāju.
Līdzās Android 8.0 Oreo izlaišanai Google atklāja Projekts Treble: būtiska Android OS ietvara un pārdevēja HAL un Linux kodola saziņas veida pārstrukturēšana. Treble ir liela iniciatīva, kas izstrādāta, lai samazinātu Android platformas versiju un drošības ielāpu sadrumstalotība, un visām Android zīmola ierīcēm, kas tiek palaistas ar Android Pie, ir jāatbalsta Project Treble. Oriģinālo iekārtu ražotāji un pārdevēji pārbauda Treble saderību, palaižot vispārējo sistēmas attēlu (GSI) — tīru Android komplektāciju no AOSP — un nokārtojot Pārdevēja testa komplekts (VTS) un saderības testa komplekts-on-Generic System Image (CTS-on-GSI). GSI ir izrādījies noderīgs, ne tikai ļaujot programmatūras inženieriem, kas strādā oriģinālo iekārtu ražotāju labā, pārbaudīt Treble saderību, bet arī ir pavēris durvis liela pielāgota ROM kopiena uz XDA. Android Q laišanai Google vēlas padarīt GSI noderīgus citai grupai: lietotņu izstrādātājiem.
Kopš pirmā stabilā laidiena un avota koda nomešanas jebkurai Android platformai parasti nāk augustā, izstrādātājiem, kuri vēlas pārbaudīt nākamo Android laidienu reālā ierīcē, parasti ir nepieciešama piekļuve Google viedtālrunim, ja viņi nevēlas gaidīt, līdz atjauninājums sasniegs savu aparatūru. Tomēr Google sadarbojās ar oriģinālo iekārtu ražotājiem, lai nodrošinātu Android P beta versija vairākām ierīcēm pagājušajā gadā, un šogad viņi tam sekoja ar Android Q beta versija. Līdzās oficiālajai Android Q beta versijai Google šogad izlaida arī oficiālā Q beta GSI tāpēc ikviens izstrādātājs, kuram ir ar Project Treble saderīga ierīce, var instalēt jaunāko Q laidienu, negaidot mēnešus, līdz būvējums nonāks viņu ierīcēs. Šis jaunais nākamā Android laidiena testēšanas veids sniedz izstrādātājiem vairāk iespēju un līdz ar to vairāk laika, lai pārbaudītu savas lietotnes pret lielas izmaiņas operētājsistēmā Android.
Diemžēl pašreizējā metode GSI uzstādīšana var būt grūti. Tam ir jāatbloķē sāknēšanas ielādētājs, kas nozīmē visu lietotāja datu noslaukšanu un/vai garantijas anulēšanu, un attēla mirgošana, izmantojot ātrās sāknēšanas protokolu. Lietotņu izstrādātājam tas nav ātrs un vienkāršs process, ja tas ir viņa ierīcē pat ļauj atbloķēt sāknēšanas ielādētāju. Tieši tāpēc, lai pēdējos vairākus mēnešus, Google ir strādājis pie jauna veida, kā palaist GSI. Ievadiet jaunu līdzekli ar nosaukumu Dynamic System Update jeb DSU.
(Šī funkcija iepriekš tika izstrādāta ar nosaukumiem “Live Image”, “Dynamic Android” un “Android on Tap”, tāpēc nebrīnieties, ja pēc dažām nedēļām vai mēnešiem Google to nosauks kā citādi.)
Dinamiskie sistēmas atjauninājumi operētājsistēmā Android Q
DSU funkcijas mērķis ir ļaut izstrādātājam ielādēt GSI, netraucējot pašreizējo instalāciju. Tas nozīmē, ka sāknēšanas ielādētājs nav jāatbloķē un lietotāja dati nav jādzēš. Instalēšanas process ir arī ievērojami vienkāršots, jo Google ir nodrošinājis komandrindas saskarni, izmantojot ADB, un lietotni, kuru var kontrolēt, izmantojot nolūkus. Lūk, kā izskatās GSI sāknēšana, izmantojot DSU:
Šajā videoklipā* Google Pixel 3 XL, kurā darbojas operētājsistēma Android Q beta 3, tiek atkārtoti palaists GSI. Šajā vidē lietotnes izstrādātājs var instalēt un pārbaudīt savas lietotnes Q API saderību. Kad viņi ir pabeiguši testēšanu, viņi var vienkārši atsāknēt ierīces parastajā Q beta 3 programmatūrā. Jūs būtībā veicat GSI divkāršu sāknēšanu, lai varētu droši pārbaudīt savu lietotni!
* Šo videoklipu ierakstījām Google I/O 2019, kad DSU vēl nebija publiski pieejams, tāpēc Google nedaudz modificēja Q beta 3 versiju, kas balstīta uz filmēto Pixel 3 XL, lai iekļautu DSU atbalstu. Ierīces, kurās darbojas Q beta 4 un jaunākas versijas, ir piemērotas DSU atbalstam, ja tās atbilst tālāk norādītajām prasībām.
Prasības dinamiskajiem sistēmas atjauninājumiem
Iegūt un palaist to, kas būtībā ir dubultā sāknēšana, uzņēmumam Google nebija viegls uzdevums. Bija jāveic lielas izmaiņas, kā starpsienas tiek pārvaldītas tālrunī Pixel 3, kas ir Google DSU testēšanas platforma. Tādējādi pirmā galvenā prasība DSU atbalstam ir ierīces atbalstam dinamiskās starpsienas. Dinamiskie nodalījumi ietver vienu reālu krātuves nodalījumu, kas ir sadalīts maināmos loģiskajos nodalījumos, piemēram, sistēmas, piegādātāja, odm, oem, produkta utt. GSI instalēšanas laikā vieta tiek rezervēta jaunām sistēmas un lietotāja datu nodalījumiem, ņemot neizmantotos blokus no esošā userdata nodalījuma. Tā kā šie jaunie nodalījumi var būt vairāki gigabaiti lieli, DSU atbalstam ir jēga tikai ar loģisko starpsienas, pretējā gadījumā ierīcei GSI būtu pastāvīgi jārezervē vairāki gigabaiti krātuves vietas instalācijas.
Citas prasības ietver RAM disku, kas izlemj, vai palaist uz atkopšanas, sistēmas vai loģiskā nodalījuma, un metadatu nodalījumu, lai saglabātu GSI metadatus. Kopumā DSU atbalsta pamatelementi ir Android Q palaišanas prasības, saskaņā ar Project Treble vadošo Iliyan Malchev. Mēs neesam pārliecināti, vai viss tas ir nepieciešams, lai atbalstītu DSU, ir Android Q palaišanas prasība, taču mēs varam pieņemt, ka lielākā daļa, ja ne visas ierīces, tiek palaistas ar Android Q var atbalsta DSU, pat ja Google pašlaik to nepieprasa. Līdz šim tikai Pixel 3, Pixel 3 XL, Pixel 3a un Pixel 3a XL ir dinamiski nodalījumi, un no šīm ierīcēm tikai Pixel 3 un Pixel 3 XL atbalsta DSU operētājsistēmā Android Q beta 4. Lai gan DSU atbalsts nav nepieciešams, Google cer, ka oriģinālo iekārtu ražotāji jebkurā gadījumā iespējos šo funkciju, jo tas vienkāršo Treble saderības drošu pārbaudi. Piemēram, OEM programmatūras inženieris var ievietot GSI SD kartē lai tās varētu ātri palaist vairākās ierīcēs, lai pārbaudītu Treble saderību.
Drošība dinamiskiem sistēmas atjauninājumiem
Tā kā DSU klāstā ir ieviesta otrā operētājsistēma, uzņēmumam Google ir jāpārliecinās, ka šo jauno instalāciju nevar mainīt, lai izjauktu ierīces integritāti. Tādējādi, GSI instalācijai ir piemēroti tādi paši pamata drošības aizsardzības līdzekļi sākotnējai instalācijai: Android verificētās sāknēšanas un SELinux politikas. Turklāt tikai lietotnes ar INSTALL_DYNAMIC_SYSTEM paraksta|priviliģēto atļauju var iniciēt GSI instalēšana, savukārt lietotnes ar MANAGE_DYNAMIC_SYSTEM paraksta atļauju var iespējot/atspējot vai dzēst GSI uzstādīšana. Tas nozīmē, ka ar DSU var darboties tikai uzticamas sistēmas līmeņa lietotnes.
Lai nodrošinātu sākotnējo lietotāja datu aizsardzību, Google ir pievienojis papildu aizsardzības mehānisms operētājsistēmā Android Q. Sauc "Kontrolpunkts”, funkcija aizsargā pret lietotāja datu iznīcināšanu, atjaunojot kontrolpunktu nodalījumus to sākotnējā stāvoklī. Tomēr kontrolpunkti ir noderīgi ne tikai DSU. Tos izmanto arī, lai aizsargātu pret sabojāšanos Projekta galvenā līnija APEX modulis un A/B OTA atjauninājumi. (Ierīces ar A/B nodalījumiem jau ir atcelšanas aizsardzība, taču šīm atcelšanām ir jāatjauno rūpnīcas dati, savukārt lietotāja datu kontrolpunktiem tas nav nepieciešams.)
GSI uzstādīšana
Ja jūsu ierīce atbalsta DSU, piemēram, Pixel 3 sēriju, GSI ir viegli instalēt. Vispirms ir jāpārliecinās, vai dinamiskās sistēmas funkcijas karodziņš ir iespējots vienā no diviem veidiem:
- Ja izmantojat userdebug būvējumu, iespējojiet karodziņu settings_dynamic_android sadaļā Iestatījumi > Sistēma > Izstrādātāja opcijas > Funkciju karodziņi.
- Ja izmantojat lietotāja būvējumu, palaidiet šādu adb čaulas komandu:
setproppersist.sys.fflag.override.settings_dynamic_system 1
Pēc tam lejupielādējiet jaunāko Android Q beta GSI versiju no Google vai jūsu ierīces OEM. (DSU ļauj instalēt tikai Google vai OEM parakstītus GSI.) Pēc lejupielādes izmantojiet simg2img lai pārveidotu reto attēlu neapstrādātā attēlā. Izmantojiet gzip, lai iesaiņotu neapstrādāto attēlu, un pēc tam kopējiet iegūto arhīvu uz vietu savā ierīcē ārējā atmiņa (piemēram, /data/media/0/Download) vai faktiskais ārējais datu nesējs (piemēram, fiziskais SD karte). Visbeidzot, palaidiet programmu DynamicSystemInstallationService ar pareizo nolūku, lai sāktu instalēšanu:
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
Kad noklikšķināsit uz restartēt, tiks palaists GSI. Ierīces lietojamība GSI ir atkarīga no tā, cik labi jūsu ierīces OEM ir ieviesis Treble (vai drīzāk, cik maz tie pārkāpa Treble saderība.) Dažas ierīces darbosies labāk ar GSI nekā citas, taču parasti nevajadzētu paredzēt, ka šī instalācija tiks izmantota ikdienā. vadītājs. Jums ir jāpārbauda lietotne, pēc tam izejiet no tās, restartējot. Ja vēlaties palikt GSI instalācijā turpmākai pārbaudei, varat izmantot gsi_tool čaulas komanda.
Pilnas GSI instalēšanas instrukcijas DSU var atrast šeit. Kļūdas var reģistrēt vietnē Google problēmu izsekotājs,Reddit, vai Stack Overflow.
Dinamiskās sistēmas atjauninājumu iemesls
Kad es runāju ar Iliyan Malchev Google I/O, viņš atkārtoja Hung-ying Tyan no Treble komandas teikto par agrīnu GSI piekļuvi plkst. Novembra Android izstrādātāju samits. Google izveidoja DSU uz lūgt atsauksmes no pēc iespējas plašākas auditorijas. Mērķis ir uzlabot GSI kvalitāti, kas savukārt uzlabo nākamā Android laidiena kvalitāti jo GSI ir tīrākā Android forma. Google pašlaik ir vienīgais uzņēmums, kas pārbauda nākamās versijas GSI saderību (piemēram, cik labi Android Q sistēmas attēls darbojas virs Android P pārdevēja ieviešana), taču, tā kā arvien vairāk cilvēku izmanto GSI un sniedz atsauksmes, oriģinālo iekārtu ražotāji var novērst Treble saderības pārkāpumus, lai GSI darbotos vēl labāk nākotnē. Iliyan saka, ka ir liela interese no oriģinālā aprīkojuma ražotājiem un pārdevējiem, piemēram, Qualcomm, atkārtoti izmantot pārdevēju attēlus no iepriekšējā Android laidiena ar nākamās versijas sistēmas attēlu. Tādas iniciatīvas kā DSU palīdz uzņēmumam Google un oriģinālo iekārtu ražotājiem novērst automātisko testu, piemēram, VTS un CTS-on-GSI, pārklājuma trūkumu. Tādējādi Google iegūst vairāk beta testētāju, lai sniegtu atsauksmes par nākamo Android laidienu, vienlaikus uzklausot arī Treble saderības pārkāpumus, lai OEM varētu uzlabot savu darbu.
Dinamiskās sistēmas atjauninājumu pievienošana operētājsistēmā Android Q ir apsveicama, taču tas nebūs duālās sāknēšanas risinājums, uz kuru daži no jums cer. Kā minēts iepriekš, var instalēt tikai sistēmas attēlus, ko parakstījis Google vai OEM. Kad es jautāju Ilijanam par iespēju paplašināt DSU, lai atbalstītu alternatīvas Android ekosistēmu sistēmām, viņš teica, ka tas ir tehniski iespējams, jo DSU ir vienkārši kanāls sistēmas piegādei attēlus. Jebkurš OEM to var izmantot, kā vien vēlas ja vien gala rezultāts ir saderīgs ar Android. Google šeit nav radījis alternatīvu OTA sistēmai, un DSU nav paredzēts izmantot patiesai dubultai sāknēšanai. Neatkarīgi no tā, darbs, ko Google ir paveicis ar Treble, padara Android operētājsistēmu modulārāku, tāpēc es nebūtu pārsteigts, ja vietējā dubultā sāknēšana kļūs par realitāti.