Jauns projekts ar nosaukumu Dynamic Android ļaus izstrādātājiem pārbaudīt AOSP Android Q GSI jebkurā ierīcē, kurā darbojas operētājsistēma Android Q vai jaunāka versija.
Pateicoties Projekts Treble, viedtālruņu ierīču ražotāji ir piegādājuši Android Pie programmatūras atjauninājumus ātrāk, nekā viņi to spēja veikt Android Oreo atjauninājumam, vismaz vadošajiem viedtālruņiem. Tomēr Google nevēlas, lai Project Treble priekšrocības gūtu tikai oriģinālo iekārtu ražotāji. Uzņēmums jau iepriekš pauda interesi izdodot Android Q vispārīgo sistēmas attēlu (GSI) izstrādātājiem, lai viņiem nebūtu jāpaļaujas uz emulatoriem, izmantojiet mākoņpakalpojumsvai gaidiet atjauninājumu savā ierīcē, lai pārbaudītu lietotni jaunākajā API līmenī. Teorētiski GSI izlaišanai vajadzētu ļaut ikvienam izstrādātājam ar Project Treble saderīgu ierīci (sākotnēji Android 8.0 Oreo un jaunākas versijas, taču tagad tiek uzskatītas tikai ierīces, kas tiek palaistas ar operētājsistēmu Android 9 Pie), lai pārbaudītu jaunāko Android versiju. versija. Viss, kas izstrādātājam jādara, ir jāuzstāda sistēmas attēls papildus esošajai programmatūras instalācijai — nav nepieciešams pielāgots atkopšanas, sāknēšanas vai pārdevēja attēls.
Tomēr pašreizējā GSI instalēšanas procesā ir vairākas problēmas. Pirmkārt, jums ir nepieciešams atbloķēts sāknēšanas ielādētājs, kas nav iespējams Huawei vai Honor ierīcēs (nemaksājot maksa), HMD Global Nokia ierīces (izņemot Nokia 8) vai ASV mobilo sakaru operatora zīmola ierīces. Tālāk, process būs grūti ikvienam, kurš nav pazīstams ar mirgojošiem attēliem, izmantojot ātro sāknēšanu. Visbeidzot, lai tagad mirgotu GSI, jums būs pilnībā jāiztīra iekšējā atmiņa, kas nozīmē, ka, iespējams, vēlēsities testēšanai izmantot rezerves ierīci. Pašlaik GSI mirgošana ir tikai tas, ko oriģinālo iekārtu ražotāji izmanto, lai pārbaudītu Project Treble saderību savās ierīcēs, un turklāt tas ir pievilcīgs tikai stingrajiem. pielāgoti ROM entuziasti. Iespējams, ka Google jaunais projekts "Dynamic Android" to mainīs.
Dinamiskais Android — viegli pārbaudiet AOSP GSI jebkurā Android Q ierīcē
Dažus pēdējos mēnešus Google ir strādājis pie tā, lai droši palaistu GSI, neatbloķējot sāknēšanas ielādētāju. Īsāk sakot, Google izstrādā lietotni, kurai ir īpašas atļaujas, kas ļauj lejupielādēt GSI, rezervēt tai vietu krātuves vietā un atzīmēt GSI kā sāknējamu. Šim projektam ir vairākas sastāvdaļas, tāpēc apspriedīsim tos pa vienam.
Dinamiskais Android un Android On Tap
Android Q tiek pievienoti divi jauni pakalpojumi: Dynamic Android un Android On Tap pakalpojumi. Kamēr Dynamic Android apstrādā GSI instalēšanu, Android On Tap informē sistēmas lietotnes ar atzvanīšanu un apraides nodomiem. Piemēram, Android On Tap brīdina KeyguardManager, lai lūgtu lietotājam apstiprināt instalēšanas pieprasījumu, ja ierīce ir aizsargāta ar PIN, paroli vai shēmu. AOT arī brīdina lietotāju, kad tas tiek palaists GSI.
Saskaņā ar “DynamicAndroidManager” aprakstu pakalpojums “piedāvā mehānismu jauna Android izmantošanai attēlu uz laiku." Pēc instalēšanas ierīce var atsāknēt tikko instalēto attēlu ar jaunizveidoto attēlu /data. Atsāknēšana, atrodoties GSI, lietotājam atgriežas sākotnējā sistēmas attēlā, bet tikko instalētais attēls un tā dati tiek tikai atspējoti un netiek dzēsti. Tomēr, ja lietotājs izvēlas to darīt, GSI un tā datus var pilnībā noņemt.
Avoti: [1], [2], [3], [4]
GSID
GSI dēmons piešķir vietu /data nodalījumā, lai saglabātu GSI attēlu un tā datus un padarītu attēlu sāknējamu. GSI metadati tiek glabāti mapē /metadata, savukārt pati GSI un tā dati tiek glabāti mapē /data/gsi. Pēc noklusējuma GSID piešķir 8 GB lietotāja datu tikko instalētajai GSI. Parasti pirms instalēšanas sākšanas GSID meklē vismaz 40% brīvas vietas. Visbeidzot, dēmons acīmredzamu iemeslu dēļ neļauj lietotājam instalēt GSI GSI.
Avoti: [1], [2], [3], [4]
Drošība
Android verificētā sāknēšana (AVB) ir iespējota tikko instalētajam EXT4 sistēmas attēlam (system_gsi, kas piestiprināts pie /system). Google ir arī ieviesusi SELinux politikas jaunajiem pakalpojumiem. Visbeidzot, lai instalētu GSI, lietotnei ir jābūt jaunai MANAGE_DYNAMIC_ANDROID atļaujai. Šī ir paraksta līmeņa atļauja, kas nozīmē, ka lietotne ir jāparaksta OEM.
Avoti: [1], [2]
ADB un Fastboot komandas
GSI būs arī instalējami, izmantojot jaunas ADB komandas. Jaunā ADB gsi_tool čaulas komanda ļaus lietotājiem atspējot, atkārtoti iespējot, instalēt un saglabāt userdata, instalējiet un izveidojiet lietotāja datus, instalējiet un notīriet lietotāja datus vai pārbaudiet statusu uzstādīšana.
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
Tiks pievienotas divas jaunas ātrās sāknēšanas komandas, lai pārvaldītu GSI, lai gan ātrās sāknēšanas instalēšana netiek atbalstīta, jo ātrās sāknēšana nevar pievienot lietotāja datus.
fastboot gsi wipe
fastboot gsi disable
Avoti: [1], [2]
Kam tas būs izdevīgi?
Es vēlos teikt, ka lietotņu izstrādātāji varēs izmantot Dynamic Android un Android On Tap priekšrocības, taču es neesmu pilnīgi pārliecināts. Lai gan Google ir izrādījis interesi tieši par to, nav garantijas, ka šī funkcija būs pieejama katrā Android Q laidienā no OEM, kas nav Google. Lai ierīcē izmantotu šīs priekšrocības, programmatūrai ir nepieciešama GSI atlasītāja lietotne, kas ir parakstīta ar to pašu sertifikātu, ko ROM. Es arī neesmu pārliecināts, ka SELinux politiku dēļ GSI instalēšana no ADB būs iespējama bez ADB saknes.Atjaunināt: Jauns apņemties apstiprina, ka, lai izmantotu GSI_tool, būs nepieciešama ADB sakne. Ja tas nav paredzēts lietotņu izstrādātājiem, lai pārbaudītu savas lietotnes tīrā Android versijā, iespējams, gūst labumu no oriģinālā aprīkojuma ražotājiem, kuri vēlas pārbaudīt saderības testu komplektu (CTS) un Vendor Test Suite (VTS) savās ierīcēs. ierīces.
Īpašs paldies XDA atzītajam izstrādātājam luca020400 par palīdzību šajā rakstā.