Eliminar el cifrado de la recuperación

10

Estoy ejecutando CyanogenMod 12 todas las noches en mi G900T (klte). Todo funciona muy bien, excepto la contraseña de cifrado predeterminada, que hace que mi teléfono arranque en bucle.

He formateado datos y hecho restablecimientos de fábrica, pero /datatodavía está encriptado y aparece como /dev/dm-0.

¿Hay algún comando que pueda hacer para eliminar el cifrado? No me importan los datos, quiero que todo desaparezca. Solo quiero volver a tener /datael almacenamiento interno almacenado en texto sin formato en el disco para poder iniciar en CyanogenMod.

¿Cómo puedo usar adb shellpara eliminar el cifrado en estas particiones?

Naftuli Kay
fuente
¿Qué recuperación hiciste?
Jordy19
1
Team Win Recovery Project (TWRP)
Naftuli Kay
Leí aquí que puedes deshacerte del cifrado flasheando una nueva ROM, no estoy seguro de si eso funciona en tu caso, pero vale la pena intentarlo.
Jordy19
No funciono Estoy tratando de dd if=/dev/zeroformatear manualmente y luego formatear la partición de datos.
Naftuli Kay

Respuestas:

12

La respuesta para mí involucró varias cosas, pero creo que una es realmente la clave.

Utilice el comando "recuperación", hermano

Esto utiliza el programa CyanogenMod / AOSP recoverypara borrar los datos del usuario y deshabilitar el cifrado. (se encuentra en esta respuesta en Desbordamiento de pila ) Arranque en su recuperación, y luego desde su computadora ejecute

adb shell recovery --wipe_data --set_filesystem_encryption=off

Su teléfono se reiniciará en el sistema y las cosas deberían funcionar según lo planeado.

Si necesita ejecutarlo desde el teléfono (es decir, no tiene una computadora cerca adb):

recovery --wipe_data --set_filesystem_encryption=off

Debería borrar, deshabilitar el cifrado y reiniciar el sistema.

Si todo lo demás falla

No utilice este método a menos que lo anterior no funcione o no se aplique a su escenario.

