CM12 + Titanium = Wie stellt man Kontaktdaten wieder her?

Ich habe gerade auf N5110 installiert und zuvor ein Backup aller Apps CM12erstellt . TitaniumWenn ich jetzt versuche, meine Kontakte zurückzubekommen, stoppt die Kontakt-App von Android mit dem Fehler " android.process.acore stopped...

Wie bekomme ich die Kontakte? weil ich kein Google-basiertes Backup für meine Kontakte erstellt habe.

Danke

Haben Sie das Backup der Contacts Storage- oder Contacts Provider-App? Diese App speichert die Kontakte in der Datenbank mit dem Namen "contacts2.db". Solange die Datenbank nicht beschädigt ist, sollten das Löschen von Daten dieser App, das Wiederherstellen von Daten von Titanium und das Neustarten funktionieren. Wenn nicht, extrahieren Sie die Datenbank aus dem Backup, erzwingen Sie das Stoppen der App, gehen Sie in das Datenverzeichnis der App und ersetzen Sie die Datenbank dort. Starten Sie neu und sehen Sie, was passiert.
das habe ich getan ... aus Titan wiederhergestellt ... aber die Sache ist, dass ich jetzt mit CM12 Contact 5.1 habe und alt war Contact 4.1.2. Das ist also möglicherweise ein Problem, denke ich..

Antworten (1)

So können Sie Ihre Kontakte manuell wiederherstellen (versuchen). (HINWEIS: Ich setze ein wenig Linux-Kenntnisse voraus. Ich habe versucht, die Dinge abzudecken, die schwer nachzuschlagen sind, aber sonst wenig.)

Aktivieren Sie zunächst den USB-Debugging-Modus und schließen Sie Ihr Telefon an Ihren Computer an. Dann,

  1. Suchen Sie den Ordner, der Ihre Backups enthält. Standardmäßig denke ich, dass dies so etwas wie /sdcard/TitaniumBackup. Wenn Sie einen benutzerdefinierten Speicherort verwendet haben (z. B. zum Speichern von Backups auf einer externen SD-Karte), sollte dieser leicht zu finden sein.
  2. Es sollte ein gzip-Tarball mit einem ähnlichen Namen wie com.android.providers.contacts-<date>.tar.gz. Kopieren Sie es mit auf Ihren Computer adb pull.
  3. Entpacken Sie die Datei, die Sie gerade gezogen haben. Jetzt sollte ein Ordner namens data. Abstieg in data/data/com.android.providers.contacts/databases/. Dort finden Sie contacts2.dbund profile.db. Verwenden Sie adb push, um diese auf Ihr Telefon hochzuladen. (Hinweis: Sie müssen sie wahrscheinlich an einen Ort verschieben, der keinen Root-Zugriff erfordert.)

(Für die nächsten Schritte möchten Sie möglicherweise im Wiederherstellungsmodus neu starten, um sicherzustellen, dass Ihr Telefon nicht Ihre Kontaktdatenbank verwendet. Sie können dies einfach mit tun adb reboot recovery.)

  1. Starten Sie erneut eine Shell mit adb und eskalieren Sie mit su. cdzu /data/data/com.android.providers.contacts/databases/. Umbenennen contacts2.dbin contacts2.db.cmund profile.dbin profile.db.cm.
  2. Kopieren Sie die Dateien, die Sie nach verschoben haben /data/data/com.android.providers.contacts/databases/, sodass sie die gerade umbenannten ersetzen.
  3. Stellen Sie sicher, dass Ihre neuen Dateien die gleichen Berechtigungen wie die alten haben. Überprüfen Sie die Berechtigungen von contacts2.db.cmund profile.db.cmmit ls -lund ändern Sie die Berechtigungen Ihrer Dateien mit chown. Überprüfen Sie die SELinux-Labels mit ls -Zund ändern Sie sie bei Bedarf mit chcon <full label> <file>.
  4. Starten Sie neu und sehen Sie, ob es funktioniert hat.

Ich hoffe, diese Methode funktioniert für Sie. Ich muss zugeben, dass CyanogenMod, als ich es ausprobierte, meine Änderungen sofort rückgängig machte (so dass sie mit contacts2.dbdem Original übereinstimmten contacts2.db.cm). Wenn diese Methode nicht funktioniert und Sie CyanogenMod wirklich verwenden möchten, können Sie die Daten trotzdem wiederherstellen contacts2.dbund versuchen, alle Ihre Kontakte manuell hinzuzufügen.

  1. Installieren sqlite3.
  2. Laufen sqlite3 contacts2.db.
  3. Ihre Telefonnummern befinden sich in der Tabelle mit dem Namen phone_lookup, und Anzeigenamen können aus der Tabelle mit dem Namen abgerufen werden raw_contacts. Sie können (zumindest einige) Ihrer Kontakte sehen, indem Sie laufen

select raw_contacts.display_name, phone_lookup.normalized_number from raw_contacts inner join phone_lookup on raw_contacts._id = phone_lookup.raw_contact_id;