Pour information, ton ordinateur dispose de mécanismes (UEFI, BIOS et bus comme PCIe) qui permet la découverte autonome du matériel. Sur l’architecture ARM qui équipe nos téléphones, ces mécanismes ne sont pas très répandues ou standardisées et tu dois avoir recours à des fichiers inclus dans le noyau pour décrire le matériel présent. Et ainsi charger les bons pilotes avec les bons paramètres.
Oui, c’est le device tree. Mais une fois qu’il est écrit, il me semble qu’on pourrait l’utiliser avec n’importe quel noyau Linux avec la prise en charge du device tree non ? (je n’y connais pas grand chose).
Cela a une incidence importante dans ce processus. Et on peut parler du fait que l’absence d’uniformisation au niveau de l’architecture ARM conduit à ce que chaque fondeur de puce (Qualcomm, Mediatek, Samsung, Texas Instrument, etc.) doivent écrire le support de leur puce pour le noyau de leur côté.
Je pense que c’est une grosse partie du problème. Les fabricants nous pondent des forks du noyau qui divergent énormément du noyau de base, et fournissent un tas de pilotes propriétaires qui rendent de toute façon difficile le port d’un nouveau noyau sur leur puce.
Malgré tout, cela ne devrait pas empêcher au moins la partie d’Android en espace utilisateur de recevoir des mises à jour sans grande difficulté.
Et puis, les nouvelles versions d’Android fonctionnent sur des versions relativement anciennes du noyau. Android Pie avec les derniers patchs de sécurité (sauf pour la partie blobs proprios...) fonctionne sur mon téléphone vendu avec Android Marshmallow (puis mis à jour vers Nougat), sur le noyau original : Linux 3.18.
Alors, ça devrait être relativement simple de porter une nouvelle version d’Android sur un modèle qui a été vendu avec une version plus ancienne ? Non, même pas. Déjà, porter mon modèle sur Lineage 14.1 a demandé des mois de travail alors que le téléphone tourne sur Nougat de base, idem ensuite pour Lineage 15.1 et pareil pour Lineage 16. Parce qu’il y a notamment toute une couche d’abstraction à retravailler. Comme si tout le système en espace utilisateur d’Android n’était pas assez abstrait du matériel.
Évènement assez exceptionnel, quelqu’un a porté le noyau Linux 4.9 sur la puce utilisée dans mon téléphone pour le téléphone d’une autre marque. Mais les développeurs du port de Lineage sur mon téléphone n’ont pas adopté ce noyau parce qu’un gros travail d’adaptation serait nécessaire.
[^] # Re: Pourquoi avoir peur du reconditionné ?
Posté par raphj (site web personnel) . En réponse à la dépêche Mon nouveau smartphone Android dégooglisé. Évalué à 3. Dernière modification le 02 mai 2019 à 16:39.
Oui, c’est le device tree. Mais une fois qu’il est écrit, il me semble qu’on pourrait l’utiliser avec n’importe quel noyau Linux avec la prise en charge du device tree non ? (je n’y connais pas grand chose).
Je pense que c’est une grosse partie du problème. Les fabricants nous pondent des forks du noyau qui divergent énormément du noyau de base, et fournissent un tas de pilotes propriétaires qui rendent de toute façon difficile le port d’un nouveau noyau sur leur puce.
Malgré tout, cela ne devrait pas empêcher au moins la partie d’Android en espace utilisateur de recevoir des mises à jour sans grande difficulté.
Et puis, les nouvelles versions d’Android fonctionnent sur des versions relativement anciennes du noyau. Android Pie avec les derniers patchs de sécurité (sauf pour la partie blobs proprios...) fonctionne sur mon téléphone vendu avec Android Marshmallow (puis mis à jour vers Nougat), sur le noyau original : Linux 3.18.
Alors, ça devrait être relativement simple de porter une nouvelle version d’Android sur un modèle qui a été vendu avec une version plus ancienne ? Non, même pas. Déjà, porter mon modèle sur Lineage 14.1 a demandé des mois de travail alors que le téléphone tourne sur Nougat de base, idem ensuite pour Lineage 15.1 et pareil pour Lineage 16. Parce qu’il y a notamment toute une couche d’abstraction à retravailler. Comme si tout le système en espace utilisateur d’Android n’était pas assez abstrait du matériel.
Évènement assez exceptionnel, quelqu’un a porté le noyau Linux 4.9 sur la puce utilisée dans mon téléphone pour le téléphone d’une autre marque. Mais les développeurs du port de Lineage sur mon téléphone n’ont pas adopté ce noyau parce qu’un gros travail d’adaptation serait nécessaire.
C’est quand même bien le bazar.