
Schritt-für-Schritt-Anleitung zum Erstellen benutzerdefinierter Kali-NetHunter-Kernel für Android: Quellcode-Beschaffung, Toolchain-Auswahl, Cross-Kompilierung und Flashen.
Das größte Hindernis für die meisten Menschen, die ein Nethunter-Gerät einrichten möchten, ist die Kernel-Anforderung. Wenn dein Gerät nicht bereits über einen vorgebauten (und gepflegten) Kernel verfügt, wirst du aufgefordert, selbst einen zu bauen. Es gibt bereits viele Dokumentationen zu diesem Prozess, aber meiner Erfahrung nach kann es schwierig sein zu wissen, was in deinem Fall zutrifft und was nicht.
Dieses Problem wird durch Arschlöcher Leute verschärft, die Anleitungen mit Clickbait-artigen Titeln wie „Bau einen Nethunter-Kernel für JEDES Android-Gerät!“ oder mit falschen Versprechungen wie „Lerne, in zehn Minuten einen Nethunter-Kernel zu kompilieren!“ schreiben. Es ist außerdem eine unglückliche Realität des Internets im Jahr 2025, dass viele Idioten Leute glauben, dass ChatGPT oder andere große Sprachmodelle autoritative Antworten auf ihre Fragen haben, obwohl diese Modelle in Wirklichkeit nur Informationen besitzen, die sie von den zuvor genannten Arschlöchern eingesammelt haben.
Ich schreibe diesen Leitfaden so gründlich und ehrlich wie möglich. Er ist jedoch nicht dazu gedacht, das einzige Dokument zu sein, das du für diesen Prozess lesen musst – sicherlich wirst du Fragen haben, die dieses Dokument nicht beantworten kann. Ich möchte dich ermutigen, nach Antworten auf diese Fragen in der relevanten Softwaredokumentation zu suchen und NICHT auf YouTube oder bei ChatGPT.
Bevor du mit irgendetwas in diesem Prozess beginnst, solltest du bereits:
apt update && apt upgrade -y (optional: Metapakete hinzugefügt)Um diesen Prozess abzuschließen, benötigst du:
cd, rm, ls, mkdir, find, diff, grep, usw.)vim für die Coolen, sonst nano)build-devel bei Arch-basierten Distributionen, build-essential bei Debian-basierten) – ich würde außerdem empfehlen, Perl + Python3 zu installieren, da einige Kernel-Makefiles diese benötigenWird das bei meinem Gerät möglich sein?
Der Linux-Kernel ist unter der GNU General Public License 2.0 lizenziert, einer Copyleft-Lizenz. Das bedeutet, dass der Quellcode des Linux-Kernels frei verbreitet wird und du den Quellcode nach Belieben ändern darfst (wie es jeder Android-Hersteller getan hat), ABER dein resultierender Quellcode muss ebenfalls frei verbreitet werden.
Zur absoluten Überraschung von niemandem missachten viele der gigantischen Konzerne, die GPL-lizenzierten Code verwenden, die Bedingungen dieser Lizenz. Sie weigern sich entweder, ihren Quellcode zu verbreiten, oder veröffentlichen nur einen Teil davon (meist kaputt, veraltet und mit eingebetteten Binärblobs). Wenn für den Kernel deines Geräts kein Quellcode verfügbar ist, gibt es keine Möglichkeit, einen Nethunter-Kernel dafür zu erstellen.
Deine Fähigkeit, den Bootloader zu entsperren und eine Custom-ROM zu installieren, hängt ebenfalls stark von den Launen deines Geräteherstellers ab. Selbst wenn das Entsperren des Bootloaders erlaubt ist und du dein Telefon mit Magisk rooten konntest: Wenn der Hersteller keine Device Trees veröffentlicht, gibt es wahrscheinlich keine Custom-ROMs für dein Gerät. In diesem Fall ist es äußerst zweifelhaft, dass der von ihm veröffentlichte Kernel-Quellcode (falls vorhanden) seit seiner Veröffentlichung gewartet wurde oder dass er sich überhaupt ohne Änderungen bauen lässt. Wenn du niemanden siehst, der irgendetwas (Kernel, ROMs, Recoveries) für dein Gerät pflegt, wird es schwierig, wenn nicht unmöglich sein, dieses Gerät in ein vollwertiges Nethunter zu verwandeln.
Eine Anmerkung zu Kernel-Versionen
Nehmen wir an, es gibt regelmäßig aktualisierte und gepflegte Custom-ROMs/Kernel/Recoveries für dein Gerät, aber einfach keinen Nethunter-Kernel. In diesem Fall solltest du diesen Prozess abschließen können, aber der Prozess variiert je nachdem, welche Version des Linux-Kernels dein Gerät verwendet.
Die Informationen in diesem Leitfaden basieren auf meiner Erfahrung mit der Änderung von 4.14.x-Kerneln. Es gibt ältere Anleitungen, die von GCC-Toolchains (anstatt LLVM/clang, wie wir sie verwenden werden) sprechen und auf 3.x-Kernel zutreffen. Wenn dein Gerät eine 5.x/6.x-Version des Linux-Kernels verwendet, reichen die Informationen in diesem Leitfaden nicht aus, um diesen Prozess abzuschließen. Die Android-Baumethode ändert sich ständig, und du solltest nach einem Leitfaden suchen, der GKI-Kernel und die Verwendung von Bazel/Kleaf abdeckt.
Eine gute Möglichkeit, Repos mit dem Kernel-Quellcode für dein Gerät zu finden, ist die Verwendung seines Codenamens. Jedes Android-Gerät hat einen, auch wenn einige Hersteller (z. B. OnePlus) dabei etwas mehr Spaß haben als andere (z. B. Samsung). Der Codename meines Xiaomi Poco X3 NFC ist „surya“, während der Codename meines Samsung A51 „SM-A515F“ ist. Typischerweise folgen Kernel-Quell-Repos der Namenskonvention android_kernel_MANUFACTURER_CODENAME, wobei der Hersteller das Mutterunternehmen ist, also android_kernel_xiaomi_surya, nicht android_kernel_poco_surya.
Es kann jedoch auch Repos geben, die auf dem SoC (System-on-a-Chip) deines Geräts basieren, manchmal „unified“ (vereinheitlicht), um Quelldateien für andere Geräte mit demselben SoC zu enthalten. Das ist bei dem von mir erwähnten Samsung der Fall, dessen Quell-Repo android_kernel_samsung_exynos9611 heißt. Schau dich auf github/gitlab um und sieh, was du finden kannst.