
Déverrouillage du bootloader du ZTE Blade V40 Vita (P606F02 / Unisoc UMS9230 / UFS) via CVE-2022-38694 - scripts Linux, le correctif du blocage post-déverrouillage FBE, et les deux pièges que personne ne documente
Notes et scripts Linux pour le déverrouillage avec
CVE-2022-38694. Réalisé sur mon
EEA_P606F02 sous MyOS11.0.13_8045_EEA.
Deux choses déterminent si cela fonctionne et aucune des deux n'est documentée nulle part :
SEND fdl2-dl.bin → connection closed). Maintenir VOL_UP + VOL_DOWN uniquement.
Appuyer une fois sur POWER si vous avez besoin d'un reset.misc ne
fait rien — ce bootloader l'ignore. Effacer userdata + metadata via BROM à la place.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
Placez chsize, gen_spl-unlock, spd_dump et les quatre fichiers du paquet UFS
(fdl1-dl.bin, fdl2-dl.bin, fdl2-cboot.bin, misc-wipe.bin) dans un même répertoire de travail.
Les scripts ci-dessous s'exécutent depuis ce répertoire.
Téléphone éteint → maintenir VOL_UP + VOL_DOWN → brancher l'USB → continuer à maintenir. Vous voulez l'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 est l'USB normal du téléphone, pas le BROM. Un téléphone en boot-loop n'est pas un problème — chaque reset
relance le BootROM, qui ré-échantillonne les touches au reset.
Une étape à la fois, en ré-entrant en BROM avant chacune. Gardez les touches de volume maintenues pendant l'exécution.
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
L'étape 4 se termine par EXEC FDL1 → timeout → connection closed. C'est le déverrouillage qui fonctionne, pas
un échec. Si l'étape 5 affiche des zéros, relancez l'étape 4.
L'étape 3 laisse le téléphone incapable de démarrer Android (le payload n'est pas un vrai bootloader) — l'étape 6
remet votre uboot_bak.bin d'origine. Ne vous arrêtez pas entre les deux.
Les clés FBE dans trustos sont scellées à l'état de verrouillage, donc /data ne peut jamais être monté. L'effacement est
obligatoire :
sudo /path/to/repo/scripts/fix-post-unlock-hang.sh
Maintenez les touches de volume, il se ré-arme jusqu'à ce qu'il attrape le BROM. Efface userdata + metadata,
écrit le BCB, redémarre. Attrapé à la troisième tentative et a pris moins d'une minute.
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 est inutile sur cet appareil (renvoie du vide pour tout), donc ne cherchez pas
là pour confirmation.
Appareil VAB, slot b, pas de partition recovery :
fastboot flash boot_b magisk_patched.img
Briquez une image de boot et vous êtes de retour en BROM, qui fonctionne toujours. Table de partitions : docs/partition-table.md.
Re-verrouillage : possible (remettre à zéro le token miscdata via BROM) mais inutile pour la sécurité —
le bug du BootROM est permanent, n'importe qui peut re-déverrouiller avec ces mêmes étapes.
Crédit : CVE-2022-38694 appartient à NCC Group. L'outillage est celui de TomKing062. Les scripts ici sont sous MIT. Cela efface votre téléphone ; c'est votre responsabilité.
| Modèle | ZTE Blade V40 Vita — ZTE 8045 / EEA_P606F02 |
| SoC / stockage | Unisoc UMS9230 / UFS |
| Paquet | ums9230_universal_unlock_UFS. Les fdl2-*.bin UFS font 934088 octets ; ceux pour eMMC font ~1 Mo. De mauvais loaders peuvent effacer le téléphone |
| OS / slot | Android 11, MyOS11.0.13 · slot _b |