Sve što trebate znati o Androidovom Project Mainlineu

Project Mainline najveća je promjena u Androidu od Project Treble. Evo što to znači i što svi moduli rade, provjerite!

Jedna od najvećih promjena u Androidu posljednjih godina koja je prošla ispod radara, relativno govoreći protiv njegove važnosti, bilo je uvođenje Glavni projekt u Androidu 10. Google nalaže uključivanje određenih modula Mainline u izdanjima Androida, s Android 11 dolazi s a kombinirano obveznih ukupno 25 glavnih modula. Ovdje je objašnjenje o tome što je Project Mainline i što nastoji riješiti, uz popis svih Androidovih modula Project Mainline.

Što je Project Mainline?

Da bismo pravilno razumjeli Project Mainline, morat ćemo se malo vratiti unatrag. Ako se vratite nekoliko godina unatrag, veliki dio razgovora oko ažuriranja Androida bio je usredotočen na problem fragmentacije. Fragmentacija je bila jedan od najvećih izazova koje je Google trebao riješiti na Androidu tijekom ere Ice Cream Sandwich - Lollipop. Iako je Android kao platforma dobivao redovita ažuriranja po uglavnom predvidljivom obrascu, tim je ažuriranjima trebalo jako dugo da dođu do krajnjih potrošača, ako uopće. Dakle, dok je Google popravljao kritične greške i sigurnosne probleme na razini platforme, stvarno uvođenje ovih promjena nije poželjeti. Bilo je/ima mnogo posrednika (dobavljač SoC-a, OEM-ovi, prijevoznici itd.) i puno pokretnih dijelova uključenih u isporuku ažuriranja vaš telefon, a problem s fragmentacijom nije se činio kao da bi se riješio sam od sebe bez potrebe za teškim udarcima intervencije.

Jedan od glavnih pokušaja rješavanja ovog problema došao je u obliku Projekt Treble uz Android 8.0 Oreo, koji je uključivao veliku rearhitekturu Androida, odvajajući komponente okvira Android OS-a od HAL-ova dobavljača i Linux kernela. Projekt Treble je u biti modularizirao Android odvajanjem OS okvira od softvera niže razine specifičnog za uređaj. Na ovaj način proizvođači uređaja (OEM) ne moraju čekati da proizvođači silicija (prodavatelj SoC-a) ažuriraju implementacijski kod svog dobavljača, a OEM-ovi bi mogli samostalno ažurirati okvir Android OS-a. Krajnji rezultat je brže prihvaćanje novijih izdanja Androida od strane OEM-a, jer to više ne moraju pričekajte da posrednik (prodavatelj SoC-a) završi svoj posao prije nego što može početi raditi njihov.

Iako se situacija s ažuriranjem Androida nije dramatično popravila odmah s Project Trebleom, uvelike je omogućila šire OEM sudjelovanje u beta verzijama Androida 10 i Androida 11, kao i olakšavanje proizvođačima originalne opreme da brže ažuriraju više svojih uređaja Vremenska Crta. Osim toga, cijeli koncept GSI (Generic System Image) imao je velik utjecaj na razvoj naknadnog tržišta na našim forumima.

Programer pokreće Android 11 na 22 starija uređaja s Project Treble GSI

Project Mainline proširuje napore Projekta Treble. Dok je Treble smanjio koliko su OEM-ovi ovisni o dobavljačima SoC-a za svako pojedino ažuriranje OS-a, Mainline smanjuje koliko je Google ovisan o OEM-ovima za isporuku sigurnosnih ažuriranja za ključne komponente OS-a. Project Mainline proširuje Treble filozofiju na kritičnije dijelove okvira Androida, uklanjajući OEM-ove kao ovisne posrednike iz ove jednadžbe. Svrha projekta Mainline je da Google preuzme kontrolu nad komponentama okvira i sistemskim aplikacijama koje su ključni za sigurnost i održavanje dosljednosti razvoja daleko od OEM-a. Projekt Mainline s pravom se naziva the najveća promjena u Androidu od Project Treble.

