Mehrere aufeinanderfolgende individuelle ADB-Sicherungen / Wiederherstellungen ohne Aufforderung


8

Ich habe untersucht, wie Batch-Backups über einzelne ADB-Sicherungs- / Wiederherstellungsbefehle durchgeführt werden können (um separate .ab-Dateien pro Paket / Anwendung / Daten / etc. Zu haben) (mir ist die Helium (Carbon) -Desktop-App als Option für bekannt dies - wäre sowieso daran interessiert, mein eigenes Skript zum Spaß zu schreiben).

Der Grund für den Wunsch, einzelne .ab-Dateien im Vergleich zu einer großen Datei zu erstellen, besteht darin, dass ich nur für einzelne Pakete eine teilweise Sicherungs- / Wiederherstellungsfunktion haben möchte und nicht beispielsweise 50 Apps gleichzeitig ausführen muss.

Das Haupthindernis im Moment ist, dass jedes Mal, wenn eine Sicherung / Wiederherstellung erfolgt, Benutzereingaben gegeben werden müssen, wenn die Eingabeaufforderung angezeigt wird. Gibt es eine Möglichkeit, dies zu tun, um die ADB-Sicherung / Wiederherstellung für mehrere einzelne Pakete über so etwas wie verwenden zu können? ein Shell-Skript?

Vielen Dank!

Antworten:


2

Sie können versuchen, zu verwenden, adb shell input tap <x> <y>wobei x und y die Koordinaten sind, auf die Sie auf dem Bildschirm tippen möchten (kann Koordinaten in den Entwickleroptionen anzeigen). Ich konnte diesen Code verwenden, um eine einzelne Sicherung wiederherzustellen:

#$1 is backup file

adb restore ${1} &
sleep 2
adb shell input touchscreen tap <x> <y>
wait

Ich fand es nützlich, nach dem Wiederherstellungsbefehl ein paar Sekunden zu schlafen, aber es ist möglicherweise nicht notwendig.


1

Es scheint also, dass es für uns keine eingebaute und (zumindest scheinbar) beabsichtigte Möglichkeit gibt, dies zu tun.

Dies ist stattdessen über den adb shell sendeventBefehl möglich. Dadurch können Berührungseingaben von einem Computer mit installierten ADB-Tools (und allen relevanten Treibern) emuliert werden, sofern das Telefon ADB-Zugriff auf diesen bestimmten Computer gewährt hat.

Ereignisse können mit aufgezeichnet adb shell geteventund mit abgespielt werden adb shell sendevent. Ein Benutzer könnte dann die akzeptierenden Tastendrücke aufzeichnen und ein Skript speichern, das sie wiedergibt. Dies führt natürlich zu Problemen, z. B. wenn eine Bildschirmüberlagerung (z. B. von Rotverschiebungs-Beleuchtungs-Apps) das Drücken der Taste verhindert, wenn etwas anderes angezeigt wird (möglicherweise eine Chat-Blase usw.), und zu einer beliebigen anderen Anzahl von Hindernissen bestenfalls eine Problemumgehung.


0

Dies scheint besonders seltsam, aber auf diese erwartete Weise böse Google. Nach meinem eigenen unvollständigen, aber wachsenden Verständnis der Dinge können Sie die Wiederherstellungsdatei in eine TAR-Datei konvertieren, indem Sie die ersten 24 Bytes ändern. Die Frage ist also, ob eine einfache Teerextraktion auf eine bestimmte Art und Weise (vorübergehendes erneutes Montieren von etwas oder anderem?) Dasselbe bewirken würde, was die ADB-Wiederherstellung tut. Natürlich ist die Quelle theoretisch alles da. Ich hatte vor, die Dinge irgendwann einmal auszuprobieren und zu sehen, ob sie gut genug zu funktionieren scheinen, um zu rechtfertigen, dass ich mich nicht genug darum kümmere, diese Quelle zu durchsuchen. Ja, dies ist eine ziemlich beschissene Antwort, aber es scheint sich als Platzhalter zu lohnen, bis ein kleines ADB-Shell-Skript mit Teeraufruf oder dergleichen seinen Platz einnimmt, was ich für den ursprünglichen Fragesteller nehme und gerne sehen würde.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.