Kõik, mida peate Androidi projekti põhiliini kohta teadma

Project Mainline on suurim muudatus Androidis pärast Project Treble'i. Siin on, mida see tähendab ja mida kõik moodulid teevad. Kontrollige seda!

Viimaste aastate üks suuremaid muudatusi Androidis, mis jäi radari alla, suhteliselt olulisusele vastupidiselt, oli Androidi kasutuselevõtt. Projekti põhiliin Android 10-s. Google volitab kaasama Androidi versioonidesse konkreetsed põhiliini moodulid koos Android 11 tulevad koos a kokku kohustuslik kokku 25 põhiliini moodulit. Siin on selgitus selle kohta, mis on Project Mainline ja mida selle eesmärk on lahendada, ning kõigi Androidi Project Mainline moodulite loend.

Mis on Project Mainline?

Project Mainline'i õigeks mõistmiseks peame natuke tagasi kerima. Kui lähete paar aastat tagasi, keskendub suur osa Androidi värskenduste teemalisest vestlusest killustatuse probleemile. Killustumine oli Ice Cream Sandwichi – pulgakommide ajastu üks suurimaid väljakutseid, mille Google Androidis lahendas. Kuigi Androidi kui platvormi värskendati regulaarselt suures osas prognoositava mustriga, kulus nende värskenduste lõpptarbijateni jõudmiseks väga kaua aega, kui üldse. Ehkki Google parandas kriitilisi vigu ja turvaprobleeme platvormi tasemel, jättis nende muudatuste tegelik juurutamine palju soovida. Värskenduste tarnimisel osales/on palju vahendajaid (SoC müüja, originaalseadmete tootjad, operaatorid jne) ja palju liikuvaid osi. oma telefoni ja killustatuse probleem ei paistnud nii, nagu see iseenesest laheneks, ilma et oleks vaja rasket lööki sekkumised.

Üks suuremaid jõupingutusi selle probleemi lahendamiseks tehti kujul Projekt Treble kõrvuti Android 8.0 Oreoga, mis hõlmas Androidi suurt ümberarhitektuuri, eraldades Android OS-i raamistiku komponendid müüja HAL-idest ja Linuxi tuumast. Projekt Treble moduleris Androidi sisuliselt, eraldades OS-i raamistiku seadmepõhisest madalama taseme tarkvarast. Nii ei pea seadmetootjad (OEM-id) ootama, kuni ränitootjad (SoC tarnija) oma müüja rakenduskoodi värskendavad, ja originaalseadmete valmistajad saavad Android OS-i raamistikku iseseisvalt värskendada. Lõpptulemus on OEM-i uuemate Androidi versioonide kiirem kasutuselevõtt, kuna neil pole enam vaja oodake, kuni vahendaja (SoC-müüja) oma töö lõpetab, enne kui nad saavad sellega alustada nende omad.

Kuigi Androidi värskenduste olukord ei paranenud Project Treble'iga kohe järsult, võimaldas see suuresti laiemat originaalseadmete tootjat Android 10 ja Android 11 beetaversioonides osalemine ning originaalseadmete tootjate jaoks lihtsamate seadmete kiirem värskendamine ajaskaala. Lisaks on kogu GSI (Generic System Image) kontseptsioon avaldanud suurt mõju järelturu arengule meie foorumites.

Arendaja käivitab Android 11 22 vanemas Project Treble GSI-ga seadmes

Project Mainline laiendab Project Treble'i jõupingutusi. Kui Treble vähendas OEM-ide sõltuvust SoC-müüjatest iga üksiku OS-i värskenduse puhul, siis Mainline vähendab Google'i sõltuvust OEM-idest OS-i peamistele komponentidele turvavärskenduste tarnimisel. Project Mainline laiendab Treble'i filosoofiat Androidi raamistiku kriitilisematele osadele, eemaldades sellest võrrandist OEM-id kui sõltuvad vahendajad. Project Mainline'i eesmärk on, et Google võtaks kontrolli raamistiku komponentide ja süsteemirakenduste üle turvalisuse seisukohalt ülioluline ja arendustegevuse järjepidevuse säilitamine originaalseadmete tootjatest eemal. Project Mainline on õigustatult viidatud kui a suurim muudatus Androidis pärast Project Treble'i.

