Simple way to load messages from a iOS sms.db into Elasticsearch, and browse the data with Kibana
- Head on over to the Elasticsearch Download page and grab the newest release
- Extract it to a folder and execute
$ES_HOME/bin/elasticsearch
(or$ES_HOME\bin\elasticsearch.bat
on Windows)
The River JDBC plugin does not come by default with Elasticsearch, and must be installed separately
- Execute the following command:
./bin/plugin --install jdbc --url http://xbib.org/repository/org/xbib/elasticsearch/plugin/elasticsearch-river-jdbc/1.4.0.10/elasticsearch-river-jdbc-1.4.0.10.zip
. See the River JDBC Plugin Installation Instructions for complete information. - We also need to grab SQLite JDBC Driver
version 3.7.2
andversion 3.8.7
, and save it to$ES_HOME/plugin/jdbc
. See Troubleshooting for more information
- Open
~/Library/Application Support/MobileSync/Backup
- Go into the folder corresponding to your device (if you just did a backup look for the newest folder)
- Find the file named
3d0d7e5fb2ce288813306e4d4636395e047a3d28
- Copy the file somewhere, and rename it to
sms.db
- Navigate to
%APPDATA%\Apple Computer\MobileSync\Backup\
- Go into the folder corresponding to your device
- Find the file named
3d0d7e5fb2ce288813306e4d4636395e047a3d28
- Copy the file somewhere, and rename it to
sms.db
- Start elasticsearch by running
$ES_HOME/bin/elasticsearch
- Change the path of
String smsDb = "sms.db"
in ElasticSMS.java to point towards your sms.db file - Run ElasticSMS to load all the data into Elasticsearch
- Download Kibana
- Start kibana by running
$KA_HOME/bin/kibana
- When asked for an index name enter
message*
and choosedate
as Time-field name - Explore your messages!
- There is currently an issue with the
SQLite JDBC driver 3.8.7
(see setReadOnly is not supported by SQLite) and elasticsearch river, but by adding both version 3.7.2 and 3.8.7 to the$ES_HOME/plugin/jdbc
directory it seems to be working properly. - On OS X there is some issue with SQLite and river jdbc plugin causing a
Caused by: java.sql.SQLException: [SQLITE_NOTADB] File opened that is not a database file (file is encrypted or is not a database)
even though it is pointed towards the correct database file