iPhone SMS Stats analysis scripts
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


#iPhone SMS Database stats generator#

##Current Status## Currently functioning for frequency generation (ie: how many in/out messages for a specific time period for a specific phone number). This script requires the iphone SMS database to be available, and unencrypted. By default, this database file is called


and is located in

~/Library/Application\ Support/MobileSync/Backup/<phone guid>/

on Mac OS X. Typical usage assumes a copy of the mddata db file is made in the smsstats.py directory, and called 'sms.db'. It's probably not a good idea to run this against the mddata file in-place, to avoid potentially corrupting/modifying the iPhone backup (the file is MD5 hashed as-is).

##Usage## Options: -h, --help show this help message and exit -d DB_FILE, --db=DB_FILE SMS DB File [default: sms.db] -s STARTTIME, --start=STARTTIME DD-MM-YY date to start at [default: 26-05-10] -e ENDTIME, --end=ENDTIME DD-MM-YY date to end at [default: 02-06-10] -n NUMBER, --number=NUMBER Phone # to search with - must match AddressBook.app format exactly, in quotes - e.g.: "(888) 555-1212" -c CHUNKSIZE, --chunksize=CHUNKSIZE What size chunk to break the period into, in seconds [default: 43200 (12 hours)] -o OUTPUT, --output=OUTPUT What kind of output format? - Console, CSV, TSV [default: Console] -D DATEFORMAT, --dateformat=DATEFORMAT stftime style date format [default: %m/%d/%y - %p] (e.g. '05/29/10 - AM')

###Example Usage###

####Show default chart for a number####

python smsstats.py -n "+18885551212"
Date: 05/30/10 - AM		 In: 0		Out:0
Date: 05/30/10 - PM		 In: 12		Out:10
Date: 05/31/10 - AM		 In: 0		Out:1
Date: 05/31/10 - PM		 In: 8		Out:4
Date: 06/01/10 - AM		 In: 9		Out:6
Date: 06/01/10 - PM		 In: 3		Out:3

####Show same number, but with chart broken into 1 hr chunks instead of 12 hour, with a timestamp change#### python smsstats.py -n "+18885551212" -c 3600 --dateformat "%y/%m/%d %I%p" Date: 10/05/30 08PM In: 0 Out:0 Date: 10/05/30 09PM In: 32 Out:28 Date: 10/05/30 10PM In: 9 Out:15 Date: 10/05/30 11PM In: 2 Out:0 Date: 10/05/31 12AM In: 24 Out:29 Date: 10/05/31 01AM In: 12 Out:18 Date: 10/05/31 02AM In: 0 Out:0 Date: 10/05/31 03AM In: 0 Out:0 Date: 10/05/31 04AM In: 0 Out:0