Za Project Mainline, Google koristi module Mainline koji se isporučuju kroz Google Play Services framework i Google Play Store. Svaki glavni modul isporučuje se kao APK datoteka, APEX datoteka ili kao APK-in-APEX. Kada se glavni modul ažurira, korisnik vidi obavijest "Google Play System Update" (GPSU) na svom uređaju. Učinkovito, kako bi isporučio ažuriranja kritičnim komponentama, Google je zaobišao potrebu čekanja da OEM uvede ažuriranje, odabirući sam obaviti zadatak.

Kao Google navodi na web stranici Androida:

Modularne komponente sustava omogućuju Googleu i Android partnerima široku, brzu i neprimjetnu distribuciju ažuriranja uređajima krajnjih korisnika na nenametljiv način. Na primjer, kombinacija fragmentacije medijskih kodeka i kritičnih grešaka može dramatično usporiti usvajanje aplikacije i angažman korisnika. Česta ažuriranja modula povezanih s medijima mogu smanjiti fragmentaciju kodeka kako bi ponašanje medijske aplikacije bilo dosljednije na različitim Android uređajima i popraviti kritične pogreške kako bi se izgradilo povjerenje korisnika.

Android 10 ili noviji pretvara odabrane komponente sustava u module, od kojih neki koriste format spremnika APEX (uveden u Androidu 10), a neki koriste APK format. Modularna arhitektura omogućuje ažuriranje komponenti sustava s kritičnim ispravcima grešaka i drugim poboljšanja po potrebi, bez utjecaja na implementacije dobavljača niže razine ili aplikacije više razine i usluge.

Kao Ars Technica spominje:

Projekt Mainline, poznat i kao "Ažuriranja sustava Google Play", predstavljen je u Androidu 10 kao veliki napor da se osnovne sistemske komponente Androida učine modularnijim i ažuriranijim. Mainline je predstavio novu vrstu datoteke "APEX" posebno za komponente sustava, s ciljem slanja osnovnog Android koda kroz Play Store jednako lako kao što šaljete ažuriranje aplikacije. Prethodno je jedini Androidov blok koda koji se mogao isporučivati ​​bio APK, vrsta datoteke koja je izvorno dizajnirana za aplikacije trećih strana. Ovo je dolazilo sa svim vrstama sigurnosnih ograničenja i moglo se pokrenuti samo kasno u procesu dizanja, tako da je APEX stvoren imajući na umu moćnije komponente sustava. APEX-ove može izraditi samo Google ili proizvođač vašeg uređaja, tako da mogu biti osjetno moćniji i sadržavati kritične komponente za pokretanje kao što je vrijeme izvođenja aplikacije.

Mainline nije samo tehničko rješenje, već i stvaranje više dijelova Androida koje centralno distribuira Google, što uključuje pregovore s proizvođačima uređaja i nagovaranje da svi pristanu na isporuku istog bloka kodirati. Mainline moduli s vremenom postaju obvezni za isporuku, tako da je Mainline zapravo velika suradnja s proizvođačima uređaja kako bi se osiguralo da jedan modul za cijeli ekosustav zadovoljava svačije potrebe. Nije svaki modul Mainline ultra-moćan APEX modul—neki su samo APK-ovi koji su sada kod za Android koji distribuira Google.

Glavni projekt — Moduli

Uz Android 10, Google je naložio uključivanje 13 specifičnih Mainline modula. S Androidom 11, ukupan broj obveznih modula je 25. Ovdje je cijeli popis, zajedno s nekim ključnim detaljima:

Naziv modula

Naziv paketa

Tip

Uređaj nadograđen na ili pokrenut s Androidom 11

Uređaj pokrenut s Androidom 10

Uređaj nadograđen na Android 10

adbd

com.google.android.adbd

VRH

Mora

Nepodržano

Nepodržano

Android Neural Network API Runtime

com.google.android.neuralne mreže

VRH

Mora

Nepodržano

Nepodržano

Prijava na Captive Portal

com.google.android.captiveportallogin

APK

Mora

Strogo preporučljivo

Neobavezno

Emitiranje

