
Патчит бинарные файлы ядра Android ARMv8.3 для отключения проверки подписей драйверов, обеспечивая загрузку пользовательских модулей ядра для разработки и тестирования безопасности.
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