Vse, kar morate vedeti o Android's Project Mainline

Project Mainline je največja sprememba Androida od Project Treble. Evo, kaj to pomeni in kaj počnejo vsi moduli. Preverite!

Ena največjih sprememb v Androidu v zadnjih letih, ki je letela pod radarjem, relativno gledano proti njegovi pomembnosti, je bila uvedba Projekt Mainline v sistemu Android 10. Google zahteva vključitev določenih modulov Mainline v izdaje Androida, s Android 11 prihaja z a skupaj obveznih 25 glavnih modulov. Tukaj je razlaga o tem, kaj je Project Mainline in kaj naj bi rešil, skupaj s seznamom vseh Androidovih modulov Project Mainline.

Kaj je Project Mainline?

Da bi pravilno razumeli Project Mainline, se bomo morali malo previti nazaj. Če se vrnete nekaj let nazaj, se je veliko pogovorov o posodobitvah Androida osredotočilo na problem razdrobljenosti. Fragmentacija je bila eden največjih izzivov, ki jih je Google moral rešiti v Androidu v obdobju Ice Cream Sandwich - Lollipop. Čeprav je Android kot platforma prejemal redne posodobitve po pretežno predvidljivem vzorcu, je trajalo zelo dolgo, da so te posodobitve prispele do končnih uporabnikov, če sploh. Medtem ko je Google odpravljal kritične napake in varnostne težave na ravni platforme, je dejanska uvedba teh sprememb pustila veliko želenega. Bilo je/je veliko posrednikov (prodajalec SoC, proizvajalci originalne opreme, operaterji itd.) in veliko gibljivih delov, vključenih v dostavo posodobitev za vaš telefon in težava z razdrobljenostjo se ni zdela tako, kot da bi se rešila sama od sebe, ne da bi zahtevali nekaj močnega udarca intervencije.

Eno večjih prizadevanj za reševanje tega problema je bilo v obliki Projekt Treble skupaj z Androidom 8.0 Oreo, ki je vključeval veliko preoblikovanje Androida, ki je ločeval komponente ogrodja OS Android od HAL prodajalca in jedra Linuxa. Projekt Treble je v bistvu modulariziral Android tako, da je ogrodje OS ločil od programske opreme nižje ravni, specifične za napravo. Na ta način izdelovalcem naprav (OEM) ni treba čakati, da proizvajalci silicija (prodajalec SoC) posodobijo svojo implementacijsko kodo prodajalca, izdelovalci originalne opreme pa bi lahko samostojno posodobili ogrodje OS Android. Končni rezultat je hitrejše sprejemanje novejših izdaj Androida od proizvajalcev originalne opreme, saj jim tega ni več treba počakajte, da posrednik (prodajalec SoC) najprej konča svoje delo, preden lahko začne delati njihov.

Medtem ko se situacija s posodobitvijo Androida s projektom Treble ni dramatično izboljšala takoj, je v veliki meri omogočila širši OEM sodelovanje v različicah Android 10 in Android 11 beta ter omogočanje proizvajalcem originalne opreme, da hitreje posodobijo več svojih naprav. časovnica. Poleg tega je celoten koncept GSI (Generic System Image) močno vplival na razvoj poprodajnega trga na naših forumih.

Razvijalec zažene Android 11 na 22 starejših napravah s Project Treble GSI

Project Mainline razširja prizadevanja Project Treble. Medtem ko je Treble zmanjšal, kako so bili proizvajalci originalne opreme odvisni od proizvajalcev SoC za vsako posamezno posodobitev operacijskega sistema, Mainline zmanjša, kako je Google odvisen od proizvajalcev originalne opreme pri zagotavljanju varnostnih posodobitev za ključne komponente OS. Project Mainline razširja filozofijo Treble na bolj kritične dele ogrodja Android in iz te enačbe odstrani proizvajalce originalne opreme kot odvisne posrednike. Namen projekta Mainline je, da Google prevzame nadzor nad komponentami ogrodja in sistemskimi aplikacijami, ki so ključnega pomena za varnost in ohranjanje doslednosti razvoja stran od proizvajalcev originalne opreme. Projekt Mainline se upravičeno imenuje the največja sprememba Androida od Project Treble.

