Všetko, čo potrebujete vedieť o hlavnej línii projektu Android

click fraud protection

Project Mainline je najväčšou zmenou pre Android od Project Treble. Tu je to, čo to znamená a čo robia všetky moduly. Pozrite sa na to!

Jednou z najväčších zmien v systéme Android za posledné roky, ktorá preletela pod radarom, relatívne proti jeho dôležitosti, bolo predstavenie Hlavná línia projektu v systéme Android 10. Google nariaďuje zahrnutie špecifických modulov hlavnej línie do verzií Androidu, s Android 11 prichádza s a kombinovaných povinných celkom 25 modulov hlavnej línie. Tu je vysvetlenie, čo je Project Mainline a čo má za cieľ vyriešiť, spolu so zoznamom všetkých modulov Project Mainline systému Android.

Čo je Project Mainline?

Aby sme správne pochopili Project Mainline, budeme sa musieť trochu pretočiť. Ak sa vrátite o niekoľko rokov späť, veľa konverzácií o aktualizáciách systému Android sa sústredilo na problém fragmentácie. Fragmentácia bola jednou z najväčších výziev, ktoré musel Google vyriešiť v systéme Android počas éry Ice Cream Sandwich – Lollipop. Aj keď Android ako platforma dostával pravidelné aktualizácie naprieč do značnej miery predvídateľným vzorom, týmto aktualizáciám trvalo veľmi dlho, kým sa dostali do rúk konečných spotrebiteľov, ak vôbec. Takže zatiaľ čo Google odstraňoval kritické chyby a bezpečnostné problémy na úrovni platformy, skutočné zavedenie týchto zmien zanechalo veľa želaní. Bolo/je veľa sprostredkovateľov (dodávateľ SoC, OEM, dopravcovia atď.) a veľa pohyblivých častí zapojených do poskytovania aktualizácií váš telefón a problém s fragmentáciou nevyzeral tak, že by sa vyriešil sám bez toho, aby si vyžadoval nejaké tvrdé zásahy zásahov.

Jedna z hlavných snáh na riešenie tohto problému prišla vo forme Projekt Treble popri Androide 8.0 Oreo, ktorý zahŕňal veľkú prestavbu Androidu, pričom sa oddelili komponenty rámca OS Android od HAL dodávateľa a linuxového jadra. Project Treble v podstate modularizoval Android tým, že oddelil rámec OS od softvéru nižšej úrovne špecifického pre zariadenie. Týmto spôsobom výrobcovia zariadení (OEM) nemusia čakať na výrobcov kremíka (dodávateľov SoC) na aktualizáciu ich implementačného kódu dodávateľa a výrobcovia OEM môžu aktualizovať rámec OS Android nezávisle. Konečným výsledkom je rýchlejšie prijatie novších verzií systému Android od výrobcu OEM, pretože už to nie je potrebné počkajte, kým sprostredkovateľ (dodávateľ SoC) dokončí svoju prácu a až potom môžu začať robiť ich.

Aj keď sa situácia s aktualizáciou systému Android vďaka Project Treble hneď dramaticky nezlepšila, do značnej miery umožnila širší OEM účasť na beta verziách Android 10 a Android 11, ako aj uľahčenie rýchlejšej aktualizácie väčšieho počtu zariadení pre výrobcov OEM časovej osi. Navyše, celý koncept GSI (Generic System Image) mal veľký vplyv na vývoj aftermarketu na našich fórach.

Vývojár zavádza Android 11 na 22 starších zariadeniach s Project Treble GSI

Project Mainline rozširuje úsilie projektu Treble. Zatiaľ čo Treble znížil závislosť výrobcov OEM od dodávateľov SoC pri každej aktualizácii operačného systému, Mainline znižuje závislosť spoločnosti Google od výrobcov OEM pri poskytovaní bezpečnostných aktualizácií pre kľúčové komponenty OS. Project Mainline rozširuje filozofiu Treble na kritickejšie časti rámca Android, pričom z tejto rovnice odstraňuje OEM ako závislých sprostredkovateľov. Účelom Project Mainline je, aby Google získal kontrolu nad komponentmi rámca a systémovými aplikáciami, ktoré sú kritické pre bezpečnosť a udržanie konzistentnosti vývoja mimo OEM. Project Mainline sa právom označuje ako na najväčšia zmena pre Android od Project Treble.

