3 votos

No se puede restablecer de fábrica después de encriptar

He encriptado mi teléfono pero ahora quiero que no esté encriptado, así que tengo que hacer un restablecimiento de fábrica. Sin embargo, si intento hacer esto desde el CWM Recovery dice

-- Wiping data... 
Formatting /data...  
Error mounting /data!  
Skipping format... 
Formatting /cache...  
Formatting /sd-ext...  
Formatting /sdcard/.android_secure...
Error mounting /sdcard/.android_secure!
Skipping format... 
Data wipe complete.

Cuando intento resetear de fábrica desde la GUI normal no me da error pero termina muy muy rápido y no ha funcionado (es de suponer que la salida anterior ha ocurrido en los registros).

¿Qué puedo hacer?

0 votos

¿Has probado a reiniciar el recovery original que venía con el dispositivo? Quizás eso te permita realizar un restablecimiento de fábrica a través del menú de ajustes del dispositivo.

0 votos

He intentado hacer esto pero no puedo averiguar cómo hacerlo a través de Heimdall (implementación Linux de ODIN) - ¿tiene que ser a través de ODIN? ¿Dónde puedo encontrar mi recuperación original? Puede que lo esté haciendo mal - ¿qué CÓMO debería seguir para esto?

1 votos

Creo que Heimdall podría hacerlo, siempre y cuando puedas encontrar una imagen de recuperación de stock en el formato adecuado. ¿De qué dispositivo se trata? A menudo, el subforo de XDA para un dispositivo tendrá una colección de varias imágenes de stock, así que ahí es donde yo empezaría, personalmente; el fabricante puede proporcionarlos, sin embargo, (nunca he comprobado si Samsung hace esto).

2voto

Lekensteyn Puntos 568

También he encriptado el /data partición (en mi Samsung I9300) y quería restablecerlo para una actualización. Esto falló con el error que usted mencionó, /tmp/recovery.log contiene:

ClockworkMod Recovery v6.0.3.2
recovery filesystem table
=========================
  0 /tmp ramdisk (null) (null) 0
  1 /efs ext4 /dev/block/mmcblk0p3 (null) 0
  2 /boot emmc /dev/block/mmcblk0p5 (null) 0
  3 /recovery emmc /dev/block/mmcblk0p6 (null) 0
  4 /cache ext4 /dev/block/mmcblk0p8 (null) 0
  5 /system ext4 /dev/block/mmcblk0p9 (null) 0
  6 /data ext4 /dev/block/mmcblk0p12 (null) -16384
  7 /preload ext4 /dev/block/mmcblk0p10 (null) 0
  8 /modem emmc /dev/block/mmcblk0p7 (null) 0
  9 /sdcard datamedia /dev/null (null) 0
  10 /external_sd ext4 /dev/block/mmcblk1p1 (null) 0
<snip>
-- Wiping data...
Formatting /data...
I:Formatting unknown device.
W:failed to mount /dev/block/mmcblk0p12 (Invalid argument)
Error mounting /data!
Skipping format...

DESCARGO DE RESPONSABILIDAD : No me responsabilizo de nada que vaya mal, incluyendo (pero no limitándose a) un error del usuario.

Si desea borrar el /data (incluyendo los medios de comunicación como las fotos), siga las siguientes instrucciones:

  1. Arranque en la recuperación.

  2. Ejecutar adb shell en un terminal (Linux) o en el símbolo del sistema ("CMD", Windows). Después de unos segundos, debería ver una línea que contiene ~ # .

  3. ADVERTENCIA . Compruebe tres veces el comando que está introduciendo aquí. Los espacios en blanco y las mayúsculas son importantes. Si comete un error aquí, puede borrar accidentalmente toda la memoria flash, incluyendo las imágenes de recuperación.
    NOTA Si quieres encriptar tu partición más tarde, tienes que dejar 16KiB de espacio sin asignar al final de la partición.
    En el adb shell ejecute el comando mke2fs -t ext4 /dev/block/mmcblk0p12 . Sustituir /dev/block/mmcblk0p12 y ext4 según la tabla del sistema de archivos de recuperación (para /data ). Salida al ejecutar el comando:

    ~ # mke2fs -t ext4 /dev/block/mmcblk0p12 
    mke2fs 1.41.14 (22-Dec-2010)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    755904 inodes, 3022848 blocks
    151142 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=3095396352
    93 block groups
    32768 blocks per group, 32768 fragments per group
    8128 inodes per group
    Superblock backups stored on blocks: 
            32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208
    
    Writing inode tables: done                            
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done
    
    This filesystem will be automatically checked every 34 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.
  4. (Opcional) Instalar un nuevo firmware (por ejemplo, CM 10.1).

  5. Reinicia.

  6. (Opcional) Para cifrar la partición mientras se limpia toda la partición de datos, ejecute vdc cryptfs enablecrypto wipe PIN_OR_PASSWORD (antes de Android 5.0) o vdc cryptfs enablecrypto wipe password PASSWORD_IN_HEX (desde Android 5.0, véase este puesto para más detalles).

  7. Reconfigurar el dispositivo, elegir el idioma, introducir el nombre, instalar aplicaciones, etc.


Los detalles técnicos son los siguientes.

El restablecimiento de fábrica se activa la opción de menú erase_volume("/data") en recovery.c que llama format_volume("/data") .

format_volume se define en roots.c :

int format_volume(const char* volume) {
    // <snip>
    // check to see if /data is being formatted, and if it is /data/media
    // Note: the /sdcard check is redundant probably, just being safe
    if (strstr(volume, "/data") == volume && is_data_media() && !handle_data_media) {
        return format_unknown_device(NULL, volume, NULL);
    }

Dado que el nombre del volumen comienza efectivamente con /data y la tabla del sistema de archivos de recuperación contiene una entrada para el tipo datamedia y handle_data_media es inicialmente cero, el formato format_unknown_device se llama. Esa función se define en extendedcommands.c de la siguiente manera:

int format_unknown_device(const char *device, const char* path, const char *fs_type)
{
    LOGI("Formatting unknown device.\n");

    if (fs_type != NULL && get_flash_type(fs_type) != UNSUPPORTED)
        return erase_raw_partition(fs_type, device);

    // if this is SDEXT:, don't worry about it if it does not exist.
    if (0 == strcmp(path, "/sd-ext"))
    {    
        // <snip>
    }    

    if (NULL != fs_type) {
        // <snip>
    }    

    if (0 != ensure_path_mounted(path))
    {
        ui_print("Error mounting %s!\n", path);
        ui_print("Skipping format...\n");
        return 0;
    }

fs_type es NULL y el path es /data . Esto significa que la ruta del código termina en ensure_path_mounted(path) que es el lugar donde esta función falla. Mirando el nombre, ensure_path_mounted intenta montar la partición por su nombre, lo que por supuesto falla, ya que la partición cifrada no está soportada en CWM. Por lo tanto, CWM se niega a "formatear" la partición (en realidad, lo único que hace es borrar todos los archivos excepto /data/media después del montaje).

Por lo tanto, el objetivo es formatear /data con ext4 (ver tabla de sistemas de archivos de recuperación) o montar la partición de datos encriptada de alguna manera. No pude encontrar fácilmente las herramientas para montar particiones encriptadas, así que decidí ir por el camino fácil y simplemente formatear la partición.

0 votos

Nota: al parecer, alguien consiguió borrar su partición de arranque de todos modos. Por lo tanto, un recordatorio amistoso: ¡comprueba dos veces que estás actuando en la partición correcta!

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X