
فتح أداة تحميل الإقلاع لجهاز 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 بدلاً من ذلك.| الطراز | 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 |
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 بدون قسم recovery. استعلم دائمًا عن الفتحة النشطة قبل
الوميض:
adb shell getprop ro.boot.slot_suffix
يجب إعادة توقيع مخرجات Magisk لصورة الإقلاع الأصلية B06 قبل تثبيتها. الإجراء المُختبَر على Windows لتثبيت النسخة الأصلية وتوقيع AVB والاستعادة موجود في docs/windows-flash-root.md. إذا أفسدت صورة إقلاع فسيظل BROM يعمل. خريطة الأقسام: docs/partition-table.md.
إعادة القفل: ممكنة (تصفير رمز miscdata عبر BROM) لكنها بلا جدوى أمنيًا —
فثغرة BootROM دائمة، ويمكن لأي شخص إعادة فتح القفل باستخدام هذه الخطوات نفسها.
الفضل يعود إلى CVE-2022-38694 لصالح NCC Group. الأدوات من TomKing062. السكربتات هنا تحت رخصة MIT. إنها تمحو بيانات هاتفك؛ وهذه مسؤوليتك.