¿En qué parte del sistema de archivos se almacenan los mensajes SMS?

¿En qué parte del sistema de archivos se almacenan los mensajes SMS?

Estoy usando ES File Explorer para navegar, pero parece que no puedo encontrar esto: ¿está en el teléfono o en la SD, y dónde?

Tengo un HTC Wildfire, pero me imagino que no varía mucho de un proveedor a otro (aunque soy un desarrollador de iOS que sabe poco sobre Android).

Respuestas (4)

Consulte aquí: https://stackoverflow.com/questions/4809874/how-to-access-the-sms-storage-on-android

La esencia es que los SMS/MMS residen en las bases de datos del teléfono y la respuesta a la pregunta contiene el enlace a este tutorial .

La ubicación de la base de datos puede variar de un teléfono a otro, pero puede buscarla con este comando a través de adb (debe ser root para encontrarla porque está en el área de almacenamiento protegida):

find / -name "*mmssms*"

En mi dispositivo (Samsung Galaxy S) aparecieron estas bases de datos:

./dbdata/databases/com.android.providers.telephony/mmssms.db
./data/data/com.jb.gosms/databases/gommssms.db

El primero es la base de datos nativa y el segundo es la aplicación de sms que estoy usando.

¿podría explicar cómo se almacena... parece XML? tambien donde esta? - No estoy hablando desde el punto de vista de la codificación, ya que no sé nada sobre el desarrollo de Android.
Es una base de datos SQLite. Puede verlo con un visor sqlite: ¿qué sistema operativo usa?
Y debe ser root para acceder a la base de datos; agregará eso a la respuesta anterior.
Aquí hay un visor de sqlite independiente de la plataforma si desea ver esos archivos: http://sourceforge.net/projects/sqlitebrowser/
¡Muchas gracias por esta respuesta! Tuve un problema extraño en el que enviar SMS a un contacto los enviaba a otros contactos. Tuve que editar una entrada canonical_addressesen mmssms.db. Ahora está funcionando como debería de nuevo.
@masterjo: SQLite Database Browser no se ha desarrollado desde 2009 y no pudo mostrar nada del archivo .db cuando lo probé hoy. Aquí hay otro navegador SQLite que funcionó: sqlitestudio.one.pl
En kitkat:device/data/data/com.android.providers.telephony/databases/mmssms.db
Encontré el mío en `device\data\data\com.android.messaging\databases` en Android Oreo.

Aquí hay una pieza útil de información también.

Esta es la ruta absoluta a SMS y MMS DB en la mayoría de los dispositivos Android:

/data/data/com.android.providers/telephony/databases/mmssms.db

Esto en realidad debería ser renombrado a /data/data/com.android.providers.telephony/databases/mmssms.db. Observe la .telefonía
en kitkatdevice/data/data/com.android.providers.telephony/databases/m‌​mssms.db

Parece que se mudó data/User_DE/0/com.android.providers.telephony/databasescon Nougat.

Al menos, aquí es donde se puede encontrar en mi Nexus 6. Espero que esto ayude.

También encontré que esta es la ubicación en Android 11. Tenga en cuenta que user_deestá en minúsculas, no en mayúsculas como lo ha puesto

Tenga en cuenta que, a partir de Kitkat (Android 4.4, lanzado en septiembre de 2013), la ruta predeterminada cambió de:

/data/data/com.android.providers/telephony/databases/mmssms.db

a

/data/data/com.android.providers.telephony/databases/mmssms.db

Actualización: como se menciona en los comentarios, la última ruta ya existe en JB.

Los cambios deben haberse introducido mucho antes de que se lanzara KitKat, ya que /data/data/com.android.providers.telephony/databases/mmssms.dbexiste en mi JB.
Bueno, JB es un lanzamiento antes que KK. Entonces, "mucho antes" puede ser un poco exagerado. ;-)