sudo: Jack of all trades, master of some

Respalda tu Android smartphone usando ADB

13 comentarios

En el post anterior dejé sutilmente dicho que afortunadamente soy dueño de un smartphone fabricado por Google, ahora comento que es un Nexus 4, un poco achacoso y sometido a cirugías pero funciona y con partes nuevas.

Como buen tipo que se preocupa por saber lo que tiene y cómo funciona me dediqué un tiempo a seleccionar métodos para el respaldo de la información del teléfono. Desde que lo tengo en mis manos no ha parado de sufrir cambios bruscos.

Uso Cyanogenmod, el que diga que no es una alternativa genial al sistema operativo de stock no vive en el planeta Tierra, no daré muchos detalles porque me saldría del tema central. He estado moviéndome en CM12 Snapshot y ahora en la rama Nightly de CM13 ya que Google dejó de dar soporte a este dispositivo y por tanto me era imposible utilizar Marshmallow oficial, que de todos modos no lo iba a utilizar existiendo Cyanogenmod.

Este movimiento constante requiere de flasheos y cambios a nivel de sistema que implica la pérdida de datos, por tanto es de vital importancia tener un plan de respaldo.

Existen disímiles formas de respaldar la información de un smartphone con Android, sin embargo prefiero utilizar ADB, para mí, una herramienta excelente.

¿Qué respaldar?

Personalmente respaldo la siguiente información:

Es necesario tener ADB instalado en el sistema ya sea a través del SDK de Android o del paquete android-tools.

Antes de continuar es importante aclarar que para la base de datos de SMS y contactos es necesario tener privilegios de root (con Cyanogenmod es cuestión de activarlo en el menú de desarrolladores).

Usando ADB

cd ANDROID-BACKUP
adb backup -f backup-$(date +%d%m%Y-%H%M).ab '-apk -all -nosystem'
adb pull -a /sdcard sdcard-$(date +%d%m%Y-%H%M)
adb pull -a /data/data/com.android.providers.telephony/databases sms-$(date +%d%m%Y-%H%M)
adb pull -a /data/data/com.android.providers.contacts/databases contacts-$(date +%d%m%Y-%H%M)

Sí, solo cuatro (4) líneas de comandos, todos los archivos se almacenarán en el directorio ANDROID-BACKUP, de ahí la primera línea.

Antes de continuar aclaro que uso Linux y bash por tanto puedo hacer uso de este comando $(date +%d%m%Y-%H%M) que genera la fecha en el momento de ejecutarse ADB. Si se utiliza Windows para estos menesteres simplemente NO VA A FUNCIONAR.

Personalmente solo respaldo las aplicaciones que instalo por tanto en la segunda línea hago uso de los parámetros -apk para incluir las APKs, -all indicando que serán todas las aplicaciones y -nosystem para excluir aquellas que son del sistema.

Confieso que fue todo un dolor lograr que me funcionara el backup de las aplicaciones, llegué al punto de que repetía, como un loco los comandos porque no podía entender por qué no funcionaba, incluso con adb logcat el sistema decía que esos parámetros no eran válidos o no se pasaban algunos obligatorios (WTF?!).

La solución fue encerrar entre comillas simples los parámetros ya que en la versión 1.0.32 de ADB al parecer exisite este problema, aunque tengo mis dudas si el culpable es ADB o el comando bu de Marshmallow, juraría que había hecho un backup cuando usaba Lollipop.

Estoy seguro que muchos se preguntan por qué la tercera línea y no un simple copiar/pegar usando el administrador de archivos. Simple, con ADB se preservan los permisos y los timestamps usando el parámetro -a.

Los mensajes de texto así como los contactos y registros de llamadas se almacenan en bases de datos de SQLite y es lo único que necesitamos.

Ya está, así puedo flashear tantos ROMs sin temor a perder mis datos.

Comentarios desactivados
  1. Si! Yo también soy un feliz usuario de cyanogenmod, pero las copias de seguridad las hago con TWRP y con Titanium Backup porque generalmente cuando actualizo, flasheo, reflasheo, etc. no estoy cerca de una PC.

    1. @Sam

      Igualmente uso TWRP, pero no me gustan los backups nandroids, solo hago este tipo de respaldo en raras ocasiones.

  2. Rafael Castro 4 años atrás

    CyanogenMod? Quien usa eso? Jeje, sin dudas un gran firmware!

  3. Particularmente tengo un Galaxy Light con Android, digo CM12 y me va muy bien, no extraño para nada el 4.4.2 que venia con él.

    ADB no lo he tarequeado mucho, solo lo basico, pero ahora mismo anoto el truco, que será probado después.

    CM13 para mi Galaxy Light hay, pero no acabo de encontrar la ROM[el link de descarga], y todo el que la tiene no me respondo cuando le pregunto. No importa, yo espero…

    1. @Koratsuki

      Pues en la Wiki de CM no existe, el ROM que hay es unofficial, busca en XDA.

  4. BTW: alguien sabe por qué no se puede acceder a http://download.cyanogenmod.org desde las redes de ETECSA (tanto WiFi como salas nauta) y otras… a veces!, si porque a veces (muy muy pocas) vas y entras sin problemas.

    1. @Sam

      NFI, yo desistí y me hice de otros métodos. Creo que es cuestión de US embargo.

  5. Pos yo soy el usuario de un flamante Alcatel SPOP 4030X y, como es lógico, anda también con CM12 modificado para estos modelos. En mi caso para los backups a nivel de terminal uso CWM.
    Asumo que has utilizado heimdall(los que usan Samsumg) para los flasheos no?

    1. @Ozkar

      No hago backups nandroids, por tanto no uso ni CWM ni TWRP (deberías pasarte a este).

      1. @oneohthree

        Na, hasta ahora CWM sigue el principio de las apps reusables: Do one thing, and do it well.
        btw, Los backups nandroids son útiles, ya he freído mi terminal en más de una ocasión y lejos de cualquier PC.

        1. @Ozkar

          Ok, ok, tienes el derecho de usar lo que desees solo que CWM se está quedando un poco detrás y obsolete. Mala tuya por hacer cosas indebidas :D y estar friendo cosas que no se comen. :D

          1. @oneohthree

            Es que mi terminal tampoco es muy moderna ;-D. See ya on @cubaconference!

            1. @Ozkar

              No creo que pueda ir desgraciadamente. ¿Razones? principalmente económicas y logísticas.