PDA

Ver la Versión Completa : [ TUTORIAL ] BACKUP literal de TODO tu dispositivo


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.

J5333JF
15/12/14, 22:06:21
Pues si sigues el tutorial al 100% (me refiero a incluir la restauracion del backup), seria perfecto.

Borrego92
15/12/14, 22:07:30
Muy buen tutorial, espero que te animes mas adelante para crear el de restaurar por si se nos brickea. Si hace falta, se dona un moto G brickeado para la investigación.

LEPT
15/12/14, 22:18:12
Estoy en ello, estoy en ello pero soy usuario Windows de toda la vida, y el Linux se me resiste un poco, así que tengo que salvar las distancias de los problemas que se me plantean, por eso voy algo lento :-)

Pero en cuanto lo tenga listo "y probado", lo compartiré :ok:

Borrego92
15/12/14, 22:23:37
Estoy en ello, estoy en ello pero soy usuario Windows de toda la vida, y el Linux se me resiste un poco, así que tengo que salvar las distancias de los problemas que se me plantean, por eso voy algo lento :-)

Pero en cuanto lo tenga listo "y probado", lo compartiré :ok:
¿crees que se podrá restaurar dicho backup si el movil no enciende? (Hardbrick). Salvarias muchas vidas, salvo que un backup de un moto G le sirve a otro.

PD: el imei seria el problema.

lucas_93
15/12/14, 22:41:08
Sabes que, tendrías un lugar asegurado en el cielo si logras eso jaja

LEPT
15/12/14, 22:47:12
En principio, yo el backup sólo lo usaría para restaurar el terminal del que fue hecho. Hay muchas variables que he de asimilar antes de dar un paso mayor.

Y ojalá llegue a poder realizarlo en un dispositivo con hardbrick, aunque de momento me conformaría con algo más liviano. Al menos necesitaré que arranque el Recovery... bueno, seguiré enredando ;-)

Borrego92
16/12/14, 12:52:58
En principio, yo el backup sólo lo usaría para restaurar el terminal del que fue hecho. Hay muchas variables que he de asimilar antes de dar un paso mayor.

Y ojalá llegue a poder realizarlo en un dispositivo con hardbrick, aunque de momento me conformaría con algo más liviano. Al menos necesitaré que arranque el Recovery... bueno, seguiré enredando ;-)

Este post merece chincheta...:silbando:

J5333JF
16/12/14, 13:01:51
Este post merece chincheta...:silbando:

Tengo pensado ne solicitar chincheta cuando este completo junto a 2 temas mas.

Solicitare hacer otro post e introducire este post + backup/restauracion de imei + restaurar mac del terminal y asi no ocupan tantos sitio en chincheta.

Nonamed
16/12/14, 13:08:30
Muchas gracias por el aporte :ok:

LEPT
16/12/14, 14:16:57
Estoy recopilando 'cosillas' que se pueden hacer con el comando DD. Extraer el IMEI ya se puso (de todas formas explicaré que es lo que se hace allí), pero extraer tu recovery, tu gpt, y más cosas sobre las particiones de nuestro dispositivo... mientras sigo investigando sobre la forma segura de "restaurar" el Backup total que puse ;-)

Borrego92
16/12/14, 14:36:05
Estoy recopilando 'cosillas' que se pueden hacer con el comando DD. Extraer el IMEI ya se puso (de todas formas explicaré que es lo que se hace allí), pero extraer tu recovery, tu gpt, y más cosas sobre las particiones de nuestro dispositivo... mientras sigo investigando sobre la forma segura de "restaurar" el Backup total que puse ;-)

Seria también interesante poder ver que particiones tiene el moto G (ver, no modificar) para saber si has modificado la tabla de particiones o has tocado algo que no debías y poder repararlo. Lo digo más que nada por si la cagamos y "dañamos" una partición, creo que es posible hacer backups de ellas una a una y poder restaurarlas.

LEPT
16/12/14, 14:58:40
Seria también interesante poder ver que particiones tiene el moto G (ver, no modificar)...

Eso ya lo tengo, y como ver mucha más info de las particiones. Lo pondré también... ya sólo necesito algo de tiempo para redactarlo bien X-D

pauuFCB
16/12/14, 17:31:59
Gran trabajo y aporte!!!

franq36
16/12/14, 18:44:53
y porque no copia de las particiones system,boot y userdata?con esto debe ser suficiente..0p31 =boot 0p34=system 0p36=userdata


