Vše, co potřebujete vědět o hlavní řadě projektu Android

click fraud protection

Project Mainline je největší změnou Androidu od Project Treble. Zde je uvedeno, co to znamená a co dělají všechny moduly. Podívejte se na to!

Jednou z největších změn v Androidu v posledních letech, která proletěla radarem, relativně proti jeho důležitosti, bylo zavedení Hlavní linie projektu v systému Android 10. Google nařizuje zahrnutí specifických modulů hlavní řady ve verzích systému Android s Android 11 přichází s a kombinované povinné celkem 25 modulů hlavní řady. Zde je vysvětlení, co je Project Mainline a co má za cíl vyřešit, spolu se seznamem všech modulů Project Mainline systému Android.

Co je Project Mainline?

Abychom správně pochopili Project Mainline, budeme se muset trochu vrátit. Pokud se vrátíte o několik let zpět, mnoho konverzací kolem aktualizací Androidu se soustředilo na problém fragmentace. Fragmentace byla jednou z největších výzev, které musel Google na Androidu vyřešit v době Ice Cream Sandwich – Lollipop. I když Android jako platforma dostával pravidelné aktualizace napříč do značné míry předvídatelným vzorem, trvalo velmi dlouho, než se tyto aktualizace dostaly do rukou konečných spotřebitelů, pokud vůbec. Takže zatímco Google opravoval kritické chyby a bezpečnostní problémy na úrovni platformy, skutečné zavedení těchto změn zanechalo mnoho přání. Bylo/je mnoho prostředníků (dodavatel SoC, OEM, dopravci atd.) a mnoho pohyblivých částí zapojených do poskytování aktualizací váš telefon a problém s fragmentací nevypadal tak, že by se vyřešil sám, aniž by vyžadoval nějaké tvrdé zásahy zásahy.

Jedna z hlavních snah o řešení tohoto problému přišla v podobě Projekt Treble vedle Androidu 8.0 Oreo, což zahrnovalo velkou přestavbu Androidu, oddělení komponent rámce OS Android od HAL dodavatele a linuxového jádra. Project Treble v podstatě modularizoval Android tím, že oddělil rámec OS od softwaru nižší úrovně specifického pro zařízení. Tímto způsobem výrobci zařízení (OEM) nemusejí čekat na výrobce křemíku (dodavatel SoC), aby aktualizovali svůj implementační kód dodavatele, a OEM by mohli aktualizovat rámec operačního systému Android nezávisle. Konečným výsledkem je rychlejší přijetí novějších verzí systému Android od výrobce OEM, protože již není potřeba počkejte, až prostředník (dodavatel SoC) dokončí svou práci, než budou moci začít jejich.

I když se situace s aktualizací Androidu díky Project Treble hned tak dramaticky nezlepšila, umožnila do značné míry širší OEM účast na beta verzích Android 10 a Android 11 a také usnadnění pro výrobce OEM rychleji aktualizovat více jejich zařízení Časová osa. Navíc celý koncept GSI (Generic System Image) měl na našich fórech zásadní vliv na vývoj aftermarketu.

Vývojář spouští Android 11 na 22 starších zařízeních s Project Treble GSI

Project Mainline rozšiřuje úsilí projektu Treble. Zatímco Treble snížil závislost výrobců OEM na dodavatelích SoC pro každou jednotlivou aktualizaci operačního systému, Mainline snižuje závislost společnosti Google na OEM při poskytování bezpečnostních aktualizací pro klíčové součásti operačního systému. Project Mainline rozšiřuje filozofii Treble na kritičtější části rámce Android a odstraňuje z této rovnice OEM jako závislé prostředníky. Účelem Project Mainline je, aby Google získal kontrolu nad komponentami frameworku a systémovými aplikacemi, které jsou kritické pro zabezpečení a udržení konzistence vývoje mimo OEM. Project Mainline je právem označován jako a největší změna na Androidu od Project Treble.

