Google přejde na vývoj inovací pro Android v hlavním linuxovém jádře

Na konferenci Linux Plumbers 2021 Google hovořil o úspěchu své iniciativy přechodu platformy Android na běžné linuxové jádro namísto použití vlastní verze jádra, která zahrnuje změny specifické pro platformu Android.

Nejdůležitější změnou ve vývoji bylo rozhodnutí přejít po roce 2023 na model „Upstream First“, což znamená vývoj všech nových funkcí jádra potřebných pro platformu Android přímo v hlavním linuxovém jádře, nikoli v jejich vlastních samostatných větvích ( funkce bude nejprve povýšena na hlavní jádro). Na roky 2023 a 2024 je také plánován přenos všech dalších oprav zbývajících ve větvi Android Common Kernel do hlavního jádra.

Pokud jde o blízkou budoucnost, pro platformu Android 12 očekávanou na začátku října budou nabízeny sestavy jádra „Generic Kernel Image“ (GKI), co nejblíže běžnému jádru 5.10. U těchto sestavení budou poskytovány pravidelné vydávání aktualizací, které budou zveřejněny v úložišti ci.android.com. V jádře GKI jsou dodatky specifické pro platformu Android a také obslužné nástroje související s podporou hardwaru od výrobců OEM umístěny v samostatných modulech jádra. Tyto moduly nejsou vázány na verzi hlavního jádra a lze je vyvíjet samostatně, což značně zjednodušuje údržbu a přechod zařízení na nové větve jádra.

Google přejde na vývoj inovací pro Android v hlavním linuxovém jádře

Rozhraní požadovaná výrobci zařízení jsou implementována ve formě háčků, které umožňují změnit chování jádra bez provádění změn v kódu. Celkově jádro android12-5.10 nabízí 194 běžných háčků, podobných sledovacím bodům, a 107 specializovaných háčků, které vám umožňují spouštět handlery v neatomickém kontextu. V jádře GKI mají výrobci hardwaru zakázáno aplikovat specifické záplaty na hlavní jádro a součásti hardwarové podpory musí dodávat prodejci pouze ve formě doplňkových modulů jádra, které musí zajistit kompatibilitu s hlavním jádrem.

Připomeňme, že platforma Android vyvíjí vlastní větev jádra – Android Common Kernel, na základě které se pro každé zařízení tvoří samostatná specifická sestavení. Každá větev Androidu dává výrobcům několik možností rozložení jádra pro jejich zařízení. Například Android 11 nabízel na výběr ze tří základních jader – 4.14, 4.19 a 5.4 a Android 12 nabídne základní jádra 4.19, 5.4 a 5.10. Možnost 5.10 je navržena jako Generic Kernel Image, ve které jsou schopnosti nezbytné pro OEM přeneseny do upstreamu, umístěny do modulů nebo přeneseny do Android Common Kernel.

Před příchodem GKI prošlo jádro Androidu několika fázemi přípravy:

  • Na základě hlavních LTS jader (3.18, 4.4, 4.9, 4.14, 4.19, 5.4) byla vytvořena větev „Android Common Kernel“, do které byly přeneseny záplaty specifické pro Android (dříve velikost změn dosahovala několika milionů řádků ).
  • Na základě „Android Common Kernel“ vytvořili výrobci čipů jako Qualcomm, Samsung a MediaTek „SoC Kernel“, který obsahoval doplňky pro podporu hardwaru.
  • Na základě jádra SoC vytvořili výrobci zařízení jádro zařízení, které zahrnovalo změny související s podporou dalšího vybavení, obrazovek, kamer, zvukových systémů atd.

Tento přístup výrazně zkomplikoval implementaci aktualizací pro odstranění zranitelností a přechod na nové větve jádra. Ačkoli Google pravidelně vydává aktualizace svých jader Androidu (Android Common Kernel), dodavatelé jsou často pomalí při doručování těchto aktualizací nebo obecně používají stejné jádro během celého životního cyklu zařízení.



Zdroj: opennet.ru

Přidat komentář