5 votes

Comment déverrouiller le bootloader du OnePlus One ?

J'ai un OnePlus One avec CyanogenMod 12 d'usine et j'ai décidé de mettre à jour vers CM 13 (nightly build).
Pour y parvenir, j'ai procédé comme suit depuis OSX :

  1. Déverrouiller le bootloader (fastboot oem unlock)
  2. Démarrer TWRP (fastboot boot twrp-2.8.6.0-bacon.img)
  3. Depuis TWRP j'ai installé CM 13 (cm-13.0-20160105-NIGHTLY-bacon.zip) et GAPPS (open_gapps-arm-6.0-pico-20160105.zip)
  4. J'ai également installé la dernière version de Cyanogen Recovery (cm-13.0-20160105-NIGHTLY-bacon-recovery.img)
  5. Pour une raison quelconque, j'ai eu envie de laisser les choses telles qu'elles étaient, et j'ai reverrouillé le chargeur de démarrage (fastboot oem lock).

Maintenant, je ne peux plus déverrouiller le bootloader afin de faire des choses comme installer/amorcer un outil de récupération personnalisé (comme TWRP).
L'exécution de " fastboot oem unlock " ne fait que redémarrer l'appareil en mode récupération, mais le chargeur de démarrage reste verrouillé :

$fastboot oem device-info
...
(bootloader)    Device tampered: true
(bootloader)    Device unlocked: false
(bootloader)    Charger screen enabled: false
(bootloader)    Display panel:
(bootloader)    console_enabled: 0
(bootloader)    exec_console_unconsole: 0

Une solution serait appréciée, mais je suis également curieux de savoir pourquoi il se comporte ainsi après un verrouillage manuel.
Comme suggéré par @Firelord, il semble y avoir une solution pour les utilisateurs de Windows ici : https://forums.oneplus.net/threads/important-bootloader-wont-unlock-after-relock.324398/

2voto

codentary Points 171

Dans ma recherche, je suis tombé sur une intéressante filetage c'était lié, mais pour installer leur script, vous devez avoir un outil de récupération personnalisé installé ou être capable de démarrer dans celui-ci (par exemple, fastboot boot recovery.img).

J'avais l'outil de récupération Cyanogen et je ne pouvais pas démarrer dans TWRP à cause de mon problème actuel (je ne peux plus déverrouiller le bootloader), alors j'ai creusé dans leur script et a utilisé le contenu destiné à réinitialiser le serrure y d'autoprotection bits du chargeur de démarrage.

Maintenant, je pourrais exécuter les commandes manuellement si j'avais Accès à la racine et heureusement, dans la ROM CM 13, vous pouvez l'activer à partir du menu "Options du développeur".

Voici les commandes que j'ai utilisées après avoir activé l'accès Root pour ADB :

adb root     # restart the adbd daemon with root permissions
adb shell    # run remote shell interactively
dd bs=1 count=1 skip=1048080 if=/dev/block/platform/msm\_sdcc.1/by-name/aboot 2>/dev/null | xxd | cut -c 10-     # print the lock bit state (00 - locked, 01 - unlocked)
echo -ne "\\x01" | dd bs=1 count=1 seek=1048080 of=/dev/block/platform/msm\_sdcc.1/by-name/aboot                  # set the lock bit to unlocked(01)
dd bs=1 count=1 skip=1048084 if=/dev/block/platform/msm\_sdcc.1/by-name/aboot 2>/dev/null | xxd | cut -c 10-     # print the tamper bit state (00 - untampered, 01 - tampered)
echo -ne "\\x00" | dd bs=1 count=1 seek=1048084 of=/dev/block/platform/msm\_sdcc.1/by-name/aboot                  # set the tamper bit to untampered(00)

Résultat :

$fastboot oem device-info
...
(bootloader)    Device tampered: false
(bootloader)    Device unlocked: true
(bootloader)    Charger screen enabled: false
(bootloader)    Display panel:
(bootloader)    console_enabled: 0
(bootloader)    exec_console_unconsole: 0

Je suppose que le bit de tamper est modifié la première fois que vous déverrouillez le bootloader (fastboot oem unlock) et après que vous le verrouillez à nouveau (fastboot oem lock) il ne vous permettra pas de le re-déverrouiller.

0voto

Corgano Points 119

Si xxd y cut n'existent pas dans les emplacements disponibles dans $PATH (comme c'était mon cas), le préfixe busybox dans ces commandes.

# print the lock bit state (00 - locked, 01 - unlocked)
dd bs=1 count=1 skip=1048080 if=/dev/block/platform/msm_sdcc.1/by-name/aboot 2>/dev/null | busybox xxd | busybox cut -c 10-     
# set the lock bit to unlocked(01)
echo -ne "\x01" | dd bs=1 count=1 seek=1048080 of=/dev/block/platform/msm_sdcc.1/by-name/aboot                  
# print the tamper bit state (00 - untampered, 01 - tampered)
dd bs=1 count=1 skip=1048084 if=/dev/block/platform/msm_sdcc.1/by-name/aboot 2>/dev/null | busybox xxd | busybox cut -c 10-     
 set the tamper bit to untampered(00)
echo -ne "\x00" | dd bs=1 count=1 seek=1048084 of=/dev/block/platform/msm_sdcc.1/by-name/aboot

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X