Entonces sucedió que Amanda tuvo un momento rubio y eliminó todos sus hilos en la aplicación de SMS por error. Sí, "Eliminar todos los hilos" probablemente no debería ser tan fácil de invocar.
El teléfono es un ZTE Blade, con todos sus datos de usuario almacenados de manera inconveniente en un sistema de archivos YAFFS2.
Tengo una copia de seguridad antigua, pero los SMS que necesito recuperar son de entonces. Probablemente hay algunos en la tarjeta SIM, así que he pedido un lector SIM. Sospecho que, de todos modos, los más de veinte son en su mayoría spam de operadores de red.
Entonces, maldigo mi plan de respaldo ineficaz y prometo hacer una copia de seguridad de SMS en GMail en el futuro.
Mientras tanto, decido recuperar mmssms.db, o lo que queda de él.
Primero, conecto adb y verifico los montajes, luego intento copiar el bloque a una imagen en la tarjeta SD:
dd if=/dev/block/mtdblock6 of=/sdcard/data.img
No hay tanta suerte. Creo que desmontar por la fuerza sería una mala idea, y probablemente no funcionará en ningún caso.
Entonces, subo una copia estáticamente vinculada de busybox a la tarjeta SD y uso la opción conv = noerror.
Lo que terminé con fue un archivo que siguió aumentando de tamaño hasta que la tarjeta SD se llenó.
¿Qué estoy haciendo mal? ¿ClockworkMod toma una imagen en el verdadero sentido o solo hace una copia de seguridad de los archivos y los empaqueta en una imagen? ¿Existe un programa de recuperación YAFFS2? (Los dos documentos que he leído hacen que parezca factible, pero ni siquiera he visto el código PoC)
Cualquier pista recibida con gratitud /
Editar: el teléfono está rooteado. Muy arraigado :)
Edición adicional:
La mayoría de los mensajes encontrados en 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
Con suerte, SMS Backup & Restore permitirá una fusión.
fuente
Respuestas:
La base de datos sms se almacena en lo
/data/data/com.android.providers.telephony/databases/mmssms.db
que es lo que desea hacer.Lo mejor es no conectar el cable USB todavía:
mount /data
adb shell
cp /data/data/com.android.providers.telephony/databases/mmssms.db /sdcard/MySmsDatabase.db
adb shell
escribiendo esto:exit
unmount /data
por usted.En esta etapa, su base de datos ahora se copia. Y se puede extraer de forma segura mediante el uso de algo como SqliteMan . HTH
Editar: El OP estaba interesado en saber cómo se puede hacer un volcado. - Sigue leyendo :)
Cuando invocas esto (con USB conectado y dentro del
adb shell
)Saber qué partición es la clave ... Entonces, por ejemplo, desde mi Blade, puedo ver que los datos de usuario están en la partición
mtd6
, en la que se puede encontrar la información de la partición real,/dev/mtd/mtdX
por lo que es cuestión de hacer esto usandocat
:Y a partir de ahí, tomando
/sdcard/myuserdata.dump
, dependiendo del sistema de archivos utilizado en esa partición, se puede montar a través de bucle de retorno. El kilometraje variará y, por supuesto, es una situación de gallina y huevo, para hacer todo eso, el teléfono debe estar enraizado.fuente