Project Mainline ir lielākā Android izmaiņa kopš Project Treble. Lūk, ko tas nozīmē un ko dara visi moduļi. Pārbaudiet to!
Viena no lielākajām Android izmaiņām pēdējos gados, kas bija pakļauta radaram, relatīvi pretēji tās nozīmei, bija Projekta galvenā līnija operētājsistēmā Android 10. Google pieprasa iekļaut noteiktus Mainline moduļus visos Android laidienos, ar Android 11 ienākot ar a kopā obligāti kopā 25 Mainline moduļi. Šeit ir sniegts skaidrojums par to, kas ir Project Mainline un kāds ir tā risināšanas mērķis, kā arī visu Android Project Mainline moduļu saraksts.
Kas ir Project Mainline?
Lai pareizi saprastu Project Mainline, mums būs mazliet jāattīt atpakaļ. Atgriežoties dažus gadus atpakaļ, liela daļa sarunu par Android atjauninājumiem ir vērsta uz sadrumstalotības problēmu. Sadrumstalotība bija viena no lielākajām problēmām, ko Google risināja operētājsistēmā Android Ice Cream Sandwich — Lollipop laikmetā. Lai gan Android kā platforma saņēma regulārus atjauninājumus lielā mērā paredzamā veidā, agrāk bija nepieciešams ļoti ilgs laiks, līdz šie atjauninājumi sasniedza galapatērētājus, ja vispār sasniedza. Tātad, kamēr Google platformas līmenī laboja kritiskās kļūdas un drošības problēmas, šo izmaiņu faktiskā ieviešana atstāja daudz vēlamo. Atjauninājumu piegādē bija/ir daudz starpnieku (SoC pārdevējs, oriģinālo iekārtu ražotāji, pārvadātāji utt.) un daudz kustīgu daļu. tālrunī, un sadrumstalotības problēma nešķita tā, it kā tā atrisinātos pati par sevi, neprasot nopietnus pasākumus iejaukšanās.
Viens no lielākajiem centieniem šīs problēmas risināšanā izpaudās kā Projekts Treble līdzās Android 8.0 Oreo, kas ietvēra lielu Android pārstrukturēšanu, atdalot Android OS ietvara komponentus no pārdevēja HAL un Linux kodola. Projekts Treble būtībā modularizēja Android, atdalot OS ietvaru no ierīcei raksturīgās zemāka līmeņa programmatūras. Tādā veidā ierīču ražotājiem (OEM) nav jāgaida, līdz silīcija ražotāji (SoC pārdevēji) atjauninās savu pārdevēja ieviešanas kodu, un OEM varētu neatkarīgi atjaunināt Android OS sistēmu. Gala rezultāts ir ātrāka jaunāku Android laidienu pieņemšana no oriģinālā aprīkojuma ražotājiem, jo viņiem tas vairs nav nepieciešams pagaidiet, kamēr starpnieks (SoC pārdevējs) pabeigs savu darbu, pirms viņš var sākt darīt savējie.
Lai gan Android atjaunināšanas situācija uzreiz neuzlabojās ar Project Treble, tas lielā mērā ļāva plašākam OEM dalība Android 10 un Android 11 beta versijās, kā arī atvieglot oriģinālo iekārtu ražotājiem iespēju ātrāk atjaunināt vairāk ierīču laika skala. Turklāt visai GSI (Generic System Image) koncepcijai ir bijusi liela ietekme uz pēcpārdošanas attīstību mūsu forumos.
Izstrādātājs sāk operētājsistēmu Android 11 22 vecās ierīcēs ar Project Treble GSI
Project Mainline paplašina projekta Treble centienus. Kamēr Treble samazināja OEM atkarību no SoC piegādātājiem katram OS atjauninājumam, Mainline samazina Google atkarību no OEM, nodrošinot drošības atjauninājumus galvenajiem OS komponentiem. Project Mainline paplašina Treble filozofiju, iekļaujot tajā Android sistēmas svarīgākās daļas, no šī vienādojuma noņemot OEM kā atkarīgos starpniekus. Projekta Mainline mērķis ir, lai Google pārņemtu kontroli pār ietvara komponentiem un sistēmas lietojumprogrammām kas ir ļoti svarīgi drošībai un attīstības konsekvences uzturēšanai prom no oriģinālā aprīkojuma ražotājiem. Project Mainline pamatoti tiek dēvēts par uz lielākās Android izmaiņas kopš Project Treble.
Projektam Mainline Google izmanto Mainline moduļus, kas tiek piegādāti, izmantojot Google Play pakalpojumu sistēmu un Google Play veikalu. Katrs Mainline modulis tiek piegādāts kā APK fails, APEX fails vai APK-in-APEX. Kad tiek atjaunināts Mainline modulis, lietotājs savā ierīcē redz paziņojumu “Google Play sistēmas atjauninājums” (GPSU). Lai nodrošinātu svarīgu komponentu atjauninājumus, Google ir apiejis vajadzību gaidīt, līdz OEM izlaiž atjauninājumu, izvēloties veikt šo uzdevumu pats.
Kā Google norāda Android vietnē:
Moduļu sistēmas komponenti ļauj Google un Android partneriem plaši, ātri un nemanāmi izplatīt atjauninājumus galalietotāju ierīcēs, neuzbāzīgā veidā. Piemēram, multivides kodeku sadrumstalotības un kritisku kļūdu kombinācija var ievērojami palēnināt lietotņu ieviešanu un lietotāju iesaisti. Bieža ar multividi saistīto moduļu atjaunināšana var samazināt kodeku sadrumstalotību, lai padarītu multivides lietotņu darbību konsekventāku dažādās Android ierīcēs un izlabotu kritiskās kļūdas, lai palielinātu lietotāju uzticēšanos.
Android 10 vai jaunāka versija pārvērš atlasītos sistēmas komponentus moduļos, no kuriem daži izmanto APEX konteinera formātu (ieviests operētājsistēmā Android 10), bet daži izmanto APK formātu. Modulārā arhitektūra ļauj atjaunināt sistēmas komponentus ar kritiskiem kļūdu labojumiem un citiem uzlabojumus pēc nepieciešamības, neietekmējot zemāka līmeņa piegādātāju ieviešanu vai augstāka līmeņa lietotnes un pakalpojumus.
Kā Ars Technica piemin:
Projekts Mainline jeb Google Play sistēmas atjauninājumi tika ieviests operētājsistēmā Android 10, lai padarītu Android sistēmas galvenos komponentus modulārākus un atjaunināmākus. Mainline ieviesa jaunu "APEX" faila tipu, kas īpaši paredzēts sistēmas komponentiem, ar mērķi piegādāt Android galveno kodu Play veikalā tikpat viegli kā lietotnes atjauninājumu. Iepriekš Android vienīgais nosūtāmais kodu bloks bija APK — faila tips, kas sākotnēji bija paredzēts trešo pušu lietotnēm. Tam bija dažādi drošības ierobežojumi, un to varēja palaist tikai vēlīnā sāknēšanas procesā, tāpēc APEX tika izveidots, paturot prātā jaudīgākus sistēmas komponentus. APEX var izveidot tikai Google vai jūsu ierīces ražotājs, tāpēc tie var būt ievērojami jaudīgāki un satur svarīgus sāknēšanas komponentus, piemēram, lietotnes izpildlaiku.
Mainline nav tikai tehnisks risinājums, tas ir arī par vairāku Android daļu centralizētu izplatīšanu Google, kas ietver sarunas ar ierīču ražotājiem un panākt, lai tie visi piekristu piegādāt vienu un to pašu bloku kodu. Mainline moduļi galu galā kļūst obligāti jānosūta, tāpēc Mainline patiesībā ir liela sadarbība ar ierīču ražotājiem, lai pārliecinātos, ka viens ekosistēmas mēroga modulis atbilst ikviena vajadzībām. Ne katrs Mainline modulis ir īpaši jaudīgs APEX modulis — daži ir tikai APK, kas tagad ir Google izplatīts Android kods.
Projekta galvenā līnija — moduļi
Izmantojot operētājsistēmu Android 10, Google noteica 13 specifiskus Mainline moduļus. Operētājsistēmā Android 11 kopējais obligāto moduļu skaits ir 25. Šeit ir pilns saraksts, kā arī dažas galvenās detaļas:
Moduļa nosaukums |
Pakas nosaukums |
Tips |
Ierīce ir jaunināta uz operētājsistēmu Android 11 vai palaista ar to |
IerīcePalaista ar Android 10 |
Ierīce ir jaunināta uz Android 10 |
---|---|---|---|---|---|
adbd |
com.google.android.adbd |
APEX |
Jā |
Neatbalstīts |
Neatbalstīts |
Android neironu tīkla API izpildlaiks |
com.google.android.neuralnetworks |
APEX |
Jā |
Neatbalstīts |
Neatbalstīts |
Pieteikšanās caur portālu |
com.google.android.captiveportallogin |
APK |
Jā |
Ļoti ieteicams |
Neobligāti |
Šūnu apraide |
com.google.android.cellbroadcast |
APEX |
Jā |
Neatbalstīts |
Neatbalstīts |
Conscrypt |
com.google.android.conscrypt |
APEX |
Jā |
Ļoti ieteicams |
Neobligāti |
DNS atrisinātājs |
com.google.android.resolv |
APEX |
Jā |
Ļoti ieteicams |
Neobligāti |
Dokumentu lietotāja saskarne |
com.google.android.documentsui |
APK |
Jā |
Jā |
Neobligāti |
ExtServices - APK |
com.google.android.ext.services |
APK |
Jā |
Jā |
Jā |
ExtServices - APEX |
com.google.android.extservices |
APEX |
Jā |
Neatbalstīts |
Neatbalstīts |
IPsec/IKEv2 bibliotēka |
com.google.android.ipsec |
APEX |
Jā |
Neatbalstīts |
Neatbalstīts |
Multivides kodeki |
com.google.android.media.swcodec |
APEX |
Jā |
Jā |
Neobligāti |
Media Framework komponenti |
com.google.android.media |
APEX |
Jā |
Jā |
Neobligāti |
Multivides nodrošinātājs |
com.google.android.mediaprovider |
APEX |
Jā |
Neatbalstīts |
Neatbalstīts |
Moduļa metadati |
com.google.android.modulemedata |
APK |
Jā |
Jā |
Jā |
Tīkla steka komponenti |
com.google.android.networkstack |
APK |
Jā |
Ļoti ieteicams |
Neobligāti |
Tīkla steka atļauju konfigurācija |
com.google.android.networkstack.permissionconfig |
APK |
Jā |
Ļoti ieteicams |
Neobligāti |
Atļauju kontrolieris - APK |
com.google.android.permissioncontroller |
APK |
Jā |
Jā |
Jā |
Atļauju kontrolieris - APEX |
com.google.android.permission |
APEX |
Jā |
Neatbalstīts |
Neatbalstīts |
SDK paplašinājumi |
com.google.android.sdkxt |
APEX |
Jā |
Neatbalstīts |
Neatbalstīts |
Statsd |
com.google.android.os.statsd |
APEX |
Jā |
Neatbalstīts |
Neatbalstīts |
Telemetrijas vilciena versijas pakotne |
com.google.mainline.telemetry |
APK |
Jā |
Neatbalstīts |
Neatbalstīts |
Piesaiste |
com.google.android.tethering |
APEX |
Jā |
Neatbalstīts |
Neatbalstīts |
Laika joslas dati |
com.google.android.tzdata |
APEX |
Nedrīkst |
Jā |
Neobligāti |
Laika joslas dati 2 |
com.google.android.tzdata2 |
APEX |
Jā |
Neatbalstīts |
Neatbalstīts |
Bezvadu internets³ |
com.google.android.wifi |
APEX |
Jā |
Neatbalstīts |
Neatbalstīts |
Lai sniegtu kādu kontekstu iepriekš minētajām slejām, slejā “Ierīce jaunināta uz operētājsistēmu Android 11 vai palaista ar to” ir ietverta informācija par to, vai modulim ir jābūt (vai nedrīkst būt ir pieejams laika joslas datu gadījumā, jo ir iekļauta tās alternatīva) visās ierīcēs, kas ir vai nu jauninātas uz Android 11, vai tiek palaistas ar Android 11. kaste. Tāpat ierīcēm, kas tiek palaistas ar operētājsistēmu Android 10, ir jāiekļauj daži moduļi, ir ļoti ieteicams iekļaut dažus citus moduļus, un pārējās ierīces neatbalsta. Ierīcēm, kuras ir jauninātas uz operētājsistēmu Android 10 (pretstatā ierīcēm, kas palaistas ar Android), nepieciešamo moduļu saraksts ir īsāks.
Ko dara katrs Mainline modulis?
Tālāk ir sniegts īss skaidrojums par katru no galvenajiem moduļiem:
Adbd
Adbd modulis pārvalda komandrindas adb un IDE atkļūdošanas sesijas. Adbd modulēšana ļauj Google ātrāk nodrošināt veiktspējas uzlabojumus un kļūdu labojumus. Tas ir ļoti svarīgi, jo dažas kļūdas pagātnē bija saistītas ar akumulatora iztukšošanu, un tās varēja likt ierīcēm turpināt izmantot 100% CPU, līdz tālrunis nomirst. Tāpēc Google ir ļoti svarīgi iegūt šos labojumus, jo lietotņu izstrādātāji un OEM plaši izmanto adb testēšanai.
Android neironu tīklu API izpildlaiks
Šī ir bibliotēka, kas atrodas starp lietotni un aizmugursistēmas draiveriem. Savukārt API ir Android C API, kas paredzēta skaitļošanas ziņā intensīvu mašīnmācīšanās darbību veikšanai mobilajās ierīcēs un aparatūras paātrinātas secinājumu operāciju iespējošanai.
CellBroadcast
Šūnu apraide attiecas uz ārkārtas un ne-ārkārtas brīdinājumiem (piemēram, AMBER brīdinājumiem). Šis modulis ir saistīts ar uzdevumiem saistībā ar šiem brīdinājumiem un citām palīgfunkcijām, piemēram, SMS dekodēšanu un bezvadu avārijas brīdinājumu ģeogrāfisko norobežošanu.
Conscrypt
Conscrypt modulis apstrādā Android TLS ieviešanu un citas kriptogrāfijas funkcijas, piemēram, atslēgu ģeneratorus, šifrus un ziņojumu īssavilkumus. Nosūtot šo moduli, Google var paātrināt drošības uzlabojumus, nepaļaujoties uz OTA atjauninājumiem.
DNS atrisinātājs
Kā norāda nosaukums, DNS atrisinātājs atrisina DNS, t.i., tas pārvērš cilvēkiem lasāmus URL par IP adresēm. Modulī ir kods, kas ievieš DNS apakšvirsmas atrisinātāju, un, nosūtot to kā moduli, Google nodrošina labāku lietotāju aizsardzību pret DNS pārtveršanu un konfigurācijas atjaunināšanas uzbrukumiem.
Dokumentu lietotāja saskarne
Dokumentu lietotāja saskarne ir modulis, kas ir atbildīgs par piekļuves kontrolēšanu konkrētiem failiem komponentiem, kas apstrādā dokumentu atļaujas. Kā norāda Google, piekļuves krātuvei un atļauju piešķiršana modulim palielina galalietotāju privātumu un drošību, izpildlaika resursu pārklājuma (RRO) funkcija ļauj oriģinālo iekārtu ražotājiem pēc vajadzības pielāgot pieredzi (atsaucoties uz lietotni Faili). uz. Kā modulis visas Google-Android ierīces tiks piegādātas ar tādu pašu dokumentu saskarnes pieredzi.
ExtServices
Šajā modulī ir iekļauti ietvara komponenti OS pamatfunkcionalitātei, piemēram, paziņojumu ranžēšana, automātiskās aizpildīšanas teksta atbilstības stratēģijas, krātuves kešatmiņa, pakotņu uzraudzības funkcija un citi pakalpojumi.
IPsec/IKEv2 bibliotēka
Šis bibliotēkas modulis attiecas uz jaunām un esošajām funkcijām saistībā ar interworking Wireless LAN (IWLAN) un VPN, piemēram, sarunu par drošības parametriem, piemēram, atslēgām, algoritmiem un tuneli. konfigurācijas. Šo funkciju modularizācijas ideja ir veicināt ekosistēmu konsekvenci un nodrošināt veidu, kā ātri atrisināt drošības un savietojamības problēmas.
Tie ir trīs atdalīti moduļi, taču tiem ir funkcijas, kas ir atkarīgas viena no otras. Šie multivides moduļi apstrādā multivides veidus un kodus, mijiedarbojas ar ExoPlayer, pakļauj transportēšanas vadīklas un atskaņošanas informāciju ietvaram, optimizē indeksētos metadatus utt. Atcerieties Stagefright, ekspluatācija, kas mainīja Android un radīja pašu platformas ikmēneša drošības atjauninājumu koncepciju? Šī izmantošana balstījās uz ievainojamībām multivides atskaņošanas bibliotēkā. Tādējādi multivides komponentu modularizācija ļauj Google ātri un plaši reaģēt, ja šajā bieži vien atlasītajā komponentā tiek atrastas drošības kļūdas.
Šī moduļa funkcija ir skaidri redzama no tā nosaukuma, lai gan tā mērķis nav tāds. Moduļa metadatu modulis satur...metadatus par ierīces moduļu sarakstu. Un tas arī viss.
Tīkla steka komponenti, tīkla steka atļauju konfigurācija, caurlaides pieteikšanās portālā
Modulis Network Stack Components nodrošina kopīgus IP pakalpojumus, tīkla savienojamības uzraudzību, caurlaides pieteikšanās portāla noteikšanu. Atļauju konfigurācijas modulis definē atļauju, kas ļauj citiem moduļiem veikt ar tīklu saistītus uzdevumus. Captive Portal Login modulis ir saistīts ar Captive Portals — tīmekļa lapām, kas tiek rādītas, kad izveidot savienojumu ar noteiktiem publiskiem Wi-Fi tīkliem, kur lietotājam tiek lūgts ievadīt informāciju, lai iegūtu internetu piekļuvi.
Atļauju kontrolieris
Šis modulis nodrošina atjaunināmas konfidencialitātes politikas un lietotāja interfeisa elementus saistībā ar atļauju piešķiršanu un pārvaldību. Ja tas izklausās pazīstami ar Package Installer darbību, tas ir tāpēc, ka tā ir. Tādas funkcijas kā izpildlaika atļauju piešķiršana, pārvaldība un lietojuma izsekošana bija daļa no lietotnes Package Installer līdz operētājsistēmai Android 9. Operētājsistēmā Android 10 lietotne Package Installer ir sadalīta sadaļās, lai varētu atjaunināt atļauju loģiku. Atļauju kontrollera modulis tiek piegādāts kā APK fails, un operētājsistēmā Android 11 modulis var automātiski atsaukt izpildlaika atļaujas lietotnēm, kas nav izmantotas ilgāku laiku.
SDK paplašinājumi
Šis modulis ir nedaudz grūti saprotams un līdz ar to izskaidrojams. Katram Android laidienam ir piešķirts SDK līmenis (parasti +1 no tā priekšgājēja). Ja lietotnes mērķauditorija ir noteikta konkrētam SDK, tiek pieņemts, ka izstrādātājs ir ņēmis vērā platformas darbības un API izmaiņas, ko radījis Android laidiens.
SDK paplašinājumu modulis nosaka ierīces "paplašinājuma SDK" līmeni un atklāj API, lai lietotnes varētu pieprasīt paplašinājuma SDK līmeni. Tas ir aptuveni viss, kas minēts oficiālajā dokumentācijā. ArsTechnica, lai gan min ka tas, iespējams, ir sekundārais API slānis, kas tiks piegādāts Play veikalā.
Statsd, telemetrijas vilciena versiju pakotne
Statsd ir atbildīgs par ierīces rādītāju apkopošanu. No otras puses, telemetrijas vilciena versijas pakotnē nav aktīva koda vai nevienas savas funkcionalitātes. Tas vienkārši satur "telemetrijas vilciena" versijas numuru, kas, pēc Google domām, ir ar metriku saistītu moduļu kopums. Pamatojoties uz versijas numuru, pakalpojumā Google Play tiek rādīta drošības ielāpa versija galalietotājiem un tiek noskaidrots, vai ir pieejami atjauninājumi ar metriku saistītajiem moduļiem.
Piesaiste
Piesaistes modulis koplieto ierīces interneta savienojumu ar citām pievienotajām klienta ierīcēm, izmantojot Wi-Fi, USB, Bluetooth vai Ethernet. Modulis ietver piesaistes komponentus un to atkarības. Izmantojot šo piesaistes moduli, oriģinālo iekārtu ražotāji var paļauties uz vienu standarta atsauces ieviešanu un nodrošināt konsekventu pieredzi visās ierīcēs.
Laika joslas dati
Laika joslas datu modulis atjaunina vasaras laiku (DST) un laika joslas Android ierīcēs, standartizējot gan datus (kas var un mainās diezgan bieži, reaģējot uz reliģiskiem, politiskiem un ģeopolitiskiem iemesliem) un atjaunināšanas mehānismu visā ekosistēmā. Operētājsistēmās Android 8.1 un Android 9 tika izmantots uz APK balstīts laika joslu datu atjaunināšanas mehānisms, un operētājsistēmā Android 10 tas tiek aizstāts ar moduļu atjaunināšanas mehānismu, kura pamatā ir APEX. Google norāda, ka AOSP turpina iekļaut platformas kodu, kas nepieciešams uz APK balstītiem atjauninājumiem, tāpēc ierīces, kas tiek jauninātas uz Android 10, joprojām var saņemt partneru nodrošinātos laika joslu datu atjauninājumus, izmantojot APK. Tomēr Google brīdina, ka uz APK balstīti atjauninājumi aizstāj APEX atjauninājumus.
Bezvadu internets
Šis ir Wi-Fi funkcionalitātes modulis. Galalietotāji tagad var iegūt konsekventu Wi-Fi pieredzi visās Android ierīcēs, kā arī novērst sadarbspējas problēmas, izmantojot moduļu atjauninājumus, lietotni izstrādātāji var samazināt platformas sadrumstalotību, un oriģinālo iekārtu ražotāji var izpildīt pārvadātāja prasības, vienlaikus samazinot individuālās izmaksas pielāgojumi.
Cerams, ka šajā rakstā ir uzsvērts, cik svarīgs Project Mainline ir Google Android ekosistēmai.