Pro Project Mainline využívá Google moduly Mainline, které jsou dodávány prostřednictvím rámce služeb Google Play a obchodu Google Play. Každý modul hlavní řady je dodáván buď jako soubor APK, soubor APEX nebo jako soubor APK-in-APEX. Při aktualizaci modulu hlavní řady se uživateli na jeho zařízení zobrazí oznámení „Aktualizace systému Google Play“ (GPSU). Aby bylo možné doručit aktualizace kritických komponent, Google obešel nutnost čekat na OEM s vydáním aktualizace a rozhodl se provést tento úkol sám.

Tak jako Google uvádí na webu Android:

Modulární systémové komponenty umožňují Googlu a partnerům Android distribuovat aktualizace široce, rychle a hladce do zařízení koncových uživatelů, a to nerušivým způsobem. Například kombinace fragmentace mediálního kodeku a kritických chyb může dramaticky zpomalit přijetí aplikace a zapojení uživatelů. Časté aktualizace modulů souvisejících s médii mohou snížit fragmentaci kodeků, aby bylo chování mediálních aplikací konzistentnější na různých zařízeních Android a opravit kritické chyby, aby se vybudovala důvěra uživatelů.

Android 10 nebo vyšší převádí vybrané systémové komponenty na moduly, z nichž některé používají formát kontejneru APEX (zavedený v Androidu 10) a některé používají formát APK. Modulární architektura umožňuje aktualizovat systémové komponenty pomocí oprav kritických chyb a dalších vylepšení podle potřeby, aniž by to ovlivnilo implementace dodavatelů nižší úrovně nebo aplikace vyšší úrovně a služby.

Tak jako Ars Technica zmiňuje:

Project Mainline, neboli „Google Play System Updates“, byl představen v Androidu 10 jako hlavní úsilí o to, aby byly základní systémové komponenty Androidu modulárnější a aktualizovatelnější. Mainline zavedl nový typ souboru „APEX“ speciálně pro systémové komponenty s cílem dodávat základní kód Androidu prostřednictvím Obchodu Play stejně snadno, jako odesíláte aktualizaci aplikace. Dříve byl jediným blokem kódu pro Android, který bylo možné odeslat, APK, typ souboru původně navržený pro aplikace třetích stran. To přišlo s nejrůznějšími bezpečnostními omezeními a mohlo se spustit pouze pozdě v procesu spouštění, takže APEX byl vytvořen s ohledem na výkonnější systémové komponenty. APEXy může vytvořit pouze Google nebo výrobce vašeho zařízení, takže mohou být znatelně výkonnější a obsahovat důležité spouštěcí komponenty, jako je běhové prostředí aplikace.

Mainline není jen technické řešení, jde také o to, aby bylo více částí Androidu centrálně distribuováno Google, což zahrnuje vyjednávání s výrobci zařízení a přimět je, aby všichni souhlasili s dodáním stejného bloku kód. Moduly Mainline se nakonec stanou povinnými k dodání, takže Mainline je ve skutečnosti velká spolupráce s výrobci zařízení, aby se zajistilo, že jediný modul pro celý ekosystém splňuje potřeby každého. Ne každý hlavní modul je extrémně výkonný modul APEX – některé jsou pouze soubory APK, které jsou nyní kódem Androidu distribuovaným společností Google.

Hlavní linie projektu — Moduly

S Androidem 10 Google nařídil zahrnutí 13 specifických modulů hlavní řady. S Androidem 11 je celkový počet povinných modulů 25. Zde je úplný seznam spolu s některými klíčovými detaily:

Název modulu

Název balíčku

Typ

Zařízení upgradováno nebo spuštěno s Androidem 11

Zařízení spuštěno s Androidem 10

Zařízení upgradováno na Android 10

adbd

com.google.android.adbd

VRCHOL

Musí

Nepodporováno

Nepodporováno

Runtime rozhraní Android Neural Network API

com.google.android.neuralnetworks

VRCHOL

Musí

Nepodporováno

Nepodporováno

Přihlášení na Captive Portal

com.google.android.captiveportallogin

APK

Musí

