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:
- Welche Informationen sichert Google?
- Was genau wird mit Google synchronisiert?
- Wie synchronisiert Android die WiFi-Profile?
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?
Antworten:
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 VerwendungWie Izzy herausgefunden hat,
bmgr
gibt 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 Sieadb shell
Sicherungen 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 root : 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:
(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:
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:
und du bekommst eine Ausgabe wie diese:
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 Nexus-10 ; TF-101 bezieht sich auf den originalen Asus-Eee-Pad-Transformator . Sobald Sie herausgefunden haben, welches Set Sie möchten, können Sie eine App aus diesem Set mit ihrem Token wiederherstellen:
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:
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.
quelle
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.
→ das kann zwei Dinge bedeuten:
Dies könnte die Unzuverlässigkeit bei verschiedenen Geräten (oder verschiedenen Android-Versionen) erklären.
(Hervorhebung von mir)
(kein Kommentar)
→ hier haben wir die minimale Android-Version, die für Google Backup benötigt wird: Froyo, AKA Android 2.2
→ 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)
→ scheint es eine Möglichkeit zu geben, Backups manuell auszulösen? Lassen Sie uns später darauf eingehen. ↓
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.).
→ 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
Hier sehen Sie eine Möglichkeit, Aktionen manuell auszulösen, wenn der "Automatismus" fehlschlägt
→ 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.settings
für die Systemeinstellungen odercom.android.providers.telephony
für SMS / MMS usw.).bmgr run
Befehl→ 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:
bmgr
Kann 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.quelle
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 sets
keine 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 run
angezeigt wurde) (um sicher zu sein)Dann wurden die Apps heruntergeladen.
quelle
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.
quelle
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 run
wie 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!
quelle