las podeis ver con el root explorer dev/block/platform/msm_sdcc.1/by-name/mmcblk0p36

esto para copia ..

dd if=/dev/block/platform/msm_sdcc.1/by-name/system of=/storage/sdcard0/system.img bs=4096


y en sdcard tendras la imagen tal cual la copias ;-)

depende lo que le pase ya puede ser otras cosas

Olasergiolas
16/12/14, 19:45:19
Genial aporte. Vendrían bien que añadieras unas capturas cuando puedas

juanmb
16/12/14, 19:46:55
y porque no copia de las particiones system,boot y userdata?con esto debe ser suficiente..0p31 =boot 0p34=system 0p36=userdata


las podeis ver con el root explorer dev/block/platform/msm_sdcc.1/by-name/mmcblk0p36

esto para copia ..

dd if=/dev/block/platform/msm_sdcc.1/by-name/mmcblk0p34 of=/storage/sdcard0/system.img bs=4096


y en sdcard tendras la imagen tal cual la copias ;-)

depende lo que le pase ya puede ser otras cosas
Haciendo una copia de system, se podría flashear por fastboot?

franq36
16/12/14, 19:52:57
Haciendo una copia de system, se podría flashear por fastboot?


nooo... pero puedes restaurar la imagen X-D

dd if /storage/sdcard0/system.img of=/dev/block/platform/msm_sdcc.1/by-name/system


quizá necesite SU y shell antes si da fallo de permisos :navi:

heros_45
16/12/14, 19:54:15
Excelente aporte..

juanmb
16/12/14, 19:57:27
nooo... pero puedes restaurar la imagen X-D

dd if /storage/sdcard0/system.img of=/dev/block/platform/msm_sdcc.1/by-name/system.img


quiza necesite SU antes si da fallo :navi:

¿Y eso se haría desde adb shell, conectando el móvil a la pc con CWM?

LEPT
16/12/14, 20:05:10
y porque no copia de las particiones system,boot y userdata?con esto debe ser suficiente..0p31 =boot 0p34=system 0p36=userdata


las podeis ver con el root explorer dev/block/platform/msm_sdcc.1/by-name/mmcblk0p36

esto para copia ..

dd if=/dev/block/platform/msm_sdcc.1/by-name/system.img of=/storage/sdcard0/system.img bs=4096


y en sdcard tendras la imagen tal cual la copias ;-)

depende lo que le pase ya puede ser otras cosas


Te me estas adelantando a lo que ando redactando a ratos ^^ Lo cierto es que da mucho juego el 'DD' ya que es realmente potente, y es por eso mismo que hay que usarlo "con cuidado" ;-)

... pero tienes un par de fallos en el código:

el correcto sería:
dd if=/dev/block/platform/msm_sdcc.1/by-name/system of=/sdcard/system.img

los errores eran poner extensión IMG al primer system, y añadir bs=4096 al final con lo que sólo capturarías los primeros 4Kbytes de esa partición, y nos interesa la partición entera. Lo del destino (sdcard), ambas maneras son lo mismo

franq36
16/12/14, 20:12:33
Te me estas adelantando a lo que ando redactando a ratos ^^ Lo cierto es que da mucho juego el 'DD' ya que es realmente potente, y es por eso mismo que hay que usarlo "con cuidado" ;-)


el cuidado es el que tenga cada uno ya que como indica el primer post nadie se hace responsable de lo que le hagáis vosotros a vuestros teléfonos jejjejje ;-)

sino te arranca puedes probar con fullwipes


los datos están ahí en las particiones donde siempre X-D

p.d. incluyelo es el tutorial para sacar imagenes de tu sistema,las particiones son conocidas

p.d.2 a ver si asi salen room que no sean copias de otras sino la "suya" propia modificada y aprendemos a hacer las cosas bien

LEPT
16/12/14, 20:17:43
¿Y eso se haría desde adb shell, conectando el móvil a la pc con CWM?

Si se hace desde el shell, y si necesitas ser root.

LEPT
16/12/14, 20:18:51
el cuidado es el que tenga cada uno ya que como indica el primer post nadie se hace responsable de lo que le hagáis vosotros a vuestros teléfonos jejjejje ;-)

sino te arranca puedes probar con fullwipes


los datos están ahí en las particiones donde siempre X-D

p.d. incluyelo es el tutorial para sacar imagenes de tu sistema,las particiones son conocidas
p.d.2 a ver si asi salen room que no sean copias de otras sino la "suya" propia modificada y aprendemos a hacer las cosas bien


