
Sblocco del bootloader dello ZTE Blade V40 Vita (P606F02 / Unisoc UMS9230 / UFS) tramite CVE-2022-38694 - Script Linux, la correzione del blocco post-sblocco FBE e le due trappole che nessuno documenta
Note e script per Linux per lo sblocco con
CVE-2022-38694. Eseguito sul mio
EEA_P606F02 con MyOS11.0.13_8045_EEA.
Due cose decidono se funziona e nessuna delle due è documentata da nessuna parte:
SEND fdl2-dl.bin → connection closed). Tieni premuto solo VOL_UP + VOL_DOWN.
Premi POWER una volta se hai bisogno di un reset.misc non
fa nulla — questo bootloader lo ignora. Cancella userdata + metadata via 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
Metti chsize, gen_spl-unlock, spd_dump e i quattro file del pacchetto UFS
(fdl1-dl.bin, fdl2-dl.bin, fdl2-cboot.bin, misc-wipe.bin) in un'unica directory di lavoro.
Gli script seguenti vengono eseguiti su quella directory.
Telefono spento → tieni premuto VOL_UP + VOL_DOWN → collega l'USB → continua a tenere premuto. Vuoi 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 è l'USB normale del telefono, non BROM. Un telefono in boot-loop va bene — ogni reset
riesegue il BootROM, che ricampiona i tasti al reset.
Un passo alla volta, rientrando in BROM prima di ognuno. Tieni premuti i tasti del volume mentre viene eseguito.
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
Il passo 4 termina con EXEC FDL1 → timeout → connection closed. Questo è lo sblocco che funziona, non
che fallisce. Se il passo 5 mostra zeri, esegui di nuovo il passo 4.
Il passo 3 lascia il telefono incapace di avviare Android (il payload non è un vero bootloader) — il passo 6
rimette il tuo uboot_bak.bin originale. Non fermarti nel mezzo.
Le chiavi FBE in trustos sono sigillate allo stato di lock, quindi /data non può mai essere montato. Il wipe è
obbligatorio:
sudo /path/to/repo/scripts/fix-post-unlock-hang.sh
Tieni premuti i tasti del volume, si riarma da solo finché non cattura il BROM. Cancella userdata + metadata,
scrive il BCB, resetta. Catturato al terzo tentativo e ha impiegato meno di un minuto.
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 è inutile su questo dispositivo (restituisce vuoto per tutto), quindi non cercare
lì la conferma.
Dispositivo VAB, slot b, nessuna partizione recovery:
fastboot flash boot_b magisk_patched.img
Se brikki un'immagine di boot torni in BROM, che funziona ancora. Mappa delle partizioni: docs/partition-table.md.
Ri-blocco: possibile (azzerare il token miscdata via BROM) ma inutile per la sicurezza —
il bug del BootROM è permanente, chiunque può ri-sbloccare con questi stessi passi.
Crediti: CVE-2022-38694 è di NCC Group. Il tooling è di TomKing062. Gli script qui sono MIT. Cancella il tuo telefono; è una tua responsabilità.
| Modello | ZTE Blade V40 Vita — ZTE 8045 / EEA_P606F02 |
| SoC / storage | Unisoc UMS9230 / UFS |
| Pacchetto | ums9230_universal_unlock_UFS. I fdl2-*.bin per UFS sono 934088 byte; quelli per eMMC sono ~1 MB. Loader sbagliati possono cancellare il telefono |
| OS / slot | Android 11, MyOS11.0.13 · slot _b |