Pre Project Mainline spoločnosť Google využíva moduly Mainline, ktoré sú dodávané prostredníctvom rámca služieb Google Play a obchodu Google Play. Každý modul hlavnej línie sa dodáva buď ako súbor APK, súbor APEX alebo ako súbor APK-in-APEX. Keď sa aktualizuje hlavný modul, používateľovi sa na jeho zariadení zobrazí upozornenie „Aktualizácia systému Google Play“ (GPSU). Pri poskytovaní aktualizácií kritickým komponentom spoločnosť Google efektívne obišla potrebu čakať na aktualizáciu od výrobcu OEM a rozhodla sa vykonať túto úlohu sama.

Ako Google uvádza na webovej stránke Android:

Modulárne systémové komponenty umožňujú spoločnosti Google a partnerom systému Android distribuovať aktualizácie široko, rýchlo a bezproblémovo do zariadení koncových používateľov, a to nerušivým spôsobom. Napríklad kombinácia fragmentácie mediálneho kodeku a kritických chýb môže výrazne spomaliť prijatie aplikácie a zapojenie používateľov. Časté aktualizácie modulov súvisiacich s médiami môžu znížiť fragmentáciu kodekov, aby bolo správanie mediálnych aplikácií konzistentnejšie na rôznych zariadeniach so systémom Android a opraviť kritické chyby, aby sa vybudovala dôvera používateľov.

Android 10 alebo vyšší konvertuje vybrané systémové komponenty na moduly, z ktorých niektoré používajú formát kontajnera APEX (zavedený v systéme Android 10) a niektoré používajú formát APK. Modulárna architektúra umožňuje aktualizovať systémové komponenty pomocou opráv kritických chýb a ďalších vylepšenia podľa potreby bez ovplyvnenia implementácií dodávateľov nižšej úrovne alebo aplikácií vyššej úrovne a služby.

Ako Ars Technica spomína:

Project Mainline, tiež známy ako „Aktualizácie systému Google Play“, bol predstavený v systéme Android 10 ako hlavné úsilie o to, aby boli základné systémové komponenty systému Android modulárnejšie a dali sa aktualizovať. Spoločnosť Mainline predstavila nový typ súboru „APEX“ špeciálne pre systémové komponenty s cieľom doručiť základný kód systému Android prostredníctvom Obchodu Play rovnako jednoducho, ako odosielate aktualizáciu aplikácie. V minulosti bol jediným odosielateľným blokom kódu pre Android APK, typ súboru pôvodne navrhnutý pre aplikácie tretích strán. To prichádzalo so všetkými druhmi bezpečnostných obmedzení a mohlo sa spustiť iba neskoro v procese zavádzania, takže APEX bol vytvorený s ohľadom na výkonnejšie systémové komponenty. APEXy môže vytvoriť iba spoločnosť Google alebo výrobca vášho zariadenia, takže môžu byť výrazne výkonnejšie a môžu obsahovať kritické spúšťacie komponenty, ako je napríklad runtime aplikácie.

Mainline nie je len technické riešenie, je to aj o tom, aby bolo viac častí Androidu centrálne distribuované Google, čo zahŕňa rokovania s výrobcami zariadení a prinútiť ich, aby všetci súhlasili s odoslaním rovnakého bloku kód. Moduly Mainline sa nakoniec stanú povinnými na dodanie, takže Mainline je v skutočnosti veľkou spoluprácou s výrobcami zariadení, aby sa zabezpečilo, že jeden modul pre celý ekosystém spĺňa potreby každého. Nie každý modul hlavnej línie je mimoriadne výkonný modul APEX – niektoré sú len súbory APK, ktoré sú teraz kódom systému Android distribuovaným spoločnosťou Google.

Hlavná línia projektu — Moduly

V systéme Android 10 spoločnosť Google nariadila zahrnutie 13 špecifických modulov hlavnej línie. V systéme Android 11 je celkový počet povinných modulov 25. Tu je úplný zoznam spolu s niektorými kľúčovými detailmi:

Názov modulu

Názov balíka

Typ

Zariadenie inovované alebo spustené s Androidom 11

Zariadenie spustené so systémom Android 10

Zariadenie inovované na Android 10

adbd

com.google.android.adbd

APEX

Musieť

Nepodporované

Nepodporované

Runtime rozhrania Android Neural Network API

com.google.android.neuralnetworks

APEX

Musieť

