我正在尝试创建一个python脚本来通过adb检查数据库的内容。问题是在我的代码中,只执行了第一个subprocess.call(),其余的都被忽略了。由于我是Python的新手,我不知道如何解决它。这是代码:
import subprocess
def root():
subprocess.call('adb shell',shell=True)
x=input('Enter package name: ')
openSql(x)
def openSql(x):
subprocess.call('cd data/data/%s/databases/'%(x),shell=True)
table=input('Enter table name: ')
openTable(table)
def openTable(table):
subprocess.call('sqlite3 table',shell=True)
subprocess.call('select * from %s'%(table),shell=True)
root()
它没有错误但它只是在我的模拟器中输入root而没有别的。
root@android:/ #
答案 0 :(得分:1)
您调用了root
函数root()
,这会让您进入adb shell。您正尝试从adb shell运行python
命令input
,这将无效。
一些帮助您做到所需的链接:
答案 1 :(得分:0)
import subprocess
p=input('Enter package name: ')
d=input('Enter database name: ')
t=input('Enter table name: ')
print subprocess.check_output(["adb", "shell", "sqlite3 /data/data/{}/databases/{}.db 'select * from {};'".format(p, d, t)])