Les applications ne sont pas installées avec la restauration adb

9

J'ai un appareil Android 7.0 non rooté (NVIDIA Shield Tablet) qui a été précédemment sauvegardé avec

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

Mais le restaurer avec

adb restore mybackup.ab

résulte en ce que /Android/data, etc. sont restaurés, mais les applications ne sont pas installées à partir de fichiers apk, pas d'erreurs.

J'ai dû extraire des fichiers apk de mybackup.ab et les installer manuellement par lot avec adb install <...>.apk. Après ça, tout allait bien.

Je suis sûr que j'ai déjà rencontré un problème similaire avec 6.0. et Helium / Carbon avant, mais je pensais que c'était spécifique à la méthode de sauvegarde que j'avais choisie.

Quel est le problème adb restore? Est-ce parce que l'appareil n'est pas rooté? Pourquoi adb installfonctionne comme prévu alors?

Flacon Estus
la source
Avez-vous déjà trouvé une solution? Il s'agit de l'un des meilleurs résultats de recherche pour ce problème.
Skylar Ittner
1
@SkylarMT Pas encore. Encore à utiliser adb installen lot. J'espère que quelqu'un pourra vous aider à ce sujet.
Estus Flask
J'ai eu un succès partiel en utilisant Titanium Backup pour restaurer le fichier de sauvegarde adb. Il nécessite root et n'a pas tout obtenu, mais il a restauré plus de la moitié des applications que j'avais installées.
Skylar Ittner
Voir si cette solution aide
beeshyams

Réponses:

4

Je l'ai résolu avec le script suivant

#!/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"

Vous avez en outre besoin de l'extracteur de sauvegarde android. Cependant, selon mon expérience, la sauvegarde adb n'est toujours pas vraiment sûre. Tout d'abord, certaines applications peuvent définir un indicateur, de sorte qu'elles ne seront pas sauvegardées. Et la restauration ne fonctionne que parfois et n'est pas sûre, par exemple si vous changez de périphérique. C'est dommage qu'en 2018, seul Titanium Backup fasse du bon travail, si vous avez un téléphone rooté.

niels
la source
Je voterais deux fois si je le pouvais! 3 jours pour essayer de le faire fonctionner - cela a fait l'affaire. Nominez-vous "héros de la semaine" :) // Référence: BQ Aquaris X5 Plus sur Nougat / LOS 14.1.
Izzy
Huawei Backup fait aussi du bon travail sur les téléphones Huawei. Mais loin de Titanium :-(
niels
2

Les commandes adb restorene sont pas réinstaller .apk. En fait, cette commande consiste uniquement à réécrire les fichiers système et de données. - Site de développement Android

Si vous souhaitez automatiser le processus d'installation des applications:

  1. Ajouter tous les .apk extraits dans un dossier
  2. Tapez for %f in (C:\_apk folder location_\*.apk) do adb install "%f" REMARQUE: si vous avez des fichiers .apk qui ont des "espaces" dans leurs noms, adb n'a pas reconnu les espaces, réécrivez-le avec _ ou autre chose.
MaTT Belis
la source
Pouvez-vous s'il vous plaît spécifier la référence de cette information si elle est correcte? Puisque adb backupsauvegarde tout, y compris les apks, je m'attends à ce que cela adb restorefasse le contraire. Parce qu'autrement, il semble que les apks gaspillent simplement de l'espace dans le fichier .ab.
Estus Flask
Dans le tableau 1.> Commandes de sauvegarde et de restauration sur le site de développement Android, laadb restore commande est décrite comme "Restaurer le contenu du périphérique à partir d'un fichier", elle est interprétée pour moi comme des fichiers non compressés et placés dans le périphérique uniquement, pas dans les packages d'installation. cela a du sens, je pense, pour l'installation était définir la commande adb install(ce n'est pas nécessairement avoir funkcionality d'installation dans d'autres commandes) mais je conviens que ce serait bien :)
MaTT Belis
@MaTTBelis "Restaurer le contenu du fichier" signifie pour moi restaurer tout ce que le fichier contient (ce qui inclut l'installation de l'APK s'il est là). Et jusqu'à MM, il faisait exactement cela (j'utilise cela depuis Android 4, quand il a été introduit). Les problèmes ont commencé uniquement avec Android 7, où un bogue semble empêcher l'installation de l'APK. Sur certains appareils, vous trouvez dans logcat qu'il essaie exactement cela (mais échoue sans le dire). En fait, pour ces appareils, la réponse de Nils fonctionne.
Izzy