Google va continuer à développer des innovations pour Android dans le noyau Linux principal

Lors de la conférence Linux Plumbers 2021, Google a parlé du succès de son initiative visant à faire passer la plate-forme Android à l'utilisation d'un noyau Linux classique au lieu d'utiliser sa propre version du noyau, qui inclut des modifications spécifiques à la plate-forme Android.

Le changement le plus important dans le développement a été la décision de passer après 2023 au modèle « Upstream First », ce qui implique le développement de toutes les nouvelles fonctionnalités du noyau nécessaires à la plate-forme Android directement dans le noyau Linux principal, et non dans leurs propres branches distinctes ( la fonctionnalité sera d'abord promue au niveau du noyau principal, puis utilisée dans Android, et non l'inverse). Il est également prévu de transférer tous les correctifs supplémentaires restant dans la branche Android Common Kernel vers le noyau principal en 2023 et 2024.

Quant au futur proche, pour la plateforme Android 12 attendue début octobre, des assemblages de noyau « Generic Kernel Image » (GKI) seront proposés, aussi proches que possible du noyau 5.10 classique. Pour ces versions, des versions régulières de mises à jour seront fournies, qui seront publiées dans le référentiel ci.android.com. Dans le noyau GKI, les ajouts spécifiques à la plate-forme Android, ainsi que les gestionnaires liés au support matériel des OEM, sont placés dans des modules de noyau distincts. Ces modules ne sont pas liés à la version du noyau principal et peuvent être développés séparément, ce qui simplifie grandement la maintenance et la transition des appareils vers de nouvelles branches du noyau.

Google va continuer à développer des innovations pour Android dans le noyau Linux principal

Les interfaces requises par les fabricants de périphériques sont implémentées sous forme de hooks, qui permettent de modifier le comportement du noyau sans apporter de modifications au code. Au total, le noyau android12-5.10 propose 194 hooks réguliers, similaires aux points de trace, et 107 hooks spécialisés qui vous permettent d'exécuter des gestionnaires dans un contexte non atomique. Dans le noyau GKI, il est interdit aux fabricants de matériel d'appliquer des correctifs spécifiques au noyau principal, et les composants de support matériel doivent être fournis par les fournisseurs uniquement sous la forme de modules de noyau supplémentaires, qui doivent garantir la compatibilité avec le noyau principal.

Rappelons que la plate-forme Android développe sa propre branche de noyau - l'Android Common Kernel, sur la base de laquelle des assemblages spécifiques distincts sont formés pour chaque appareil. Chaque branche d'Android offre aux fabricants plusieurs options de configuration du noyau pour leurs appareils. Par exemple, Android 11 offrait un choix de trois noyaux de base : 4.14, 4.19 et 5.4, et Android 12 proposera les noyaux de base 4.19, 5.4 et 5.10. L'option 5.10 est conçue comme une image de noyau générique, dans laquelle les capacités nécessaires aux OEM sont transférées en amont, placées dans des modules ou transférées vers le noyau commun Android.

Avant l’avènement de GKI, le noyau Android est passé par plusieurs étapes de préparation :

  • Sur la base des principaux noyaux LTS (3.18, 4.4, 4.9, 4.14, 4.19, 5.4), une branche du « noyau commun Android » a été créée, dans laquelle des correctifs spécifiques à Android étaient transférés (auparavant, la taille des modifications atteignait plusieurs millions de lignes). ).
  • Sur la base du « noyau commun Android », des fabricants de puces tels que Qualcomm, Samsung et MediaTek ont ​​formé le « noyau SoC » qui comprenait des modules complémentaires pour prendre en charge le matériel.
  • Sur la base du noyau SoC, les fabricants d'appareils ont créé le noyau de périphérique, qui comprenait des modifications liées à la prise en charge d'équipements supplémentaires, d'écrans, de caméras, de systèmes audio, etc.

Cette approche a considérablement compliqué la mise en œuvre des mises à jour pour éliminer les vulnérabilités et la transition vers de nouvelles branches du noyau. Bien que Google publie régulièrement des mises à jour de ses noyaux Android (Android Common Kernel), les fournisseurs tardent souvent à fournir ces mises à jour ou utilisent généralement le même noyau tout au long du cycle de vie d'un appareil.



Source: opennet.ru

Ajouter un commentaire