0

我尝试在我的应用程序中在 Android 上运行 python 应用程序。
此脚本在Better Terminal Emulator Pro中正常工作

su
busybox chroot /data/local/debian /bin/bash
/usr/bin/python /usr/src/script.py

然后我输入值

>>value1
result

但是,如果我在我的应用程序中尝试过:

String line;
Runtime.getRuntime().exec("su");
Runtime.getRuntime().exec("busybox chroot /data/local/debpsla /bin/bash");
Process proc = Runtime.getRuntime().exec("ls");
OutputStreamWriter osw = new OutputStreamWriter(proc.getOutputStream());

proc.waitFor();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
while ((line = bufferedReader.readLine()) != null){ 
   publishProgress(line); 
}

命令ls返回不正确的文件列表。这意味着根目录不会改变。
我做错了什么?
谢谢!

4

1 回答 1

0

您将分别运行每个命令,因为它们每个都启动一个新进程,并且仅使用 JVM 的上下文。这意味着您正在运行subusybox chroot /data/local/debpsla /bin/bash并且ls作为并发且不相关的进程。

如果你想让一个跟随另一个,你必须在一个过程中完成所有这些。我怀疑编写一个您执行的脚本会更容易。

于 2013-03-09T20:19:49.913 回答