[[ TODO ]] [ MD5 Index ] -modify fingerprint compare feature to use the index -test android pull (regression testing) -try VM android pull? -use adb bridging technique -test modified databases and the fingerprints created -index integrity -get number of fingerprints processed, compared to # in folder SELECT SUM (fp_count) FROM md5_all -add "-idxf" "--index_force" to force a re-index -first give info about current index -next, create a new index -give info about new index "152 fingerprints in the index" "Creating a new index. Moved previous to backup" "Creating... FINISHED." "168 fingerprints in the new index" [ Android Data ] -Processing of android data -removed verbose messsage for each fingerprint -fix error message to look good [ Module Cleanup ] -remove print statements (from modules) -add logging statements -add exception throwing -add unit testing -test md5 sum create of tables -test md5 sum create of entire db (tables concatenated) [ Incorporate with another Product ] -add module to other python project -add unit test to other python project [[ Code Snippets ]] self.db_conn.execute(''' CREATE TABLE md5_index ( md5_all TEXT PRIMARY KEY, md5_list TEXT, file_name TEXT); ''') [[ Testing ]] [ fingerprint modified by me for testing ] com.google.android.gms__fitness.db.johnegq_gmail.com__dbfp.json "Account143": "1921c8925235e313a92f2591f8d3c8b4", ADDED "addedField1" : { "datatype": "INTEGER", "default": "0", "notnull": true }, "addedField2" : { "datatype": "INTEGER", "default": "0", "notnull": true }, "addedField3" : { "datatype": "INTEGER", "default": "0", "notnull": true } com.google.android.gms__keys.db__dbfp.json REMOVED "AccountEventIndex": "CREATE TABLE AccountEventIndex ( account_name TEXT NOT NULL, event_index INTEGER NOT NULL, UNIQUE(account_name))", "AccountEventIndex": "c39a79a61eb08300945a8f88493c9c79", "AccountEventIndex": { "account_name": { "datatype": "TEXT", "notnull": true, "unique": true }, "event_index": { "datatype": "INTEGER", "notnull": true } }, com.google.android.youtube__youtube_upload_service__dbfp.json "OfflineHttpRequestProto": "162c915fb22c0efd19d6988215982a1a", "transfers": "81cef0b7868db82186d659eb188d92e8" REMOVED "insertionOrder": { "autoincrement": true, "datatype": "INTEGER", "primarykey": true }, "network_uri": { "datatype": "TEXT" }, "output_extras": { "datatype": "BLOB" }, "priority": { "datatype": "INTEGER", "default": "0" }, "status": { "datatype": "INTEGER" }, "status_reason": { "datatype": "INTEGER" } ADDED "addedField1" : { "datatype": "INTEGER", "default": "0", "notnull": true }, "addedField2" : { "datatype": "INTEGER", "default": "0", "notnull": true }, "addedField3" : { "datatype": "INTEGER", "default": "0", "notnull": true } tv.periscope.android__com.localytics.android.c685a165210ff465709ae8d359bef6c90f17a12f344206db16d6f2f7f129e34f.profile.sqlite__dbfp.json [[ Errors ]]