Silně doporučeno

Volitelný

Mobilní vysílání

com.google.android.cellbroadcast

VRCHOL

Musí

Nepodporováno

Nepodporováno

Conscrypt

com.google.android.conscrypt

VRCHOL

Musí

Silně doporučeno

Volitelný

DNS Resolver

com.google.android.resolv

VRCHOL

Musí

Silně doporučeno

Volitelný

Uživatelské rozhraní dokumentů

com.google.android.documentsui

APK

Musí

Musí

Volitelný

ExtServices - APK

com.google.android.ext.services

APK

Musí

Musí

Musí

ExtServices - APEX

com.google.android.extservices

VRCHOL

Musí

Nepodporováno

Nepodporováno

Knihovna IPsec/IKEv2

com.google.android.ipsec

VRCHOL

Musí

Nepodporováno

Nepodporováno

Mediální kodeky

com.google.android.media.swcodec

VRCHOL

Musí

Musí

Volitelný

Komponenty mediálního rámce

com.google.android.media

VRCHOL

Musí

Musí

Volitelný

Poskytovatel médií

com.google.android.mediaprovider

VRCHOL

Musí

Nepodporováno

Nepodporováno

Metadata modulu

com.google.android.modulemetadata

APK

Musí

Musí

Musí

Komponenty síťového zásobníku

com.google.android.networkstack

APK

Musí

Silně doporučeno

Volitelný

Konfigurace oprávnění síťového zásobníku

com.google.android.networkstack.permissionconfig

APK

Musí

Silně doporučeno

Volitelný

Ovladač oprávnění - APK

com.google.android.permissioncontroller

APK

Musí

Musí

Musí

Ovladač oprávnění - APEX

com.google.android.permission

VRCHOL

Musí

Nepodporováno

Nepodporováno

Rozšíření SDK

com.google.android.sdkext

VRCHOL

Musí

Nepodporováno

Nepodporováno

Statsd

com.google.android.os.statsd

VRCHOL

Musí

Nepodporováno

Nepodporováno

Balíček verze telemetrického vlaku

com.google.mainline.telemetry

APK

Musí

Nepodporováno

Nepodporováno

Tethering

com.google.android.tethering

VRCHOL

Musí

Nepodporováno

Nepodporováno

Údaje o časovém pásmu

com.google.android.tzdata

VRCHOL

Nesmět

Musí

Volitelný

Údaje o časovém pásmu 2

com.google.android.tzdata2

VRCHOL

Musí

Nepodporováno

Nepodporováno

Wi-Fi³

com.google.android.wifi

VRCHOL

Musí

Nepodporováno

Nepodporováno

Aby bylo možné poskytnout určitý kontext výše uvedeným sloupcům, sloupec s názvem „Zařízení upgradováno nebo spuštěno s Androidem 11“ obsahuje podrobnosti o tom, zda modul musí být přítomen (nebo nesmí být přítomen, v případě údajů o časovém pásmu kvůli zahrnutí jeho alternativy) na všech zařízeních, která byla buď upgradována na Android 11, nebo se spouštějí s Androidem 11 mimo box. Podobně zařízení spouštěná se systémem Android 10 musí obsahovat několik modulů, důrazně se doporučuje zahrnout několik dalších a ostatní je nepodporují. U zařízení, která jsou upgradována na Android 10 (na rozdíl od zařízení s Androidem), je seznam požadovaných modulů kratší.

Co dělá každý modul hlavní řady?

Zde je stručné vysvětlení pro každý z modulů hlavní řady:

Adbd

Modul adbd spravuje relace ladění adb a IDE příkazového řádku. Modularizace adbd umožňuje Googlu poskytovat vylepšení výkonu a opravy chyb rychleji. To je zásadní, protože některé chyby v minulosti souvisely s vybíjením baterie a mohly způsobit, že zařízení budou nadále využívat 100 % CPU, dokud telefon nezemře. Získání těchto oprav je pro Google zásadní, protože vývojáři aplikací a výrobci OEM k testování široce používají adb.

