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

56

¿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 imagino que no varía mucho de un proveedor a otro (aunque soy un desarrollador de iOS que sabe poco sobre Android).

Alex Coplan
fuente

Respuestas:

43

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

La esencia es que los SMS / MMS residen en bases de datos en el 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 el db nativo y el segundo es por la aplicación sms que estoy usando.

joweiser
fuente
¿Podría explicar cómo se almacena ... se parece a XML? tambien donde esta - No estoy hablando desde un punto de vista de codificación, ya que no sé nada sobre el desarrollo de Android.
Alex Coplan
3
Es una base de datos sqlite. Puede verlo con un visor sqlite: ¿qué sistema operativo utiliza?
joweiser
Y debe ser root para acceder a la base de datos, va a agregar eso a la respuesta anterior.
joweiser
Aquí hay un visor de sqlite independiente de la plataforma si desea ver esos archivos: http://sourceforge.net/projects/sqlitebrowser/
joweiser
2
@masterjo: SQLite Database Browser no se ha desarrollado desde 2009 y no podía mostrar nada del archivo .db cuando lo probé hoy. Aquí hay otro navegador SQLite que funcionó: sqlitestudio.one.pl
Dan Dascalescu
10

Aquí hay una información útil 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

user42973
fuente
Esto debería ser renombrado a /data/data/com.android.providers.telephony/databases/mmssms.db. Observe la .telephony
smac89
En kitkatdevice/data/data/com.android.providers.telephony/databases/m‌​mssms.db
JinSnow
9

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.

eyecatchUp
fuente
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.
Señor del fuego
Bueno, JB es un lanzamiento antes de KK. Entonces, "mucho antes" puede ser un poco exagerado. ;-)
eyecatchUp
8

Parece que se mudó a data/User_DE/0/com.android.providers.telephony/databasesTurrón.

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

El mexiken
fuente