El presente artículo es una guía para solucionar el problema que describe el titulo, la misma está orientada a usuarios del GNU/Linux Debian (o similar), y se requiere algo de conocimiento previo en la interfaz de linea de comandos (Shell).
Al parecer un es un problema muy común en los terminales Samsung Galaxy S3, probablemente se deba a un error introducido por alguna actualización, realmente no indagué mucho la causa. En mi caso particular tengo instalada una distribución alternativa denominada CyanogenMod (basada en Android), específicamente la versión cm-10.2.0-i9300.zip.
Empezar por lo más sencillo
Lo primero que se puede intentar es "restaurar el teléfono al estado de fábrica". Este proceso también borrará la partición del datos del usuario, así que todos los datos se van a perder. Hay formas de respaldar los datos pero se escapan del alcance de esta guía.Restaurar al estado de fábrica
Como el teléfono no carga el sistema operativo habrá que reiniciarlo en modo "recovery". Para hacerlo, reinicie o encienda el teléfono presionando simultáneamente los botones de: Volumen arriba + Encendido + Inicio, debe mantener los tres botones presionados hasta que vea el logo de Samsung, en ese momento los libera.
Si logró iniciar correctamente al "recovery mode" (modo de recuperación), debería ver un menú similar al que se muestra en la siguiente captura de pantalla. Para moverse entre las opciones utilice los botones volumen arriba y volumen abajo, para seleccionar una opción utilice el botón de encendido.
Para completar correctamente la restauración al modo de fábrica, seleccione y ejecute cada unas de las siguientes opciones, en el orden en que las enumero.
- Wipe cache partition
- Wipe data/factory reset
- Reboot system now
Reinstalar una ROM de fábrica
Si no funcionó el procedimiento anterior probablemente algo se estropeó con la imagen de recuperación de su smartphone. Por lo que procede ahora es intentar reinstalando una ROM de fábrica.Descargar la ROM original de Samsung
Debe descargar la una versión reciente para su dispositivo, si no tiene una a mano a continuación dejo un enlace con el "Android 4.3 Jelly Bean" para el Galaxy S3 I9300.
I9300XXEMC2_I9300OXAEMC2_BTU.zip
Formatear particiones problemáticas
Para este propósito se necesita el "adb" (Android Debug Bridge), que permitirá manipular el dispositivo desde la PC, por medio de cable de datos USB, a través de una linea de comandos.
Para instalar el "adb" en GNU/Linux Debian, desde una terminal ejecute el siguiente comando.
$ sudo apt-get install android-tools-adb
Una vez instalado el "adb" debe arrancar el smartphone en modo "recovery", conectar el cable USB y desde una terminal en GNU/Linux ejecutar los siguientes comandos. Lo que está en este color no se digita, es parte del símbolo del sistema.
$ adb shell
~ # parted /dev/block/mmcblk0
(parted) print
(parted) print
Lo que debería arrojar la siguiente salida:
print
Model: MMC VTU00M (sd/mmc)
Disk /dev/block/mmcblk0: 15.8GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 4194kB 8389kB 4194kB BOTA0
2 8389kB 12.6MB 4194kB BOTA1
3 12.6MB 33.6MB 21.0MB ext4 EFS
4 33.6MB 41.9MB 8389kB PARAM
5 41.9MB 50.3MB 8389kB BOOT
6 50.3MB 58.7MB 8389kB RECOVERY
7 58.7MB 92.3MB 33.6MB RADIO
8 92.3MB 1166MB 1074MB ext4 CACHE
9 1166MB 2777MB 1611MB ext4 SYSTEM
10 2777MB 3364MB 587MB ext4 HIDDEN
11 3364MB 3372MB 8389kB OTA
12 3372MB 15.8GB 12.4GB ext4 USERDATA
(parted)
De esa salida se obtienen los datos que se necesitan para formatear las particiones "CACHE", "SYSTEM", "HIDDEN" y "USERDATA". Para salir de "parted", introduzca el comando "quit".
(parted) quit
Antes de formatear se debe intentar desmontar las particiones, si el comando retorna el error "Invalid argument", no hay de que preocuparse, solamente es porque la partición no estaba montada.
~ # umount /dev/block/mmcblk0p8
~ # umount /dev/block/mmcblk0p9 umount: can't umount /dev/block/mmcblk0p9: Invalid argument
~ # umount /dev/block/mmcblk0p10 umount: can't umount /dev/block/mmcblk0p10: Invalid argument
~ # umount /dev/block/mmcblk0p11 umount: can't umount /dev/block/mmcblk0p11: Invalid argument
~ # umount /dev/block/mmcblk0p12 umount: can't umount /dev/block/mmcblk0p12: Invalid argument
~ # umount /dev/block/mmcblk0p9 umount: can't umount /dev/block/mmcblk0p9: Invalid argument
~ # umount /dev/block/mmcblk0p10 umount: can't umount /dev/block/mmcblk0p10: Invalid argument
~ # umount /dev/block/mmcblk0p11 umount: can't umount /dev/block/mmcblk0p11: Invalid argument
~ # umount /dev/block/mmcblk0p12 umount: can't umount /dev/block/mmcblk0p12: Invalid argument
Para formatear la partición "CACHE" introduzca el siguiente comando
~ # mke2fs -t ext4 /dev/block/mmcblk0p8
El proceso de formateo arrojará la siguiente salida
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 35 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
Para formatear las particiones "SYSTEM", "HIDDEN" y "USERDATA" introduzca los siguientes comandos, uno a la vez. (omitiré la salida de cada comando, es muy parecida a la obtenida al formatear la partición "CACHE").
~ # mke2fs -t ext4 /dev/block/mmcblk0p9
~ # mke2fs -t ext4 /dev/block/mmcblk0p10
~ # mke2fs -t ext4 /dev/block/mmcblk0p12
Con esto se habrá terminado el proceso de formateo de las particiones problemáticas. Para salir de "adb", introduzca el comando "exit".
~ # exit
Descargar e instalar Heimdall
Para poder "flashear" (actualizar el firmware) en el dispositivo Samsung Galaxy S3, se necesita un programa, existe uno que es mejor que el popular Odin, sobre todo porque es multiplataforma, lo que permitirá realizar el proceso desde nuestro GNU/Linux Debian, estoy hablando de Heimdall, el cual se puede descargar desde bitbucket.
Para descargar la versión para GNU/Linux Debian de 32bits, utilice el siguiente vinculo
debian7-heimdall_1.4.0-0_i386.deb
Para descargar la versión para GNU/Linux Debian de 64bits, utilice el siguiente vinculo
debian7-heimdall_1.4.0-0_amd64.deb
Para instalar Heimdall, abra una terminal, cámbiese al directorio donde hizo la descarga y ejecute el siguiente comando.
$ sudo dpkg -i debian7-heimdall_1.4.0-0*.deb
Arrancar el smartphone en modo "download"
Para instalar la ROM original que se descargó en unos de los pasos anteriores, se debe iniciar el dispositivo en modo de descarga. Para hacerlo, reinicie o encienda el teléfono presionando simultáneamente los botones de: Volumen abajo + Encendido + Inicio, debe mantener los tres botones presionados hasta que vea el logo de Samsung, en ese momento los libera.
Si logró iniciar correctamente al "download mode" (modo de descarga), debería ver algo similar a lo que se muestra en la siguiente captura de pantalla. Para confirmar el modo de descarga presione el botón volumen arriba.
Reinstalando la ROM original con Heimdall
El "flasheo" de la ROM con Heindall se hace en partes. Normalmente para este proceso se ocupa un archivo .pit, que es como un descriptor de la particiones, pero para no complicar más esta guía voy a omitir el cómo generarlo. Ustedes no lo van a necesitar porque yo les daré el nombre exacto de las particiones a sobre escribir.
Lo primero es descomprimir el archivo con ROM original de Samsung.
$ unzip I9300XXEMC2_I9300OXAEMC2_BTU.zip
Archive: I9300XXEMC2_I9300OXAEMC2_BTU.zip
inflating: KIES_HOME_I9300XXEMC2_I9300OXAEMC2_1042335_REV00_user_low_ship.tar.md5
inflating: SS_DL.dll
Se cambia el nombre al archivo, eliminando la extensión el ".md5" para posteriormente desempaquetarlo.
$ mv KIES_HOME_I9300XXEMC2_I9300OXAEMC2_1042335_REV00_user_low_ship.tar.md5 KIES_HOME_I9300XXEMC2_I9300OXAEMC2_1042335_REV00_user_low_ship.tar
Finalmente se desempaqueta el archivo ".tar", para extraer los archivos recovery.img, system.img, modem.bin, cache.img, hidden.img, sboot.bin, tz.img, con los que se hará la reinstalación.
$ tar xvf KIES_HOME_I9300XXEMC2_I9300OXAEMC2_1042335_REV00_user_low_ship.tar
boot.img
recovery.img
system.img
modem.bin
cache.img
hidden.img
sboot.bin
tz.img
Ahora lo que procede es "flashear" cada uno de estos archivos. Para prevenir daños permanentes en el dispositivo, siga las siguientes instrucciones.
- Asegúrese de que la batería del dispositivo tenga al menos un 80% de la carga
- Es deseable que la PC tenga respaldo eléctrico (UPS), si es una portátil conéctela al toma corriente
- Conecte el smartphone a la PC con el cable USB
- Inicie el smartphone en modo descarga como se indicó en el paso previo
- Nunca desconecte el dispositivo mientras se ejecuta una actualización
Desde una terminal, permaneciendo en el directorio donde se desempaquetaron los archivos ejecute los siguientes comandos.
$ sudo heimdall flash --BOOT boot.img --no-reboot
Este proceso arrojará la siguiente salida.
Heimdall v1.4.0
Copyright (c) 2010-2013, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au/
This software is provided free of charge. Copying and redistribution is
encouraged.
If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/
Initialising connection...
Detecting device...
Claiming interface...
Attempt failed. Detaching driver...
Claiming interface again...
Setting up interface...
Initialising protocol...
Protocol initialisation successful.
Beginning session...
Some devices may take up to 2 minutes to respond.
Please be patient!
Session begun.
Downloading device's PIT file...
PIT file download successful.
Uploading BOOT
100%
BOOT upload successful
Ending session...
Rebooting device...
Releasing device interface...
Re-attaching kernel driver...
Continúe el proceso ejecutando los siguientes comandos (debe reiniciar manualmente en modo "download" luego de hacer cada carga, omitiré la salida por ser prácticamente igual a la descrita al flashear "boot").
$ sudo heimdall flash --CACHE cache.img --no-reboot
//Debe reiniciar el dispositivo en modo "download"
//antes de ejecutar el siguiente comando
$ sudo heimdall flash --HIDDEN hidden.img --no-reboot
//Debe reiniciar el dispositivo en modo "download"
//antes de ejecutar el siguiente comando
$ sudo heimdall flash --RADIO modem.bin --no-reboot
//Debe reiniciar el dispositivo en modo "download"
//antes de ejecutar el siguiente comando
$ sudo heimdall flash --RECOVERY recovery.img --no-reboot
//Debe reiniciar el dispositivo en modo "download"
//antes de ejecutar el siguiente comando
$ sudo heimdall flash --BOOTLOADER sboot.bin --no-reboot
//Debe reiniciar el dispositivo en modo "download"
//antes de ejecutar el siguiente comando
$ sudo heimdall flash --SYSTEM system.img --no-reboot
//Debe reiniciar el dispositivo en modo "download"
//antes de ejecutar el siguiente comando
$ sudo heimdall flash --TZSW tz.img
Luego de esto, puede reiniciar su smartphone de manera normal y el mismo debería iniciar el sistema operativo original satisfactoriamente. Luego de eso puede proceder a reinstalar su distro CyanogenMod de la manera habitual e igualmente el teléfono seguirá arrancando de manera normal.
No hay comentarios:
Publicar un comentario
Gracias por dejar tu comentario, por favor sea respetuoso...