Présentation du noyau

Le noyau Android est basé sur un noyau Linux LTS (Long Term Supported) en amont. Chez Google, les noyaux LTS sont combinés à des correctifs spécifiques à Android pour former les noyaux communs Android (ACK).

Les ACK sont créés à partir du dépôt kernel/common. Ce dépôt est un sur-ensemble du noyau Linux en amont, avec des correctifs supplémentaires spécifiques à Android.

Les ACKs 5.10 et versions ultérieures sont également appelés noyaux d'images génériques du noyau (GKI, Generic Kernel Images). Les noyaux GKI permettent de séparer le code du noyau générique indépendant du matériel et les modules GKI des modules du fournisseur spécifiques au matériel.

L'interaction entre le noyau GKI et les modules du fournisseur est activée par l'interface de module du noyau (KMI), qui se compose 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 module fournisseur et du noyau GKI.

Figure 1 : Architecture du module fournisseur et du noyau GKI.

Glossaire du noyau

Vous trouverez ci-dessous les termes utilisés dans la documentation du noyau.

Types de noyaux

Android Common Kernel (ACK)
 Noyau en aval d'un noyau LTS et incluant des correctifs importants pour la communauté Android. Ces correctifs n'ont pas été fusionnés dans les noyaux Linux mainline ni dans les noyaux GKI à long terme.

Les noyaux de version 5.10 et ultérieure sont également appelés noyaux Generic Kernel Image (GKI).

Noyau du projet Android Open Source (AOSP)
 Consultez Android Common Kernel.

Les fonctionnalités d'Android 12 ne peuvent pas être rétroportées vers les noyaux 4.19. L'ensemble de fonctionnalités serait semblable à celui d'un appareil lancé avec le noyau 4.19 sur Android 11 et mis à niveau vers Android 12.

Noyau GKI (Generic Kernel Image)

N'importe quel noyau ACK 5.10 ou version ultérieure(aarch64 uniquement). Le noyau GKI se compose de deux parties :

  • Noyau générique : partie du noyau GKI commune à tous les appareils.

  • Modules GKI : modules du noyau conçus par Google qui peuvent être chargés dynamiquement sur les appareils, le cas échéant. Ces modules sont créés en tant qu'artefacts du noyau GKI et sont fournis avec GKI sous la forme de l'archive system_dlkm_staging_archive.tar.gz. Les modules GKI sont signés par Google à l'aide de la paire de clés de compilation du noyau et ne sont compatibles qu'avec le noyau GKI avec lequel ils sont compilés.

Noyau de l'interface de module de noyau (KMI)

Consultez Noyau GKI.

Noyau LTS (Long Term Supported)

Un noyau Linux compatible pendant deux à six ans. Les noyaux LTS sont publiés une fois par an et constituent la base de chacun des noyaux communs Android de Google.

Types de branches

Branche du noyau ACK KMI
 : branche pour laquelle les noyaux GKI sont créés. Les noms de branche correspondent aux versions du noyau, par exemple android15-6.6.
Android-mainline
 Branche de développement principale pour les fonctionnalités Android. Lorsqu'un nouveau noyau LTS est déclaré en amont, le nouveau noyau GKI correspondant est créé à partir d'android-mainline.

Linux mainline : branche de développement principale pour les noyaux Linux en amont, y compris les noyaux LTS.

Autres termes

Image de démarrage certifiée
 Noyau fourni sous forme binaire (boot.img) et flashé sur l'appareil. Cette image est considérée comme certifiée, car elle contient des certificats intégrés. Google peut ainsi vérifier que l'appareil est fourni avec un noyau certifié par Google.
Module de noyau chargeable dynamiquement (DLKM, Dynamically Loadable Kernel Module)
Module pouvant être chargé dynamiquement au démarrage de l'appareil en fonction de ses besoins. Les modules GKI et fournisseur sont deux types de DLKM. Les DLKM sont publiés au format .ko et peuvent être des pilotes ou fournir d'autres fonctionnalités du noyau.
Projet GKI
 Projet Google visant à résoudre la fragmentation du noyau en séparant les fonctionnalités communes du noyau de la prise en charge du SoC et de la carte spécifiques au fournisseur dans des modules chargeables.

Image générique du noyau (GKI, Generic Kernel Image) : image de démarrage certifiée par Google, qui contient un noyau GKI créé à partir d'un arbre source ACK et qui peut être flashée sur la partition de démarrage d'un appareil Android.

Interface de module du noyau (KMI)
Interface entre le noyau GKI et les modules du fournisseur, permettant de mettre à jour les modules du fournisseur 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 de fournisseur/OEM à l'aide de listes de symboles par partenaire.
Module fournisseur
Module spécifique au matériel développé par un partenaire et contenant des fonctionnalités spécifiques au SoC et à l'appareil. Un module fournisseur est un type de module de noyau chargeable de manière dynamique.

Étapes suivantes

Si vous débutez dans le développement du noyau Android, commencez par lire les informations suivantes :

Si vous débutez dans le développement du noyau GKI, commencez par lire Développement GKI.