Za Project Mainline Google uporablja module Mainline, ki so dostavljeni prek ogrodja storitev Google Play in trgovine Google Play. Vsak modul Mainline je dostavljen kot datoteka APK, datoteka APEX ali kot APK-in-APEX. Ko se modul Mainline posodablja, uporabnik na svoji napravi vidi obvestilo »Google Play System Update« (GPSU). Za zagotavljanje posodobitev kritičnih komponent je Google dejansko zaobšel potrebo po čakanju, da proizvajalec originalne opreme uvede posodobitev, in se odločil, da nalogo opravi sam.

Kot Google navaja na spletni strani Android:

Modularne sistemske komponente omogočajo Googlovim in Android partnerjem široko, hitro in brezhibno distribucijo posodobitev napravam končnih uporabnikov na nevsiljiv način. Na primer, kombinacija razdrobljenosti medijskega kodeka in kritičnih hroščev lahko dramatično upočasni sprejemanje aplikacije in sodelovanje uporabnikov. Pogoste posodobitve modulov, povezanih z mediji, lahko zmanjšajo razdrobljenost kodekov, da postane vedenje predstavnostnih aplikacij bolj dosledno v različnih napravah Android in odpravi kritične napake, da se pridobi zaupanje uporabnikov.

Android 10 ali novejši pretvori izbrane sistemske komponente v module, od katerih nekateri uporabljajo format vsebnika APEX (uveden v Android 10), nekateri pa format APK. Modularna arhitektura omogoča posodobitev sistemskih komponent s kritičnimi popravki napak in drugim po potrebi izboljšave, ne da bi to vplivalo na implementacije prodajalcev na nižji ravni ali aplikacije na višji ravni in storitve.

Kot Ars Technica omenja:

Projekt Mainline, imenovan tudi »posodobitve sistema Google Play«, je bil uveden v sistemu Android 10 kot veliko prizadevanje, da bi osnovne sistemske komponente Androida postale bolj modularne in jih je bilo mogoče posodobiti. Mainline je predstavil novo vrsto datoteke »APEX« posebej za sistemske komponente, s ciljem pošiljanja jedrne kode Android prek Trgovine Play tako preprosto, kot pošljete posodobitev aplikacije. Prej je bil edini kodni blok Androida, ki ga je bilo mogoče pošiljati, APK, vrsta datoteke, ki je bila prvotno zasnovana za aplikacije tretjih oseb. To je bilo opremljeno z vsemi vrstami varnostnih omejitev in se je lahko zagnalo šele pozno v procesu zagona, zato je bil APEX ustvarjen z mislijo na zmogljivejše sistemske komponente. APEXe lahko ustvari samo Google ali proizvajalec vaše naprave, tako da so lahko opazno zmogljivejši in vsebujejo kritične zagonske komponente, kot je izvajalno okolje aplikacije.

Mainline ni le tehnična rešitev, temveč tudi centralizirano distribucijo več delov Androida Google, ki vključuje pogajanja s proizvajalci naprav in doseganje, da se vsi strinjajo, da pošiljajo isti blok Koda. Moduli Mainline sčasoma postanejo obvezni za pošiljanje, tako da je Mainline dejansko veliko sodelovanje s proizvajalci naprav, da bi zagotovili, da en sam modul za celoten ekosistem ustreza potrebam vseh. Ni vsak modul Mainline izjemno zmogljiv modul APEX – nekateri so samo APK-ji, ki so zdaj koda za Android, ki jo distribuira Google.

Projekt Mainline — Moduli

Z Androidom 10 je Google zahteval vključitev 13 posebnih modulov Mainline. Pri Androidu 11 je skupno število obveznih modulov 25. Tukaj je celoten seznam, poleg nekaterih ključnih podrobnosti:

Ime modula

Ime paketa

Vrsta

Naprava, nadgrajena na Android 11 ali predstavljena z njim

Naprava, predstavljena z Androidom 10

Naprava je nadgrajena na Android 10

adbd

com.google.android.adbd

APEX

Mora

Nepodprto

Nepodprto

Android Neural Network API Runtime

com.google.android.neuralne mreže

APEX

Mora

Nepodprto

Nepodprto

Prijava na Captive Portal

