Google Backup: Mehrere Geräte mit demselben Konto - Was passiert bei der Wiederherstellung?


54

Es ist nichts Neues, dass man mehrere Android-Geräte mit einem einzigen Google-Konto verwenden kann . Wenn Sie ein neues Gerät zum ersten Mal einschalten, werden Sie gefragt, ob Sie Ihre Daten bei Google speichern möchten, das dann grundsätzlich immer "einiges" mit den Google-Servern synchronisiert

  • Einige Anwendungsdaten (sofern die Apps dies ausdrücklich unterstützen)
  • Wi-Fi-Passwörter
  • Browser-Lesezeichen
  • eine Liste der von Google Play installierten Apps
  • Dem Wörterbuch hinzugefügte Wörter, die von der Bildschirmtastatur verwendet werden
  • die meisten Ihrer benutzerdefinierten Einstellungen

Details finden Sie möglicherweise im Google Dashboard . Relevante Fragen zu diesen Themen sind:

Die Entwickler-API von Google Backup bietet weitere Einblicke in die Funktionsweise des Sicherungsmaterials (und verschiedene Fragen zeigen, wie es tatsächlich funktioniert - manchmal, manchmal nur teilweise und manchmal überhaupt nicht). Abgesehen von der Zuverlässigkeit und der Tatsache, dass nicht jeder seine privaten Daten in der Cloud speichern möchte (und sogar die erwähnte API-Referenz 2 warnt: Android übernimmt keine Garantie für die Sicherheit Ihrer Daten bei der Verwendung von Backups. Sie sollten bei der Verwendung von Backups zum Speichern vertraulicher Daten immer vorsichtig sein Daten, wie Benutzernamen und Passwörter. ), ist meine Hauptfrage:

Daten von mehreren Geräten mit demselben Konto sichern:

  • Was würde mit einem auf die Werkseinstellungen zurückgesetzten Gerät geschehen, das zuvor auf diese Weise verwendet wurde? Wäre es anerkannt und hätten nur die Dinge restauriert, die zuvor darauf verwendet wurden?
    (Geräteidentifikation könnte zB über IMEI erfolgen (aber nicht über die Android_ID, da dies bei einem Factory Reset weg sein könnte ) - und dies könnte der Grund für das in Nalums Antwort beschriebene Verhalten sein )
  • Was würde auf einem (neuen / auf die Werkseinstellungen zurückgesetzten) Gerät wiederhergestellt, das Sie gerade zum ersten Mal mit diesem Google-Konto initialisiert haben?
    (Wenn Geräte mit Backups im verwendeten Google-Konto identifiziert würden, könnte dies eine spezielle Aktion für "neues Gerät" auslösen, z. B. "Alle wiederherstellen, Gerät geändert!" - oder "Alle vom nicht mehr verbundenen Gerät wiederherstellen X, as" es wurde wahrscheinlich ersetzt! "- aber bleiben Sie bei" nur wiederherstellen, was auf diesem Gerät war "im Falle eines Factory-Reset)

Der Deal ist: Wenn man mehrere Geräte hat, werden diese oft für bestimmte Probleme verwendet, so dass man nicht alles auf allen Geräten haben möchte. Da ich keine Möglichkeit gesehen habe, auszuwählen, welche Daten gesichert werden sollen (z. B. um die "sensiblen Daten" auszuschließen, vor denen wir gewarnt wurden: WLAN-Kennwörter würden zu dieser Kategorie gehören), gehe ich davon aus, dass es auch keine andere Wahl für die Wiederherstellung gibt. Wie wird das also gehandhabt?


Zwei weitere Quellen, die eine interessante Lektüre sein könnten , sind: Google Backup and Restore für Android ist gerätespezifisch? (was das "Durcheinander" von mindestens Android-Versionen vor 4.x beschreibt), und der automatische Sicherungs- und Wiederherstellungsdienst von Android ist großartig ... wenn es funktioniert . Beide spiegeln teilweise meine Frage wider, aber keine beantwortet sie. Soviel zum Thema googeln.
Izzy

3
Die einzige Eingabe, die ich geben kann, ist, dass es so unzuverlässig ist. Ich wünschte, es gäbe eine manuelle Schaltfläche zum Sichern / Wiederherstellen, die ich verwenden könnte. Ich habe neulich mein Tablet zurückgesetzt und es hat nicht alle meine Apps und Einstellungen wiederhergestellt. Ich mag das nicht, ich kann mich nicht darauf verlassen.
crdx

Da nicht einmal ein Kopfgeld in der Lage ist, die Details herauszubringen, sind die Chancen, eine "vollständige Antwort" zu finden, eher gering. Wir wissen also ungefähr das Gleiche wie zuvor: Es könnte "auf die eine oder andere Weise" funktionieren, man muss versuchen, es herauszufinden, und man könnte Glück haben oder nicht. Vielen Dank, Google, für ein unzuverlässiges Tool ohne Benutzerdokumentation :( Also geht das Kopfgeld an Nalum: obwohl die Antwort vor dem Kopfgeld lag, ist es das Beste, was wir haben :)
Izzy


@Flow Ja. Und die Antwort sieht erstaunlich vertraut aus :)
Izzy