Runtime Android Neural Networks API

Toto je knihovna, která se nachází mezi aplikací a backendovými ovladači. API je zase Android C API pro spouštění výpočetně náročných operací strojového učení na mobilních zařízeních a pro umožnění hardwarově akcelerovaných operací odvození.

CellBroadcast

Cell Broadcast označuje nouzová a nenouzová upozornění (např. upozornění AMBER). Tento modul se zabývá úkoly souvisejícími s těmito výstrahami a dalšími pomocnými funkcemi, jako je dekódování SMS a geofencing pro bezdrátové nouzové výstrahy.

Conscrypt

Modul Conscrypt zpracovává implementaci TLS systému Android a další kryptografické funkce, jako jsou generátory klíčů, šifrování a výtahy zpráv. Dodání tohoto modulu jako modulu umožňuje společnosti Google urychlit vylepšení zabezpečení, aniž by se musel spoléhat na aktualizace OTA.

DNS Resolver

Jak název napovídá, DNS resolver překládá DNS, tj. převádí pro člověka čitelné adresy URL na IP adresy. Modul obsahuje kód, který implementuje DNS stub resolver, a jeho dodání jako modulu umožňuje společnosti Google poskytovat lepší ochranu uživatelů před zachycením DNS a útoky na aktualizaci konfigurace.

Uživatelské rozhraní dokumentů

Dokumenty UI je modul zodpovědný za řízení přístupu ke konkrétním souborům pro komponenty, které zpracovávají oprávnění k dokumentům. Jak uvádí Google, začlenění přístupu k úložišti a oprávnění do modulu zvyšuje soukromí a bezpečnost koncových uživatelů funkce runtime resource overlay (RRO) umožňuje výrobcům OEM motivovat prostředí (s odkazem na aplikaci Soubory), pokud potřebují na. Jako modul budou všechna zařízení Google-Android dodávána se stejným uživatelským rozhraním Dokumenty.

ExtServices

Tento modul obsahuje rámcové komponenty pro základní funkce operačního systému, jako je hodnocení oznámení, strategie automatického vyplňování textu, mezipaměť úložiště, hlídač balíčků a další služby.

Knihovna IPsec/IKEv2

Tento knihovní modul se zabývá novými a stávajícími funkcemi v oblasti Interworking Wireless LAN (IWLAN) a VPN, jako je vyjednávání bezpečnostních parametrů, jako jsou klíče, algoritmy a tunel konfigurace. Smyslem modularizace těchto funkcí je podpořit konzistenci ekosystému a poskytnout způsob, jak rychle řešit problémy se zabezpečením a interoperabilitou.

Jedná se o tři rozvětvené moduly, ale mají funkce, které jsou na sobě závislé. Tyto moduly médií zpracovávají typy médií a kódy, komunikují s přehrávačem ExoPlayer, vystavují ovládací prvky přenosu a informace o přehrávání do rámce, optimalizují indexovaná metadata atd. Pamatovat Stagefright, exploit, který změnil Android a přinesl samotný koncept měsíčních bezpečnostních aktualizací platformy? Toto zneužití se spoléhalo na zranitelnosti v knihovně přehrávání médií. Modularizace mediálních komponent tedy Googlu umožňuje rychle a široce reagovat v případě, že se v této často zacílené komponentě najdou bezpečnostní chyby.

Funkce tohoto modulu je již z názvu jasná, i když jeho účel není. Modul Metadata modulu obsahuje...metadata o seznamu modulů na zařízení. A to je asi tak všechno.

Komponenty síťového zásobníku, konfigurace oprávnění síťového zásobníku, přihlášení k captive portálu

Modul Network Stack Components poskytuje běžné IP služby, monitorování síťové konektivity, detekci kaptivního přihlašovacího portálu. Modul Konfigurace oprávnění definuje oprávnění, které umožňuje ostatním modulům provádět úkoly související se sítí. Modul přihlášení k Captive Portal se zabývá Captive Portals — webovými stránkami, které se zobrazí, když připojené k určitým veřejným Wi-Fi sítím, kde je uživatel požádán o zadání podrobností pro získání internetu přístup.