por supuesto! ;-)

franq36
16/12/14, 20:23:45
por supuesto! ;-)

y si incluyes el p.d.2 en grande te lo agradezco editado: en el post principal digo por si vas a utilizar los comandos para el tuto) :ok:

franq36
16/12/14, 20:29:52
Te me estas adelantando a lo que ando redactando a ratos ^^ Lo cierto es que da mucho juego el 'DD' ya que es realmente potente, y es por eso mismo que hay que usarlo "con cuidado" ;-)

... pero tienes un par de fallos en el código:

el correcto sería:
dd if=/dev/block/platform/msm_sdcc.1/by-name/system of=/sdcard/system.img

los errores eran poner extensión IMG al primer system, y añadir bs=4096 al final con lo que sólo capturarías los primeros 4Kbytes de esa partición, y nos interesa la partición entera. Lo del destino (sdcard), ambas maneras son lo mismo
lo 4mb son bloques de clusters de datos y he ido editando el archivo conforme miraba las particiones y editando el post(comprobar vuestras direcciones sean esas [emoji106]

la imagen puede ser hasta de 1 gb.. lo de la sdcard puedes acceder desde distintos sitios en storage/sdcard0 tienes el fisico y desde el montaje mnt/sdcard0 o el montado sdcard.. el primer img sí se me escapó X-D

si montas una imagen sobre una imagen montada suerte con que vaya bien ;-)


y como tu has dicho antes ojito con lo que hacéis y mezclais(versiones distintas)ni cosas de aquí y de allá que rondáis el brick duro X-D

ya que se abre abrela del todo pero repetimos nadie es responsable de lo que hagáis y vamos aprendiendo a tener bases propias de la stock y ahí para mejorarla o sacar tu MOD ya probado y testeado y dejáis de copiaros unos a otros cambiando dibujitos :nav1:

franq36
16/12/14, 21:23:42
¿Y eso se haría desde adb shell, conectando el móvil a la pc con CWM?

con linux sí y como te han dicho


esto es una imagen y tus particiones


esto se hace con el movil encendido,con bateria y la depuracion puesta y la de ubicaciones simuladas....

logicamente si lo haces con el movil encendido y le flaseas la misma particion y te va a pegar un flash que vas a filipar(reinicia) o con incompatibilidades con el resto de archivos por eso el fullwipes si no va

franq36
16/12/14, 22:23:03
Estoy en ello, estoy en ello pero soy usuario Windows de toda la vida, y el Linux se me resiste un poco, así que tengo que salvar las distancias de los problemas que se me plantean, por eso voy algo lento :-)

Pero en cuanto lo tenga listo "y probado", lo compartiré :ok:

es que te veo complicarte de una forma con aplicaciones externas si desde linux en dos comandos los haces,(linux es la leche y para cocinar lo mejor X-D)
no ha sido por chafarte el post ni nada parecido no te lo tomes a mal que no ha sido mi intención solo ha sido para ayudar

de hecho te he comentado que puedes usarlo para el tutorial pero haz las pruebas con las particiones y los contras e incluyendo el pd 2 en tu post(es lo único que pido) para el que se quiera dar por aludido que lo haga
pero que aprendan a hacer copias de "su" sistema y no copiarse unos a otros :risitas:

LEPT
17/12/14, 21:46:43
He completado el tutorial, con el proceso de restauración del backup-literal.

Lo he probado todo repetidas veces machacándome el Recovery, y va bien. Pero no he probado con la restauración entera, aunque dado que el proceso es el mismo, no debería de haber diferencias sustanciales. No obstante si alguien lo prueba, que comente (pero que recuerde que es bajo su responsabilidad).

Y si lo llego a probar yo, también comentaré, por supuesto ;-)

raan4
28/03/16, 04:30:27
Saludos a todos, alguien podría por favor subir los archivos que estaban en Mega? Ya no están disponibles y no soy experto en esto como para buscar por mi cuenta, gracias por su ayuda.

LEPT
28/03/16, 10:22:00
Saludos a todos, alguien podría por favor subir los archivos que estaban en Mega? Ya no están disponibles y no soy experto en esto como para buscar por mi cuenta, gracias por su ayuda.

Resubido!

edgar120
13/02/17, 18:56:38
el tutorial funciono a la perfeccion en un nubia nx406e, en system conn un total de 1300mb y userdata de 10gb, porque la particion de data es tan pesada? xD muchas gracias