Project Mainline jaoks kasutab Google Mainline'i mooduleid, mida tarnitakse Google Play teenuste raamistiku ja Google Play poe kaudu. Iga põhiliini moodul tarnitakse kas APK-failina, APEX-failina või APK-s APEX-is. Kui põhiliini moodulit värskendatakse, näeb kasutaja oma seadmes teadet "Google Play süsteemivärskendus" (GPSU). Kriitiliste komponentide värskenduste edastamiseks on Google jätnud kõrvale vajaduse oodata, kuni OEM värskenduse välja toob, valides ülesande ise.

Nagu Google väidab Androidi veebisaidil:

Modulaarsed süsteemikomponendid võimaldavad Google'il ja Androidi partneritel levitada värskendusi laialdaselt, kiiresti ja sujuvalt lõppkasutaja seadmetele, mittepealetükkival viisil. Näiteks võib meediumikoodeki killustatuse ja kriitiliste vigade kombinatsioon oluliselt aeglustada rakenduste kasutuselevõttu ja kasutajate seotust. Meediumiga seotud moodulite sagedased värskendused võivad vähendada koodeki killustumist, et muuta meediumirakenduste käitumine erinevates Android-seadmetes ühtlasemaks, ja parandada kasutajate usalduse suurendamiseks kriitilisi vigu.

Android 10 või uuem versioon teisendab valitud süsteemikomponendid mooduliteks, millest mõned kasutavad APEX-i konteinerivormingut (kasutatud Android 10-s) ja mõned APK-vormingut. Modulaarne arhitektuur võimaldab süsteemikomponente värskendada kriitiliste veaparanduste ja muuga täiustused vastavalt vajadusele, ilma et see mõjutaks madalama taseme hankijate rakendusi või kõrgema taseme rakendusi ja teenuseid.

Nagu Ars Technica mainib:

Project Mainline ehk Google Play süsteemivärskendused tutvustati Android 10-s suure jõupingutusena Androidi põhisüsteemi komponentide modulaarsemaks ja värskendatavamaks muutmiseks. Mainline tutvustas uut "APEX" failitüüpi, mis on spetsiaalselt mõeldud süsteemikomponentide jaoks, eesmärgiga edastada Androidi põhikood Play poe kaudu sama lihtsalt kui rakenduse värskendus. Varem oli Androidi ainus tarnitav koodiplokk APK, failitüüp, mis oli algselt loodud kolmandate osapoolte rakenduste jaoks. Sellega kaasnesid kõikvõimalikud turvapiirangud ja see sai käivituda alles alglaadimisprotsessi hilises etapis, nii et APEX loodi võimsamaid süsteemikomponente silmas pidades. APEX-e saab luua ainult Google või teie seadme tootja, nii et need võivad olla märgatavalt võimsamad ja sisaldada olulisi alglaadimiskomponente, nagu rakenduse käitusaeg.

Mainline ei ole ainult tehniline lahendus, vaid ka Androidi rohkemate osade tsentraalne levitamine Google, mis hõlmab läbirääkimisi seadmete tootjatega ja seda, et nad kõik nõustuksid tarnima sama ploki kood. Mainline moodulid muutuvad lõpuks tarnimiseks kohustuslikuks, nii et Mainline on tegelikult suur koostöö seadmetootjatega, et tagada, et üks kogu ökosüsteemi hõlmav moodul vastaks kõigi vajadustele. Mitte iga Mainline'i moodul pole ülivõimas APEX-moodul – mõned on lihtsalt APK-d, mis on nüüd Google'i levitatav Androidi kood.

Projekti põhiliin — moodulid

Android 10 puhul andis Google ülesandeks kaasata 13 konkreetset põhiliini moodulit. Android 11 puhul on kohustuslike moodulite koguarv 25. Siin on täielik nimekiri koos mõne olulise üksikasjaga:

Mooduli nimi

Paketi nimi

Tüüp

Seade on uuendatud versioonile Android 11 või käivitatud koos Android 11-ga

Seade Käivitatud Android 10-ga

Seade on uuendatud versioonile Android 10

adbd

com.google.android.adbd

APEX

Peab

Toetamata

Toetamata

Androidi närvivõrgu API käitusaeg

