LEPT
15/12/14, 21:57:06
[descargo de responsabilidades: No me hago responsable de los problemas que se os puedan ocasionar directa o indirectamente, como consecuencia de seguir este tutorial, correcta o incorrectamente. No obstante, todo lo que describo lo he experimentado previamente sin experimentar ningún problema en mi smartphone. Se requiere un cierto nivel de conocimientos para entender y realizar lo que se describe en este Tutorial].
Si queréis experimentar hacerlo, pero con lo que vosotros extraigáis, no copiando y 'pintando de rosa' lo de otros ;-)
=> Realizar una 'Copia literal completa' (mibackup.dd) :palomitas:
Bueno, para los más curiosos e inquietos, os voy a mostrar detalladamente, cómo realizar la copia de seguridad de todo nuestro dispositivo. Para lo cual vamos a necesitar:
# En el PC # [descárgate esto si estás en Windows (https://mega.nz/#!TBMXUQ5S!KW7u4qxe6qJg-3bG99CTolUPIyIQckusHIyuKkV8veE)]
adb (Android Debug Bridge (http://developer.android.com/tools/help/adb.html))
nc (NetCat para Windows (http://es.wikipedia.org/wiki/Netcat))
# En el terminal #
SuperSU (https://play.google.com/store/apps/details?id=eu.chainfire.supersu)
BusyBox (https://play.google.com/store/apps/details?id=stericson.busybox)
Terminal Emulator for Android (https://play.google.com/store/apps/details?id=jackpal.androidterm)
El smartphone además deberá de tener activado el modo de 'Depuración de USB'.
Lo que vamos a hacer es extraer todo el sistema de particiones (mmcblk0) con sus contenidos, empleando para ello el comando de linux 'dd' (Dataset Definition (http://en.wikipedia.org/wiki/Dd_(Unix))) .
El fichero que se nos genere (el backup), será un fichero RAW que ocupará bastante. En mi caso, para un Moto G (XT-1032) con KitKat-4.4.4-Motorola, ocupa unas 7 GBytes.
Esto me plantea un problema, y es que aún con el sistema recién instalado y 'limpio', el espacio libre de que dispondo en el smartphone ronda únicamente los 5 GBytes. Y dado que este modelo no dispone de SD-Card externa, hay que hacer 'algo' para que el volcado lo haga en otro sitio con espacio suficiente y no en la memoria interna del teléfono.
Es para eso para lo que usaremos NetCat. Y gracias a él, el volcado lo vamos a realizar directamente al PC a través del cable USB con el que lo conectamos.
¡Empecemos!
Partimos de un terminal rooteado, y con BusyBox y Terminal Emulator instalados en él. Además hemos de tener activa la Depuración de USB. Ejecutamos la aplicación del Terminal.
En el PC, descomprimimos el archivo del link que os he dejado arriba. Genera una carpeta con 4 ficheros (nc.exe, adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll). Abrimos una ventana de comandos en esa carpeta.
* En el terminal del smartphone escribimos:
su
---> Nos concede permisos de root a esta sesión del Terminal
nc -l -p 2222 -e dd if=/dev/block/mmcblk0
---> se abre el puerto 2222 para escuchar, y se ejecuta tras esto el comando 'dd', con el cual ponemos como archivo de entrada (input file) la memoria interna entera del smartphone
* Inmediatamente después en la ventana de comandos del PC escribimos:
adb forward tcp:2222 tcp:2222
---> se establece un reenvío entre el puerto tcp 2222 del PC y el tcp 2222 del dispositivo
nc 127.0.0.1 2222 > mibackup.dd
---> se abre una conexión en un host (127.0.0.1) por un puerto (2222), y vuelca la información recibida en un fichero (mibackup.dd)
Tras 20 min, obtengo en la misma carpeta en la que hemos descomprimido anteriormente al archivo que os descargásteis, el fichero 'mibackup.dd' de algo más de 7 GBytes. Ya tenemos una copia 'literal' de todo nuestro smartphone, bit a bit.
=> Restaurar la 'Copia literal completa' (mibackup.dd) :palomitas:
Partimos de la siguiente situación:
* Smartphone con bootloader y recovery accesibles.
* El recovery que sea TWRP (es el más avanzado que tiene este smartphone)
* SO Linux en el PC, con Java, Android SDK y NetCat (y configurado para detectar el terminal). Como usuario Windows, he seguido los pasos AQUÍ (https://androidonlinux.wordpress.com/2013/05/12/setting-up-adb-on-linux/) descritos, y todo configurado correctamente a la primera.
* Backup-literal (mibackup.dd) realizado con anterioridad, alojado en el PC en la carpeta en la que abriremos una ventana de comandos (yo lo tengo junto al adb, en su carpeta).
1º Arrancamos el smartphone en modo Recovery
2º Conectamos el smartphone al PC a través de un cable USB
3º Abrimos 2 ventanas de comandos, en la carpeta en la que tenemos nuestro 'mibackup.dd' (y el adb)
4º Comprobamos que nuestro PC reconoce al smartphone conectado:
./adb devices
Si como resultado de este comando, obtenemos un mensaje del estilo...
List of devices attached
TA8830EBCT recovery
Es que nuestro PC ha detectado que tenemos conectado un dispositivo en modo Recovery.
5º Escribimos los siguientes comandos en cada una de las ventanas:
VENTANA1
./adb forward tcp:2222 tcp:2222
./adb shell
nc -l -p 2222 -e dd bs=1 of=/dev/block/mmcblk0
y seguido en la otra...
VENTANA2
./adb forward tcp:2222 tcp:2222
dd if=mibackup.dd bs=1 | nc 127.0.0.1 2222
6º Ahora toca "esperar" y un buen rato. Ya que si la copia tardó 20 min (so unas 7.2 Gbytes)... esta restauración la hará algo más lenta para hacerla más segura.
___________________________
Si nuestro Smartphone es de los que posee SDCard-Externa, podemos acelerar enormemente el proceso, copiando el backup a dicha memoria externa, y así realizar la restauración desde allí, del siguiente modo:
En una sola Ventana de comandos ejecutamos lo siguiente
./adb shell
dd if=/sdcard/mibackup.dd of=/dev/block/mmcblk0
y tas un buen rato, pero mucho menos que de la otra manera, se realizará el proceso.
En ambos casos, tras finalizar el proceso, en el smartphone no se notará nada, pues estamos en el Recovery en la RAM. Bastará con que elijamos la opción de que reinicie normal, para que el smartphone se inicie en el estado en el que se le hizo el 'backup-literal'. :campeon:
Si durante el proceso saltase algún aviso de lseek64, los podremos ignorar.
Si queréis experimentar hacerlo, pero con lo que vosotros extraigáis, no copiando y 'pintando de rosa' lo de otros ;-)
=> Realizar una 'Copia literal completa' (mibackup.dd) :palomitas:
Bueno, para los más curiosos e inquietos, os voy a mostrar detalladamente, cómo realizar la copia de seguridad de todo nuestro dispositivo. Para lo cual vamos a necesitar:
# En el PC # [descárgate esto si estás en Windows (https://mega.nz/#!TBMXUQ5S!KW7u4qxe6qJg-3bG99CTolUPIyIQckusHIyuKkV8veE)]
adb (Android Debug Bridge (http://developer.android.com/tools/help/adb.html))
nc (NetCat para Windows (http://es.wikipedia.org/wiki/Netcat))
# En el terminal #
SuperSU (https://play.google.com/store/apps/details?id=eu.chainfire.supersu)
BusyBox (https://play.google.com/store/apps/details?id=stericson.busybox)
Terminal Emulator for Android (https://play.google.com/store/apps/details?id=jackpal.androidterm)
El smartphone además deberá de tener activado el modo de 'Depuración de USB'.
Lo que vamos a hacer es extraer todo el sistema de particiones (mmcblk0) con sus contenidos, empleando para ello el comando de linux 'dd' (Dataset Definition (http://en.wikipedia.org/wiki/Dd_(Unix))) .
El fichero que se nos genere (el backup), será un fichero RAW que ocupará bastante. En mi caso, para un Moto G (XT-1032) con KitKat-4.4.4-Motorola, ocupa unas 7 GBytes.
Esto me plantea un problema, y es que aún con el sistema recién instalado y 'limpio', el espacio libre de que dispondo en el smartphone ronda únicamente los 5 GBytes. Y dado que este modelo no dispone de SD-Card externa, hay que hacer 'algo' para que el volcado lo haga en otro sitio con espacio suficiente y no en la memoria interna del teléfono.
Es para eso para lo que usaremos NetCat. Y gracias a él, el volcado lo vamos a realizar directamente al PC a través del cable USB con el que lo conectamos.
¡Empecemos!
Partimos de un terminal rooteado, y con BusyBox y Terminal Emulator instalados en él. Además hemos de tener activa la Depuración de USB. Ejecutamos la aplicación del Terminal.
En el PC, descomprimimos el archivo del link que os he dejado arriba. Genera una carpeta con 4 ficheros (nc.exe, adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll). Abrimos una ventana de comandos en esa carpeta.
* En el terminal del smartphone escribimos:
su
---> Nos concede permisos de root a esta sesión del Terminal
nc -l -p 2222 -e dd if=/dev/block/mmcblk0
---> se abre el puerto 2222 para escuchar, y se ejecuta tras esto el comando 'dd', con el cual ponemos como archivo de entrada (input file) la memoria interna entera del smartphone
* Inmediatamente después en la ventana de comandos del PC escribimos:
adb forward tcp:2222 tcp:2222
---> se establece un reenvío entre el puerto tcp 2222 del PC y el tcp 2222 del dispositivo
nc 127.0.0.1 2222 > mibackup.dd
---> se abre una conexión en un host (127.0.0.1) por un puerto (2222), y vuelca la información recibida en un fichero (mibackup.dd)
Tras 20 min, obtengo en la misma carpeta en la que hemos descomprimido anteriormente al archivo que os descargásteis, el fichero 'mibackup.dd' de algo más de 7 GBytes. Ya tenemos una copia 'literal' de todo nuestro smartphone, bit a bit.
=> Restaurar la 'Copia literal completa' (mibackup.dd) :palomitas:
Partimos de la siguiente situación:
* Smartphone con bootloader y recovery accesibles.
* El recovery que sea TWRP (es el más avanzado que tiene este smartphone)
* SO Linux en el PC, con Java, Android SDK y NetCat (y configurado para detectar el terminal). Como usuario Windows, he seguido los pasos AQUÍ (https://androidonlinux.wordpress.com/2013/05/12/setting-up-adb-on-linux/) descritos, y todo configurado correctamente a la primera.
* Backup-literal (mibackup.dd) realizado con anterioridad, alojado en el PC en la carpeta en la que abriremos una ventana de comandos (yo lo tengo junto al adb, en su carpeta).
1º Arrancamos el smartphone en modo Recovery
2º Conectamos el smartphone al PC a través de un cable USB
3º Abrimos 2 ventanas de comandos, en la carpeta en la que tenemos nuestro 'mibackup.dd' (y el adb)
4º Comprobamos que nuestro PC reconoce al smartphone conectado:
./adb devices
Si como resultado de este comando, obtenemos un mensaje del estilo...
List of devices attached
TA8830EBCT recovery
Es que nuestro PC ha detectado que tenemos conectado un dispositivo en modo Recovery.
5º Escribimos los siguientes comandos en cada una de las ventanas:
VENTANA1
./adb forward tcp:2222 tcp:2222
./adb shell
nc -l -p 2222 -e dd bs=1 of=/dev/block/mmcblk0
y seguido en la otra...
VENTANA2
./adb forward tcp:2222 tcp:2222
dd if=mibackup.dd bs=1 | nc 127.0.0.1 2222
6º Ahora toca "esperar" y un buen rato. Ya que si la copia tardó 20 min (so unas 7.2 Gbytes)... esta restauración la hará algo más lenta para hacerla más segura.
___________________________
Si nuestro Smartphone es de los que posee SDCard-Externa, podemos acelerar enormemente el proceso, copiando el backup a dicha memoria externa, y así realizar la restauración desde allí, del siguiente modo:
En una sola Ventana de comandos ejecutamos lo siguiente
./adb shell
dd if=/sdcard/mibackup.dd of=/dev/block/mmcblk0
y tas un buen rato, pero mucho menos que de la otra manera, se realizará el proceso.
En ambos casos, tras finalizar el proceso, en el smartphone no se notará nada, pues estamos en el Recovery en la RAM. Bastará con que elijamos la opción de que reinicie normal, para que el smartphone se inicie en el estado en el que se le hizo el 'backup-literal'. :campeon:
Si durante el proceso saltase algún aviso de lseek64, los podremos ignorar.