com.google.android.captiveportallogin

APK

Mora

Močno priporočljivo

Neobvezno

Oddajanje v celici

com.google.android.cellbroadcast

APEX

Mora

Nepodprto

Nepodprto

Conscrypt

com.google.android.conscrypt

APEX

Mora

Močno priporočljivo

Neobvezno

DNS razreševalec

com.google.android.resolv

APEX

Mora

Močno priporočljivo

Neobvezno

Uporabniški vmesnik dokumentov

com.google.android.documentsui

APK

Mora

Mora

Neobvezno

ExtServices - APK

com.google.android.ext.services

APK

Mora

Mora

Mora

ExtServices - APEX

com.google.android.extservices

APEX

Mora

Nepodprto

Nepodprto

Knjižnica IPsec/IKEv2

com.google.android.ipsec

APEX

Mora

Nepodprto

Nepodprto

Medijski kodeki

com.google.android.media.swcodec

APEX

Mora

Mora

Neobvezno

Komponente medijskega ogrodja

com.google.android.media

APEX

Mora

Mora

Neobvezno

Ponudnik medijev

com.google.android.mediaprovider

APEX

Mora

Nepodprto

Nepodprto

Metapodatki modula

com.google.android.modulemetadata

APK

Mora

Mora

Mora

Komponente omrežnega sklada

com.google.android.networkstack

APK

Mora

Močno priporočljivo

Neobvezno

Konfiguracija dovoljenj za omrežni sklad

com.google.android.networkstack.permissionconfig

APK

Mora

Močno priporočljivo

Neobvezno

Krmilnik dovoljenj - APK

com.google.android.permissioncontroller

APK

Mora

Mora

Mora

Krmilnik dovoljenj - APEX

com.google.android.permission

APEX

Mora

Nepodprto

Nepodprto

Razširitve SDK

com.google.android.sdkext

APEX

Mora

Nepodprto

Nepodprto

Statsd

com.google.android.os.statsd

APEX

Mora

Nepodprto

Nepodprto

Paket različice vlaka telemetrije

com.google.mainline.telemetry

APK

Mora

Nepodprto

Nepodprto

Tethering

com.google.android.tethering

APEX

Mora

Nepodprto

Nepodprto

Podatki o časovnem pasu

com.google.android.tzdata

APEX

Ne smeš

Mora

Neobvezno

Podatki o časovnem pasu 2

com.google.android.tzdata2

APEX

Mora

Nepodprto

Nepodprto

Wifi³

com.google.android.wifi

APEX

Mora

Nepodprto

Nepodprto

Da bi zagotovili nekaj konteksta zgornjim stolpcem, stolpec z naslovom »Naprava, nadgrajena na ali zagnana z Androidom 11« vključuje podrobnosti o tem, ali mora biti modul prisoten (ali ne sme biti prisoten, v primeru podatkov o časovnem pasu zaradi vključitve njegove alternative) v vseh napravah, ki so bile bodisi nadgrajene na Android 11 ali se začenjajo z Androidom 11 iz škatla. Podobno morajo naprave, ki se zaženejo z Androidom 10, vključevati nekaj modulov, toplo priporočamo, da vključijo nekaj drugih, ostale pa jih ne podpirajo. Za naprave, ki so nadgrajene na Android 10 (v nasprotju z napravami, ki so bile predstavljene z Androidom), je seznam zahtevanih modulov krajši.

Kaj počne vsak modul Mainline?

Tukaj je kratka razlaga za vsakega od modulov Mainline:

Adbd

Modul adbd upravlja seje za odpravljanje napak adb in IDE v ukazni vrstici. Modularizacija adbd omogoča Googlu, da hitreje zagotavlja izboljšave delovanja in popravke napak. To je ključnega pomena, saj so bile nekatere napake v preteklosti povezane s praznjenjem baterije in bi lahko povzročile, da naprave še naprej uporabljajo 100-odstotno CPE, dokler telefon ne umre. Zato je pridobitev teh popravkov ključnega pomena za Google, saj razvijalci aplikacij in proizvajalci originalne opreme pogosto uporabljajo adb za testiranje.

Android Neural Networks API Runtime