Nepodporované

Nepodporované

Prihlásenie na portál na prihlásenie

com.google.android.captiveportallogin

APK

Musieť

Veľmi odporúčané

Voliteľné

Mobilný vysielač

com.google.android.cellbroadcast

APEX

Musieť

Nepodporované

Nepodporované

Conscrypt

com.google.android.conscrypt

APEX

Musieť

Veľmi odporúčané

Voliteľné

DNS Resolver

com.google.android.resolv

APEX

Musieť

Veľmi odporúčané

Voliteľné

Používateľské rozhranie dokumentov

com.google.android.documentsui

APK

Musieť

Musieť

Voliteľné

ExtServices - APK

com.google.android.ext.services

APK

Musieť

Musieť

Musieť

ExtServices - APEX

com.google.android.extservices

APEX

Musieť

Nepodporované

Nepodporované

Knižnica IPsec/IKEv2

com.google.android.ipsec

APEX

Musieť

Nepodporované

Nepodporované

Mediálne kodeky

com.google.android.media.swcodec

APEX

Musieť

Musieť

Voliteľné

Komponenty mediálneho rámca

com.google.android.media

APEX

Musieť

Musieť

Voliteľné

Poskytovateľ médií

com.google.android.mediaprovider

APEX

Musieť

Nepodporované

Nepodporované

Metadáta modulu

com.google.android.modulemetadata

APK

Musieť

Musieť

Musieť

Komponenty sieťového zásobníka

com.google.android.networkstack

APK

Musieť

Veľmi odporúčané

Voliteľné

Konfigurácia povolenia sieťového zásobníka

com.google.android.networkstack.permissionconfig

APK

Musieť

Veľmi odporúčané

Voliteľné

Ovládač povolení - APK

com.google.android.permissioncontroller

APK

Musieť

Musieť

Musieť

Ovládač povolení - APEX

com.google.android.povolenie

APEX

Musieť

Nepodporované

Nepodporované

Rozšírenia SDK

com.google.android.sdkext

APEX

Musieť

Nepodporované

Nepodporované

Statsd

com.google.android.os.statsd

APEX

Musieť

Nepodporované

Nepodporované

Balík verzie telemetrického vlaku

com.google.mainline.telemetry

APK

Musieť

Nepodporované

Nepodporované

Tethering

com.google.android.tethering

APEX

Musieť

Nepodporované

Nepodporované

Údaje časového pásma

com.google.android.tzdata

APEX

Nesmieš

Musieť

Voliteľné

Údaje o časovom pásme 2

com.google.android.tzdata2

APEX

Musieť

Nepodporované

Nepodporované

Wi-Fi³

com.google.android.wifi

APEX

Musieť

Nepodporované

Nepodporované

S cieľom poskytnúť určitý kontext vyššie uvedeným stĺpcom obsahuje stĺpec s názvom „Zariadenie inovované alebo spustené s Androidom 11“ podrobnosti o tom, či modul musí byť prítomný (alebo nesmie byť prítomný, v prípade údajov o časovom pásme z dôvodu zahrnutia jeho alternatívy) na všetkých zariadeniach, ktoré boli buď inovované na Android 11, alebo sa spúšťajú s Androidom 11 mimo box. Podobne aj zariadenia spúšťané s Androidom 10 musia obsahovať niekoľko modulov, dôrazne sa odporúča zahrnúť niekoľko ďalších a ostatné ich nepodporujú. Pre zariadenia, ktoré sú inovované na Android 10 (na rozdiel od zariadení spustených so systémom Android), je zoznam požadovaných modulov kratší.

Čo robí každý modul hlavnej línie?

Tu je krátke vysvetlenie pre každý z modulov hlavnej línie:

Adbd

Modul adbd spravuje relácie ladenia adb a IDE príkazového riadka. Modularizácia adbd umožňuje spoločnosti Google rýchlejšie poskytovať vylepšenia výkonu a opravy chýb. To je kľúčové, pretože niektoré chyby v minulosti súviseli s vybíjaním batérie a mohli spôsobiť, že zariadenia budú naďalej využívať 100 % CPU, kým telefón nezomrie. Získanie týchto opráv je pre Google kľúčové, pretože vývojári aplikácií a výrobcovia OEM vo veľkej miere používajú na testovanie adb.

Runtime rozhrania Android Neural Networks API