com.google.android.neuralnetworks

APEX

Peab

Toetamata

Toetamata

Sisselogimine suletud portaali

com.google.android.captiveportallogin

APK

Peab

Tugevalt soovitatav

Valikuline

Kärsaade

com.google.android.cellbroadcast

APEX

Peab

Toetamata

Toetamata

Conscrypt

com.google.android.conscrypt

APEX

Peab

Tugevalt soovitatav

Valikuline

DNS-i lahendaja

com.google.android.resolv

APEX

Peab

Tugevalt soovitatav

Valikuline

Dokumentide kasutajaliides

com.google.android.documentsui

APK

Peab

Peab

Valikuline

ExtServices - APK

com.google.android.ext.services

APK

Peab

Peab

Peab

ExtServices - APEX

com.google.android.extservices

APEX

Peab

Toetamata

Toetamata

IPsec/IKEv2 raamatukogu

com.google.android.ipsec

APEX

Peab

Toetamata

Toetamata

Meediumikoodekid

com.google.android.media.swcodec

APEX

Peab

Peab

Valikuline

Meediumiraamistiku komponendid

com.google.android.media

APEX

Peab

Peab

Valikuline

Meedia pakkuja

com.google.android.mediaprovider

APEX

Peab

Toetamata

Toetamata

Mooduli metaandmed

com.google.android.modulemetadata

APK

Peab

Peab

Peab

Võrgupinu komponendid

com.google.android.networkstack

APK

Peab

Tugevalt soovitatav

Valikuline

Võrgupinu loa konfiguratsioon

com.google.android.networkstack.permissionconfig

APK

Peab

Tugevalt soovitatav

Valikuline

Lubade kontroller - APK

com.google.android.permissioncontroller

APK

Peab

Peab

Peab

Lubade kontroller - APEX

com.google.android.permission

APEX

Peab

Toetamata

Toetamata

SDK laiendused

com.google.android.sdkxt

APEX

Peab

Toetamata

Toetamata

Statsd

com.google.android.os.statsd

APEX

Peab

Toetamata

Toetamata

Telemeetria rongi versioonipakett

com.google.mainline.telemetry

APK

Peab

Toetamata

Toetamata

Jagamine

com.google.android.tethering

APEX

Peab

Toetamata

Toetamata

Ajavööndi andmed

com.google.android.tzdata

APEX

Ei tohi

Peab

Valikuline

Ajavööndi andmed 2

com.google.android.tzdata2

APEX

Peab

Toetamata

Toetamata

Wi-Fi³

com.google.android.wifi

APEX

Peab

Toetamata

Toetamata

