Jednoduchá odpoveď: v SQlite databáze v súbore /data/data/com.android.providers.telephony/databases/mmssms.db
A ako si SMS správy prečítam?
Spustíme ADB shell a prepneme sa na roota cez „su“:
$ adb shell shell@android:/ $ su -
Teraz otvoríme SQlite databázu a pozrieme si, aké tabuľky v nej máme:
# sqlite3 /data/data/com.android.providers.telephony/databases/mmssms.db 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
Prípadne si ešte pozrieme to, akú štruktúru má tabuľka sms:
sqlite> .schema sms CREATE TABLE sms ( _id INTEGER PRIMARY KEY, thread_id INTEGER, address TEXT, person INTEGER, date INTEGER, date_sent INTEGER DEFAULT 0, protocol INTEGER, read INTEGER DEFAULT 0, status INTEGER DEFAULT -1, type INTEGER, reply_path_present INTEGER, subject TEXT, body TEXT, service_center TEXT, locked INTEGER DEFAULT 0, error_code INTEGER DEFAULT 0, seen INTEGER DEFAULT 0, sub_id INTEGER DEFAULT 0 ); ...
Z výpisu schémy tabuľky sms som odstránil výpis triggerov, ktoré majú za úlohu aktualizovať tabuľku threads.
A keď si chcete rovno vypísať zoznam našich SMS správ:
sqlite> SELECT * FROM sms;
A ešte na záver takýto pekný univerzálny command:
adb wait-for-device && \ adb shell 'su - root \ sqlite3 /data/data/com.android.providers.telephony/databases/mmssms.db \ "SELECT address, date, body FROM sms"'