Toto je knižnica, ktorá sa nachádza medzi aplikáciou a ovládačmi backendu. API je zasa Android C API na spúšťanie výpočtovo náročných operácií strojového učenia na mobilných zariadeniach a na umožnenie hardvérovo akcelerovaných operácií odvodenia.

Mobilný vysielač

Cell Broadcast sa vzťahuje na núdzové a nenúdzové výstrahy (ako sú výstrahy AMBER). Tento modul sa zaoberá úlohami súvisiacimi s týmito výstrahami a ďalšími pomocnými funkciami, ako je dekódovanie SMS a geofencing pre bezdrôtové núdzové výstrahy.

Conscrypt

Modul Conscrypt sa stará o implementáciu TLS systému Android a ďalšie kryptografické funkcie, ako sú generátory kľúčov, šifry a súhrny správ. Doručenie tohto modulu ako modulu umožňuje spoločnosti Google urýchliť vylepšenia zabezpečenia bez toho, aby ste sa museli spoliehať na aktualizácie OTA.

DNS Resolver

Ako už názov napovedá, DNS resolver rozlišuje DNS, t.j. konvertuje ľudsky čitateľné adresy URL na IP adresy. Modul obsahuje kód, ktorý implementuje DNS stub resolver, a jeho dodanie ako modulu umožňuje spoločnosti Google poskytovať lepšiu ochranu používateľov pred zachytením DNS a útokmi na aktualizáciu konfigurácie.

Používateľské rozhranie dokumentov

Používateľské rozhranie dokumentov je modul zodpovedný za riadenie prístupu ku konkrétnym súborom pre komponenty, ktoré spracovávajú povolenia pre dokumenty. Ako uvádza Google, zahrnutie prístupu a povolení k úložisku do modulu zvyšuje súkromie a bezpečnosť koncových používateľov funkcia runtime resource overlay (RRO) umožňuje výrobcom OEM tematicky upravovať prostredie (s odkazom na aplikáciu Súbory), ak to potrebujú do. Ako modul sa budú všetky zariadenia Google-Android dodávať s rovnakým používateľským rozhraním Dokumenty.

ExtServices

Tento modul obsahuje rámcové komponenty pre základné funkcie operačného systému, ako je hodnotenie upozornení, stratégie automatického dopĺňania textu, vyrovnávacia pamäť, stráženie balíkov a ďalšie služby.

Knižnica IPsec/IKEv2

Tento knižničný modul sa zaoberá novými a existujúcimi funkciami okolo Interworking Wireless LAN (IWLAN) a VPN, ako je vyjednávanie bezpečnostných parametrov, ako sú kľúče, algoritmy a tunel konfigurácie. Myšlienkou modularizácie týchto funkcií je podporiť konzistentnosť ekosystému a poskytnúť spôsob, ako poskytnúť rýchle riešenia problémov s bezpečnosťou a interoperabilitou.

Ide o tri rozvetvené moduly, ktoré však majú funkcie, ktoré sú na sebe závislé. Tieto mediálne moduly spracovávajú typy médií a kódy, interagujú s prehrávačom ExoPlayer, vystavujú ovládacie prvky prenosu a informácie o prehrávaní do rámca, optimalizujú indexované metadáta atď. Pamätajte Stagefright, exploit, ktorý zmenil Android a priniesol samotný koncept mesačných bezpečnostných aktualizácií platformy? Toto zneužitie sa spoliehalo na zraniteľnosti v knižnici prehrávania médií. Modularizácia mediálnych komponentov teda umožňuje spoločnosti Google rýchlo a široko reagovať v prípade, že sa v tomto často cielenom komponente nájdu bezpečnostné chyby.

Funkcia tohto modulu je jasná už z jeho názvu, hoci jeho účel nie je. Modul Metadata modul obsahuje...metadáta o zozname modulov na zariadení. A to je asi tak všetko.

Komponenty sieťového zásobníka, konfigurácia povolení sieťového zásobníka, prihlásenie do prihlasovacieho portálu

Modul Network Stack Components poskytuje bežné IP služby, monitorovanie sieťovej konektivity, detekciu prihlasovacieho portálu. Modul Konfigurácia povolení definuje oprávnenie, ktoré umožňuje iným modulom vykonávať úlohy súvisiace so sieťou. Prihlasovací modul Captive Portal sa zaoberá Captive Portals — webovými stránkami, ktoré sa zobrazia, keď pripojený k určitým verejným sieťam Wi-Fi, kde je používateľ požiadaný o zadanie údajov na získanie internetu prístup.

