Anwendungen werden mit adb restore nicht installiert

9

Ich habe ein nicht gerootetes Android 7.0-Gerät (NVIDIA Shield Tablet), mit dem zuvor ein Backup durchgeführt wurde

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

Aber mit wiederherstellen

adb restore mybackup.ab

führt dazu, dass /Android/datausw. wiederhergestellt werden, aber die Anwendungen nicht aus apk-Dateien installiert werden, keine Fehler.

Ich musste apk-Dateien aus mybackup.ab extrahieren und manuell im Batch mit installieren adb install <...>.apk. Danach war alles in Ordnung.

Ich bin mir ziemlich sicher, dass ich zuvor ein ähnliches Problem mit 6.0 hatte. und Helium / Carbon zuvor, dachte aber, dass es spezifisch für die von mir gewählte Sicherungsmethode ist.

Was ist das Problem mit adb restore? Liegt es daran, dass das Gerät nicht gerootet ist? Warum funktioniert adb installdann wie erwartet?

Estus Flask
quelle
Haben Sie jemals eine Lösung gefunden? Dies ist eines der Top-Suchergebnisse für dieses Problem.
Skylar Ittner
1
@ SkylarMT Noch nicht. Muss noch adb installim Batch verwendet werden. Hoffe, jemand kann dabei helfen.
Estus Flask
Ich hatte teilweise Erfolg mit Titanium Backup, um die ADB-Sicherungsdatei wiederherzustellen. Es erfordert root und hat nicht alles bekommen, aber es hat über die Hälfte der Apps wiederhergestellt, die ich installiert habe.
Skylar Ittner
Sehen Sie, ob diese Lösung hilft
Beeshyams

Antworten:

4

Ich habe es mit dem folgenden Skript gelöst

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

Sie benötigen außerdem den Android-Backup-Extraktor. Meiner Erfahrung nach ist adb backup jedoch immer noch nicht wirklich sicher. Zunächst können einige Apps ein Flag setzen, damit sie nicht gesichert werden. Und die Wiederherstellung funktioniert nur manchmal und ist nicht sicher, zum Beispiel, ob Sie das Gerät wechseln. Es ist eine Schande, dass 2018 nur Titanium Backup gute Arbeit leistet, wenn Sie ein verwurzeltes Telefon haben.

niels
quelle
Ich würde das zweimal verbessern, wenn ich könnte! 3 Tage, um es zum Laufen zu bringen - das hat den Trick gemacht. Nominiere dich zum "Helden der Woche" :) // Referenz: BQ Aquaris X5 Plus auf Nougat / LOS 14.1.
Izzy
Huawei Backup macht auch auf Huawei-Handys gute Arbeit. Aber weit weg von Titan :-(
niels
2

Befehl adb restorenicht installieren APK zurück. Tatsächlich ist dieser Befehl nur das Zurückschreiben von System- und Datendateien. - Android Dev Site

Wenn Sie den Installationsprozess für Apps automatisieren möchten:

  1. Fügen Sie alle extrahierten .apk zu einem Ordner hinzu
  2. Typ for %f in (C:\_apk folder location_\*.apk) do adb install "%f" HINWEIS: Wenn Sie APK-Dateien haben, deren Namen "Leerzeichen" enthalten, hat adb Leerzeichen nicht erkannt. Schreiben Sie sie mit _ oder was auch immer neu.
MaTT Belis
quelle
Können Sie bitte die Referenz für diese Informationen angeben, wenn sie korrekt sind? Da adb backupalles gesichert wird, einschließlich apks, würde ich erwarten, dass adb restoredas Gegenteil der Fall ist. Denn ansonsten scheint es, dass Apks nur Speicherplatz in der .ab-Datei verschwenden.
Estus Flask
In Tabelle 1> Sichern und Wiederherstellen - Befehle auf Android - Entwickler - Website ist adb restoreBefehl beschreiben als „das Gerät wiederherstellen Inhalt aus der Datei“ es ist für mich als Dekomprimieren von Dateien interpretieren und nur in Gerät setzen, nicht Installationspakete. Es macht Sinn, denke ich, für die Installation war Define-Befehl adb install(es muss nicht unbedingt Installationsfunktionalität in anderen Befehlen haben), aber ich stimme zu, es wäre schön :)
MaTT Belis
@MaTTBelis "Inhalt aus Datei wiederherstellen" bedeutet für mich, alles wiederherzustellen, was die Datei enthält (einschließlich der Installation des APK, falls vorhanden). Und bis MM hat es genau das getan (ich benutze dies seit Android 4, als es eingeführt wurde). Probleme begannen nur mit Android 7, wo ein Fehler die Installation des APK zu verhindern scheint. Auf einigen Geräten finden Sie in logcat, dass es genau das versucht (aber ohne Fehler fehlschlägt). Für diese Geräte funktioniert die Antwort von Nils .
Izzy