Android: Kontakte aus einem Nandroid-Backup extrahieren

Android logo
Bild von Google steht unter CC-BY-SA

Bevor man irgend eine neue ROM auf einem Android-Handy installiert macht man natürlich ein Backup vom alten System. Das kann man über adb oder natürlich über das Recoverysystem, das man ja eh für das Flashen braucht.

ClockworkMod Recovery erstellt dabei ein Nandroid-Image. Dieses ist eine Sicherung des kompletten Systems mit allen System- und Appdaten. Nun habe ich auf einem Galaxy S2 Cyanogenmod installiert und viele Daten waren nicht drauf, aber anscheinend waren die Kontakte nicht synchronisiert.

Nun wollte ich an die Daten aus dem Backup kommen, ohne gleich alles wieder rückgängig zu machen. Der erste Versuch dies über die App Nandroid Manager zu erledigen scheiterte. Kontakte kann man zwar anschauen, aber noch nicht wieder zurück ins System holen.

Also erstmal die Daten per USB auf den Rechner holen. In dem von CWM erstellten Ordner liegen die Dateien:

  • data.ext4.tar
  • data.ext4.tar.a
  • data.ext4.tar.b

data.ext4.tar.a habe ich in data.ext4.tar umbenannt und konnte diese dann mit dem Archivmanager öffnen.  Nun muss man die Datei /data/data/com.android.providers.contacts/databases/contacts2.db entpacken. Dahinter verbirgt sich eine Sqlite-Datenbank mit allen Kontakten. Um diese wieder in Android zu importieren muss man eine VCF Datei erstellen.

Das kann mit dem Script dumb-contacts2db tun.  Nach dem Download muss man es nur noch mit  chmod +x dump-contacts2db.sh  ausführbar machen und kann dann alle Daten einfach durch Aufruf des Skriptes extrahieren. Dazu reicht es dieses folgendermaßen auszuführen:

Kopiert man diese zurück auf das Mobiltelefon kann die Kontakte-App diese Datei dann wieder importieren und man hat alle alten Kontakte wieder.

Android: Backups per Konsole

Android logo
Bild von Google steht unter CC-BY-SA

Mal wieder ein Artikel, eher in die Kategorie: Notiz-an-mich-selbst fällt.  Immer mal wieder, wenn ich auf meinem HTC OneX eine neue alternative ROM einspielen möchte, möchte ich zur Sicherheit ein vollständiges Backup machen. Jedes mal schmeiße ich Google an, um mir den entsprechenden Befehl herauszusuchen (Meistens lande ich bei Linux Und Ich).

In Zukunft kann ich das hier hoffentlich einfacher finden. Aber nun zur Anleitung:

Das Gerät muss im USB-Debuggingmodus an den Rechner angeschlossen werden. Mit dem Befehl:

wird im aktuellen Verzeichnis die Backupdatei mit aktuellem Datum als Name erstellt. Unter Ubuntu muss man noch ein sudo  voranstellen, da sonst das System den Zugriff auf das Gerät verwaltet. Nun muss man nur noch auf dem Androiden das Backup bestätigen und das Backup läuft.

Das kann dann aber (je nach Gerät und “Füllstand”) ein bisschen dauern…

Möchte man ein Backup wieder einspielen, kann man dies mit  adb restore BACKUPDATEI.adb  tun