L’écosystème Android actuel est pollué par des centaines de versions différentes d’Android, chacune exécutant une variante différente du noyau Linux. Chaque version est conçue pour un téléphone différent et ses configurations sont différentes. Google a travaillé pour résoudre le problème en ajoutant le noyau Linux principal à Android.
Comment le noyau Linux est actuellement géré dans Android
Avant qu’il ne vous parvienne, le noyau Linux de votre téléphone portable passe par trois étapes majeures.
Tout d’abord, Google prend la version LTS (Support à long terme) du noyau Linux et ajoute tout le code spécifique à Android. Cela devient le « noyau commun Android ».
Google envoie ensuite ce code à l’entreprise qui crée le système sur une puce (SoC) qui fait fonctionner votre téléphone. C’est généralement Qualcomm.
Une fois que le fabricant de SoC a fini d’ajouter du code pour prendre en charge le processeur et les autres puces, le noyau est ensuite transmis au fabricant de périphérique réel, tel que Samsung ou Motorola. Le fabricant de l’appareil ajoute ensuite du code pour prendre en charge le reste du téléphone, comme l’écran et l’appareil photo.
Chacune de ces étapes prend un certain temps et aboutit à un noyau qui ne fonctionnera avec aucun autre périphérique. Cela signifie également que le noyau est très vieux, généralement d’environ deux ans. Par exemple, le Google Pixel 4, livré le mois dernier, dispose d’un noyau de novembre 2017, qui ne sera jamais mis à jour.
Google s’est engagé à créer des correctifs de sécurité pour les appareils plus anciens, ce qui signifie qu’ils sont bloqués en gardant un œil sur un énorme mélange d’ancien code.
L’avenir
L’année dernière, Google a annoncé son intention de corriger ce gâchis. Cette année, ils ont révélé les progrès réalisés lors de la conférence Linux Plumbers 2019.
« Nous savons ce qu’il faut pour exécuter Android mais pas nécessairement sur un matériel donné. Donc, notre objectif est essentiellement de trouver tout cela, puis en amont et d’essayer d’être le plus proche possible de la ligne principale. »
Sandeep Patil, Chef d’équipe du noyau Android
Ils ont montré un Xiaomi Poco F1 fonctionnant sous Android avec un noyau Linux approprié. Cependant, certaines choses ne semblaient pas fonctionner, comme le pourcentage de batterie qui était bloqué à 0%.
Alors, comment Google prévoit-il de faire fonctionner cela? En prenant une page de leur projet Treble playbook. Avant Project Treble, le code de bas niveau qui interagissait avec l’appareil et Android lui-même était un gros gâchis de code. Project Treble a séparé les deux et les a rendus modulaires afin que les mises à jour Android puissent être expédiées plus rapidement et que le code de bas niveau puisse rester inchangé entre les mises à jour.
Google veut apporter la même modularité au noyau. Leur plan « consiste à stabiliser l’ABI dans le noyau de Linux et à disposer d’une interface stable pour que le noyau Linux et les fournisseurs de matériel puissent écrire. Google souhaite découpler le noyau Linux de son support matériel. »
Cela signifie donc que Google expédierait un noyau et que les pilotes matériels seraient chargés en tant que modules du noyau. Actuellement, ce n’est qu’une proposition. Il reste encore pas mal de problèmes techniques à résoudre. donc, cela n’arrivera pas de sitôt.
Opposition de l’Open Source
La communauté Open Source ne sera pas satisfaite de l’idée de mettre du code propriétaire dans le noyau. Les directives du noyau Linux stipulent que les pilotes doivent avoir une licence GPL pour être inclus dans le noyau. Ils soulignent également que si un changement de pilote provoque une erreur, il sera résolu par la personne qui a créé l’erreur. Cela signifie moins de travail pour les fabricants d’appareils à long terme.
Réflexions finales sur l’inclusion du noyau mainline dans Andorid
Jusqu’à présent, ce n’est qu’une proposition. Il y a de fortes chances que Google ne commence à travailler sur le projet que pour l’abandonner une fois qu’il réalisera combien de travail cela prendra. Jetez simplement un coup d’œil au nombre de projets que Google a déjà abandonnés.
Android Police a fait un bon point en mentionnant que Google travaille sur son système d’exploitation Fuchsia, qui semble avoir pour objectif de remplacer un jour Android.
Alors, la question est de savoir quelle tâche monumentale Google va-t-il essayer de terminer, faire fonctionner Android avec un noyau Linux principal ou terminer le travail sur leur remplacement Android unifié? Seul le temps peut y répondre.