AndroidDriveSignityAndroidDriveSignity 是一个 Python 脚本,用于修补 Android 内核(ARMv8.3)文件,使驱动程序无需经过各种验证检查(尤其是签名验证)即可加载。该工具旨在通过允许开发者绕过内核内置的、阻止非官方或修改过的驱动程序加载的安全措施,来简化开发和测试流程。
check_modinfo、check_version 和 module_sig_check),以绕过驱动程序签名验证机制。准备必要的文件: 确保你拥有内核二进制文件(kernel_file_path)、kallsyms 符号表文件(kallsyms_file_path)以及修补后内核的输出路径(output_file_path)。
执行 AndroidDriveSignity: 在终端或命令提示符中导航到脚本目录并运行:
python AndroidDriveSignity.py <kernel_file_path> <kallsyms_file_path> <output_file_path>
adb shell
su
echo 0 > /proc/sys/kernel/kptr_restrict
exit
exit
adb shell su -c "cat /proc/kallsyms > /data/local/tmp/kallsyms"
adb pull /data/local/tmp/kallsyms
如果存在两个分区,优先尝试 "boot_a":
adb shell su -c "dd if=$(readlink /dev/block/by-name/boot_a) of=/data/local/tmp/boot.img"
如果只有一个分区,那么就是 "boot.img":
adb shell su -c "dd if=$(readlink /dev/block/by-name/boot) of=/data/local/tmp/boot.img"
然后,将 boot 镜像拉取到本地机器:
adb pull /data/local/tmp/boot.img
最后,使用 magiskboot 从 boot.img 中提取内核文件。
magiskboot --unpack boot.img
你将获得两个文件:一个是 kernel(你的内核文件),另一个是 ramdisk.cpio。
python AndroidDriveSignity.py kernel kallsyms new-kernel
move/mv new-kernel kernel
magiskboot --repack boot.img
adb reboot bootloader
fastboot flash boot new-boot.img
fastboot reboot
adb push demo.ko /data/local/tmp
adb shell su -c insmod /data/local/tmp/demo.ko
adb shell su -c "lsmod |grep demo"
adb shell su -c rmmod /data/local/tmp/demo.ko
你可以在此 获取一个 Android 驱动示例
LinuxAndroid