Antworten:


42

Reden wir über Sets, Baby

Der Backup-Dienst von Android hat ein Konzept, das Set genannt wird : das Set aller Daten, die von einem Gerät gesichert wurden (auf einem Transport , aber das ist ein Detail). Jeder Satz ist durch eine eindeutige Zeichenfolge gekennzeichnet, z. B. die IMEI auf dem Gerät. Wenn eine App (oder die Liste der installierten Apps) gesichert wird, werden ihre Sicherungsdaten in den Satz verschoben, der dem Gerät zugeordnet ist, von dem sie gesichert wird. Alle Sets sind weiterhin spezifisch für das Google-Konto des Nutzers. Wenn Sie Ihr Gerät löschen und an eine andere Person verkaufen, kann diese Person nur dann auf das Gerät zugreifen, wenn sie sich in Ihrem Google-Konto anmelden kann.

Standardverhalten

Wenn eine App installiert ist oder die Liste der Apps eines Geräts wiederhergestellt wurde, sucht das Backup-System zunächst im Gerät nach Backup-Daten für dieses Paket. Wenn keine gefunden werden (entweder weil es sich um ein komplett neues Gerät ohne gesicherte Daten handelt oder weil dieses Paket noch nie auf diesem Gerät installiert wurde), wird die Suche auf andere Geräte ausgeweitet. (Wenn es eine Auswahl gibt, wird der letzte Satz verwendet, der für eine vollständige Gerätewiederherstellung verwendet wurde.)

Wenn Sie also ein neues Gerät einrichten, wird die Liste der Apps aus der Sicherung eines alten Geräts wiederhergestellt und jede App aus der Sicherung des alten Geräts wiederhergestellt. Wenn auf einem Gerät eine App installiert war und Sie sie auf einem anderen Gerät installieren, wird die App mit ihren Daten vom alten Gerät wiederhergestellt. In beiden Fällen werden die Daten jetzt im neuen Gerätesatz gesichert , was bedeutet, dass die Sicherungsdaten von den beiden Geräten von nun an getrennt sind.

Nachdem Sie ein Gerät auf die Werkseinstellungen zurückgesetzt haben, wird es aus der letzten Sicherung des Geräts wiederhergestellt, sofern vorhanden. Andernfalls wird aus der Sicherung eines anderen Geräts, sofern vorhanden, eine neue Gruppe erstellt. Aus diesem Grund sehen die beiden Geräte von Nalum die gesicherten Apps der jeweils anderen nicht: Sie werden jeweils von ihren eigenen letzten Sicherungen wiederhergestellt.

Quelle

Dieser Mechanismus verfügt über keine benutzerbezogene Dokumentation, da er automatisch das Richtige tun soll, der Code jedoch verfügbar ist .

bmgr: grundlegende Verwendung