To je knjižnica, ki se nahaja med aplikacijo in zalednimi gonilniki. API pa je Android C API za izvajanje računalniško intenzivnih operacij strojnega učenja na mobilnih napravah in za omogočanje strojno pospešenih operacij sklepanja.

CellBroadcast

Cell Broadcast se nanaša na nujna in nenujna opozorila (kot so opozorila AMBER). Ta modul se ukvarja z nalogami v zvezi s temi opozorili in drugimi pomožnimi funkcijami, kot sta dekodiranje SMS-ov in geofencing za brezžična opozorila v sili.

Conscrypt

Modul Conscrypt upravlja Androidovo implementacijo TLS in druge kriptografske funkcije, kot so generatorji ključev, ciperji in povzetki sporočil. Pošiljanje tega kot modula omogoča Googlu, da pospeši varnostne izboljšave, ne da bi se moral zanašati na posodobitve OTA.

DNS razreševalec

Kot že ime pove, razreševalec DNS razreši DNS, tj. pretvori človeku berljive URL-je v naslove IP. Modul vsebuje kodo, ki implementira razreševalec škrbin DNS, in pošiljanje tega kot modula omogoča Googlu boljšo zaščito uporabnikov pred prestrezanjem DNS in napadi s posodobitvijo konfiguracije.

Uporabniški vmesnik dokumentov

Uporabniški vmesnik dokumentov je modul, ki je odgovoren za nadzor dostopa do določenih datotek za komponente, ki obravnavajo dovoljenja za dokumente. Kot navaja Google, vključitev dostopa do shranjevanja in dovoljenj v modul povečuje zasebnost in varnost za končne uporabnike, medtem ko funkcija Runtime Resource Overlay (RRO) omogoča proizvajalcem originalne opreme, da tematizirajo izkušnjo (kar se nanaša na aplikacijo Files), če potrebujejo do. Kot modul bodo vse naprave Google-Android dobavljene z isto izkušnjo uporabniškega vmesnika Documents.

ExtServices

Ta modul vključuje komponente ogrodja za osnovno funkcionalnost OS, kot so razvrščanje obvestil, strategije ujemanja besedila za samodejno izpolnjevanje, predpomnilnik za shranjevanje, nadzornik paketov in druge storitve.

Knjižnica IPsec/IKEv2

Ta knjižnični modul se ukvarja z novimi in obstoječimi funkcijami v zvezi z medsebojnim delovanjem brezžičnega LAN-a (IWLAN) in VPN, kot je pogajanje o varnostnih parametrih, kot so ključi, algoritmi in tunel konfiguracije. Ideja modularizacije teh funkcij je spodbujati doslednost ekosistema in zagotoviti način za zagotavljanje hitrih popravkov za težave z varnostjo in interoperabilnostjo.

To so trije razcepljeni moduli, vendar imajo funkcije, ki so odvisne drug od drugega. Ti medijski moduli obravnavajo vrste in kode medijev, komunicirajo z ExoPlayerjem, izpostavljajo nadzor prenosa in informacije o predvajanju ogrodju, optimizirajo indeksirane metapodatke itd. Ne pozabite Stagefright, podvig, ki je spremenil Android in prinesel sam koncept mesečnih varnostnih posodobitev platforme? To izkoriščanje se je zanašalo na ranljivosti v knjižnici predvajanja medijev. Tako modularizacija medijskih komponent omogoča Googlu, da se hitro in široko odzove, če se v tej pogosto ciljni komponenti odkrijejo varnostne napake.

Funkcija tega modula je takoj jasna iz njegovega imena, čeprav njegov namen ni. Modul Metapodatki modula vsebuje... metapodatke o seznamu modulov v napravi. In to je približno vse.

Komponente omrežnega sklada, konfiguracija dovoljenj omrežnega sklada, prijava na prestrezni portal

Modul komponent omrežnega sklada zagotavlja skupne storitve IP, spremljanje omrežne povezljivosti, zaznavanje prestreznega portala za prijavo. Modul za konfiguracijo dovoljenj definira dovoljenja, ki drugim modulom omogočajo izvajanje nalog, povezanih z omrežjem. Modul za prijavo na prestrezni portal se ukvarja s prestreznimi portali – spletnimi stranmi, ki se prikažejo, ko povezan z določenimi javnimi omrežji Wi-Fi, kjer mora uporabnik vnesti podatke za dostop do interneta dostop.

