dbfp_pub/tools/pull_android_data.py

52 lines
1.2 KiB
Python

#
#
#
import re
from subprocess import Popen, PIPE, check_call
def androidPullData():
dir_names = []
# call adb shel command to parse the file system
process = Popen(["adb", "shell", "ls", "-l", "/data/data"], stdout=PIPE, stderr=PIPE)
stdout, stderr = process.communicate()
strings = stdout.split('\n')
for sstr in strings:
results = re.search(r'\s(\w+\.[\w|\.]+)', sstr)
if results:
dir_names.append(results.group(1))
for fdir in dir_names:
print "[{}]".format(fdir)
ret = check_call(["mkdir", fdir])
if (ret > 0):
print "ERROR: problem creating directory {}".format(ret)
else:
print "Pulling data from directory {}".format("/data/data/"+fdir)
process = Popen(["adb", "pull", "/data/data/"+fdir], stdout=PIPE, stderr=PIPE, cwd=fdir)
stdout, stderr = process.communicate()
# if stderr:
# print "ERROR: {}".format(stderr)
# else:
# print "[COMPLETE]"
# print "COMPLETED!!!"
# print "STDERR ==\n {}".format(stderr)
# print "STDOUT == n {}".format(stdout)
def adbCheck():
# check that adb is executable
# check that adb is in root mode
return True
def main():
if adbCheck():
androidPullData()
return
if __name__ == "__main__":
main()