Présentation du noyau

Le noyau Android est basé sur un système Noyau Linux à long terme (LTS) : Chez Google, LTS les noyaux sont combinés à des correctifs spécifiques à Android pour former ce que l'on appelle Android Common Kernels (ACKs)

Les ACK plus récents (versions 5.4 et ultérieures) sont également appelés noyaux GKI. Les noyaux GKI sont compatibles séparation du code du noyau générique indépendant du matériel et modules GKI du spécifique au matériel modules fournisseurs.

Le noyau GKI interagit avec les modules fournisseurs spécifiques au matériel qui contiennent les ressources une puce (SoC) et un code spécifique à la carte. L'interaction entre le noyau GKI et les modules du fournisseur est par l'interface de module kernel (KMI), composée de listes de symboles qui identifient et les données globales requises par les modules du fournisseur. La figure 1 présente le noyau et le fournisseur GKI de l'architecture du module:

Architecture GKI
Figure 1 : Architecture GKI
<ph type="x-smartling-placeholder">

Glossaire du noyau

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

Types de noyau

Android Common Kernel (ACK)
Noyau en aval d'un kernel LTS et comprenant des correctifs intéressants pour Android qui n'ont pas été fusionnées avec les noyaux Linux principal ou pris en charge à long terme (LTS). Les ACK plus récents (version 5.4 et ultérieure) sont également appelés noyaux GKI, car ils prennent en charge le la séparation du code du noyau générique et des modules GKI indépendants du matériel.
Noyau du projet Android Open Source (AOSP)
Voir Noyau commun Android.
Noyau de caractéristiques
Noyau pour lequel l'implémentation des fonctionnalités de version de la plate-forme est garantie. Pour Par exemple, sous 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 caractéristiques serait similaire à un appareil lancé avec la version 4.19 sur Android 11 et mis à niveau vers Android 12.
noyau générique
Partie du noyau GKI commune à tous les appareils.
Generic Kernel Image (GKI) (noyau générique)
N'importe quel noyau ACK plus récent (5.4 et supérieur) (actuellement aarch64 uniquement). Ce Le noyau se compose de deux parties: le noyau GKI, avec du code commun à tous les appareils et les modules GKI. développés par Google qui peuvent être chargés dynamiquement sur des appareils, le cas échéant.
Noyau Kernel Module Interface (KMI)
Voir Noyau GKI.
Lancer le noyau
Noyau valide pour lancer un appareil pour une version donnée de la plate-forme Android. Pour Par exemple, sous Android 12, les noyaux de lancement valides étaient 4.19, 5.4 et 5.10.
Noyau LTS (Long Term Support)
Un noyau Linux compatible pendant deux à six ans. Version LTS de noyaux sont publiés une fois par an et constituent la base de chacun ACK de Google.

Types de branches

Branche du noyau ACK KMI
Branche pour laquelle les noyaux GKI sont créés. Par exemple, android12-5.10. et Android13-5.15.
Ligne principale Android
Principale branche de développement des fonctionnalités Android. Lorsqu'une nouvelle version LTS le noyau est déclaré en amont, le nouveau noyau GKI correspondant est déclaré est dérivée d'android-mainline.
Réseau principal Linux
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 a été distribué au format binaire (boot.img) et a été 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 à chargement dynamique (DLKM)
Module qui peut être chargé de manière dynamique au démarrage de l'appareil en fonction des besoins du appareil. Les modules GKI et fournisseurs sont tous deux des types de DLKM. Les DLKM sont publiés en .ko sous forme de pilotes ou peuvent fournir d’autres fonctionnalités de noyau.
Projet GKI
Projet Google s'occupant de la fragmentation du noyau en séparant le noyau commun de la prise en charge des SoC et des cartes propres aux fournisseurs en modules chargeables.
Image du noyau générique (GKI)
Image de démarrage certifiée par Google contenant un noyau GKI créé à partir de une arborescence source ACK et peut être flashé sur la partition de démarrage un appareil Android.
KMI
Interface entre le noyau GKI et les modules du fournisseur, permettant au fournisseur les modules soient mis à jour indépendamment du noyau GKI. Cette interface se compose du noyau fonctions et données globales qui ont été identifiées comme des dépendances fournisseurs/OEM à l'aide de des listes de symboles par partenaire.
Modules GKI
Modules de noyau créés par Google qui peuvent être chargés dynamiquement sur des appareils, le cas échéant. Ces modules sont conçus en tant qu'artefacts du noyau GKI et sont fournis avec GKI comme archive system_dlkm_staging_archive.tar.gz. Modules GKI sont signés par Google à l'aide de la paire de clés lors de la compilation du noyau et ne sont compatibles qu'avec avec lequel ils sont compilés.
Module "Fournisseur"
Module spécifique au matériel développé par un partenaire, qui contient le SoC et un module spécifique à chaque appareil de Google Cloud. Un module de fournisseur est un type de module de noyau chargeable de manière dynamique.

Et maintenant ?

  • Si vous débutez dans le développement de noyau Android, vous pouvez commencer par lire le suivantes:
  • Si vous débutez dans le développement de noyau GKI, commencez par lire Développement GKI.
  • Si vous utilisez une version de noyau 4.19 ou une version antérieure et que vous recherchez de la documentation associée, reportez-vous à la section (Présentation des noyaux (<=4.19).