Ver Mensaje Individual
  #1  
Viejo 09/04/12, 16:59:25
Array

[xs_avatar]
intronauta intronauta no está en línea
Monguer.
· Votos compra/venta: (1)
 
Fecha de registro: ago 2009
Mensajes: 5,345
Tu operador: Pepephone

Arrow [REF] ADB BACKUP, haz y restaura backups de tus datos en ICS desde el ordenador y sin necesidad de ser root

Hay una característica incluida en Android ICS muy curiosa que ha pasado bastante desapercibida, y es la posibilidad de hacer y restaurar backups con adb sin necesidad de ser root.
Por aclarar antes de nada, esta función ni existe ni funciona en GingerBread

Además de lo útil que es para quien no tenga/sea root y quiera hacer un factory reset sin perder sus datos, para los que solemos tener las sdcard llenas continuamente además nos permite hacer lo mismo que hace por ejemplo titanium (copiar todas nuestras apps con sus datos) pero dejando el backup en el PC y restaurarlo desde eĺ, es decir, sin necesitar espacio en la sdcard para almacenarlo.



El comando


Esta es la sintaxis que propone adb de serie, pero parece que solo es compatible tal cual con el Galaxy Nexus o similares, ya que por la propia estructura interna del SGS2 (especialmente por la gestión de vold) hay cosas que no funcionan como se propone aquí:

Código:
adb backup [-f <file>] [-apk|-noapk] [-shared|-noshared] [-all] [-system|-nosystem] [<packages...>]
                               - write an archive of the device's data to <file>.
                                 If no -f option is supplied then the data is written
                                 to "backup.ab" in the current directory.
                                 (-apk|-noapk enable/disable backup of the .apks themselves
                                    in the archive; the default is noapk.)
                                 (-shared|-noshared enable/disable backup of the device's
                                    shared storage / SD card contents; the default is noshared.)
                                 (-all means to back up all installed applications)
                                 (-system|-nosystem toggles whether -all automatically includes
                                    system applications; the default is to include system apps)
                                 (<packages...> is the list of applications to be backed up.  If
                                    the -all or -shared flags are passed, then the package
                                    list is optional.  Applications explicitly given on the
                                    command line will be included even if -nosystem would
                                    ordinarily cause them to be omitted.)

  adb restore <file>           - restore device contents from the <file> backup archive

A pesar de todas las opciones que brinda el applet y mil pruebas después, lo único que podemos hacer en el SGS2 (al menos con stock roms, no he probado en cyanos o aosps):
  1. Hacer un backup de los datos de nuestra apps (/data/data)
  2. Hacer un backup de nuestras apps + sus datos (/data/app+/data/data) [esta es la opción recomendada, equivale a decirle a Titanium que haga backup de todas nuestras apps de usuario con sus datos]
  3. Hacer un backup de nuestras apps + sus datos +sus datos volcados en la sdcard (/data/app+/data/data+/sdcard/Android+/sdcard/.android_secure)
  4. Hacer un backup de nuestras apps y del sistema + sus datos +las sdcard completas!!(/system/app+/data/app+/data/data+/sdcard+/sdcard/external_sdcard)
  5. Restaurar el backup :P


Estos serían los comandos para cada opción. Ten en cuenta que el tiempo de aplicación y el tamaño del backup varía en función del número de apps y los datos en la sdcard, especialmente si usas las dos últimas opciones como puedes ver a continuación:
  1. adb backup -noapk -noshared -all -nosystem -f /RUTA/ARCHIVO
    en mi caso supuso un par de minutos y 118MB de backup
  2. adb backup -apk -noshared -all -nosystem -f /RUTA/ARCHIVO
    en mi caso supuso varios minutos y 800MB aprox de backup
  3. adb backup -apk -shared -all -nosystem -f /RUTA/ARCHIVO
    en mi caso supuso casi una hora y 7,9GB aprox de backup
  4. adb backup -apk -shared -all -system -f /RUTA/ARCHIVO
    en mi caso con las dos sdcards llenas (tengo una externa de 16GB) , después de 3h y 20GB lo detuve por quedarme sin espacio XD
  5. adb restore /RUTA/ARCHIVO
    tardará lo mismo que tardó en hacer el propio backup, más o menos.

También puedes hacer backup individuales por aplicación, pero debes utilizar el nombre del proceso para ello:

adb backup -apk com.anddoes.fancywidgets -f /RUTA/fancywidgets.backup
*si pones -noapk en vez de -apk, no incluirás apk en sí y solo harás backup de sus datos

y para restaurarlo:

adb restore /RUTA/fancywidgets.backup



Requisitos
  • Tener el sdk de android instalado y actualizadas sus "tools", y preferiblemente tener asignado en el PATH del sistema la ruta a la carpeta platform-tools del sdk (donde se encuentra adb), para poder ejecutar el comando desde cualquier ruta.
  • Y en tu terminal, ajustes->opciones desarrollador y activar Depuración de Usb.


El proceso

Una vez lanzado el comando, debemos desbloquear el terminal y confirmar la solicitud de backup. A partir de ahí solo esperar a que termine.
No es un proceso muy amigable que digamos, apenas emite mensajes, solo deja el terminal tranquilo hasta que termine. Yo lo que hacía era comprobar de vez en cuando el tamaño del archivo-backup para saber si se había bloqueado o no, ya que como digo, llegado un punto y dependiendo del backup en que se queda como en pausa sin emitir ningún mensaje ni progreso. Si el backup crece, es que el proceso está activo.

También te da la oportunidad de añadir un password si quieres proteger el backup o en el caso de tener encriptado el contenido de tu terminal, meter la clave oportuna.

A la hora de restaurar es igual de "opaco" o más si cabe, solo déjale que termine.




He creado una par de scripts super básicos para hacer estas tareas de una forma un poco "más amigable" , puede ser útil para quien no quiera trastear con los comandos:

Asistente adb_backup para linux: http://db.tt/PpzojGDG
Asistente adb_backup para windows: http://db.tt/7YA4KSBd **gracias a jrsoft por los tips

*Si no tienes configurado en el PATH la ruta a platform-tools, pon el archivo en la carpeta platform-tools y ejecútalo desde ahí.
__________________
________
[CWMODIN] Flashea y personaliza ODIN stock roms desde el recovery http://ow.ly/kbEwt
[Universal Flasher Tool] Flashea temas metamorph y archivos desde el recovery con autobackup http://goo.gl/Gxucm

Última edición por intronauta Día 10/04/12 a las 12:55:22.
Responder Con Cita
Los siguientes 33 usuarios han agradecido a intronauta su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]