Ülaltoodud veergudele konteksti andmiseks sisaldab veerg pealkirjaga „Seade on uuendatud versioonile Android 11 või käivitatud Android 11-ga” üksikasju selle kohta, kas moodul peab olema olemas (või mitte olemas (ajavööndi andmete puhul selle alternatiivi kaasamise tõttu) kõigis seadmetes, mis on uuendatud versioonile Android 11 või mis käivituvad Android 11-ga. kasti. Sarnaselt peavad Android 10-ga käivitatavad seadmed sisaldama mõnda moodulit, tungivalt soovitatakse lisada veel mõned moodulid ja ülejäänud neid ei toeta. Seadmete puhul, mis on uuendatud versioonile Android 10 (erinevalt Androidiga käivitatud seadmetest), on vajalike moodulite loend lühem.

Mida iga põhiliini moodul teeb?

Siin on iga põhiliini mooduli lühike selgitus:

Adbd

Adbd-moodul haldab käsurea adb- ja IDE-silumisseansse. Adbd moduleerimine võimaldab Google'il jõudlust parandada ja veaparandusi kiiremini pakkuda. See on ülioluline, kuna mõned vead olid minevikus seotud aku tühjenemisega ja võivad põhjustada seadmete 100% CPU kasutamist, kuni telefon sureb. Seega on Google'i jaoks nende paranduste saamine ülioluline, kuna rakenduste arendajad ja originaalseadmete tootjad kasutavad adb-d testimiseks laialdaselt.

Androidi närvivõrkude API käitusaeg

See on raamatukogu, mis asub rakenduse ja taustaprogrammi draiverite vahel. API on omakorda Android C API, mis on ette nähtud arvutuslikult intensiivsete masinõppeoperatsioonide käitamiseks mobiilseadmetes ja riistvaraliselt kiirendatud järeldustoimingute võimaldamiseks.

CellBroadcast

Kärjesaade viitab hädaolukorra ja mittehädaolukorra hoiatustele (nt AMBER hoiatustele). See moodul käsitleb nende hoiatustega seotud ülesandeid ja muid abifunktsioone, nagu SMS-ide dekodeerimine ja traadita hädaabihoiatuste geopiirang.

Conscrypt

Conscrypt moodul haldab Androidi TLS-i juurutamist ja muid krüptograafilisi funktsioone, nagu võtmegeneraatorid, šifrid ja sõnumite kokkuvõtted. Selle tarnimine on moodul, mis võimaldab Google'il kiirendada turvatäiustusi, ilma et oleks vaja loota OTA värskendustele.

DNS-i lahendaja

Nagu nimigi viitab, lahendab DNS-i lahendaja DNS-i, st teisendab inimesele loetavad URL-id IP-aadressideks. Moodul sisaldab koodi, mis rakendab DNS-i tünnide lahendajat, ja selle moodulina tarnimine võimaldab Google'il pakkuda kasutajatele paremat kaitset DNS-i pealtkuulamise ja konfiguratsioonivärskenduste rünnakute eest.

Dokumentide kasutajaliides

Dokumentide kasutajaliides on moodul, mis vastutab dokumentide õigusi haldavate komponentide konkreetsetele failidele juurdepääsu kontrollimise eest. Nagu Google väidab, suurendab salvestusruumi juurdepääsu ja lubade muutmine moodulisse lõppkasutajate privaatsust ja turvalisust. käitusaegse ressursi ülekatte (RRO) funktsioon võimaldab originaalseadmete tootjatel vajaduse korral kogemust teemastada (viidates rakendusele Failid). juurde. Moodulina tarnitakse kõik Google-Androidi seadmed sama dokumentide kasutajaliidese kogemusega.

ExtServices

See moodul sisaldab OS-i põhifunktsioonide raamistiku komponente, nagu teavituste järjestus, automaatse täitmise teksti sobitamise strateegiad, salvestusruumi vahemälu, pakettide valve ja muud teenused.

IPsec/IKEv2 raamatukogu

See teegi moodul käsitleb uusi ja olemasolevaid traadita LAN-i funktsioone (IWLAN) ja VPN-id, nagu läbirääkimised turvaparameetrite, nagu võtmed, algoritmid ja tunnel, üle konfiguratsioonid. Nende funktsioonide modulariseerimise idee on edendada ökosüsteemi järjepidevust ja pakkuda kiireid lahendusi turvalisuse ja koostalitlusvõime probleemidele.

Need on kolm kaheharulist moodulit, kuid neil on üksteisest sõltuvad funktsioonid. Need meediumimoodulid haldavad meediumitüüpe ja -koode, suhtlevad ExoPlayeriga, avaldavad raamistikule transpordi juhtelemente ja taasesitusteavet, optimeerivad indekseeritud metaandmeid jne. Pea meeles Stagefright, ärakasutamine, mis muutis Androidi ja tõi platvormile igakuiste turvavärskenduste kontseptsiooni? See ärakasutamine põhines meediumi taasesitusteegi haavatavustel. Seega võimaldab meediumikomponentide moduleerimine Google'il kiiresti ja laialdaselt reageerida, kui selles sageli sihitud komponendis leitakse turvavigu.

Selle mooduli funktsioon on selle nimest kohe selge, kuigi selle eesmärk pole seda. Mooduli metaandmete moodul sisaldab...metaandmeid seadme moodulite loendi kohta. Ja sellega asi piirdubki.

Võrgupinu komponendid, võrgupinu loa konfigureerimine, sisselogimine suletud portaali

Moodul Network Stack Components pakub tavalisi IP-teenuseid, võrguühenduse jälgimist ja sisselogimisportaali tuvastamist. Loa konfiguratsiooni moodul määratleb loa, mis võimaldab teistel moodulitel võrguga seotud ülesandeid täita. Piiranguportaali sisselogimise moodul tegeleb kinnisportaalidega – veebilehtedega, mida kuvatakse siis, kui ühendatud teatud avalike WiFi-võrkudega, kus kasutajal palutakse Interneti-ühenduse saamiseks sisestada üksikasjad juurdepääs.

Lubade kontroller

See moodul pakub lubade andmise ja haldamise kohta värskendatavaid privaatsuspoliitikaid ja kasutajaliidese elemente. Kui see kõlab Package Installeri tegevusega tuttavalt, siis see on nii. Funktsioonid, nagu käitusaja lubade andmine, haldamine ja kasutuse jälgimine, kuulusid kuni Android 9-ni paketiinstallirakendusse. Android 10 puhul on rakendus Package Installer jagatud osadeks, et lubade loogikat saaks värskendada. Moodul Permission Controller tarnitakse APK-failina ja Android 11 puhul saab moodul automaatselt tühistada nende rakenduste käitusaja load, mida pole pikka aega kasutatud.

SDK laiendused

Seda moodulit on veidi raske mõista ja järelikult seletada. Igale Androidi versioonile on määratud SDK tase (tavaliselt +1 eelkäijalt). Kui rakendus sihib konkreetset SDK-d, eeldatakse, et arendaja on võtnud arvesse Androidi versiooniga kaasnevaid platvormi käitumise ja API muudatusi.

SDK laienduste moodul otsustab seadme "laienduse SDK" taseme ja paljastab rakenduste API-d, et teha päringuid laienduse SDK taseme kohta. See on peaaegu kõik, mida ametlik dokumentatsioon mainib. ArsTechnica, siiski mainib et see on tõenäoliselt sekundaarne API kiht, mis tarnitakse Play poe kaudu.

Statsd, telemeetria rongi versioonipakett

Statsd vastutab seadme mõõdikute kogumise eest. Telemeetriarongi versioonipakett seevastu ei sisalda aktiivset koodi ega ühtegi oma funktsiooni. See sisaldab lihtsalt "telemeetriarongi" versiooninumbrit, mis Google'i sõnul on mõõdikutega seotud moodulite komplekt. Versiooninumbri põhjal kuvab Google Play lõppkasutajatele turvapaiga versiooni ja selgitab välja, kas mõõdikutega seotud moodulite jaoks on saadaval värskendusi.

Jagamine

Jagamismoodul jagab seadme Interneti-ühendust teiste ühendatud klientseadmetega Wi-Fi, USB, Bluetoothi ​​või Etherneti kaudu. Moodul sisaldab lõastamise komponente ja nende sõltuvusi. Seda jagamismoodulit kasutades saavad originaalseadmete tootjad toetuda ühele standardsele viiterakendusele ja pakkuda ühtlast kasutuskogemust kõigis seadmetes.

Ajavööndi andmed

Time Zone Data moodul värskendab suveaega (DST) ja ajavööndeid Android-seadmetes, standardiseerides nii andmed (mis võivad ja see muutub üsna sageli vastusena usulistele, poliitilistele ja geopoliitilistele põhjustele) ja uuendusmehhanismile kogu ökosüsteemis. Android 8.1 ja Android 9 kasutasid APK-põhist ajavööndi andmete värskendamise mehhanismi ning Android 10 asendab selle APEX-põhise mooduli värskendusmehhanismiga. Google väidab, et AOSP lisab jätkuvalt APK-põhiste värskenduste jaoks vajalikku platvormikoodi Android 10-le üleviidavad seadmed saavad siiski partnerite pakutud ajavööndi andmete värskendusi läbi APK. Google hoiatab siiski, et APK-põhised värskendused asendavad APEX-põhise värskenduse.

Wi-Fi

See on Wi-Fi funktsioonide moodul. Lõppkasutajad saavad nüüd Android-seadmetes ühtlase WiFi-kogemuse ning koostalitlusprobleemide parandused mooduli värskenduste ja rakenduse kaudu arendajad saavad vähendada platvormi killustatust ja originaalseadmete tootjad saavad täita operaatori nõudeid, vähendades samal ajal ka üksikisiku kulusid kohandused.


Loodetavasti toob see artikkel esile, kui oluline on Project Mainline Google'i Androidi ökosüsteemile.