Wie Izzy herausgefunden hat, bmgrgibt Ihnen das Tool eine gewisse Kontrolle über diesen Prozess. Es soll Programmierern helfen, die Backup-Integration in ihren Apps zu testen und zu debuggen. Mit diesem Tool können Sie adb shellSicherungen und Wiederherstellungen ausgewählter Pakete auslösen, die gesicherten Daten von Paketen löschen und sogar eine Wiederherstellung des gesamten Geräts durchführen.

Versuchen Sie nicht, es in einer Shell auf dem Gerät zu verwenden, außer als : Sie benötigen die Systemebene android.permission.BACKUP, um etwas Interessantes damit zu tun.

Sie können festlegen, dass eine App ihre gesicherten Daten sofort aktualisiert:

bmgr backup com.shadowburst.showr
bmgr run

(oder wie auch immer der Paketname der App lautet). Dies ist normalerweise nicht erforderlich, da Apps bei jeder Datenänderung ihre eigenen Backups anfordern. Auf diese Weise können Sie jedoch eine schlecht geschriebene App umgehen. Zum Wiederherstellen eines Pakets aus den gesicherten Daten wird standardmäßig Folgendes ausgewählt:

bmgr restore com.shadowburst.showr

Aber auch dies wird nur das tun, was das Gerät von sich aus tun würde, so dass Sie es nicht brauchen sollten. Beachten Sie auch, dass das Gerät bereits installiert sein muss, damit dies funktioniert.

Mehr Kontrolle

Nun zu den Dingen, die das Backup-System nicht ausführen kann. So sehen Sie, welche gesicherten Datensätze verfügbar sind:

bmgr list sets

und du bekommst eine Ausgabe wie diese:

  3ff7800e963f25c5 : manta
  3f0e5c90a412cca7 : manta
  3dd65924a70e14c8 : TF101
  3baa67e9ce029355 : m0

Die 64-Bit-Hex-Zahl links ist ein Token . Du wirst das in einer Minute brauchen. Das Ding auf der rechten Seite ist ein (relativ) freundlicher Name für das Gerät, dem das Set gehört. Zum Beispiel ist Manta der Codename für den ; TF-101 bezieht sich auf den originalen . Sobald Sie herausgefunden haben, welches Set Sie möchten, können Sie eine App aus diesem Set mit ihrem Token wiederherstellen:

bmgr restore 3ff7800e963f25c5 com.shadowburst.showr

Sie können dem Ende des Befehls weitere Paketnamen hinzufügen, um mehrere Pakete gleichzeitig wiederherzustellen, oder Sie können keinen Paketnamen (nur das Token) angeben, um jede App mit Daten in diesem Satz wiederherzustellen (dh es wird ein Vollsystem ausgeführt) wiederherstellen).

Schließlich können Sie die Daten einer App aus dem aktuellen Satz löschen:

bmgr wipe com.shadowburst.showr

Dadurch wird der nächste Sicherungsvorgang von Grund auf neu gestartet. Dies kann nach der Deinstallation einer App hilfreich sein, wenn ein Fehler in der App die Sicherungsdaten beschädigt hat und Sie nicht möchten, dass sie wiederhergestellt werden.

Sie können ein Gerät nicht dazu bringen, in einen anderen Satz zu schreiben, und Sie können auch nicht einen ganzen Satz löschen.


Sehr gründliche Antwort, danke, Dan! Die "manuelle Steuerung" (woher wiederherstellen) ist ein zusätzliches Plus, das ich gesucht habe. Ich wünschte, es gäbe eine Benutzerauswahl für all dies, wie ein Popup, wenn die Wiederherstellung einsetzt: "Möchten Sie wiederherstellen?" -> "Aus welchem ​​Satz?" -> "Details auswählen (vollständige Wiederherstellung, xxx .. .) ". Es mag zwar schön sein, wenn eine App weiß, dass sie "automatisch das Richtige tut", aber ich habe gerne die Kontrolle und manchmal ist das sogar nötig. Eine Wiederherstellung kann auch in anderen Fällen als bei Werksresets und neuen Geräten erforderlich sein, sodass der Benutzer eine Möglichkeit haben sollte, sie auszulösen ...
Izzy