com.google.android.cellbroadcast

VRH

Mora

Nepodržano

Nepodržano

Conscrypt

com.google.android.conscrypt

VRH

Mora

Strogo preporučljivo

Neobavezno

DNS razrješavač

com.google.android.resolv

VRH

Mora

Strogo preporučljivo

Neobavezno

UI dokumenata

com.google.android.documentsui

APK

Mora

Mora

Neobavezno

ExtServices - APK

com.google.android.ext.services

APK

Mora

Mora

Mora

ExtServices - VRH

com.google.android.extservices

VRH

Mora

Nepodržano

Nepodržano

Knjižnica IPsec/IKEv2

com.google.android.ipsec

VRH

Mora

Nepodržano

Nepodržano

Medijski kodeci

com.google.android.media.swcodec

VRH

Mora

Mora

Neobavezno

Komponente medijskog okvira

com.google.android.media

VRH

Mora

Mora

Neobavezno

Davatelj medija

com.google.android.mediaprovider

VRH

Mora

Nepodržano

Nepodržano

Metapodaci modula

com.google.android.modulemetadata

APK

Mora

Mora

Mora

Komponente mrežnog stoga

com.google.android.networkstack

APK

Mora

Strogo preporučljivo

Neobavezno

Konfiguracija dopuštenja mrežnog snopa

com.google.android.networkstack.permissionconfig

APK

Mora

Strogo preporučljivo

Neobavezno

Kontrolor dopuštenja - APK

com.google.android.permissioncontroller

APK

Mora

Mora

Mora

Kontrolor dopuštenja - VRH

com.google.android.permission

VRH

Mora

Nepodržano

Nepodržano

SDK proširenja

com.google.android.sdkext

VRH

Mora

Nepodržano

Nepodržano

Statsd

com.google.android.os.statsd

VRH

Mora

Nepodržano

Nepodržano

Paket verzije vlaka telemetrije

com.google.mainline.telemetry

APK

Mora

Nepodržano

Nepodržano

Povezivanje

com.google.android.tethering

VRH

Mora

Nepodržano

Nepodržano

Podaci vremenske zone

com.google.android.tzdata

VRH

Ne smije

Mora

Neobavezno

Podaci o vremenskoj zoni 2

com.google.android.tzdata2

VRH

Mora

Nepodržano

Nepodržano

Wi-Fi³

com.google.android.wifi

VRH

Mora

Nepodržano

Nepodržano

Kako bismo pružili neki kontekst gornjim stupcima, stupac pod nazivom "Uređaj nadograđen na ili pokrenut s Androidom 11" uključuje pojedinosti o tome mora li modul biti prisutan (ili ne smije biti prisutan, u slučaju podataka vremenske zone zbog uključivanja njegove alternative) na svim uređajima koji su ili nadograđeni na Android 11 ili se pokreću s Androidom 11 izvan kutija. Slično tome, uređaji koji se pokreću s Androidom 10 moraju uključivati ​​nekoliko modula, preporučuje se uključivanje nekoliko drugih, a ostali ih ne podržavaju. Za uređaje koji su nadograđeni na Android 10 (za razliku od lansiranih s Androidom), popis potrebnih modula je kraći.

Što radi svaki modul Mainline?

Evo kratkog objašnjenja za svaki od modula Mainline:

Adbd

Modul adbd upravlja adb i IDE sesijama otklanjanja pogrešaka naredbenog retka. Modularizacija adbd-a omogućuje Googleu da brže isporuči poboljšanja performansi i ispravi greške. Ovo je ključno jer su neke pogreške u prošlosti bile povezane s pražnjenjem baterije i mogle su uzrokovati da uređaji nastave koristiti 100% CPU dok se telefon ne ugasi. Stoga je dobivanje ovih popravaka ključno za Google jer programeri aplikacija i OEM-ovi naširoko koriste adb za testiranje.

Android Neural Networks API Runtime

Ovo je biblioteka koja se nalazi između aplikacije i pozadinskih upravljačkih programa. API je zauzvrat Android C API za izvođenje računalno intenzivnih operacija strojnog učenja na mobilnim uređajima i za omogućavanje hardverski ubrzanih operacija zaključivanja.

