
فتح أداة تحميل الإقلاع لجهاز ZTE Blade V40 Vita (P606F02 / Unisoc UMS9230 / UFS) عبر CVE-2022-38694 - نصوص برمجية لـ Linux، وإصلاح تعليق FBE بعد الفتح، والمأزقان اللذان لا يوثقهما أحد
ملاحظات وسكربتات Linux لفتح القفل باستخدام
CVE-2022-38694. تم ذلك على جهازي
EEA_P606F02 الذي يعمل بنظام MyOS11.0.13_8045_EEA.
هناك أمران يحددان نجاح العملية، ولا يوجد أي منهما موثّق في أي مكان:
SEND fdl2-dl.bin → connection closed). اضغط على VOL_UP + VOL_DOWN فقط.
اضغط على POWER مرة واحدة إذا احتجت إلى إعادة تعيين.misc المعتاد لـ BCB لا
يفعل شيئًا — أداة تحميل الإقلاع هذه تتجاهله. امسح userdata + metadata عبر BROM بدلاً من ذلك.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 الأصلي. لا تتوقف في المنتصف.
مفاتيح FBE في trustos مختومة بحالة القفل، لذا لا يمكن لـ /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.
إعادة القفل: ممكنة (تصفير رمز miscdata عبر BROM) لكنها بلا جدوى أمنيًا —
فثغرة 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 ميغابايت. المحمّلات الخاطئة قد تمسح الهاتف |
| النظام / الفتحة | Android 11، MyOS11.0.13 · الفتحة _b |