
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 image को अपनी स्थानीय मशीन पर खींचें (pull करें):
adb pull /data/local/tmp/boot.img
अंत में, boot.img से कर्नेल फ़ाइल निकालने के लिए magiskboot का उपयोग करें।
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