Krmilnik dovoljenj

Ta modul ponuja posodobljene pravilnike o zasebnosti in elemente uporabniškega vmesnika v zvezi z dodeljevanjem in upravljanjem dovoljenj. Če se to sliši znano glede na to, kar počne Package Installer, je to zato, ker je. Funkcije, kot so dodeljevanje dovoljenj za izvajanje, upravljanje in sledenje uporabi, so bile del aplikacije Package Installer do Androida 9. V Androidu 10 je aplikacija Package Installer razdeljena na razdelke, da se omogoči posodobitev logike dovoljenj. Modul Permission Controller je dostavljen kot datoteka APK in v sistemu Android 11 lahko modul samodejno prekliče dovoljenja za izvajanje za aplikacije, ki niso bile uporabljene dlje časa.

Razširitve SDK

Ta modul je nekoliko težko razumeti in posledično razložiti. Vsaki izdaji Androida je dodeljena raven SDK (običajno +1 od predhodnika). Ko aplikacija cilja na določen SDK, se domneva, da je razvijalec upošteval vedenjske spremembe platforme in API-ja, ki jih je prinesla izdaja Androida.

Modul SDK Extensions odloča o ravni "extension SDK" naprave in izpostavi API-je za aplikacije, da poizvedujejo po ravni razširitve SDK. To je približno vse, kar navaja uradna dokumentacija. ArsTechnica, čeprav omenja da je to verjetno sekundarna plast API-ja, ki bo poslana prek Trgovine Play.

Statsd, paket različice vlaka telemetrije

Statsd je odgovoren za zbiranje meritev naprave. Paket različice telemetry Train pa na drugi strani ne vsebuje aktivne kode ali lastne funkcije. Vsebuje preprosto številko različice za "Telemetrični vlak", za katerega Google pravi, da je nabor modulov, povezanih z meritvami. Na podlagi številke različice Google Play končnim uporabnikom prikaže različico varnostnega popravka in ugotovi, ali so na voljo posodobitve za module, povezane z metriko.

Tethering

Modul Tethering deli internetno povezavo naprave z drugimi povezanimi odjemalskimi napravami prek Wi-Fi, USB, Bluetooth ali Ethernet. Modul vključuje komponente privezovanja in njihove odvisnosti. Z uporabo tega modula Tethering se proizvajalci originalne opreme lahko zanesejo na eno samo standardno referenčno izvedbo in zagotovijo dosledno izkušnjo v vseh napravah.

Podatki o časovnem pasu

Modul Time Zone Data posodobi poletni čas (DST) in časovne pasove v napravah Android ter standardizira podatke (ki lahko in se precej pogosto spreminja kot odgovor na verske, politične in geopolitične razloge) in mehanizem posodabljanja v celotnem ekosistemu. Android 8.1 in Android 9 sta uporabljala mehanizem za posodabljanje podatkov o časovnem pasu, ki temelji na APK-ju, Android 10 pa ga nadomešča z mehanizmom za posodabljanje modulov, ki temelji na APEX. Google navaja, da AOSP še naprej vključuje kodo platforme, potrebno za posodobitve, ki temeljijo na APK-jih, torej Naprave, ki nadgradijo na Android 10, lahko še vedno prejemajo posodobitve podatkov o časovnem pasu, ki jih zagotovi partner, prek APK. Vendar Google opozarja, da posodobitve, ki temeljijo na APK-jih, nadomestijo posodobitve, ki temeljijo na APEX-u.

Wifi

To je modul za funkcionalnost Wi-Fi. Končni uporabniki lahko zdaj dobijo dosledno izkušnjo Wi-Fi v napravah Android, pa tudi popravke težav z interoperabilnostjo prek posodobitev modulov, aplikacije razvijalci lahko dosežejo manjšo razdrobljenost platforme, proizvajalci originalne opreme pa lahko izpolnijo zahteve operaterjev, hkrati pa zmanjšajo stroške za posameznike prilagoditve.


Upajmo, da ta članek poudarja, kako pomemben je Project Mainline za Googlov ekosistem Android.