Emitiranje

Cell Broadcast odnosi se na hitna i nehitna upozorenja (kao što su AMBER upozorenja). Ovaj se modul bavi zadacima oko ovih upozorenja i drugim pomoćnim funkcijama kao što su dekodiranje SMS-a i geofencing za bežična hitna upozorenja.

Conscrypt

Modul Conscrypt upravlja Androidovom TLS implementacijom i drugim kriptografskim funkcijama kao što su generatori ključeva, ciperi i sažetci poruka. Isporuka ovog modula omogućuje Googleu da ubrza sigurnosna poboljšanja, bez potrebe za oslanjanjem na OTA ažuriranja.

DNS razrješavač

Kao što naziv govori, DNS razrješivač rješava DNS, tj. pretvara čitljive URL-ove u IP adrese. Modul sadrži kod koji implementira razrješavač DNS stubova, a isporuka ovog modula omogućuje Googleu bolju zaštitu korisnika od presretanja DNS-a i napada ažuriranja konfiguracije.

UI dokumenata

Documents UI je modul odgovoran za kontrolu pristupa određenim datotekama za komponente koje upravljaju dozvolama za dokumente. Kako Google navodi, pretvaranje pristupa pohrani i dozvola u modul povećava privatnost i sigurnost za krajnje korisnike, dok značajka runtime resource overlay (RRO) omogućuje proizvođačima originalne opreme tematiziranje iskustva (odnosno na aplikaciju Datoteke) ako im je potrebno do. Kao modul, svi Google-Android uređaji isporučivat će se s istim iskustvom korisničkog sučelja za dokumente.

ExtServices

Ovaj modul uključuje komponente okvira za osnovne funkcije OS-a kao što su rangiranje obavijesti, strategije automatskog popunjavanja teksta, predmemorija za pohranu, čuvar paketa i druge usluge.

Knjižnica IPsec/IKEv2

Ovaj modul knjižnice bavi se novim i postojećim značajkama oko međusobnog bežičnog LAN-a (IWLAN) i VPN-ovi, poput pregovaranja o sigurnosnim parametrima poput ključeva, algoritama i tunela konfiguracije. Ideja s modularizacijom ovih funkcija je promicanje dosljednosti ekosustava i pružanje načina za isporuku brzih rješenja za probleme sigurnosti i interoperabilnosti.

To su tri bifurkirana modula, ali imaju funkcije koje ovise jedna o drugoj. Ovi medijski moduli rukuju vrstama medija i kodovima, komuniciraju s ExoPlayerom, izlažu kontrole prijenosa i informacije o reprodukciji okviru, optimiziraju indeksirane metapodatke itd. Zapamtiti Stagefright, exploit koji je promijenio Android i doveo do samog koncepta mjesečnih sigurnosnih ažuriranja platforme? To se iskorištavanje oslanjalo na ranjivosti unutar biblioteke za reprodukciju medija. Dakle, modularizacija medijskih komponenti omogućuje Googleu brzu i opsežnu reakciju u slučaju pronalaska sigurnosnih grešaka u ovoj često ciljanoj komponenti.

Funkcija ovog modula je odmah jasna iz njegovog imena, iako njegova svrha nije. Modul Metapodaci modula sadrži...metapodatke o popisu modula na uređaju. I to je otprilike to.

Komponente mrežnog niza, Konfiguracija dopuštenja mrežnog niza, Prijava na Captive Portal

Modul Network Stack Components pruža uobičajene IP usluge, nadzor mrežne povezanosti, detekciju portala za zatvorenu prijavu. Modul za konfiguraciju dopuštenja definira dopuštenje koje drugim modulima omogućuje izvršavanje zadataka povezanih s mrežom. Modul za prijavu na Captive Portal bavi se Captive Portalima — web stranicama koje se prikazuju kada spojen na određene javne Wi-Fi mreže, gdje se od korisnika traži unos pojedinosti za pristup internetu pristup.

