Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python库与adb交互并更改为su_Python_Unix_Adb_Busybox_Su - Fatal编程技术网

使用Python库与adb交互并更改为su

使用Python库与adb交互并更改为su,python,unix,adb,busybox,su,Python,Unix,Adb,Busybox,Su,我目前正在使用纯python adb来使用python自动化一些任务。我使用的设备是基于Busybox的UNIX系统,它的命令数量有限。它没有sudo。我试图完成的任务是更改我刚刚推送到设备中的新文件的权限、所有者和组。现在的问题是,为了更改文件的权限,我应该处于su模式。要在苏,我必须给出密码。这就是我被困的地方。我不能把密码给苏 这就是我到目前为止所做的: from ppadb.client import Client as AdbClient client = AdbClient(host

我目前正在使用纯python adb来使用python自动化一些任务。我使用的设备是基于Busybox的UNIX系统,它的命令数量有限。它没有
sudo
。我试图完成的任务是更改我刚刚推送到设备中的新文件的权限、所有者和组。现在的问题是,为了更改文件的权限,我应该处于su模式。要在苏,我必须给出密码。这就是我被困的地方。我不能把密码给苏

这就是我到目前为止所做的:

from ppadb.client import Client as AdbClient
client = AdbClient(host="127.0.0.1", port=5037)
device = client.device("device-6000")
device.shell("<command>")
从ppadb.client将客户端导入为AdbClient
客户端=AdbClient(主机=“127.0.0.1”,端口=5037)
设备=客户端设备(“设备-6000”)
device.shell(“”)
我可以传递常规命令,如
ls-lh
cd
,但我不能更改为
su
。当我通过
su
时,控制台就挂起了。因此,我尝试使用我在网上找到的一个答案,
echo | su-s
将密码与命令一起传递,但我得到的错误是

'su:必须从终端运行\r\n'


是否有任何方法可以使用Python自动执行此任务?

您正在shell命令中使用
pipe
命令。检查
device.shell
是否支持pipe in命令。即使使用普通的adb shell,也无法执行echo | su-s。尝试
suecho
表示,echoTry没有passwd条目来启用/etc/passwd文件中的无密码sudo访问。