7

Das Folgende ist bei weitem keine Antwort auf die Frage, könnte aber einige Details beleuchten:

Einige Teile wurden aus der Backup-API extrahiert

Obwohl sich die API hauptsächlich an Entwickler richtet, gibt es einige Fakten, die wir möglicherweise für unseren Fall herausarbeiten können. In der folgenden Liste sind Anführungszeichen aus der API-Dokumentation kursiv gedruckt.

  • Android führt automatisch einen Wiederherstellungsvorgang durch, wenn Ihre Anwendung installiert ist und dem Benutzer Sicherungsdaten zugeordnet sind.
    → das kann zwei Dinge bedeuten:
    • Wenn eine App die Google Backup-API unterstützt und der Nutzer Google Backup aktiviert hat, werden die verfügbaren Sicherungsdaten bei der Installation automatisch wiederhergestellt. Gut, wenn Sie eine App, die auf einem einzelnen Gerät verwendet wird, zum ersten Mal auf einem zweiten Gerät installieren.
    • Backups werden nur mit dem Google-Konto verknüpft, nicht mit dem Gerät ( und es gibt Backup-Daten, die dem Benutzer zugeordnet sind ) - oder der andere Fakt wurde für diesen Sonderfall einfach als irrelevant ignoriert ("App ist installiert").
  • Der Backup-Transport ist die clientseitige Komponente des Android-Backup-Frameworks, das vom Gerätehersteller und Dienstanbieter angepasst werden kann. Der Backup-Transport kann von Gerät zu Gerät unterschiedlich [...] sein.
    Dies könnte die Unzuverlässigkeit bei verschiedenen Geräten (oder verschiedenen Android-Versionen) erklären.
    (Hervorhebung von mir)
  • Es wird nicht garantiert, dass die Datensicherung auf allen Android-Geräten verfügbar ist.
    (kein Kommentar)
  • Google bietet einen Backup-Transport mit Android Backup Service für die meisten Android-Geräte mit Android 2.2 oder höher.
    → hier haben wir die minimale Android-Version, die für Google Backup benötigt wird: Froyo, AKA Android 2.2
  • Registrieren Sie sich für den Android-Sicherungsdienst, um Ihren Sicherungsdienstschlüssel zu erhalten. [...]
    → Jede App muss einen eigenen Schlüssel haben. Es gibt kein "Warum", aber eine gute Vermutung: um die Backups zu isolieren, damit keine App Backups einer anderen App lesen kann (falscher Schlüssel; wie bei Backups eines anderen Benutzers: falsches Konto)
  • Während der Entwicklung Ihrer Anwendung können Sie über den Sicherungs-Manager mit dem Tool bmgr einen sofortigen Sicherungsvorgang starten.
    → scheint es eine Möglichkeit zu geben, Backups manuell auszulösen? Lassen Sie uns später darauf eingehen. ↓
  • Wenn es Zeit ist, Ihre Anwendungsdaten wiederherzustellen, ruft der Sicherungs-Manager die onRestore()Methode Ihres Sicherungsagenten auf .
    → dies unterstreicht erneut den ersten Punkt dieser Liste: Zuerst muss die App installiert werden, dann werden ihre eigenen Implementierungen verwendet, um ihre Daten wiederherzustellen. Auf einen zweiten Blick: Wenn die App-Wiederherstellung fehlschlägt, wird es keine Datenwiederherstellung für die fehlgeschlagenen Apps geben - bis Sie sie manuell über Google Play installieren. Dann sollten, wie der erste Artikel zeigte, Daten automatisch über Google Backup unter den erläuterten Bedingungen wiederhergestellt werden (müssen mit diesem Konto gesichert worden sein, dasselbe Konto usw.).
  • Sichern anderer Dateien
    → Verzeihen Sie, dass ich nicht aus dem (technischen) Inhalt dieses Kapitels zitiere, sondern kurz gesagt: Nur Dateien aus dem internen Speicher können entsprechend gesichert werden.

