So kam es, dass Amanda einen blonden Moment hatte und versehentlich alle ihre Threads in der SMS-App löschte. Ja, "Alle Threads löschen" sollte wahrscheinlich nicht so einfach aufzurufen sein.
Das Telefon ist ein ZTE-Blade, dessen Benutzerdaten in einem YAFFS2-Dateisystem gespeichert sind.
Ich habe ein altes Backup, aber die SMS, die ich wiederherstellen muss, sind von da an. Da sich wahrscheinlich einige auf der SIM-Karte befinden, habe ich einen SIM-Reader bestellt. Ich vermute, dass es sich bei den ungefähr zwanzig meistens um Netzbetreiber-Spam handelt.
Daher verfluche ich meinen ineffektiven Backup-Plan und gelobe, SMS in Zukunft auf GMail zu sichern.
In der Zwischenzeit beschließe ich, mmssms.db wiederherzustellen, oder was davon übrig ist.
Zuerst verbinde ich adb und überprüfe die Halterungen, dann versuche ich, den Block auf ein Bild auf der SD-Karte zu kopieren:
dd if=/dev/block/mtdblock6 of=/sdcard/data.img
Kein Glück. Ich denke, ein gewaltsames Absteigen wäre eine schlechte Idee und würde wahrscheinlich auf keinen Fall funktionieren.
Daher lade ich eine statisch verknüpfte Kopie von busybox auf die SD-Karte hoch und verwende die Option conv = noerror.
Am Ende hatte ich eine Datei, die immer größer wurde, bis die SD-Karte voll war.
Was mache ich falsch? Nimmt ClockworkMod ein Bild im eigentlichen Sinne auf oder werden nur die Dateien gesichert und in ein Bild gepackt? Gibt es ein YAFFS2-Wiederherstellungsprogramm? (Die zwei Artikel, die ich gelesen habe, lassen es machbar erscheinen, aber ich habe nicht einmal PoC-Code gesehen.)
Hinweise dankbar erhalten /
Bearbeiten: Das Telefon ist gerootet. Sehr verwurzelt :)
Weitere Bearbeitung:
Die meisten Nachrichten in mmssms.db-wal:
ls -al /data/data/com.android.providers.telephony/databases
drwxrwx--x 1 radio radio 2048 Jul 17 20:16 .
drwxr-xr-x 1 radio radio 2048 Oct 26 2011 ..
-rw-rw---- 1 root root 60416 Jul 17 20:16 mmssms.db
-rw-rw---- 1 radio radio 32768 Jul 17 16:18 mmssms.db-shm
-rw-rw---- 1 radio radio 628832 Jun 30 19:23 mmssms.db-wal
-rw-rw-rw- 1 root root 60416 Jul 17 20:16 mmssms.db.xxx
-rw-rw---- 1 radio radio 132096 Jun 18 13:25 telephony.db
-rw-rw---- 1 radio radio 32768 Jul 16 22:14 telephony.db-shm
-rw-rw---- 1 radio radio 106928 Jul 16 22:14 telephony.db-wal
Mit etwas Glück können Sie SMS Backup & Restore zusammenführen.
quelle
Antworten:
Die SMS-Datenbank ist in
/data/data/com.android.providers.telephony/databases/mmssms.db
dem gespeichert , was Sie tun möchten.Das Beste ist, das USB-Kabel noch nicht anzuschließen:
mount /data
adb shell
cp /data/data/com.android.providers.telephony/databases/mmssms.db /sdcard/MySmsDatabase.db
adb shell
Fenster, indem Sie Folgendes eingeben:exit
unmount /data
für Sie durchgeführt.Zu diesem Zeitpunkt ist Ihre Datenbank jetzt kopiert. Und kann sicher mit etwas wie SqliteMan extrahiert werden . HTH.
Edit: Das OP war interessiert zu wissen, wie ein Dump gemacht werden kann. - Weiter lesen :)
Wenn Sie dies aufrufen (mit angeschlossenem USB und innerhalb des
adb shell
)Welche Partition zu kennen ist der Schlüssel .. So zum Beispiel von meinem Blade, ich sehe , dass Benutzerdaten auf der Partition ist
mtd6
, in dem die tatsächlichen Partitionsinformationen innerhalb gefunden werden ,/dev/mtd/mtdX
so dass ihre Angelegenheit , dies zu tun mitcat
:Und von dort aus kann es
/sdcard/myuserdata.dump
abhängig vom Dateisystem, das auf dieser Partition verwendet wird, per Loopback eingehängt werden. Die Laufleistung variiert und natürlich ist es eine Henne-Ei-Situation. Um all dies zu tun, muss das Mobilteil verwurzelt sein.quelle