Présentation du noyau

Le noyau Android est basé sur un noyau Linux en amont pris en charge à long terme (LTS) disponible sur . Chez Google, les noyaux LTS sont combinés avec des correctifs spécifiques à Android pour former ce que l'on appelle les noyaux communs Android (ACK) .

Les nouveaux ACK (versions 5.4 et ultérieures) sont également connus sous le nom de noyaux GKI car ils prennent en charge la séparation du code du noyau générique générique et des modules GKI indépendants du matériel. Le noyau GKI interagit avec des modules de fournisseur spécifiques au matériel contenant un système sur puce (SoC) et un code spécifique à la carte. L'interaction entre le noyau GKI et les modules du fournisseur est activée par l' interface du module du noyau (KMI) composée de listes de symboles identifiant les fonctions et les données globales requises par les modules du fournisseur. La figure 1 illustre l'architecture du noyau GKI et du module fournisseur : Architecture du noyau GKI et du module fournisseur

Figure 1. Architecture du noyau GKI et du module fournisseur

Glossaire du noyau

Cette section contient les termes utilisés dans la documentation du noyau.

Types de noyau

Noyau commun Android (ACK)
Un noyau en aval d'un noyau LTS et qui inclut des correctifs intéressant la communauté Android qui n'ont pas été fusionnés dans les noyaux Linux principaux ou à long terme pris en charge (LTS). Les nouveaux ACK (versions 5.4 et supérieures) sont également connus sous le nom de noyaux GKI car ils prennent en charge la séparation du code du noyau générique indépendant du matériel et des modules GKI indépendants du matériel.
Noyau Android Open Source Project (AOSP)
Voir Noyau commun Android.
Noyau de fonctionnalité
Un noyau pour lequel les fonctionnalités de la version de la plate-forme sont garanties d'être implémentées. Par exemple, dans Android 12, les deux noyaux de fonctionnalités étaient android12-5.4 et android12-5.10. Les fonctionnalités d'Android 12 ne peuvent pas être rétroportées vers les noyaux 4.19 ; l'ensemble de fonctionnalités serait similaire à un appareil lancé avec 4.19 sur R et mis à niveau vers S).
noyau de base générique
La partie du noyau GKI qui est commune à tous les appareils.
Noyau d'image de noyau générique (GKI)
Tout noyau ACK plus récent (5.4 et supérieur) (actuellement aarch64 uniquement). Ce noyau comporte deux parties : le noyau GKI principal avec un code commun à tous les appareils et les modules du noyau GKI développés par Google qui peuvent être chargés dynamiquement sur les appareils, le cas échéant.
Noyau d'interface de module de noyau (KMI)
Voir noyau GKI .
Lancer le noyau
Un noyau valide pour lancer un appareil pour une version de plate-forme Android donnée. Par exemple, dans Android 12, les noyaux de lancement valides étaient 4.19, 5.4 et 5.10.
Noyau pris en charge à long terme (LTS)
Un noyau Linux pris en charge pendant 2 à 6 ans. Les noyaux LTS sont publiés une fois par an et constituent la base de chacun des ACK de Google.

Types de succursales

Branche du noyau ACK KMI
La branche pour laquelle les noyaux GKI sont construits. Par exemple, android12-5.10 et android13-5.15.
Android-mainline
La principale branche de développement pour les fonctionnalités Android. Lorsqu'un nouveau noyau LTS est déclaré en amont, le nouveau noyau GKI correspondant est dérivé d'android-mainline.
Ligne principale de Linux
La branche de développement principale pour les noyaux Linux en amont, y compris les noyaux LTS.

Autres termes

Image de démarrage certifiée
Le noyau livré sous forme binaire ( boot.img ) et flashé sur l'appareil. Cette image est certifiée dans le sens où elle contient des certificats intégrés afin que Google puisse vérifier que l'appareil est livré avec un noyau certifié par Google.
Module de noyau chargeable dynamiquement (DLKM)
Un module qui peut être chargé dynamiquement lors du démarrage de l'appareil en fonction des besoins de l'appareil. Les modules GKI et fournisseur sont les deux types de DLKM. Les DLKM sont publiés sous forme .ko et peuvent être des pilotes ou peuvent fournir d'autres fonctionnalités du noyau.
Projet GKI
Un projet Google traitant de la fragmentation du noyau en séparant la fonctionnalité du noyau commun du SoC spécifique au fournisseur et la prise en charge de la carte dans des modules chargeables.
Image de noyau générique (GKI)
Une image de démarrage certifiée par Google qui contient un noyau GKI construit à partir d'une arborescence source ACK et peut être flashée sur la partition de démarrage d'un appareil Android.
KMI
Une interface entre le noyau GKI et les modules du fournisseur permettant aux modules du fournisseur d'être mis à jour indépendamment du noyau GKI. Cette interface se compose de fonctions de noyau et de données globales qui ont été identifiées comme des dépendances fournisseur/OEM à l'aide de listes de symboles par partenaire.
Module de noyau GKI
Modules chargeables dynamiquement construits par Google qui peuvent être chargés dynamiquement sur les appareils, le cas échéant. Ces modules sont construits avec le noyau GKI et sont livrés avec GKI en tant system_dlkm . Les modules du noyau GKI sont signés par Google à l'aide de la paire de clés de temps de construction du noyau et ne sont compatibles qu'avec le noyau générique avec lequel ils sont construits. Les modules du noyau GKI sont un type de DLKM
.
Module vendeur
Un module spécifique au matériel développé par un partenaire et qui contient un SoC et des fonctionnalités spécifiques à l'appareil. Un module fournisseur est un type de module de noyau chargeable dynamiquement.

Et après?

  • Si vous débutez dans le développement du noyau Android, vous voudrez peut-être commencer par lire ce qui suit :
  • Si vous débutez dans le développement du noyau GKI, commencez par lire Développement GKI .
  • Si vous utilisez une version de noyau 4.19 ou antérieure et que vous recherchez de la documentation connexe, reportez-vous à la section Présentation des noyaux précédents (<=4.19) .