Einige Teile wurden aus der BMGR-API extrahiert

  • Es enthält Befehle zum Einleiten von Sicherungs- und Wiederherstellungsvorgängen [...].
    Hier sehen Sie eine Möglichkeit, Aktionen manuell auszulösen, wenn der "Automatismus" fehlschlägt
  • Auf diese Befehle kann über die adb-Shell zugegriffen werden.
    → das bedarf keiner erklärung :)
  • adb shell bmgr backup <package>
    → OK, diese Aktion ist also an Apps gebunden. Wenn Sie den Paketnamen des Datenanbieters kennen, sollte dies ebenfalls funktionieren (z. B. com.android.providers.settingsfür die Systemeinstellungen oder com.android.providers.telephonyfür SMS / MMS usw.).
  • Sie können die sofortige Ausführung aller ausstehenden Sicherungsvorgänge erzwingen, indem Sie den bmgr runBefehl
    → Der erste Befehl "plant" nur Sicherungen. Nachdem alle Pakete ausgelöst wurden, können sie sofort ausgeführt werden.
  • adb shell bmgr restore <package>
    → das sieht zu schön aus, um wahr zu sein, oder? Genau aus folgenden Gründen : Der Sicherungs-Manager instanziiert sofort den Sicherungsagenten der Anwendung und ruft ihn zur Wiederherstellung auf. Nur Daten, da die App bereits vorhanden sein muss (da ihre Routinen aufgerufen werden).

Kurz gesagt: bmgrKann verwendet werden, um Sicherungen für Apps auszulösen, die Google Backup unterstützen, das Sie installiert haben - und es kann die Datenwiederherstellung für dasselbe auslösen. Es kann nicht verwendet werden, um eine vollständige Wiederherstellung auszulösen - zumindest ist dies hier nicht dokumentiert.


Ich weiß, dass dies alt ist, und jemand könnte mich angreifen, weil ich einen Kommentar zu einer so alten Frage abgegeben habe, aber dies ist das einzig relevante Ergebnis, das ich finden konnte, egal wie hart ich gegoogelt habe. Ich habe gerade ein neues Telefon gekauft und beim Starten des Geräte-Setups wird mein altes Nexus 5x NICHT als wiederherzustellendes Gerät angezeigt. Ich WEISS, dass das Sichern und Wiederherstellen auf dem 5x aktiviert war. Der 5x ist vollständig gestorben, daher kann ich nichts tun, um zu helfen. Und wenn Sie bmgr-Listensets ausführen, wird genau dasselbe falsche Gerät angezeigt, das während der Einrichtung angezeigt wurde. Jeder Rat wird sehr geschätzt.
Soundfx4

1
@ Soundfx4 Darf ich vorschlagen, dass Sie eine separate, dedizierte Frage stellen? Seien Sie willkommen, hier als Referenz zu verlinken. In diesem speziellen Fall kann ich Ihnen ohnehin nicht weiterhelfen, da ich Google Backup nicht verwende.
Izzy

1
Das ist eine viel bessere Idee, danke. Das Internet kann nie genug nützliche Informationen haben! Ich schreibe eine, wenn ich Zeit habe. Ty für die Antwort!
Soundfx4

6

Weitere Informationen zu Google Backup. Wenn ich eine benutzerdefinierte Firmware geflasht habe, wurden die Apps nicht wie erwartet wiederhergestellt. In Einstellungen -> Sichern & Zurücksetzen wurde " Sichern auf privaten Debug-Cache" angezeigt und es wurden bmgr list setskeine Ergebnisse erzielt.
Ich habe mein Problem folgendermaßen gelöst adb shell:
$ bmgr transport com.google.android.backup/.BackupTransportService
$ bmgr list sets 3a0a00a516a1daf1 : LT22i
Dies war jedoch nicht genug. Es wurden keine Apps installiert. Dies zeigte den Grund warum:
$ bmgr list sets 3179e4ab08d74930 : LT22i 3a0a00a516a1daf1 : LT22i
Es hatte ein neues Set erstellt, obwohl das IMEI offensichtlich das gleiche war. Wie auch immer, dies war die Lösung:
$ bmgr restore 3a0a00a516a1daf1(die ID, die das erste Mal
$ bmgr runangezeigt wurde) (um sicher zu sein)
Dann wurden die Apps heruntergeladen.


