„Project Mainline“ yra didžiausias „Android“ pakeitimas nuo projekto „Treble“. Štai ką tai reiškia ir ką veikia visi moduliai, patikrinkite!
Vienas didžiausių „Android“ pakeitimų pastaraisiais metais, kuris buvo nepastebėtas, palyginti su jo svarba, buvo įdiegta Pagrindinis projektas „Android 10“. „Google“ įpareigoja įtraukti konkrečius „Mainline“ modulius į „Android“ leidimus Android 11 ateina su a kartu privalomi iš viso 25 pagrindinės linijos moduliai. Čia pateikiamas paaiškinimas, kas yra „Project Mainline“ ir ką juo siekiama išspręsti, kartu su visų „Android“ „Project Mainline“ modulių sąrašu.
Kas yra „Project Mainline“?
Norėdami tinkamai suprasti Project Mainline, turėsime šiek tiek atsukti atgal. Jei grįšite keletą metų atgal, daugelis pokalbių apie „Android“ naujinimus buvo nukreipti į susiskaidymo problemą. Suskaidymas buvo vienas didžiausių iššūkių, kuriuos „Google“ turėjo išspręsti sistemoje „Android“ Ice Cream Sandwich – Lollipop eroje. Nors „Android“, kaip platforma, reguliariai atnaujinama pagal iš esmės nuspėjamą modelį, anksčiau šie naujinimai užtrukdavo labai ilgai, kol jie pasiekė galutinius vartotojus, jei iš viso pasiekė. Taigi, nors „Google“ taisė kritines klaidas ir saugos problemas platformos lygiu, realus šių pakeitimų diegimas paliko daug norimų rezultatų. Pristatant atnaujinimus buvo (yra) daug tarpininkų (SoC pardavėjas, originalios įrangos gamintojai, vežėjai ir kt.) ir daug judančių dalių. jūsų telefone, o susiskaidymo problema neatrodė taip, kaip ji išsispręs savaime, nereikalaujant rimtų pastangų intervencijos.
Viena iš pagrindinių pastangų sprendžiant šią problemą buvo Projektas Treble kartu su Android 8.0 Oreo, kuris apėmė esminį Android pertvarkymą, atskiriant Android OS sistemos komponentus nuo pardavėjo HAL ir Linux branduolio. Projektas Treble iš esmės moduliavo Android, atskirdamas OS sistemą nuo konkrečiam įrenginiui skirtos žemesnio lygio programinės įrangos. Tokiu būdu įrenginių gamintojams (OĮG) nereikia laukti, kol silicio gamintojai (SoC pardavėjai) atnaujins tiekėjo diegimo kodą, o OĮG galėtų atnaujinti Android OS sistemą savarankiškai. Galutinis rezultatas yra greitesnis naujesnių „Android“ leidimų priėmimas iš OĮG, nes jiems to nebereikia Palaukite, kol tarpininkas (SoC pardavėjas) pirmiausia baigs savo darbą, prieš pradėdamas tai daryti jų.
Nors „Android“ naujinimo padėtis iš karto nepagerėjo naudojant „Project Treble“, tai iš esmės suteikė galimybę platesniam OĮG dalyvavimas „Android 10“ ir „Android 11“ beta versijose, taip pat palengvinti originalios įrangos gamintojams greičiau atnaujinti daugiau savo įrenginių laiko juosta. Be to, visa GSI (bendrojo sistemos vaizdo) koncepcija turėjo didelę įtaką antrinės rinkos plėtrai mūsų forumuose.
Kūrėjas paleidžia „Android 11“ 22 senesniuose įrenginiuose su „Project Treble GSI“.
Project Mainline išplečia projekto Treble pastangas. Nors „Treble“ sumažino OĮG priklausomybę nuo SoC pardavėjų kiekvienam OS naujinimui, „Mainline“ sumažino „Google“ priklausomybę nuo OĮG, teikdama saugos naujinimus pagrindiniams OS komponentams. „Project Mainline“ išplečia „Treble“ filosofiją į svarbesnes „Android“ sistemos dalis, pašalindama iš šios lygties OĮG kaip priklausomus tarpininkus. „Project Mainline“ tikslas yra, kad „Google“ galėtų valdyti pagrindinius komponentus ir sistemos programas yra labai svarbūs saugumui ir tobulinimo nuoseklumo palaikymui toli nuo originalios įrangos gamintojų. „Project Mainline“ pagrįstai vadinamas į didžiausias „Android“ pokytis nuo projekto „Treble“..
„Project Mainline“ „Google“ naudoja „Mainline“ modulius, kurie pristatomi per „Google Play“ paslaugų sistemą ir „Google Play“ parduotuvę. Kiekvienas pagrindinės linijos modulis pateikiamas kaip APK failas, APEX failas arba kaip APK APEX. Kai atnaujinamas pagrindinės linijos modulis, vartotojas savo įrenginyje mato pranešimą „Google Play System Update“ (GPSU). Siekdama pateikti svarbiausių komponentų naujinimus, „Google“ aplenkė poreikį laukti, kol OĮG išleis naujinimą, ir pasirinko atlikti užduotį pati.
Kaip „Google“ teigia „Android“ svetainėje:
Moduliniai sistemos komponentai leidžia „Google“ ir „Android“ partneriams platinti naujinimus plačiai, greitai ir sklandžiai galutinio vartotojo įrenginiuose, neįkyriai. Pavyzdžiui, medijos kodeko susiskaidymo ir kritinių klaidų derinys gali labai sulėtinti programos pritaikymą ir vartotojų įsitraukimą. Dažnas su medija susijusių modulių atnaujinimas gali sumažinti kodeko susiskaidymą, kad daugialypės terpės programų veikimas skirtinguose „Android“ įrenginiuose būtų nuoseklesnis, ir ištaisyti svarbias klaidas, kad būtų padidintas vartotojų pasitikėjimas.
„Android 10“ ar naujesnė versija konvertuoja pasirinktus sistemos komponentus į modulius, kai kurie iš jų naudoja APEX konteinerio formatą (įvestas „Android 10“), o kai kurie – APK formatą. Modulinė architektūra leidžia atnaujinti sistemos komponentus su svarbiais klaidų pataisymais ir kitais patobulinimai, jei reikia, nepaveikdami žemesnio lygio tiekėjo diegimo ar aukštesnio lygio programėlių ir paslaugos.
Kaip Ars Technica mini:
„Project Mainline“, dar žinomas kaip „Google Play System Updates“, buvo pristatytas „Android 10“ kaip pagrindinės pastangos, kad pagrindiniai „Android“ sistemos komponentai būtų labiau moduliniai ir atnaujinami. „Mainline“ pristatė naują „APEX“ failo tipą, skirtą specialiai sistemos komponentams, kad pagrindinis „Android“ kodas per „Play“ parduotuvę būtų pristatytas taip pat lengvai, kaip ir programos naujinimas. Anksčiau vienintelis „Android“ siunčiamas kodo blokas buvo APK – failo tipas, iš pradžių sukurtas trečiųjų šalių programoms. Tai buvo susiję su įvairiais saugos apribojimais ir galėjo paleisti tik vėlai įkrovos procese, todėl APEX buvo sukurta atsižvelgiant į galingesnius sistemos komponentus. APEX gali sukurti tik „Google“ arba jūsų įrenginio gamintojas, todėl jie gali būti žymiai galingesni ir talpinti svarbius įkrovos komponentus, pvz., programos vykdymo laiką.
„Mainline“ yra ne tik techninis sprendimas, bet ir daugiau „Android“ dalių, kurias centralizuotai platina „Google“, kuri apima derybas su įrenginių gamintojais ir siekimą, kad jie visi sutiktų pristatyti tą patį bloką kodas. „Mainline“ moduliai ilgainiui tampa privalomi siųsti, todėl „Mainline“ iš tikrųjų yra didelis bendradarbiavimas su įrenginių gamintojais, siekiant užtikrinti, kad vienas visos ekosistemos modulis atitiktų kiekvieno poreikius. Ne kiekvienas „Mainline“ modulis yra itin galingas APEX modulis – kai kurie tėra APK, kurie dabar yra „Google“ platinamas „Android“ kodas.
Projekto pagrindinė linija – moduliai
Naudodama „Android 10“, „Google“ įpareigojo įtraukti 13 konkrečių „Mainline“ modulių. Naudojant „Android 11“, bendras privalomų modulių skaičius yra 25. Čia yra visas sąrašas kartu su kai kuriomis pagrindinėmis detalėmis:
Modulio pavadinimas |
Paketo pavadinimas |
Tipas |
Įrenginys atnaujintas arba paleistas naudojant „Android 11“. |
Įrenginys paleistas naudojant „Android 10“. |
Įrenginys atnaujintas į Android 10 |
---|---|---|---|---|---|
adbd |
com.google.android.adbd |
APEX |
Privalai |
Nepalaikoma |
Nepalaikoma |
Android neuroninio tinklo API vykdymo laikas |
com.google.android.neuralnetworks |
APEX |
Privalai |
Nepalaikoma |
Nepalaikoma |
Užfiksuoto portalo prisijungimas |
com.google.android.captiveportallogin |
APK |
Privalai |
Labai rekomenduojamas |
Neprivaloma |
Mobilioji transliacija |
com.google.android.cellbroadcast |
APEX |
Privalai |
Nepalaikoma |
Nepalaikoma |
Conscrypt |
com.google.android.conscrypt |
APEX |
Privalai |
Labai rekomenduojamas |
Neprivaloma |
DNS sprendėjas |
com.google.android.resolv |
APEX |
Privalai |
Labai rekomenduojamas |
Neprivaloma |
Dokumentų vartotojo sąsaja |
com.google.android.documentsui |
APK |
Privalai |
Privalai |
Neprivaloma |
ExtServices - APK |
com.google.android.ext.services |
APK |
Privalai |
Privalai |
Privalai |
ExtServices - APEX |
com.google.android.extservices |
APEX |
Privalai |
Nepalaikoma |
Nepalaikoma |
IPsec/IKEv2 biblioteka |
com.google.android.ipsec |
APEX |
Privalai |
Nepalaikoma |
Nepalaikoma |
Medijos kodekai |
com.google.android.media.swcodec |
APEX |
Privalai |
Privalai |
Neprivaloma |
Media Framework komponentai |
com.google.android.media |
APEX |
Privalai |
Privalai |
Neprivaloma |
Žiniasklaidos teikėjas |
com.google.android.mediaprovider |
APEX |
Privalai |
Nepalaikoma |
Nepalaikoma |
Modulio metaduomenys |
com.google.android.modulemedata |
APK |
Privalai |
Privalai |
Privalai |
Tinklo kamino komponentai |
com.google.android.networkstack |
APK |
Privalai |
Labai rekomenduojamas |
Neprivaloma |
Tinklo kamino leidimo konfigūracija |
com.google.android.networkstack.permissionconfig |
APK |
Privalai |
Labai rekomenduojamas |
Neprivaloma |
Leidimų kontrolierius - APK |
com.google.android.permissioncontroller |
APK |
Privalai |
Privalai |
Privalai |
Leidimų kontrolierius - APEX |
com.google.android.permission |
APEX |
Privalai |
Nepalaikoma |
Nepalaikoma |
SDK plėtiniai |
com.google.android.sdkxt |
APEX |
Privalai |
Nepalaikoma |
Nepalaikoma |
Statsd |
com.google.android.os.statsd |
APEX |
Privalai |
Nepalaikoma |
Nepalaikoma |
Telemetrijos traukinio versijos paketas |
com.google.mainline.telemetry |
APK |
Privalai |
Nepalaikoma |
Nepalaikoma |
Pririšimas prie modemo |
com.google.android.tethering |
APEX |
Privalai |
Nepalaikoma |
Nepalaikoma |
Laiko juostos duomenys |
com.google.android.tzdata |
APEX |
NEPRIVALO |
Privalai |
Neprivaloma |
2 laiko juostos duomenys |
com.google.android.tzdata2 |
APEX |
Privalai |
Nepalaikoma |
Nepalaikoma |
Bevielis internetas³ |
com.google.android.wifi |
APEX |
Privalai |
Nepalaikoma |
Nepalaikoma |
Siekiant pateikti šiek tiek konteksto aukščiau pateiktuose stulpeliuose, stulpelyje „Įrenginys atnaujintas arba paleistas naudojant Android 11“ pateikiama išsami informacija apie tai, ar modulis turi būti (ar neturi būti). esant laiko juostos duomenims, nes įtraukta jos alternatyva) visuose įrenginiuose, kurie buvo naujovinti į „Android 11“ arba paleidžiami naudojant „Android 11“ iš dėžė. Panašiai reikalaujama, kad įrenginiuose, paleidžiamuose su Android 10, būtų keli moduliai, primygtinai rekomenduojama įtraukti keletą kitų, o kiti jų nepalaiko. Įrenginiams, kurie atnaujinami į Android 10 (priešingai nei paleisti naudojant Android), reikalingų modulių sąrašas yra trumpesnis.
Ką veikia kiekvienas pagrindinės linijos modulis?
Štai trumpas kiekvieno pagrindinio modulio paaiškinimas:
Adbd
Adbd modulis valdo komandų eilutės adb ir IDE derinimo seansus. Adbd moduliavimas leidžia „Google“ greičiau pagerinti našumą ir pataisyti klaidas. Tai labai svarbu, nes kai kurios klaidos praeityje buvo susijusios su akumuliatoriaus išsikrovimu, todėl įrenginiai gali toliau naudoti 100% procesoriaus, kol telefonas užges. Taigi „Google“ labai svarbu atlikti šiuos pataisymus, nes programų kūrėjai ir OĮG plačiai naudoja adb testavimui.
Android neuroninių tinklų API vykdymo laikas
Tai biblioteka, esanti tarp programos ir galinių tvarkyklių. Savo ruožtu API yra „Android C“ API, skirta intensyvioms mašininio mokymosi operacijoms vykdyti mobiliuosiuose įrenginiuose ir įgalinti aparatinės įrangos pagreitintas išvadų operacijas.
CellBroadcast
Cell Broadcast reiškia avarinius ir ne avarinius perspėjimus (pvz., GINTARO įspėjimus). Šis modulis yra susijęs su užduotimis, susijusiomis su šiais perspėjimais, ir su kitomis papildomomis funkcijomis, tokiomis kaip SMS dekodavimas ir geografinė apsauga belaidžiams avariniams įspėjimams.
Conscrypt
„Conscrypt“ modulis tvarko „Android“ TLS diegimą ir kitas kriptografines funkcijas, tokias kaip raktų generatoriai, šifrai ir pranešimų santraukos. Pristačius šį modulį, „Google“ gali paspartinti saugos patobulinimus ir nereikia pasikliauti OTA naujiniais.
DNS sprendėjas
Kaip rodo pavadinimas, DNS sprendiklis išsprendžia DNS, ty paverčia žmogaus skaitomus URL į IP adresus. Modulis turi kodą, kuris įdiegia DNS stuburo sprendiklį, o pristatydamas jį kaip modulį, „Google“ suteiks geresnę vartotojų apsaugą nuo DNS perėmimo ir konfigūracijos atnaujinimo atakų.
Dokumentų vartotojo sąsaja
Dokumentų vartotojo sąsaja yra modulis, atsakingas už prieigos prie konkrečių failų komponentams, kurie tvarko dokumentų leidimus, valdymą. Kaip teigia „Google“, suteikus saugyklos prieigą ir leidimus į modulį, galutiniai vartotojai padidina privatumą ir saugumą. Vykdymo laiko išteklių perdangos (RRO) funkcija leidžia originalios įrangos gamintojams pritaikyti patirtį (nurodant programą Failai), jei reikia į. Kaip modulis, visi „Google-Android“ įrenginiai bus pristatyti su ta pačia Dokumentų vartotojo sąsaja.
ExtServices
Šis modulis apima pagrindines OS funkcijas, pvz., pranešimų reitingavimą, automatinio užpildymo teksto atitikimo strategijas, saugyklos talpyklą, paketų stebėjimo programą ir kitas paslaugas, sistemos komponentus.
IPsec/IKEv2 biblioteka
Šis bibliotekos modulis yra susijęs su naujomis ir esamomis sąveikaujančio belaidžio LAN funkcijomis (IWLAN) ir VPN, pvz., derėtis dėl saugumo parametrų, tokių kaip raktai, algoritmai ir tunelis konfigūracijos. Šių funkcijų moduliavimo idėja yra skatinti ekosistemų nuoseklumą ir suteikti galimybę greitai išspręsti saugumo ir sąveikumo problemas.
Tai trys dvišakiai moduliai, tačiau jų funkcijos priklauso viena nuo kitos. Šie medijos moduliai apdoroja medijos tipus ir kodus, sąveikauja su „ExoPlayer“, atskleidžia transportavimo valdiklius ir atkūrimo informaciją sistemoje, optimizuoja indeksuotus metaduomenis ir kt. Prisiminti „Stagefright“, išnaudojimas, pakeitęs „Android“. ir sukūrė pačią mėnesinių platformos saugos naujinimų koncepciją? Šis išnaudojimas priklausė nuo žiniasklaidos atkūrimo bibliotekos pažeidžiamumo. Taigi medijos komponentų moduliavimas leidžia „Google“ greitai ir plačiai reaguoti, jei šiame dažnai tiksliniame komponente aptiktų saugos klaidų.
Šio modulio funkcija iš karto aiškiai matoma iš jo pavadinimo, nors jo paskirtis nėra tokia. Modulio metaduomenys modulyje yra...metaduomenys apie įrenginio modulių sąrašą. Ir viskas.
Tinklo dėklo komponentai, tinklo dėklo leidimo konfigūracija, fiksuoto portalo prisijungimas
„Network Stack Components“ modulis teikia įprastas IP paslaugas, tinklo ryšio stebėjimą, fiksuoto prisijungimo portalo aptikimą. Leidimų konfigūravimo modulis apibrėžia leidimą, leidžiantį kitiems moduliams atlikti su tinklu susijusias užduotis. Prisijungimo prie fiksuoto portalo modulis susijęs su fiksuotais portalais – tinklalapiais, kurie rodomi, kai prijungtas prie tam tikrų viešųjų „Wi-Fi“ tinklų, kur vartotojo prašoma įvesti duomenis, kad galėtų prisijungti prie interneto prieiga.
Leidimų kontrolierius
Šiame modulyje pateikiama atnaujinama privatumo politika ir vartotojo sąsajos elementai, susiję su leidimų suteikimu ir tvarkymu. Jei tai pažįstama su Package Installer veikla, taip yra todėl, kad taip yra. Tokios funkcijos kaip vykdymo laiko leidimų suteikimas, tvarkymas ir naudojimo stebėjimas buvo paketų diegimo programos dalis iki 9 versijos „Android“. „Android 10“ programėlė „Package Installer“ yra padalinta į skyrius, kad būtų galima atnaujinti leidimų logiką. Leidimų valdiklio modulis pateikiamas kaip APK failas, o naudojant „Android 11“ modulis gali automatiškai atšaukti vykdymo laiko leidimus programoms, kurios nebuvo naudojamos ilgą laiką.
SDK plėtiniai
Šį modulį šiek tiek sunku suprasti ir dėl to paaiškinti. Kiekvienam „Android“ leidimui priskiriamas SDK lygis (paprastai +1 nuo pirmtako). Kai programa taikoma pagal tam tikrą SDK, daroma prielaida, kad kūrėjas atsižvelgė į platformos elgsenos ir API pakeitimus, kuriuos atnešė „Android“ leidimas.
SDK plėtinių modulis nustato įrenginio SDK plėtinio lygį ir pateikia programoms API, kad būtų galima pateikti užklausą dėl plėtinio SDK lygio. Tai beveik viskas, kas minima oficialiuose dokumentuose. ArsTechnica, nors, mini kad tai greičiausiai antrinis API sluoksnis, kuris bus pristatytas per „Play“ parduotuvę.
Statsd, telemetrijos traukinio versijos paketas
Statsd yra atsakinga už įrenginio metrikos rinkimą. Kita vertus, telemetrijos traukinio versijos pakete nėra aktyvaus kodo ar jokių savo funkcijų. Jame tiesiog yra „Telemetrijos traukinio“ versijos numeris, kuris, „Google“ teigimu, yra su metrika susijusių modulių rinkinys. Remdamasi versijos numeriu, „Google Play“ galutiniams naudotojams pateikia saugos pataisos versiją ir nustato, ar yra su metrika susijusių modulių naujinių.
Pririšimas prie modemo
Tethering modulis dalijasi įrenginio interneto ryšiu su kitais prijungtais kliento įrenginiais per Wi-Fi, USB, Bluetooth arba Ethernet. Modulis apima pririšimo komponentus ir jų priklausomybes. Naudodami šį modemo modulį, originalios įrangos gamintojai gali pasikliauti vienu standartinės nuorodos diegimu ir teikti nuoseklią patirtį visuose įrenginiuose.
Laiko juostos duomenys
Laiko juostos duomenų modulis atnaujina vasaros laiką (DST) ir laiko juostas Android įrenginiuose, standartizuodamas duomenis (kuris gali ir gana dažnai keičiasi dėl religinių, politinių ir geopolitinių priežasčių) ir atnaujinimo mechanizmo visoje ekosistemoje. „Android 8.1“ ir „Android 9“ naudojo APK pagrįstą laiko juostos duomenų atnaujinimo mechanizmą, o „Android 10“ jį pakeičia APEX pagrindu veikiančiu modulio atnaujinimo mechanizmu. „Google“ teigia, kad AOSP ir toliau įtraukia platformos kodą, reikalingą APK pagrįstiems naujinimams, todėl įrenginiai, atnaujinami į „Android 10“, vis tiek gali gauti partnerių pateiktus laiko juostos duomenų naujinius per APK. Tačiau „Google“ įspėja, kad APK pagrįsti naujinimai pakeičia APEX pagrįstą naujinimą.
Bevielis internetas
Tai yra „Wi-Fi“ funkcionalumo modulis. Galutiniai naudotojai dabar gali gauti nuoseklų „Wi-Fi“ ryšį visuose „Android“ įrenginiuose, taip pat pataisyti sąveikos problemas atnaujindami modulį, programą kūrėjai gali sumažinti platformos susiskaidymą, o originalios įrangos gamintojai gali patenkinti operatoriaus reikalavimus, kartu sumažindami asmenines išlaidas pritaikymai.
Tikimės, kad šiame straipsnyje pabrėžiama, kokia svarbi „Project Mainline“ yra „Google“ „Android“ ekosistemai.