
CVE-2022-38694 के माध्यम से ZTE Blade V40 Vita (P606F02 / Unisoc UMS9230 / UFS) बूटलोडर को अनलॉक करना - Linux स्क्रिप्ट्स, FBE पोस्ट-अनलॉक हैंग फिक्स, और दो जाल जिन्हें कोई डॉक्यूमेंट नहीं करता
CVE-2022-38694 के साथ अनलॉक करने के लिए Linux नोट्स और स्क्रिप्ट्स। मेरे EEA_P606F02 पर MyOS11.0.13_8045_EEA चलाते हुए किया गया।
दो चीज़ें तय करती हैं कि यह काम करेगा या नहीं और दोनों में से कोई भी कहीं लिखी नहीं है:
SEND fdl2-dl.bin → connection closed)। केवल VOL_UP + VOL_DOWN दबाए रखें। अगर रीसेट चाहिए तो POWER को एक बार टैप करें।misc वाइप BCB कुछ नहीं करता — यह बूटलोडर इसे नज़रअंदाज़ करता है। इसके बजाय BROM के ज़रिए userdata + metadata मिटाएँ।git clone --recursive https://github.com/TomKing062/CVE-2022-38694_unlock_bootloader
cd CVE-2022-38694_unlock_bootloader
gcc chsize.c -o chsize
gcc gen_spl-unlock.c -o gen_spl-unlock
cd spreadtrum_flash && make # spd_dump
chsize, gen_spl-unlock, spd_dump और UFS पैकेज की चार फ़ाइलें (fdl1-dl.bin, fdl2-dl.bin, fdl2-cboot.bin, misc-wipe.bin) एक ही वर्किंग डायरेक्टरी में रखें। नीचे दी गई स्क्रिप्ट्स उसी डायरेक्टरी के सापेक्ष चलती हैं।
फ़ोन बंद → VOL_UP + VOL_DOWN दबाए रखें → USB प्लग करें → दबाए रखें। आपको USB 1782:4d00 चाहिए:
for d in /sys/bus/usb/devices/*/; do
[ "$(cat $d/idVendor 2>/dev/null)" = 1782 ] && echo "BROM: $(basename $d)"
done
19d2:135x फ़ोन का सामान्य USB है, BROM नहीं। बूट-लूपिंग फ़ोन ठीक है — हर रीसेट BootROM को फिर से चलाता है, जो रीसेट पर कीज़ को फिर से सैंपल करता है।
एक बार में एक स्टेप, हर बार से पहले BROM में फिर से प्रवेश करें। चलते समय वॉल्यूम कीज़ दबाए रखें।
cd /path/to/working-dir
sudo /path/to/repo/scripts/unlock.sh 1 # back up SPL + uboot_b, erase SPL (won't boot after this)
sudo /path/to/repo/scripts/unlock.sh 2 # prep images locally, phone not needed
sudo /path/to/repo/scripts/unlock.sh 3 # write fdl2-cboot.bin to uboot_b
sudo /path/to/repo/scripts/unlock.sh 4 # the unlock. ends in "connection closed" = success
sudo /path/to/repo/scripts/unlock.sh 5 # read miscdata @8192: 64 zeros = locked, string+2 hashes = unlocked
sudo /path/to/repo/scripts/unlock.sh 6 # restore uboot/SPL. never skip this
स्टेप 4 EXEC FDL1 → टाइमआउट → connection closed पर समाप्त होता है। यह अनलॉक के काम करने का संकेत है, फेल होने का नहीं। अगर स्टेप 5 ज़ीरो दिखाए, तो स्टेप 4 फिर से चलाएँ।
स्टेप 3 के बाद फ़ोन Android बूट नहीं कर पाता (पेलोड असली बूटलोडर नहीं है) — स्टेप 6 आपके स्टॉक uboot_bak.bin को वापस रखता है। बीच में रुकें नहीं।
trustos में FBE कीज़ लॉक स्टेट से सील हैं, इसलिए /data कभी माउंट नहीं हो सकता। वाइप करना अनिवार्य है:
sudo /path/to/repo/scripts/fix-post-unlock-hang.sh
वॉल्यूम कीज़ दबाए रखें, यह खुद को तब तक दोबारा तैयार करता है जब तक BROM न पकड़ ले। userdata + metadata मिटाता है, BCB लिखता है, रीसेट करता है। तीसरी कोशिश में पकड़ा और एक मिनट से कम समय लिया।
adb shell getprop ro.boot.flash.locked # 0
adb shell getprop ro.boot.verifiedbootstate # orange
adb shell getprop ro.boot.vbmeta.device_state # unlocked
इस डिवाइस पर fastboot getvar बेकार है (हर चीज़ के लिए खाली लौटाता है), इसलिए पुष्टि के लिए वहाँ मत देखें।
VAB डिवाइस, स्लॉट b, कोई recovery पार्टीशन नहीं:
fastboot flash boot_b magisk_patched.img
बूट इमेज ब्रिक करें और आप वापस BROM में हैं, जो अभी भी काम करता है। पार्टीशन मैप: docs/partition-table.md।
री-लॉकिंग: संभव है (BROM के ज़रिए miscdata टोकन ज़ीरो करें) लेकिन सुरक्षा के लिए बेमतलब — BootROM बग स्थायी है, कोई भी इन्हीं स्टेप्स से दोबारा अनलॉक कर सकता है।
श्रेय: CVE-2022-38694 NCC Group का है। टूलिंग TomKing062 की है। यहाँ की स्क्रिप्ट्स MIT हैं। यह आपका फ़ोन वाइप करता है; उसकी ज़िम्मेदारी आपकी है।
| मॉडल | ZTE Blade V40 Vita — ZTE 8045 / EEA_P606F02 |
| SoC / स्टोरेज | Unisoc UMS9230 / UFS |
| पैकेज | ums9230_universal_unlock_UFS। UFS fdl2-*.bin 934088 बाइट्स के हैं; eMMC वाले ~1 MB के हैं। गलत लोडर फ़ोन को वाइप कर सकते हैं |
| OS / स्लॉट | Android 11, MyOS11.0.13 · स्लॉट _b |