3

Nach meiner Erfahrung verfügt jedes Gerät über ein eigenes Backup. Ich bekomme das durch herumspielen mit meinem Nexus 7 und meinem Galaxy S II. Davon abgesehen weiß ich nicht.

Apps:

Mein Nexus 7 verfügt über die Apps Caustic , DC Comics und 20-Minuten-Menü , die beim Zurücksetzen meines Galaxy S II nicht auf dem Galaxy S II installiert sind.

Mein Galaxy S II verfügt über diese Apps DriveDroid und Human Japanese , die beim Zurücksetzen meines Nexus 7 nicht auf dem Nexus 7 installiert sind.

Die Apps sind mit beiden Geräten kompatibel, sodass Inkompatibilität nicht der Grund dafür sein kann, dass sie nicht auf dem jeweils anderen Gerät installiert sind.

Daten:

Was Wifi und andere Daten angeht, bin ich mir nicht sicher, wann immer ich Wifi auf jedem Gerät während der anfänglichen Android-Einrichtung eingerichtet habe. Andere Google-Konten, über die Sie möglicherweise verfügen, scheinen nicht auf jedes Gerät kopiert zu werden. Dasselbe gilt für Skype- und GitHub-Konten auf jedem Gerät.


1
Nur Anwendungen, die auf diesem Gerät installiert wurden, werden aus der Sicherung neu installiert. ZB die Anwendung DriveDroid ist auf meinem Handy installiert und wird nach einem Factory Reset nicht auf das Nexus 7 heruntergeladen. Ich habe Caustic auf dem Nexus 7, das unter anderen Apps nicht auf das Galaxy S II heruntergeladen wird.
Nalum

Danke - das habe ich mit der Antwort integriert. Da gibt es durchaus kontroverse Berichte: Würdest du so freundlich sein, deine Antwort mit den Android-Versionen der verwendeten Geräte zu aktualisieren? Danke im Voraus! Um unsere Konvertierung zu vereinfachen, werde ich auch einige meiner Kommentare löschen (zögern Sie nicht, dies auch für diejenigen zu tun, die bereits in die Antwort selbst integriert sind).
Izzy

Nun kommt also der Deal: Wenn nichts wiederhergestellt wird, was tun, wenn eines der Geräte "kaputt" ist (oder Sie die beiden durch ein neues Gerät ersetzen möchten) und Sie "fusionieren" möchten? Schätze, ich bin nicht der einzige, dem ein gutes Handbuch wirklich fehlt ...
Izzy

1

Ich habe Daten sowohl mit dem integrierten Google-Backup als auch mit dem Helium-Backup gesichert, bevor ich Carbon Custom ROM auf einem Nexus 4 (ab KitKat-Bestand) gelöscht und installiert habe. Voraussichtlich stellt Google Apps, Einstellungen usw. wieder her, so wie es zuvor gemacht wurde, als ich dieses Telefon wiederhergestellt habe, aber keine Freude.

Versuchte auch Helium, auch keine Freude, selbst mit manuellen "PC-Download" -Restores - sagte "wiederhergestellt", aber Wifi und App-Daten immer noch nicht da.

Das Ausführen der bmgr restore <xxx>vollständigen Wiederherstellung und hat, bmgr runwie oben beschrieben, die vollständige Wiederherstellung von Google ausgelöst und mich zu einem Lebensretter gemacht!

Google könnte bessere Anstrengungen unternehmen, vor allem, wenn es mit der "Just Works" -Idee von Apple konkurrieren möchte ... Trotz der Fallen liebe ich die Hackbarkeit von Android!

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.