Ovladač oprávnění

Tento modul poskytuje aktualizovatelné zásady ochrany osobních údajů a prvky uživatelského rozhraní týkající se udělování a správy oprávnění. Pokud to zní povědomě tomu, co dělá instalační program balíčku, je to proto, že tomu tak je. Funkce jako udělování oprávnění za běhu, správa a sledování využití byly součástí aplikace Package Installer až do Androidu 9. V Androidu 10 je aplikace Package Installer rozdělena do sekcí, aby bylo možné aktualizovat logiku oprávnění. Modul Permission Controller je dodáván jako soubor APK a v Androidu 11 může modul automaticky zrušit runtime oprávnění pro aplikace, které nebyly delší dobu používány.

Rozšíření SDK

Tento modul je trochu obtížné pochopit a následně vysvětlit. Každému vydání Androidu je přiřazena úroveň SDK (obvykle +1 od předchůdce). Když aplikace cílí na konkrétní sadu SDK, předpokládá se, že vývojář vzal v úvahu změny chování platformy a rozhraní API, které vydání pro Android přineslo.

Modul SDK Extensions rozhoduje o úrovni „extension SDK“ zařízení a zpřístupňuje rozhraní API pro aplikace, které mohou dotazovat na úroveň SDK rozšíření. To je asi vše, co oficiální dokumentace uvádí. ArsTechnica, i když zmiňuje že se pravděpodobně jedná o sekundární vrstvu API, která bude dodávána prostřednictvím Obchodu Play.

Statsd, balíček verze telemetrického vlaku

Statsd je zodpovědný za shromažďování metrik zařízení. Balíček verze telemetrického vlaku na druhé straně neobsahuje aktivní kód ani žádnou vlastní funkci. Jednoduše obsahuje číslo verze pro „Telemetry Train“, což je podle Googlu sada modulů souvisejících s metrikami. Na základě čísla verze Google Play zobrazí verzi bezpečnostní opravy koncovým uživatelům a zjistí, zda jsou k dispozici aktualizace pro moduly související s metrikami.

Tethering

Modul Tethering sdílí internetové připojení zařízení s ostatními připojenými klientskými zařízeními prostřednictvím Wi-Fi, USB, Bluetooth nebo Ethernetu. Modul obsahuje komponenty tetheringu a jejich závislosti. Pomocí tohoto modulu Tethering se mohou výrobci OEM spolehnout na jedinou standardní referenční implementaci a přinést konzistentní zkušenost napříč zařízeními.

Údaje o časovém pásmu

Modul Data Time Zone Data aktualizuje letní čas (DST) a časová pásma na zařízeních Android a standardizuje data (která mohou a se poměrně často mění v reakci na náboženské, politické a geopolitické důvody) a mechanismus aktualizace v celém ekosystému. Android 8.1 a Android 9 používaly mechanismus aktualizace dat časového pásma založený na APK a Android 10 jej nahrazuje mechanismem aktualizace modulů založeným na APEX. Google uvádí, že AOSP nadále zahrnuje kód platformy nezbytný pro aktualizace založené na APK, takže zařízení, která upgradují na Android 10, mohou stále přijímat aktualizace dat časového pásma poskytované partnery prostřednictvím APK. Google však varuje, že aktualizace založené na APK nahrazují aktualizaci založenou na APEX.

Wi-Fi

Toto je modul pro funkci Wi-Fi. Koncoví uživatelé nyní mohou získat konzistentní Wi-Fi na všech zařízeních Android a také opravy problémů s interoperabilitou prostřednictvím aktualizací modulů, aplikací vývojáři mohou dosáhnout menší fragmentace platformy a výrobci OEM mohou splnit požadavky operátorů a zároveň snížit náklady pro jednotlivce přizpůsobení.


Doufejme, že tento článek zdůrazňuje, jak důležitý je Project Mainline pro ekosystém Android společnosti Google.