
Guide pas à pas pour créer des kernels Kali NetHunter personnalisés pour Android : récupération des sources, choix de la toolchain, compilation croisée et flashage.
Le plus grand obstacle pour la plupart des gens qui souhaitent configurer un appareil Nethunter est l'exigence du noyau. À moins que votre appareil ne dispose déjà d'un noyau précompilé (et maintenu), on vous dira d'en compiler un vous-même. Il existe déjà beaucoup de documentation sur ce processus, mais d'après mon expérience, il peut être difficile de savoir ce qui s'applique à votre cas et ce qui ne s'applique pas.
Ce problème est aggravé par des connards des gens qui écrivent des guides avec des titres putaclic comme « Construisez un noyau Nethunter pour N'IMPORTE QUEL appareil Android ! » ou avec de fausses promesses comme « Apprenez à compiler un noyau Nethunter en dix minutes ! » C'est aussi une réalité malheureuse d'Internet en 2025 que beaucoup d'idiots de gens pensent que ChatGPT ou d'autres grands modèles de langage ont des réponses autoritaires à leurs questions, alors que tout ce que ces modèles ont vraiment, ce sont des informations qu'ils ont extraites des connards susmentionnés.
J'écris ce guide aussi minutieusement et honnêtement que possible. Il n'est pas destiné à être le seul document que vous devrez lire pour ce processus, cependant – vous aurez sûrement des questions auxquelles ce document ne peut pas répondre. Je vous encourage à chercher des réponses à ces questions dans la documentation logicielle pertinente, et PAS sur YouTube ou avec ChatGPT.
Avant de commencer QUOI QUE CE SOIT de ce processus, vous devriez DÉJÀ avoir :
apt update && apt upgrade -y (facultatif : ajouté des métapaquets)Pour mener à bien ce processus, vous aurez besoin de :
cd, rm, ls, mkdir, find, diff, grep, etc.)vim pour les gens cool, sinon nano)build-devel sur les distributions basées sur Arch, build-essential sur celles basées sur Debian) – je recommande également d'installer Perl + Python3 car certains Makefiles du noyau les exigentEst-ce que ce sera possible pour mon appareil ?
Le noyau Linux est sous licence GNU General Public License 2.0, qui est une licence copyleft. Cela signifie que le code source du noyau Linux est distribué librement et que vous pouvez modifier le code source comme vous le souhaitez (comme chaque fabricant Android l'a fait), CEPENDANT, votre code source résultant doit AUSSI être distribué librement.
À la surprise de absolument personne, beaucoup des corporations géantes qui utilisent du code sous licence GPL se moquent des termes de cette licence. Elles refusent soit de distribuer leur code source, soit n'en publient qu'une partie (généralement cassée, obsolète et avec des blobs binaires intégrés). S'il n'y a pas de code source disponible pour le noyau de votre appareil, alors il n'y a aucun moyen de créer un noyau Nethunter pour celui-ci.
Votre capacité à déverrouiller le bootloader et à installer une ROM personnalisée dépend aussi énormément des caprices du fabricant de votre appareil. Même s'ils autorisent le déverrouillage du bootloader et que vous avez pu rooter votre téléphone avec Magisk, s'ils ne publient pas d'arborescences d'appareil (device trees), il n'y a probablement pas de ROM personnalisée pour votre appareil. Dans ce cas, il est extrêmement douteux que le code source du noyau qu'ils ont publié (s'il y en a un) ait reçu la moindre maintenance depuis sa publication, ou même qu'il compile sans modifications. Si vous ne voyez personne d'autre maintenir quoi que ce soit (noyaux, ROM, recoveries) pour votre appareil, alors il sera difficile, voire impossible, de transformer cet appareil en un Nethunter complet.
Une note sur les versions du noyau
Imaginons qu'il existe des ROM personnalisées/noyaux/recoveries mis à jour régulièrement et maintenus pour votre appareil, mais simplement pas de noyau Nethunter. Dans ce cas, vous devriez pouvoir mener à bien ce processus, mais le processus variera selon la version du noyau Linux utilisée par votre appareil.
Les informations de ce guide sont basées sur mon expérience de modification des noyaux 4.14.x. Il existe des guides plus anciens qui parlent d'utiliser les chaînes d'outils GCC (au lieu de LLVM/clang, comme nous allons l'utiliser) qui s'appliquent aux noyaux 3.x. Si votre appareil utilise une version 5.x/6.x du noyau Linux, les informations de ce guide ne suffiront pas pour mener à bien ce processus. La méthode de compilation Android change tout le temps, et vous devriez chercher un guide qui couvre les noyaux GKI et l'utilisation de Bazel/Kleaf.
Un bon moyen de trouver des dépôts contenant le code source du noyau pour votre appareil est d'utiliser son nom de code. Chaque Android en a un, bien que certains fabricants (c.-à-d. OnePlus) s'amusent un peu plus que d'autres (c.-à-d. Samsung). Le nom de code de mon Xiaomi Poco X3 NFC est « surya », tandis que celui de mon Samsung A51 est « SM-A515F ». En général, les dépôts de code source du noyau suivent la convention de nommage
android_kernel_FABRICANT_NOM_DE_CODE
où le fabricant est la société mère, c.-à-d. android_kernel_xiaomi_surya, pas android_kernel_poco_surya.
Cependant, il peut aussi y avoir des dépôts basés sur le SoC (system-on-a-chip) de votre appareil, parfois « unifiés » pour inclure les fichiers source d'autres appareils dotés du même SoC. C'est le cas pour le Samsung que j'ai mentionné, dont le dépôt source s'appelle android_kernel_samsung_exynos9611. Jetez un œil sur github/gitlab et voyez ce que vous pouvez trouver.