Kontrolor dopuštenja

Ovaj modul donosi ažurirana pravila privatnosti i elemente korisničkog sučelja oko dodjele dopuštenja i upravljanja njima. Ako ovo zvuči poznato onome što Package Installer radi, to je zato što jest. Funkcije poput dodjele dopuštenja za vrijeme izvođenja, upravljanja i praćenja korištenja bile su dio aplikacije Package Installer do Androida 9. U Androidu 10 aplikacija Package Installer podijeljena je u odjeljke kako bi se omogućilo ažuriranje logike dopuštenja. Modul Permission Controller isporučuje se kao APK datoteka, a u Androidu 11 modul može automatski opozvati dopuštenja za vrijeme izvođenja za aplikacije koje se nisu koristile dulje vrijeme.

SDK proširenja

Ovaj modul je malo težak za razumjeti i posljedično objasniti. Svakom izdanju Androida dodijeljena je razina SDK-a (obično +1 od prethodnika). Kada aplikacija cilja određeni SDK, pretpostavlja se da je razvojni programer uzeo u obzir ponašanje platforme i promjene API-ja koje je donijelo izdanje Androida.

Modul SDK Extensions odlučuje o razini "extension SDK" uređaja i izlaže API-je za aplikacije za postavljanje upita o razini SDK proširenja. To je otprilike sve što navodi službena dokumentacija. ArsTechnica, ipak, spominje da je ovo vjerojatno sekundarni API sloj koji će se isporučivati ​​putem Trgovine Play.

Statsd, paket inačice telemetrije

Statsd je odgovoran za prikupljanje metrike uređaja. Paket verzije telemetrije Train, s druge strane, ne sadrži aktivni kod niti bilo kakvu vlastitu funkcionalnost. Jednostavno sadrži broj verzije za "Telemetry Train" za koji Google kaže da je skup modula povezanih s metrikom. Na temelju broja verzije, Google Play krajnjim korisnicima prikazuje verziju sigurnosne zakrpe i utvrđuje jesu li dostupna ažuriranja za module povezane s metrikom.

Povezivanje

Modul Tethering dijeli internetsku vezu uređaja s drugim povezanim klijentskim uređajima putem Wi-Fi-ja, USB-a, Bluetootha ili Etherneta. Modul uključuje komponente povezivanja i njihove ovisnosti. Korištenjem ovog Tethering modula, OEM-ovi se mogu osloniti na jednu, standardnu ​​referentnu implementaciju i donijeti dosljedno iskustvo na svim uređajima.

Podaci vremenske zone

Modul podataka vremenske zone ažurira ljetno računanje vremena (DST) i vremenske zone na Android uređajima, standardizirajući i podatke (koji mogu i mijenja se prilično često kao odgovor na vjerske, političke i geopolitičke razloge) i mehanizam ažuriranja u cijelom ekosustavu. Android 8.1 i Android 9 koristili su mehanizam ažuriranja podataka vremenske zone temeljen na APK-u, a Android 10 ga zamjenjuje mehanizmom ažuriranja modula temeljenom na APEX-u. Google navodi da AOSP nastavlja uključivati ​​kod platforme neophodan za ažuriranja temeljena na APK-u, tako da uređaji koji se nadograđuju na Android 10 i dalje mogu primati ažuriranja podataka o vremenskoj zoni partnera putem APK. Međutim, Google upozorava da ažuriranja temeljena na APK-u zamjenjuju ažuriranja temeljena na APEX-u.

Wi-Fi

Ovo je modul za Wi-Fi funkcionalnost. Krajnji korisnici sada mogu dobiti dosljedno Wi-Fi iskustvo na Android uređajima, kao i popravke problema interoperabilnosti putem ažuriranja modula, aplikacije programeri mogu dobiti smanjenu fragmentaciju platforme, a proizvođači originalne opreme mogu ispuniti zahtjeve nositelja dok istovremeno smanjuju troškove za pojedince prilagodbe.


Nadajmo se da ovaj članak naglašava koliko je Project Mainline važan za Googleov Android ekosustav.