Suppression du chiffrement de la récupération

10

J'utilise CyanogenMod 12 tous les soirs sur mon G900T (klte). Tout fonctionne très bien, sauf le mot de passe de cryptage par défaut, ce qui provoque la boucle de démarrage de mon téléphone.

J'ai formaté des données et effectué des réinitialisations d'usine, mais /dataest toujours crypté et apparaît comme /dev/dm-0.

Existe-t-il une commande que je peux faire pour supprimer le cryptage? Je me fiche des données, je veux que tout soit parti. Je veux juste revenir à avoir /dataet le stockage interne stocké en clair sur le disque pour pouvoir démarrer dans CyanogenMod.

Comment puis-je utiliser adb shellpour supprimer le cryptage sur ces partitions?

Naftuli Kay
la source
Quelle récupération avez-vous flashé?
Jordy19
1
Projet de rétablissement de la victoire de l'équipe (TWRP)
Naftuli Kay
J'ai lu ici que vous pouvez vous débarrasser du cryptage en flashant une nouvelle ROM, je ne sais pas si cela fonctionne dans votre cas, mais cela vaut la peine d'essayer.
Jordy19
Ça n'a pas marché. J'essaie de manuellement dd if=/dev/zero, puis de formater la partition de données.
Naftuli Kay

Réponses:

12

La réponse pour moi impliquait un certain nombre de choses, mais je pense que l'une est vraiment la clé.

Utilisez la commande "recovery", bro

Cela utilise le programme CyanogenMod / AOSP recoverypour effacer les données utilisateur et désactiver le cryptage. (trouvé dans cette réponse sur Stack Overflow ) Démarrez votre récupération, puis exécutez votre ordinateur

adb shell recovery --wipe_data --set_filesystem_encryption=off

Votre téléphone redémarrera dans le système et les choses devraient, espérons-le, fonctionner comme prévu.

Si vous devez l'exécuter à partir du téléphone lui-même (c'est-à-dire que vous n'avez pas d'ordinateur à proximité adbavec):

recovery --wipe_data --set_filesystem_encryption=off

Il doit effacer, désactiver le cryptage et redémarrer le système.

Si tout le reste échoue

N'utilisez cette méthode que si ce qui précède ne fonctionne pas ou ne s'applique pas à votre scénario.

