Android Loadable Kernel Modules – werden hauptsächlich zum Umkehren und Debuggen auf kontrollierten Systemen/Emulatoren verwendet.
Seien Sie vorsichtig, wenn Sie diese in einer produktionsähnlichen Umgebung verwenden. Sie wurden nur in meinen persönlichen Qemu-Umgebungen getestet. Einige sind (schlechte) Versuche, verschiedene Methoden auszuprobieren, Dinge zu verknüpfen, um das Ergebnis zu sehen. Die Ergebnisse können unerwartet sein und dazu führen, dass QEMU-Umgebungen langsamer werden, da Vorgänge im Kernel langsamer ausgeführt werden, als Sie sollten. Jemand hilft Ihrer armen Seele, wenn Sie versuchen, all dies auf einem echten Gerät auszuführen.
Bearbeiten Sie zuvor das Makefile und stellen Sie sicher, dass die Pfade für Ihr System korrekt sind. Es werden Annahmen getroffen, wie Ihre Umgebungen eingerichtet sind. Sie benötigen außerdem die „sys_call_table“ aus dem kompilierten Kernel, die automatisch von einem Skript erfasst wird. Sie können diesen Wert bei Bedarf manuell in android_module.h einfügen.
Ich habe einen Blog über das Einrichten einer OSX-Umgebung zum Kompilieren eines Kernels geschrieben, der LKMs ausführen kann. Eine schnelle und einfache Anleitung finden Sie hier. Kompilieren eines Android-Emulatorkernels für ladbare Kernelmodule