Les noyaux varient d'un fabricant à l'autre. Un grand nombre de ces noyaux proviennent de la ligne de sources de noyaux de base que l'on trouve sur la CAF, ce que ces fabricants font, c'est prendre ces sources de base, les modifier pour les adapter à la carte/au chipset utilisé, et implémenter leurs propres pilotes.
Regardez bien autour de vous, il y a des variations d'écrans tactiles, des variations de puces wifi, sans parler de l'accéléromètre, des capteurs, des batteries, de la boussole, du son, des graphiques.
La source d'un noyau provenant par exemple de HTC ne fonctionnera pas sur un Samsung, et vice versa.
Les fabricants sont libres de sélectionner ou de sous-traiter les différents éléments qui sont incorporés dans le circuit imprimé. Il n'y a pas de règles strictes ou rapides. D'où le grand nombre de piratages/modifications pour que le noyau fonctionne correctement.
Il ne faut jamais comparer les noyaux des distributions Linux de bureau avec les noyaux PCI, PCI-Express, SATA, VGA, SVGA, USB, Ethernet, car ils sont totalement différents. Les principales différences avec CentOS et avec le noyau Linux d'Android sont les suivantes TOUTES Les pilotes sont compilés sous forme de modules ou intégrés, ce qui fait que n'importe quelle distribution Linux fonctionnera tout simplement "en l'état". Encore une fois, avec les distributions Linux de bureau, vous avez une architecture - x86 - et donc un noyau Linux provenant d'un PC Dell, par exemple, peut fonctionner sur un Lenovo. fourni par que les pilotes standard sont compilés.
N'oubliez pas, dans le monde Android, il y a des variations du noyau construit pour des chipsets ARM spécifiques, comme ARMv6, ARMv7, il y a TEGRA, il y a EXYNOS, et ils sont binairement incompatibles entre eux. Donc si un noyau est compilé pour TEGRA, oubliez-le, il ne fonctionnera pas sur ARMv7 !
La raison pour laquelle certains noyaux sur Android semblent être "cassés" est due au fabricant. Certains d'entre eux (Zte en est un très bon exemple) publient des sources massacrées qui peuvent être compilées à partir des sources, mais ne parviennent pas à démarrer en raison de l'absence d'un pilote qui n'est pas couvert par la licence GPLv2 ou GPLv3. C'est le problème, c'est pourquoi certains hackers doivent parcourir github à la recherche d'indices ; certains fabricants, si ce n'est tous, s'y conforment. L'incarnation actuelle de la source de Zte est censée être 2.6.35.7, mais en réalité, il s'agit de la base source 2.6.32.9 avec beaucoup de modifications, ce qui ne représente pas la véritable source du noyau pour 2.6.35.7 !
C'est à ce moment-là que les fabricants doivent publier leurs sources respectives, non pas simplement pour être en conformité avec la GPLv2 ou plus tard, mais plutôt pour que la communauté puisse les modifier, par exemple en ajoutant des capacités d'overclocking.
Il y a donc du piratage en coulisses et beaucoup de manipulations avec les pilotes pour essayer de les faire fonctionner, et ce n'est pas facile à déboguer non plus Certains pilotes peuvent faire l'objet de licences croisées, MAIS ne peut être distribué en fonction de la clause et des conditions telles que négociées.
Heureusement, tout cela a changé avec la ligne de sources du noyau 3.x.x., car les pilotes Android sont maintenant intégrés dans les sources principales. Mais il y a un hic !
Essayez de porter un noyau 3.x.x. sur un combiné existant qui a environ 12-18 mois ; il n'y a aucune chance que cela fonctionne, c'est parce que, parmi les différents facteurs, les sources 3.x.x sont très différentes des sources 2.6.x et il faudrait beaucoup de piratage pour les faire fonctionner - je devrais le savoir, j'ai essayé de porter les sources 2.6.38.6 pour le Zte Blade et j'ai échoué.
De même, la dernière version du noyau 3.0.1 - en travaillant sur le projet ics4blade sur Modaco, j'ai fait de nombreuses tentatives de portage, mais c'est dû au simple fait que Zte a fait un très mauvais usage de la source, ce qui a rendu le portage presque impossible.