Las aplicaciones no están instaladas con adb restore

9

Tengo un dispositivo Android 7.0 no rooteado (NVIDIA Shield Tablet) que anteriormente estaba respaldado con

adb backup -apk -shared -all -nosystem -f mybackup.ab

Pero restaurarlo con

adb restore mybackup.ab

los resultados /Android/datase restauran, etc., pero las aplicaciones no se instalan desde archivos apk, no hay errores.

He tenido que extraer archivos apk de mybackup.ab e instalarlos manualmente en lote con adb install <...>.apk. Después de eso todo estuvo bien.

Estoy bastante seguro de que anteriormente tuve un problema similar con 6.0. y Helium / Carbon antes, pero pensé que era específico del método de respaldo que elegí.

¿Cuál es el problema con adb restore? ¿Es porque el dispositivo no está rooteado? ¿Por qué adb installfunciona como se espera entonces?

Estus Flask
fuente
¿Encontraste alguna solución? Este es uno de los principales resultados de búsqueda para este problema.
Skylar Ittner
1
@SkylarMT Todavía no. Todavía tiene que usar adb installen lote. Espero que alguien pueda ayudar en esto.
Estus Flas
Tuve un éxito parcial al usar Titanium Backup para restaurar el archivo de respaldo adb. Requiere root y no obtuvo todo, pero restauró más de la mitad de las aplicaciones que había instalado.
Skylar Ittner
Vea si esta solución ayuda
beeshyams

Respuestas:

4

Lo resolví con el siguiente script

#!/bin/bash
killall adb > /dev/null 2>&1
set -e

if [ $# -ne 1 ]; then
  echo "Usage: $0 <package-name-without-ab>"
  exit 1
fi

export PATH=/opt/jdk1.8.0_152_jce/jre/bin:$PATH
ab=$1.ab
java -jar /opt/android-backup-extractor-20160710-bin/abe.jar unpack $ab $ab.tar apw; tar -xf $ab.tar --wildcards '*.apk' --strip-components=3
mv base.apk $ab.apk
rm $ab.tar
adb install $ab.apk

adb restore $ab

echo "Ready"

Además, necesita el extractor de copia de seguridad de Android. Sin embargo, en mi experiencia, adb backup todavía no es realmente seguro. En primer lugar, algunas aplicaciones pueden establecer una bandera, por lo que no serán copias de seguridad. Y la restauración solo funciona a veces y no estoy seguro, por ejemplo, si cambia el dispositivo. Es una pena que en 2018 solo Titanium Backup haga un buen trabajo, si tiene un teléfono rooteado.

Niels
fuente
¡Votaría esto dos veces si pudiera! 3 días tratando de hacer que funcione, esto funcionó. Nomínelo para "héroe de la semana" :) // Referencia: BQ Aquaris X5 Plus en Turrón / LOS 14.1.
Izzy
Huawei Backup también hace un buen trabajo en los teléfonos Huawei. Pero lejos de Titanio :-(
niels
2

Los comandos adb restoreno son instalar .apk de nuevo. En realidad, este comando solo reescribe el sistema y los archivos de datos. - Sitio de desarrollo de Android

Si desea automatizar el proceso de instalación de aplicaciones:

  1. Agregue todo .apk extraído a una carpeta
  2. Escriba for %f in (C:\_apk folder location_\*.apk) do adb install "%f" NOTA: si tiene archivos .apk que tienen "espacios" en sus nombres, adb no reconoce espacios, reescríbalo con _ o cualquier otra cosa.
MaTT Belis
fuente
¿Puede especificar la referencia para esta información si es correcta? Dado que realiza una adb backupcopia de seguridad de todo, incluidas las aplicaciones, esperaría que adb restorehaga lo contrario. Porque de lo contrario, parece que las aplicaciones solo desperdician espacio en el archivo .ab.
Estus Flask
En la tabla 1> copia de seguridad y restauración de comandos en el sitio dev androide es adb restorecomando describen como "restaurar el dispositivo contenidos de archivo" es interpretar para mí como descomprimir archivos y poner en el dispositivo, no sólo los paquetes de instalación. tiene sentido, creo, para la instalación se definió el comando adb install(no necesariamente tiene la funcionalidad de instalación en otros comandos) pero estoy de acuerdo en que sería bueno :)
MaTT Belis
@MaTTBelis "Restaurar contenido del archivo" para mí significa restaurar todo lo que contiene el archivo (que incluye instalar el APK si está allí). Y hasta MM hizo exactamente eso (estoy usando esto desde Android 4, cuando se introdujo). Los problemas comenzaron solo con Android 7, donde un error parece impedir la instalación del APK. En algunos dispositivos, encuentra en logcat que intenta exactamente eso (pero falla sin decirlo). En realidad, para esos dispositivos , la respuesta de Nils funciona.
Izzy