Ovládač povolení

Tento modul poskytuje aktualizovať zásady ochrany osobných údajov a prvky používateľského rozhrania týkajúce sa udeľovania a správy povolení. Ak to znie povedome tomu, čo robí inštalátor balíkov, je to preto, že to tak je. Funkcie ako udeľovanie povolení, správa a sledovanie používania boli súčasťou aplikácie Package Installer až do Androidu 9. V systéme Android 10 je aplikácia Package Installer rozdelená do sekcií, aby sa umožnila aktualizácia logiky povolení. Modul Permission Controller je dodávaný ako súbor APK a v systéme Android 11 môže modul automaticky odvolať povolenia na spustenie pre aplikácie, ktoré sa dlhší čas nepoužívali.

Rozšírenia SDK

Tento modul je trochu ťažké pochopiť a následne vysvetliť. Každému vydaniu Androidu je priradená úroveň SDK (zvyčajne +1 od predchodcu). Keď je aplikácia zacielená na konkrétnu súpravu SDK, predpokladá sa, že vývojár vzal do úvahy zmeny správania platformy a rozhrania API, ktoré so sebou prinieslo vydanie systému Android.

Modul SDK Extensions rozhoduje o úrovni „súpravy SDK rozšírenia“ zariadenia a sprístupňuje aplikáciám rozhrania API na dopytovanie úrovne súpravy SDK rozšírenia. To je asi tak všetko, čo uvádza oficiálna dokumentácia. ArsTechnica, hoci, spomína že ide pravdepodobne o sekundárnu vrstvu API, ktorá sa bude odosielať prostredníctvom Obchodu Play.

Statsd, balík verzie telemetrického vlaku

Statsd je zodpovedný za zhromažďovanie metrík zariadení. Balík verzie telemetrického vlaku na druhej strane neobsahuje aktívny kód ani žiadnu vlastnú funkčnosť. Jednoducho obsahuje číslo verzie pre „Telemetrický vlak“, o ktorom Google hovorí, že ide o sadu modulov súvisiacich s metrikami. Na základe čísla verzie služba Google Play zobrazí verziu bezpečnostnej opravy koncovým používateľom a zistí, či sú k dispozícii aktualizácie pre moduly súvisiace s metrikami.

Tethering

Modul Tethering zdieľa internetové pripojenie zariadenia s inými pripojenými klientskymi zariadeniami cez Wi-Fi, USB, Bluetooth alebo Ethernet. Modul obsahuje komponenty tetheringu a ich závislosti. Pomocou tohto modulu Tethering sa môžu výrobcovia OEM spoľahnúť na jedinú štandardnú referenčnú implementáciu a priniesť konzistentné skúsenosti naprieč zariadeniami.

Údaje časového pásma

Dátový modul časového pásma aktualizuje letný čas (DST) a časové pásma na zariadeniach so systémom Android, pričom štandardizuje údaje (ktoré môžu a sa pomerne často mení v reakcii na náboženské, politické a geopolitické dôvody) a mechanizmus aktualizácie v celom ekosystéme. Android 8.1 a Android 9 používali mechanizmus aktualizácie údajov časového pásma založený na APK a Android 10 ho nahrádza mechanizmom aktualizácie modulov založeným na APEX. Google uvádza, že AOSP naďalej obsahuje kód platformy potrebný pre aktualizácie založené na APK, takže zariadenia inovujúce na Android 10 môžu stále prijímať aktualizácie údajov o časovom pásme od partnera prostredníctvom APK. Google však varuje, že aktualizácie založené na APK nahrádzajú aktualizáciu založenú na APEX.

Wi-Fi

Toto je modul pre funkčnosť Wi-Fi. Koncoví používatelia teraz môžu získať konzistentné Wi-Fi pripojenie na všetkých zariadeniach s Androidom, ako aj opravy problémov s interoperabilitou prostredníctvom aktualizácií modulov, aplikácií vývojári môžu dosiahnuť zníženú fragmentáciu platformy a OEM môžu splniť požiadavky operátorov a zároveň znížiť náklady pre jednotlivcov prispôsobenia.


Dúfajme, že tento článok zdôrazňuje, aký dôležitý je Project Mainline pre ekosystém Android spoločnosti Google.