I’m currently playing around with MMS for a possible hack. So I needed to access more “raw” data in terms of ids etc. If my understanding is correct (currently wip) MMSs’ are stored on an external server (like http) and the app fetches it via url.
Anyhow, in the version of android that I’m using (4.4) you can find the messages in an sqlite database under
/data/data/com.android.providers.telephony/databases/mmssms.db
. Note that you need root to access it.
So to access it from your e.g. computer:
- plug in usb and enable developer mode. Allow for ADB-access.
adb start-server
to start the adb server for communicating with your android. Thenadb root
to run it in root mode. Finallyadb shell
to get a shell.- Now in the shell you can run
sqlite3 /data/data/com.android.providers.telephony/databases/mmssms.db
and you have access to your stored messages.
sqlite> .tables
addr pdu threads
android_metadata pending_msgs words
attachments rate words_content
canonical_addresses raw words_segdir
drm sms words_segments
part sr_pending
I didn’t find much information on the database schema, but it doesn’t seem too hard to figure out. The table “sms” seems to contain the basic text messages. MMS seem to be stored in “pdu” and “part”.
Some sources: