34 votos

Realizar copia de seguridad y restaurar ajustes y aplicaciones de Android a través de ADB

Me gustaría preguntar si es posible hacer una copia de seguridad y restaurar todas las configuraciones y aplicaciones de Android a través de ADB.

Intenté:

adb backup -all
adb: unable to connect for backup

No está funcionando, mientras que todos los demás comandos sí funcionan.

¿Es posible usar este bmgr?

0 votos

Estoy usando adb 1.0.29 en win7-64 y recibo el error adb: unable to open file ./backup.ab al ejecutar adb backup -all. ¿El comando adb devices encuentra tu dispositivo Android?

0 votos

Sí, puedo ver el id del dispositivo.

0 votos

He tenido un problema similar al enviar múltiples nombres de paquetes en la línea de comandos. El problema era (es) que el número de paquetes a respaldar es demasiado largo. Necesitaba dividirlo en múltiples llamadas de comando

9voto

Asegúrate de que la depuración esté habilitada y el dispositivo esté conectado. Además, recuerda seleccionar realmente el botón "hacer copia de seguridad de mis datos" en el dispositivo mismo (el dispositivo requiere confirmación). Si no ves una pantalla así en tu dispositivo, es muy probable que estés utilizando un teléfono anterior a ICS (< 4.0), que lamentablemente no tendrá esta función.

Además, bmgr no es una solución para esto. Es una herramienta para probar aplicaciones que manejan sus propias copias de seguridad utilizando la API de copia de seguridad disparando manualmente los métodos "backup" y "restore" en el agente de copia de seguridad de la aplicación, no accediendo al dispositivo y copiando datos hacia/desde la máquina de desarrollo.

0 votos

Sí, para mí el problema era la versión antigua de Android en mi teléfono, anterior a la 4.0. ¡Gracias!

0 votos

¿Esto incluye realmente configuraciones/datos?

7voto

desam1000 Puntos 51

Aquí está mi comando para hacer una copia de seguridad

./adb shell ls -l -a | grep '^[^l]' | sed -e 's/^d.* \([^ ]*\)\r$/mkdir sav\/\1; .\/adb pull \/\1 sav\/\1/' -e 's/-.* \([^ ]*\)\r$/.\/adb pull \/\1 sav\/\1/' | /bin/bash
  1. listar todos los archivos
  2. ignorar los enlaces
  3. para
    • archivos : generar un comando adb pull
    • directorios : crear el directorio (en caso de que esté vacío) y generar un comando adb pull
  4. ejecutar todo en bash

Hay algunos archivos donde obtengo un error de permiso denegado - pero como esta copia de seguridad se hace para rootear el dispositivo, no puedo obtener más permisos :(

1 votos

Esto parece respaldar todos los archivos (sin contar los "permiso denegado") incluso en Androids más antiguos (en este caso, Gingerbread 2.3.3). Utilizo esta variante (agregué el parámetro -p a mkdir para evitar algunos mensajes de error y eliminé ./ delante de ./adb): time adb shell ls -l -a | grep '^[^l]' | sed -e 's/^d.* \([^ ]*\)\r$/mkdir -p sav\/\1; adb pull \/\1 sav\/\1/' -e 's/-.* \([^ ]*\)\r$/adb pull \/\1 sav\/\1/' | /bin/bash

3 votos

Una forma mucho más sencilla de hacer una copia de seguridad recursiva de todos los archivos, sin necesidad de utilizar ninguna expresión regular sofisticada es "adb pull /."

6voto

Si te entiendo correctamente, este enlace podría ser lo que estás buscando. Para resumir:

1) Ejecuta adb devices para asegurarte de que tu dispositivo esté conectado.

2) Ejecuta adb pull /data/app ./ para obtener todos los APK de la aplicación y ponerlos en la carpeta actual.
a) O ejecuta adb pull /system/sd/app ./ para obtener aplicaciones en la tarjeta SD.

3) La configuración se encuentra en varios lugares, así que averigua dónde y luego utiliza el mismo comando adb pull para obtenerlas.

Y luego el enlace detalla cómo restaurar basado en Mac o Windows.

Alternativamente, parece que el comando bmgr que mencionaste también funcionaría con unos pocos comandos sencillos (adb shell bmgr backup para hacer una copia de seguridad y adb shell bmgr restore para restaurar). ¿Qué más estás buscando?

1 votos

Como señala Alexander Lucas en su respuesta a continuación, el comando bmgr es una herramienta para desarrolladores para probar la copia de seguridad/restauración de aplicaciones. En realidad no copia ningún dato del dispositivo, por lo que es poco probable que sea útil.

0 votos

No funciona en adb 1.0.30 con dispositivo Gingerbread: pull: construyendo lista de archivos... 0 archivos extraídos. 0 archivos omitidos.

0 votos

Su comando adb pull no funcionará en dispositivos sin acceso root para datos de aplicaciones privadas. Y bmgr solo sirve para controlar la copia de seguridad en la nube de Google.

2voto

Greg Ball Puntos 970

Asegúrese de ejecutar la actualización del SDK y específicamente marque la casilla para Controladores USB de Google y actualice el SDK.

Después de habilitar la depuración USB en su dispositivo y conectarlo a su PC, debería recibir una ventana emergente sobre la instalación de controladores. Incluso si es exitosa, abra el administrador de dispositivos y encuentre su teléfono, haga clic derecho y actualice los controladores apuntando a la carpeta de controladores USB de Google en el SDK > Extras > Google USB y deje que se actualicen los controladores.

Luego debería poder realizar copias de seguridad completas de su dispositivo.

0 votos

Esto solucionó el problema para mí cuando lo estaba teniendo. Los controladores no eran el problema, sino que la versión de ADB en sí misma estaba demasiado desactualizada.

2voto

Bennett McElwee Puntos 5750

El problema probablemente se deba a que hay más de un dispositivo/emulador conectado.

Verifica adb devices si muestra más de un dispositivo, es posible que no pueda conectarse especialmente a emuladores.

Ejecuta adb usb para reiniciar otros dispositivos, luego desconecta/conecta el cable USB, ahora ejecuta

adb devices

debería mostrar solo un dispositivo.

ahora haz

adb backup -all

y deberías estar listo para continuar :)

0 votos

¿Qué tendría que hacer si uso el comando localmente a través de un emulador de terminal para Android?

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X