Détruisez l'en-tête LUKS pour le chiffrement du système de fichiers

  1. Vous avez besoin d'une récupération qui vous permettra de passer à un shell en tant que root, donc TWRP fonctionne dans mon cas.
  2. Localisez la userdatapartition en regardant autour /dev/block/platform/*/by-name/userdata.
  3. Écrivez une tonne de zéros au début de cette partition pour effacer l'en-tête LUKS:

    dd if=/dev/zero of=$PATH_TO_YOUR_USERDATA bs=4096 count=512
    

    Je ne revendique aucune responsabilité pour ce que vous faites avec cette commande. Si vous échouez, vous pouvez briquer votre téléphone en remplaçant votre chargeur de démarrage ou d'autres partitions critiques. Assurez-vous que cela $PATH_TO_YOUR_USERDATApointe vers la vraie userdatapartition. Vérifiez la taille de cette partition pour vous assurer que vous essuyez la bonne chose. J'ai un téléphone de 16 Go et userdata10,4 Go, le reste étant dédié à system, mais votre téléphone sera différent.

  4. Reformatez cette partition en ext4utilisant make_ext4fs $PATH_TO_YOUR_USERDATA.

    Il peut y avoir des erreurs, mais elles concernent généralement le fait de ne pas pouvoir trouver la «carte SD» interne, ce n'est pas grave.

Après tout cela, redémarrez la récupération, puis exécutez une réinitialisation d'usine juste pour être sûr.

Pourquoi ça marche?

Une simple réinitialisation d'usine ne semblait rien faire pour moi, le téléphone y verrait toujours une partition LUKS. Je suppose que c'est parce que l'en-tête LUKS existait toujours au niveau du disque et que la partition ext4 était juste superposée dessus. Pour une raison quelconque, Android a priorisé la détection d'une partition LUKS sur une partition ext4 et tente (et réussit) de monter cela.

Où aller en partant d'ici

(Si vous savez ce que vous faites, vous pouvez également vouloir effacer systemet installer votre ROM à partir de zéro. Encore une fois, je ne prends aucune responsabilité pour tout ce que vous faites avec les informations contenues dans ce message. )

A travaillé pour moi sur un klteG900T (Samsung Galaxy S5 T-Mobile). Votre kilométrage peut varier.

Naftuli Kay
la source
Ce genre de travail (l'option dd / make_ext4fs). - Lorsque j'ai redémarré, il demandait toujours un mot de passe dans la récupération TWRP, et les options de format avancées ne fonctionnaient pas - mais quand j'ai fait un format de partition de données normal, cela a fonctionné. - J'ai pu redémarrer en récupération sans aucune invite de mot de passe. :-)
BrainSlugs83
1
Naftuli, vous êtes une bouée de sauvetage! J'ai mon bord S6 (SM-G925F) en boucle de démarrage mort, car il n'a pas été en mesure de crypter probablement à cause de la récupération personnalisée (TWRP), je pense que le cryptage est effectué via la récupération de stock. Il n'arrêtait pas de dire "le cryptage n'était pas terminé. Réinitialisation d'usine et redémarrage". J'ai même essayé de flasher la récupération de stock, il n'a pas démarré (probablement mauvais mais étiqueté pour mon appareil). Le rom de stock entier n'était pas bon non plus (n'a pas pu trouver le bon, celui que j'ai trouvé a été rejeté par odin). Enfin, j'ai fait tout ce que vous avez dit ici, et le ddcommandement a finalement fait l'affaire. Merci beaucoup!
Mixaz
La recoverycommande ne semblait pas fonctionner pour moi. Je l'ai appelé ADB Shellen TWRPrécupération. Mon principal problème est que le débogage USB n'est pas activé et /systemest corrompu, donc je ne peux pas le démarrer et l'activer. De plus, le chiffrement du disque est activé et semble m'empêcher de fonctionner fastboot flash system system.zipcorrectement.
anon58192932
1
Tu m'as sauvé la journée, ou mieux ma nuit. Après trois heures à essayer d'installer lineageOS 14.1 sur mon Huawei P8 Lite et à obtenir toujours le message d'échec du chiffrement, avec la ddcommande à la fin, j'ai pu conclure l'opération. Je vous remercie!
Matteo De Felice
ls -l /dev/block/platform/soc.0/7824900.sdhci/by-name/userdatadit: lrwxrwxrwx 1 root root 21 Sep 16 06:04 /dev/block/platform/soc.0/7824900.sdhci/by-name/userdata -> /dev/block/mmcblk0p26 df -h /dev/block/mmcblk0p26dit: `` `La taille du système de fichiers utilisé disponible utilise% monté sur / dev / block / mmcblk0p26 10.5G 27.2M 10.5G 0% / data`` `` alors je l'ai fait: dd if=/dev/zero of=/dev/block/platform/soc.0/7824900.sdhci/by-name/userdata bs=4096 count=512 est-ce vrai?
LarS
8

Sur mon Moto G 3rd Gen (osprey), ni l'appel de récupération ni l'effacement de l'en-tête LUKS (au début et à la fin de la partition) ne fonctionnaient - j'avais encore besoin d'entrer le mot de passe de chiffrement lors du démarrage de Cyanogen Mod, puis j'étais coincé avec un message "erreur de chiffrement" .

J'ai finalement trouvé que ma récupération TWRP 3.0.1 avait une option "Formater les données" dans la section "Effacer". Cela effectue une réinitialisation d'usine complète qui désactive également le cryptage.

A fonctionné comme un charme. Si vous avez accès à une version TWRP décente (facilement flashée par exemple avec Flashify), essayez d'abord.

Unispezi
la source
1
Je vous remercie. Pourquoi opter pour une solution compliquée alors qu'une solution simple fonctionnera?
Peter Gordon
Mon seul problème avec cette option était que le texte implique qu'elle essuiera également votre carte SD. Si votre carte est facile d'accès, ce n'est pas vraiment un problème. : - |
zaTricky
1
@pgmann: l'option 'format data' est apparue il n'y a pas longtemps dans TWRP, c'est pourquoi. Bien sûr, il n'était pas là en 2014 lorsque ces réponses ont été fournies. En outre, l' ddapproche est utile lors du nettoyage du cryptage dans les scripts, car l'option 'formatage des données' n'est pas disponible dans les commandes TWRP, tandis que les commandes existantes ne peuvent pas effacer le cryptage. J'espère qu'ils ajouteront une telle commande à l'avenir ...
Mixaz
5

À condition que vous utilisiez TWRP ou similaire.

  • redémarrez sur TWRP (entrez le mot de passe) et effectuez une sauvegarde de la Datapartition sur un serveur externe SDouOTG Drive
  • redémarrer sur TWRP (annuler le mot de passe) et formater la partition de données sur f2fs
  • restaurer la sauvegarde effectuée à la première étape sur la Datapartition nouvellement créée
  • redémarrer le système
  • profitez d'Android avec toutes vos données enregistrées et le cryptage supprimé
ArtDeineka
la source
4

La solution d'essuyer manuellement l'en-tête LUKS fournie par Naftuli Tzvi Kay fonctionne très bien, sauf pour une chose. Je ne sais pas de quoi cela dépend, mais d'après mon expérience, Android conserve l'en-tête LUKS à la FIN de la partition. Et si c'est le cas avec votre appareil, alors exécutez

dd if=/dev/zero of=$PATH_TO_YOUR_USERDATA bs=4096 count=512

échouera à supprimer l'en-tête (pied de page?) car il n'efface que le début de la partition. On pourrait bien sûr effacer toute la partition, mais cela prendrait inutilement longtemps. Donc...

Pour effacer la fin de la partition (de toute taille), après avoir exécuté la commande ci-dessus, exécutez également cette commande:

dd bs=512 if=/dev/zero of=$PATH_TO_YOUR_USERDATA count=22048 seek=$((`blockdev --getsz $PATH_TO_YOUR_USERDATA` - 22048))
lockheed
la source
essuyer seulement l'en-tête a fonctionné OK pour moi (peut-être parce que le cryptage n'était pas terminé - je ne sais pas). Mais voter pour votre réponse à cause de votre faible karma))
Mixaz
4

Utilisez-vous une récupération personnalisée?

Si oui, faites-le après le démarrage d'une récupération personnalisée ( TWRP dans mon cas):

  1. Au démarrage de la récupération, NE déchiffrez PAS l'appareil . Appuyez simplement sur Annuler lorsqu'on vous demande le mot de passe ou le modèle.

  2. Essuyez la partition de données. (Sur TWRP après avoir glissé pour modifier le système: Effacer> Avancé> Vérifier: Données)

Cela effacera bien sûr tout dans la userdatapartition. La partition de données entière sera reformatée, y compris les clés de chiffrement .

Majal
la source
1
L'effacement de la partition de données supprime simplement l'en-tête du système de fichiers au début de la partition. Cela ne fonctionne pas car sur de nombreuses versions d'Android, l'en-tête LUKS / dm-crypt est à la fin du système de fichiers.
Naftuli Kay
1
L'as tu essayé? Parce que ça a juste fonctionné dans mon Nexus 9.
Majal
1
Je ne sais pas pourquoi quelqu'un a voté contre cette réponse, cela fonctionne, et c'est le moyen le plus simple de se débarrasser du cryptage
ArtDeineka
1
C'est ce que j'ai fini par faire - et cela a fonctionné. :)
zaTricky
1
Pareil ici. A fonctionné comme un charme.
Linus Kleen
1

Mes votes vont à @Naftuli Kay, et d'autres réponses utiles ici, mais j'ai quelques informations que je voudrais partager. C'est trop long pour un commentaire, alors que ce soit une réponse.

Depuis une certaine version de TWRP, il y a un élément 'formatage des données' sur l'écran Wipe. Il non seulement efface la partition / données, mais gère également le problème de cryptage FS. Dans mon cas, TWRP 3.0.2 sur Samsung J500H efface le chiffrement, et c'était le seul moyen, la réinitialisation d'usine ne fonctionne pas. CMR (celui qui est construit le long de ma rom CM 12.1 pour J500H) ne peut pas non plus effacer le cryptage.

--set_encrypted_filesystem=off ne fonctionnait pas non plus dans TWRP et CMR.

l'effacement des données via OpenRecoveryScript https://twrp.me/faq/openrecoveryscript.html ne fonctionne pas non plus

Android 3.0 a commencé à mapper / sdcard à / data / media, ils ont donc dû retravailler / effacer les données pour ne pas / data / media, et rm -rfest effectué à la place. Voir https://twrp.me/faq/datamedia.html pour plus de détails.

Lorsque vous effectuez le «formatage des données», vous pouvez voir dans le journal de récupération (/ cache / recovery / log ou / cache / recovery / last_log) les informations suivantes:

I:Successfully wiped crypto footer.

avant de formater / données avec make_ext4fs. Le code TWRP a un certain nombre de vérifications pour trouver où se trouve l'en-tête LUKS, et dans mon cas, il l'a trouvé dans le pied de page.

J'ai regardé la source TWRP et je n'ai pas trouvé de moyen de `` formater les données '' à partir de la ligne de commande (j'ai besoin d'effacer le stockage crypté d'une application dans une rom personnalisée), donc cette option n'est présente que dans l'interface utilisateur. Avec la seule exception - si TWRP est compilé avec TW_OEM_BUILDactivé, il sera « les données de format » sur réinitialisation d'usine, de compensation et de mise en forme en- tête Crypto partition de données, sinon il utiliserait régulièrement lingette w / o mise en forme.

Je vais essayer ddavec des zéros, en fait TWRP fait de même pour effacer le cryptage, juste il sait où chercher l'en-tête exactement))

Mixaz
la source
0

Développant la réponse de Naftuli Tzvi Kay ci-dessus ...

eh bien, cette réponse m'a conduit au bon endroit, mais mon téléphone (CM11 / i9300) n'avait pas de recoverycommande, et la wipecommande n'avait pas d'option pour désactiver le cryptage. Je l'ai donc fait manuellement en regardant les commentaires dans le code source de la recoverycommande (fichier lié à partir de la réponse liée à la question ci-dessus):

* The recovery tool communicates with the main system through /cache files.
* /cache/recovery/command - INPUT - command line for tool, one arg per line
* /cache/recovery/log - OUTPUT - combined log file from recovery run(s)
* /cache/recovery/intent - OUTPUT - intent that was passed in
*
* The arguments which may be supplied in the recovery.command file:
* --send_intent=anystring - write the text out to recovery.intent
* --update_package=path - verify install an OTA package file
* --wipe_data - erase user data (and cache), then reboot
* --wipe_cache - wipe cache (but not user data), then reboot
* --set_encrypted_filesystem=on|off - enables / diasables encrypted fs
*
* After completing, we remove /cache/recovery/command and reboot.

Donc, pour le faire manuellement (avec adb):

  1. obtenir une invite avec un accès root, par exemple
    $ adb shell
    > su
    
  2. mettez le texte suivant dans le fichier / cache / recovery / command, avec echo ou vi:

    --wipe_data
    --set_encrypted_filesystem=off
    

    par exemple avec echo -e "--wipe_data\n--set_encrypted_filesystem=off" > /cache/recovery/command

  3. redémarrer dans CWM ou une récupération similaire

Vous devriez voir une belle barre de progression et cela devrait être fait :)

allicoder
la source
La commande de récupération est disponible dans mon TWRP (3.1.1), elle accepte --wipe-data et --set_encrypted_filesystem = off via / cache / recovery / command ou ligne de commande, mais dès que l'accès à la partition de données est demandé (par --wipe-data) TWRP demande un mot de passe. Cela ne fonctionne donc pas dans le dernier TWRP. 'Format data' fonctionne à la place, voir les autres articles
Mixaz
0

La meilleure méthode de travail consiste à démarrer dans TWRP et à utiliser le terminal intégré pour le formater en ext2 (coz c'est la seule chose prise en charge directement depuis le terminal), et à changer la partition en ext4 en utilisant l'option "Repair Filesystem" sous Mount

Pour formater en ext2:

mkfs.ext2 /dev/block/mmcbl0p23 (Remplacez par la valeur de votre partition de données utilisateur en regardant autour de / dev / block / platform / * / by-name / userdata)

Changer le système de fichiers en ext4:

Wipe -> Advanced Wipe -> Sélectionnez "Data" -> Repair or Change FileSystem -> Change File System -> EXT4

Maintenant, vous devez supprimer le cryptage et pouvoir monter / partitionner les données à partir de TWRP. J'espère que cela t'aides :)

Snazzy Sanoj
la source