52 lines
1.2 KiB
Python
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()
|