
يصحّح ثنائيات نواة Android لمعمارية ARMv8.3 لتعطيل التحقق من توقيع برامج التشغيل، مما يتيح تحميل وحدات kernel مخصصة للتطوير واختبار الأمان.
AndroidDriveSignityAndroidDriveSignity هو سكربت بلغة بايثون مصمم لترقيع ملفات نواة 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"
ثم اسحب صورة الإقلاع إلى جهازك المحلي:
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