
[[ TODO ]]

Action Items from the code review:

-Add function to query the index for a specific MD5 table (database schema)

-Add a feature to add a fingerprint to the existing index (it currently recreates an index)

-Add a table to the Index to list all the applications that have a fingerprint (include the app version)
  -more functionality can result from this information in the index

-Create a document describing the index file and include an example
-Create an example of the FingerprintDB class usage with a standalone tool

-Add automated app version discovery to the android pull feature
Get App Version
http://stackoverflow.com/questions/11942762/get-application-version-name-using-adb



com.google.android.gms__node.db
0b48447805d645966439e1b4042d2625

"sqlite_sequence": "079355c84d8b3b1511a504e08aab7fd2"



[ Regression Testing ]
android pull, data dir, comparison

[ Pull Apps from Internet ]
http://www.aptoide.com/webservices/docs/2/getApkInfo

[ Static Code Analysis ]
AFL (python port)
http://lcamtuf.coredump.cx/afl/
https://bitbucket.org/jwilk/python-afl/src/af96425344b992ba6b8ea2c446e8eeea5dc43ccd/doc/?at=default

[ Hashing ]
Hash the SQL create string. 
Also hash the json schema created.


[ Android Pull ]
-test android pull (regression testing)
-try VM android pull?
  -use adb bridging technique

[ MD5 Index ]
-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 ]

[ Regression testing of Android pull ]
[ Regression testing of data directory parse ]


[[ Errors ]]

file is encrypted or is not a database
WARN: field definition not recognized: "[version] INTEGER"
WARN: field definition not recognized: "[corpus_name] STRING PRIMARY KEY"
WARN: field definition not recognized: "[incarnation] STRING"
WARN: field definition not recognized: "[seqno_table_complete] INTEGER"
file is encrypted or is not a database
file is encrypted or is not a database
file is encrypted or is not a database
file is encrypted or is not a database
file is encrypted or is not a database
file is encrypted or is not a database
file is encrypted or is not a database
file is encrypted or is not a database
file is encrypted or is not a database
file is encrypted or is not a database
file is encrypted or is not a database
file is encrypted or is not a database
file is encrypted or is not a database
file is encrypted or is not a database
file is encrypted or is not a database
file is encrypted or is not a database
file is encrypted or is not a database

