Google plánuje přejít na vývojový model „upstream first“ pro funkce linuxového jádra v Androidu počínaje rokem 2023. Přečtěte si další informace.
Když uvidíte slova „Android“ a „fragmentace“ ve stejné větě, vaše mysl pravděpodobně okamžitě přeskočí na Tabulka distribuce verzí Androidu. Existuje několik entit, na které většina lidí ukazuje prstem, když si stěžuje, že aktualizace operačního systému Android se zavádějí pomalu, ale Google může udělat jen tolik. platnost OEM k rychlejšímu vývoji a zavádění aktualizací. Co však Google může udělat, je zkrátit dobu vývoje a tím i náklady na zavádění aktualizací.
První velkou iniciativou v dlouhodobém projektu společnosti Google na snížení vývojové zátěže je Projekt Treble. Projekt Treble, který byl ohlášen společně s Androidem 8.0 Oreo v roce 2017, modularizoval Android oddělením rámce OS od implementace dodavatele (HAL a vidlice jádra Linuxu specifická pro zařízení). To usnadnilo výrobcům Android OEM znovu založit své operační systémy na nejnovějším rámci AOSP, protože mohli zavést nejnovější verzi, aniž by potřebovali aktualizovaný kód od dodavatelů. V důsledku toho mohli výrobci OEM připravit své vlastní platformy pro Android rychleji než dříve a navíc rychleji zavádět hlavní aktualizace operačního systému.
Dalším krokem v plánech Google bylo zefektivnění doručování aktualizací klíčových komponent Androidu. Google tuto iniciativu nazval Hlavní linie projektu když jej v roce 2019 představila spolu s Androidem 10. Google v podstatě převzal kontrolu nad klíčovými komponentami OS a zakázal OEM je upravovat. Poté nastavili mechanismus doručení prostřednictvím Google Play, aby mohli na dálku zavádět aktualizace těchto klíčových komponent, aniž by museli čekat, až OEM sami aplikují opravy. Mainline výrazně zlepšil, jak rychle zařízení přijímají aktualizované verze důležitých komponent operačního systému, což zase zlepšilo zabezpečení ekosystému Android jako celku.
Ale to, co přijde dál, je ještě důležitější a je pravděpodobně nejdůležitější součástí dlouhodobé strategie Google. Když jsme dříve poukázali na to, jak Treble modularizoval Android oddělením rámce OS od implementaci dodavatele jsme jako součást tohoto dodavatele zahrnuli „linuxový kernel fork pro konkrétní zařízení“. kód. Každý, kdo je obeznámen s Linuxem na stolních počítačích, tam rozpozná problém: Proč je to soustředěno do uzavřeného kódu dodavatele? Problém je v tom, že zatímco zařízení Android se dodávají s jádrem Linuxu, toto jádro obsahuje a hodně kódu mimo strom.
Jak jsme se tam dostali? Problém, jak nastínil softwarový inženýr společnosti Google Todd Kjos at letošní konference Linux Plumbers Conference (přes ArsTechnica), je to proto, že hlavní linuxové jádro je před odesláním na zařízení Android několikrát forkováno. Google rozdělí každé jádro Linuxu hlavní řady na „Android Common Kernel", která podrobně sleduje vydání hlavní řady, ale přidává několik oprav specifických pro Android. Prodejci SoC, jako jsou Qualcomm, MediaTek a Samsung, se poté rozvětvují že jádro pro každý SoC, který vyrobí. Výrobci OEM poté vezmou jádro specifické pro SoC a přidají další záplaty pro implementaci podpory pro konkrétní hardware, který chtějí dodávat.
Kvůli těmto změnám, "až 50 % kódu běžícího na zařízení je mimo stromový kód (ne z upstream Linuxu nebo běžných jader AOSP)“, podle Googlu. Díky velkému množství kódu mimo strom na těchto zařízeních je slučování upstream změn dlouhý a náročný proces. To je škodlivé pro zabezpečení zařízení, protože výrobci OEM musí více pracovat na implementaci oprav zranitelností, které jsou objeveny v jádře Linuxu. Navíc to většinu zařízení Android ponechává na letitých vydáních jádra, což znamená, že jim chybí nové funkce jádra Linuxu.
Ve snaze vyřešit tento problém Google pracuje na Android Generic Kernel Image (GKI), což je v podstatě jádro zkompilované přímo z větve ACK. GKI izoluje přizpůsobení výrobců SoC a OEM do modulů zásuvných modulů, čímž eliminuje kód mimo strom a umožňuje společnosti Google posílat aktualizace jádra přímo koncovému uživateli. Více než rok Google pracuje na způsobu, jak doručovat aktualizace GKI prostřednictvím Obchodu Play, pomocí modulu Mainline.
Podle našich zdrojů zařízení, která spouštějí s Android 12 a dodávané s linuxovým jádrem 5.10 musí nasadit spouštěcí obraz podepsaný společností Google. Google je velmi vlastní Pixel 6 série bude uvedena na trh s Androidem 12 ihned po vybalení a bude dodávána s linuxovým jádrem 5.10, takže tyto dva telefony mohou být prvními zařízeními pro masový trh, které budou dodávány s GKI.
Kromě toho Todd Kjos z Googlu prozradil, že společnost plánuje přejít na vývojový model „upstream first“ pro nové funkce linuxového jádra. To Googlu pomůže zajistit, aby nový kód přistál jako první v hlavním linuxovém jádře, což sníží budoucí technický dluh vzniklý z většího počtu přistání kódu mimo strom na zařízeních Android.
Na konferenci Linux Plumbers Conference tento týden Kjos řekl: „Protože moduly mimo strom jsou pro náš případ použití opravdu důležité, očekáváme, že vždy budeme mít sadu exportů a některé věci, které se liší nebo doplňují upstream, ale celý tento projekt je víceletý projekt, který se snaží zbavit se co největšího počtu patchů mimo strom a co nejvíce sladit s proti proudu." Google si klade za cíl dokončit svou práci na upstreamování stávajících funkcí a izolování změn dodavatelů do konce roku 2022 a počínaje rokem 2023 společnost plánuje přijmout tento vývojový model „první upstream“, aby se takovým problémům v budoucnost.