Nachdem ich bei mir ungewollt das Handy geleert hatte, habe ich entdeckt, dass Whatsapp tägliche Sicherungen der Nachrichten erstellt und diese bei den Nutzerdaten unter /sdcard/WhatsApp/Databases ablegt. Somit waren sie von meiner Lösung der Data-Partition nicht betroffen. Die Wiederherstellung ging auch recht einfach. Als root auf dem Handy habe ich einfach im WhatsApp-Verzeichnis die Datenbank msgstore.db der Nachrichten gelöscht und beim nächsten Öffnen von WhatsApp hat dieses mich gefragt, ob ich die Daten importieren will und es waren auch alle Nachrichten wieder dabei.
$ su
# cd data/data/com.whatsapp/databases
# mkdir old
# mv msgstore.db* old
Nachdem WhatsApp die Datenbank eingelesen hatte, habe ich mit rm -r old
das Verzeichnis gelöscht.
Diese Methode der Wiederherstellung wird von WhatsApp auch offiziell in der FAQ beschrieben.
Eine ältere Sicherung verwenden
Wer ein älteres Backup verwenden will – WhatsApp hat Sicherungen von einer Woche auf dem Gerät –, kann das gewünschte Backup einfach passend hinlegen.
$ cd /sdcard/WhatsApp/Databases
$ mkdir old
$ mv msgstore.db.crypt12 old
$ cp msgstore-2017-05-24.1.db.crypt12 msgstore.db.crypt12
Meine Meinung dazu
Ich bin echt begeistert. So sehr auf WhatsApp immer geschimpft wird, die Software macht in vielerlei Hinsicht einen professionellen Eindruck. Eine solche Sicherung der Nachrichten außerhalb des eigentlichen Datenordners der App habe ich mir bei einem anderen Messanger schon mehrfach gewünscht, da diese Daten beim Neuinstallieren immer vernichtet werden.
So wie ich die FAQ deute, kann man WhatsApp deinstallieren und wieder installieren und beim ersten Start wird nach dem Import genau dieser Datenbank gefragt. Aber dieses Backup ist verschlüsselt, was ein absoluter Pluspunkt ist, denn auf die Daten unter /sdcard können sehr viele Programme zugreifen. Das ist dann auch die Krux an der Sache, dass man den Schlüssel aus dem Datenverzeichnis benötigt. Den muss man zuvor irgendwie anders wiederhergestellt haben.
Dieser Schlüssel ist in der Datei /data/data/com.whatsapp/files/key gespeichert. Auf der Seite How to Decrypt WhatsApp crypt12 Database Messages wird beschrieben, wie man die Sicherung msgstore.db.crypt12 von Hand entschlüsseln kann, so dass man die Sqlite-Datenbank direkt öffnen und einzelne Nachrichten rekonstruieren kann, denn genau dafür ist auch eine Datensicherung gedacht – im Gegensatz zu einer Datenredundanz wie RAID.