Destruya el encabezado LUKS para el cifrado del sistema de archivos

  1. Necesita una recuperación que le permita caer a un shell como root, por lo que TWRP funciona en mi caso.
  2. Localice la userdatapartición mirando a su alrededor /dev/block/platform/*/by-name/userdata.
  3. Escriba una tonelada de ceros al comienzo de esa partición para borrar el encabezado LUKS:

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

    No reclamo ninguna responsabilidad por lo que haces con este comando. Si lo arruinas, puedes bloquear tu teléfono sobrescribiendo tu gestor de arranque u otras particiones críticas. Asegúrese de que $PATH_TO_YOUR_USERDATAapunta a la userdatapartición real . Comprueba el tamaño de esa partición para asegurarte de que estás limpiando lo correcto. Tengo un teléfono de 16GB y userdataes de 10.4GB, con el resto dedicado system, pero su teléfono será diferente.

  4. Vuelva a formatear esa partición ext4utilizando make_ext4fs $PATH_TO_YOUR_USERDATA.

    Puede haber errores, pero generalmente se relacionan con no poder encontrar la "tarjeta sd" interna, esto está bien.

Después de todo esto, reinicie la recuperación nuevamente y luego ejecute un restablecimiento de fábrica solo para estar seguro.

¿Por qué funciona esto?

Simplemente hacer un restablecimiento de fábrica parecía no hacer nada por mí, el teléfono aún vería una partición LUKS allí. Supongo que esto se debe a que el encabezado LUKS todavía existía en el nivel del disco y la partición ext4 se superpuso por encima. Por alguna razón, Android priorizó la detección de una partición LUKS sobre una partición ext4 e intenta (y tiene éxito) montar eso.

A dónde ir desde aquí

(Si sabe lo que está haciendo, es posible que también desee borrar systeme instalar su ROM desde cero. Nuevamente, no me hago responsable de nada de lo que haga con la información contenida en esta publicación ) .

Trabajó para mí en un klteG900T (Samsung Galaxy S5 T-Mobile). Su experiencia puede ser diferente.

Naftuli Kay
fuente
Ese tipo de trabajo (la opción dd / make_ext4fs). - Cuando reinicié, todavía pedía una contraseña en la recuperación TWRP, y las opciones de formato avanzado no funcionaban, pero cuando hice un formato de partición de datos normal, funcionó. - Pude reiniciar en recuperación sin ninguna solicitud de contraseñas. :-)
BrainSlugs83
1
Naftuli, eres un salvavidas! Tengo mi S6 edge (SM-G925F) en bucle de arranque muerto, ya que no fue capaz de cifrar probablemente debido a la recuperación personalizada (TWRP), creo que el cifrado se realiza a través de la recuperación de stock. Seguía diciendo "el cifrado no estaba terminado. Restablecimiento de fábrica y reinicio". Incluso intenté flashear la recuperación de stock, no arrancó (probablemente una incorrecta pero etiquetada para mi dispositivo). El stock rom completo tampoco era bueno (no pude encontrar el correcto, el que encontré fue rechazado por Odin). Finalmente hice todo lo que dijiste aquí, y el ddcomando finalmente hizo el truco. ¡Muchas gracias!
Mixaz
El recoverycomando no pareció funcionar para mí. Lo llamé desde ADB Shellen TWRPrecuperación. Mi problema principal es que la depuración de USB no está habilitada y /systemestá dañada, por lo que no puedo iniciarla y habilitarla. Además, el cifrado de disco está activado y parece evitar que funcione fastboot flash system system.zipcorrectamente.
anon58192932
1
Me salvaste el día o mejor mi noche. Después de tres horas tratando de instalar lineageOS 14.1 en mi Huawei P8 Lite y obteniendo siempre el mensaje fallido de cifrado, con el ddcomando al final pude concluir la operación. ¡Gracias!
Matteo De Felice
ls -l /dev/block/platform/soc.0/7824900.sdhci/by-name/userdatadice: 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/mmcblk0p26dice: `` `` Tamaño del sistema de archivos utilizado Uso disponible% montado en / dev / block / mmcblk0p26 10.5G 27.2M 10.5G 0% / data '' `` así que lo hice: dd if=/dev/zero of=/dev/block/platform/soc.0/7824900.sdhci/by-name/userdata bs=4096 count=512 ¿es correcto?
LarS
8

En mi Moto G 3rd Gen (águila pescadora), no funcionó ni la recuperación de llamadas ni el borrado del encabezado LUKS (al inicio y al final de la partición): todavía necesitaba ingresar la contraseña de cifrado durante el arranque de Cyanogen Mod, luego me quedé atascado con un mensaje de "error de cifrado" .

Finalmente descubrí que mi recuperación de TWRP 3.0.1 tiene una opción de "Formatear datos" en la sección "Borrar". Esto hace un restablecimiento completo de fábrica que también deshabilita el cifrado.

Trabajado como un encanto. Si tiene acceso a una versión TWRP decente (fácilmente flasheada, por ejemplo, con Flashify), intente esto primero.

Unispezi
fuente
1
Gracias. ¿Por qué buscar una solución complicada cuando una simple funcionará?
Peter Gordon
Mi único problema con esa opción fue que el texto implica que también borrará su tarjeta SD. Si es fácil acceder a su tarjeta, entonces eso no es un gran problema. : - |
zaTricky
1
@pgmann: la opción 'formatear datos' apareció hace poco en TWRP, por eso. Seguro que no estaba allí en 2014 cuando se proporcionaron esas respuestas. Además, el ddenfoque es útil cuando se limpia el cifrado en los scripts, ya que la opción 'formatear datos' no está disponible en los comandos TWRP, mientras que los comandos existentes no pueden borrar el cifrado. Espero que agreguen ese comando en el futuro ...
Mixaz
5

Siempre que esté utilizando TWRP o similar.

  • Dejando a un TWRP (introducir la contraseña), y hacer una copia de seguridad de la Datapartición para externa SDoOTG Drive
  • reiniciar a TWRP (cancelar contraseña) y formatear la partición de datos a f2fs
  • restaurar la copia de seguridad realizada en el paso uno a la Datapartición recién creada
  • Reiniciar el sistema
  • disfruta de Android con todos tus datos guardados y el cifrado eliminado
ArtDeineka
fuente
4

La solución de limpiar manualmente el encabezado LUKS proporcionado por Naftuli Tzvi Kay funciona bien, excepto por una cosa. No sé de qué depende, pero en mi experiencia, Android mantiene el encabezado LUKS al FINAL de la partición. Y si ese es el caso con su dispositivo, entonces ejecutando

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

no podrá eliminar el encabezado (¿pie de página?) porque solo borra el comienzo de la partición. Por supuesto, se podría borrar toda la partición, pero eso tomaría innecesariamente mucho tiempo. Entonces...

Para borrar el final de la partición (de cualquier tamaño), después de ejecutar el comando anterior, ejecute también este comando:

dd bs=512 if=/dev/zero of=$PATH_TO_YOUR_USERDATA count=22048 seek=$((`blockdev --getsz $PATH_TO_YOUR_USERDATA` - 22048))
Lockheed
fuente
Limpiar solo el encabezado funcionó bien para mí (puede deberse a que el cifrado no se terminó, no estoy seguro). Pero votando tu respuesta por tu bajo karma))
Mixaz
4

¿Estás utilizando la recuperación personalizada?

En caso afirmativo, haga esto después de iniciar en una recuperación personalizada ( TWRP en mi caso):

  1. Al iniciar la recuperación, NO descifre el dispositivo . Simplemente toque Cancelar cuando se le solicite la contraseña o el patrón.

  2. Limpie la partición de datos. (En TWRP después de deslizar para modificar el sistema: Borrar> Avanzado> Verificar: Datos)

Por supuesto, esto borrará todo en la userdatapartición. Se formateará toda la partición de datos, incluidas las claves de cifrado .

Majal
fuente
1
Limpiar la partición de datos simplemente elimina el encabezado del sistema de archivos al comienzo de la partición. No funciona porque en muchas versiones de Android, el encabezado LUKS / dm-crypt se encuentra al final del sistema de archivos.
Naftuli Kay
1
¿Lo has probado? Porque simplemente funcionó en mi Nexus 9.
Majal
1
no estoy seguro de por qué alguien rechazó esta respuesta, funciona y es la forma más sencilla de deshacerse del cifrado
ArtDeineka
1
Esto es lo que terminé haciendo, y funcionó. :)
zaTricky
1
Igual que aquí. Trabajado como un encanto.
Linus Kleen
1

Mis votos van a @Naftuli Kay, y otra respuesta útil aquí, pero tengo información que me gustaría compartir. Es demasiado largo para un comentario, deja que sea una respuesta entonces.

Desde alguna versión de TWRP, hay un elemento de 'formatear datos' en la pantalla Wipe. No solo borra / partición de datos, sino que también maneja la materia FS encriptada. En mi caso, TWRP 3.0.2 en Samsung J500H borra el cifrado, y era la única forma, el restablecimiento de fábrica no funciona. CMR (que se está construyendo a lo largo de mi rom CM 12.1 para J500H) tampoco puede borrar el cifrado.

--set_encrypted_filesystem=off tampoco funcionó en TWRP y CMR.

borrar datos a través de OpenRecoveryScript https://twrp.me/faq/openrecoveryscript.html tampoco funciona

Android 3.0 comenzó a asignar / sdcard a / data / media, por lo que tuvieron que volver a trabajar / borrar datos a not / data / media, y rm -rfse realizó en su lugar. Consulte https://twrp.me/faq/datamedia.html para obtener más detalles.

Cuando realiza 'formatear datos', puede ver en el registro de recuperación (/ cache / recovery / log o / cache / recovery / last_log) la siguiente información:

I:Successfully wiped crypto footer.

antes de formatear / datos con make_ext4fs. El código TWRP tiene varias verificaciones para encontrar dónde está el encabezado LUKS, y en mi caso lo encontró en el pie de página.

Miré la fuente TWRP y no he encontrado una forma de 'formatear datos' desde la línea de comandos (necesito borrar el almacenamiento encriptado de una aplicación en rom personalizado), por lo que esta opción está presente solo en la interfaz de usuario. Con la única excepción - si se compila con TWRP TW_OEM_BUILDhabilitados entonces voluntad '' en formato de datos restablecimiento de fábrica, limpieza de cabecera de cifrado y de formato de partición de datos, de lo contrario sería el uso regular toallita w / o formatear.

Voy a intentar ddcon ceros, en realidad TWRP hace lo mismo para borrar el cifrado, solo sabe exactamente dónde buscar el encabezado))

Mixaz
fuente
0

Ampliando la respuesta de Naftuli Tzvi Kay arriba ...

bueno, esa respuesta me llevó al lugar correcto, pero mi teléfono (CM11 / i9300) no tenía un recoverycomando, y el wipecomando no tenía una opción para desactivar el cifrado. Así que lo hice manualmente mirando los comentarios en el código fuente del recoverycomando (archivo vinculado desde la respuesta vinculada en la pregunta anterior):

* 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.

Entonces, para hacerlo manualmente (con adb):

  1. obtener un mensaje con acceso de root, por ejemplo
    $ adb shell
    > su
    
  2. ponga el siguiente texto en el archivo / caché / recuperación / comando, ya sea con echo o vi:

    --wipe_data
    --set_encrypted_filesystem=off
    

    por ejemplo con echo -e "--wipe_data\n--set_encrypted_filesystem=off" > /cache/recovery/command

  3. reiniciar en CWM o recuperación similar

Debería ver una buena barra de progreso y debería hacerse :)

alicoder
fuente
El comando de recuperación está disponible en mi TWRP (3.1.1), acepta --wipe-data y --set_encrypted_filesystem = off tanto a través de / cache / recovery / command o command line, pero tan pronto como se solicita el acceso a la partición de datos (por --wipe-data) TWRP solicita contraseña. Por lo tanto, no funciona en el último TWRP. 'Formatear datos' funciona en su lugar, ver otras publicaciones
Mixaz
0

El mejor método de trabajo es arrancar en TWRP y usar el terminal incorporado para formatearlo como ext2 (porque eso es lo único que se admite directamente desde el terminal), y cambiar la partición a ext4 usando la opción "Reparar sistema de archivos" en Mount

Para formatear como ext2:

mkfs.ext2 /dev/block/mmcbl0p23 (Sustituya con el valor de su partición de datos de usuario mirando en / dev / block / platform / * / by-name / userdata)

Cambiar el sistema de archivos como ext4:

Wipe -> Advanced Wipe -> Seleccione "Data" -> Repair or Change FileSystem -> Change File System -> EXT4

Ahora, debe eliminar el cifrado y poder montar / particionar datos desde TWRP. Espero que esto ayude :)

Snazzy Sanoj
fuente