A la darrera conferència Linux Lampistes 2021, Google va informar sobre l'èxit de la seva iniciativa de traducció de plataforma Android utilitzar un nucli normal Linux en lloc d'utilitzar una variant de nucli personalitzada que inclou canvis específics de la plataforma Android.
El canvi més significatiu en el desenvolupament va ser la decisió de fer la transició al model "Upstream First" després del 2023, la qual cosa implica el desenvolupament de totes les noves capacitats bàsiques necessàries a la plataforma. Android, directament al nucli principal Linux, i no a les seves pròpies branques separades (la funcionalitat primer es promourà al nucli principal i després s'utilitzarà a Android, i no al revés). Tots els pegats addicionals que queden a la branca també estan programats per ser transferits al nucli principal el 2023 i el 2024. Android Nucli comú.
Què està passant en un futur proper, doncs per a la plataforma, s'espera a principis d'octubre Android 12, s'oferiran compilacions del nucli "Generic Kernel Image" (GKI), tan properes com sigui possible al nucli 5.10 normal. Aquestes compilacions rebran actualitzacions periòdiques, que es publicaran al repositori ci.android.com. El nucli GKI conté elements específics de la plataforma. Android Els complements, així com els gestors de suport de maquinari dels fabricants OEM, es traslladen a mòduls del nucli separats. Aquests mòduls no estan vinculats a la versió principal del nucli i es poden desenvolupar de forma independent, cosa que simplifica significativament el manteniment i la migració de dispositius a noves branques del nucli.

Les interfícies requerides pels fabricants de dispositius s'implementen en forma de ganxos, que permeten canviar el comportament del nucli sense fer canvis al codi. En total, el nucli Android12-5.10 ofereix 194 ganxos regulars, similars als punts de traça, i 107 ganxos especialitzats que us permeten executar controladors en un context no atòmic. Al nucli GKI, els fabricants de maquinari tenen prohibit aplicar pedaços específics al nucli principal, i els components de suport de maquinari només els han de subministrar els venedors en forma de mòduls addicionals del nucli, que han de garantir la compatibilitat amb el nucli principal.
Us recordem que a la plataforma Android desenvolupa la seva pròpia branca del nucli - Android El nucli comú, que s'utilitza per crear compilacions separades i específiques per a cada branca. Android Els fabricants tenen diverses opcions per a la disposició del nucli dels seus dispositius. Per exemple, a Android 11 oferia una selecció de tres nuclis bàsics alhora: 4.14, 4.19 i 5.4, i per a Android La versió 12 oferirà els nuclis bàsics 4.19, 5.4 i 5.10. L'opció 5.10 està dissenyada com una imatge de nucli genèrica, en la qual les capacitats requerides pels fabricants d'equips originals (OEM) es transfereixen a la versió superior, es mouen a mòduls o es transfereixen a la versió superior. Android Nucli comú.
Abans de l'arribada de GKI, el nucli de Android ha passat per diverses etapes de preparació:
- Basant-se en els principals nuclis LTS (3.18, 4.4, 4.9, 4.14, 4.19, 5.4), es va crear una branca anomenada «Android "Nucli comú", en què específic per a Android pegats (anteriorment la mida dels canvis arribava a diversos milions de línies).
- Basat en "Android Els fabricants de xips "Common Kernel" com ara Qualcomm, Samsung i MediaTek van formar el "SoC Kernel" que incloïa addicions per donar suport al maquinari.
- Basant-se en el nucli de SoC, els fabricants de dispositius van crear el nucli de dispositius, que incloïa canvis relacionats amb la compatibilitat amb equips addicionals, pantalles, càmeres, sistemes de so, etc.
Aquest plantejament va complicar significativament el lliurament d'actualitzacions que solucionen vulnerabilitats i la transició a noves branques del nucli. Malgrat que Google publica regularment actualitzacions per al seu Android-nuclis (Android Common Kernel), els proveïdors sovint triguen a lliurar aquestes actualitzacions o fins i tot utilitzen un sol nucli durant tot el cicle de vida del dispositiu.

Font: opennet.ru
