Android

Samsung Galaxy S3 brickeado: «E: failed to mount /efs (Invalid argument)»

Written by Nobutaka Yamazaki

El S3 se quedaba atascado en la pantalla de inicio con el logo de Samsung.

txS90_02279_130129_med

Al entrar en el recovery nos daba el error «E: failed to mount /efs (Invalid argument)»

txS90_02280_130129_med

El directorio EFS contiene toda la información ‘personalizada’ que diferencia un teléfono de otro. Es decir, el IMEI, bloqueo de operadora, etc. Por eso si somos aficionados a flashear ROMs es muy importante tener una copia de seguridad del EFS, preferiblemente guardada en el PC. En caso de que se perdiera ese directorio y no tuviéramos una copia, sólo podríamos restaurar dicha carpeta a partir de la backup de otro teléfono, en cuyo caso estaríamos copiando su IMEI en nuestro teléfono lo cual es ilegal, y ningún usuario nos ‘prestará’ su backup así que insistimos: haced una copia de seguridad de la carpeta EFS (hay muchas apps gratuitas que lo hacen) y guardadlas a buen recaudo (preferiblemente en el PC).

Una vez diagnosticado el problema, pidiendo ayuda en este hilo de HTCMANIA nos pusieron sobre la pista de la solución por este otro hilo de XDA

La solución consistía en formatear la partición de EFS y restaurar la propia EFS a partir de un backup que Txirloro había hecho antes. Sin dicho backup no habríamos podido hacer nada (legal) y tendríamos que haber mandado el teléfono al SAT.

Voy a intentar explicar todo desde CERO, por si le ayuda a alguien en el futuro.

Primero flasheamos con PC ODIN una STOCK ROM (por ejemplo I9300XXDLJ4_I9300PHEDLI1_PHE).Como es una STOCK ROM no tenemos ni root, ni nada, con el PC ODIN le flasheamos el CF-Root de Chainfire (CF-Auto-Root-m0-m0xx-gti9300)

Arrancamos el teléfono en modo recovery (Volumen UP + Power + Home), lo conectamos al PC, y nos conectamos con ADB SHELL.

Nuestra primera sorpresa:

Siguiendo las indicaciones de XDA, intentamos particionar el EFS:

#mke2fs / dev/block/mmcblk0p3

sh: mke2fs: not found

Resulta que mke2fs es un comando que está incluído en busybox, que no es más que un conjunto de herramientas/comandos más avanzados que los que trae el propio sistema operativo (linux) por defecto en el teléfono.

Me descargué la versión precompilada de busybox de busybox.net

 

PC> adb shell mkdir /data/busybox
PC> adb push busybox /data/busybox
PC> adb shell
$su
#cd /data/busybox
#chmod 775 busybox
#./busybox --install

 

una vez instalado busybox ya podíamos invocar el comando mke2fs:

# busybox mke2fs /dev/block/mmcblk0p3
busybox mke2fs /dev/block/mmcblk0p3
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
5136 inodes, 20480 blocks
1024 blocks (5%) reserved for the super user
First data block=1
Maximum filesystem blocks=262144
3 block groups
8192 blocks per group, 8192 fragments per group
1712 inodes per group
Superblock backups stored on blocks:
8193

Y después montar la partición en /efs

#busybox mount -w -t ext4 /dev/block/mmcblk0p3 /efs
busybox mount -w -t ext4 /dev/block/mmcblk0p3 /efs

Con la carpeta EFS ya arreglada, sólo nos faltaba hacer ADB PUSH para copiar la copia de seguridad (en nuestro caso efs.tar) al teléfono, descomprimirla (busybox tar xfv efs.tar) y mover su contenido a la recién arreglada carpeta /efs

Reiniciar y listo 🙂

20130202_134602_resize

Si no encontráis o no os apetece buscar los ficheros necesarios dejo un zip con el Odin 3.07, el precompilado de Buxybox y el CF-Root de Chainfire para el S3 aquí.

About the author

Nobutaka Yamazaki

Leave a Comment