Onde no sistema de arquivos as mensagens SMS são armazenadas?

56

Onde no sistema de arquivos as mensagens SMS são armazenadas?

Estou usando o ES File Explorer para navegar, mas não consigo encontrar isso - é no telefone ou no SD e onde?

Eu tenho um HTC Wildfire, mas imagino que não varie muito de fornecedor para fornecedor (embora eu seja um desenvolvedor iOS que saiba pouco sobre o Android).

Alex Coplan
fonte

Respostas:

43

Veja aqui: https://stackoverflow.com/questions/4809874/how-to-access-the-sms-storage-on-android

O essencial é que o SMS / MMS reside em bancos de dados no telefone e a resposta à pergunta contém o link para este tutorial .

A localização do banco de dados pode variar de telefone para telefone, mas você pode procurá-lo com este comando via adb (você precisa ser root para localizá-lo porque está na área de armazenamento protegida):

find / -name "*mmssms*"

No meu dispositivo (Samsung Galaxy S), esses bancos de dados apareceram:

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

O primeiro é o banco de dados nativo e o segundo é pelo aplicativo de sms que estou usando.

joweiser
fonte
você poderia explicar como é armazenado ... parece XML? também onde fica? - Não estou falando do ponto de vista de codificação, pois não sei nada sobre desenvolvimento para Android.
Alex Coplan
3
É um banco de dados sqlite. Você pode ver isso com um visualizador sqlite - qual sistema operacional você usa?
joweiser
E você precisa ser root para acessar o db - adicionando isso à resposta acima.
joweiser
Aqui está um visualizador sqlite independente de plataforma, se você quiser olhar para esses arquivos: http://sourceforge.net/projects/sqlitebrowser/
joweiser
2
@masterjo: O SQLite Database Browser não foi desenvolvido desde 2009 e não pôde mostrar nada do arquivo .db quando o testei hoje. Aqui está um outro navegador SQLite que funcionou - sqlitestudio.one.pl
Dan Dascalescu
10

Aqui está uma informação útil também.

Este é o caminho absoluto para o SMS e o MMS DB na maioria dos dispositivos Android:

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

user42973
fonte
Na verdade, isso deve ser renomeado para /data/data/com.android.providers.telephony/databases/mmssms.db. Observe o .telephony
smac89
Em kitkatdevice/data/data/com.android.providers.telephony/databases/m‌​mssms.db
JinSnow
9

Observe que, a partir do Kitkat (Android 4.4, lançado em setembro de 2013), o caminho padrão mudou de:

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

para

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

Atualização: conforme mencionado nos comentários, o último caminho já existe no JB.

eyecatchUp
fonte
As alterações devem ter sido introduzidas antes do lançamento do KitKat, uma vez que /data/data/com.android.providers.telephony/databases/mmssms.dbexiste no meu JB.
Firelord
Bem, JB é um lançamento antes de KK. Portanto, "muito antes" pode ser um pouco exagerado. ;-)
eyecatchUp
8

Parece que mudou-se para o data/User_DE/0/com.android.providers.telephony/databasesNougat.

Pelo menos, é aqui que ele pode ser encontrado no meu Nexus 6. Espero que isso ajude.

El mexiken
fonte