对于“su”子进程,我应该将命令写入输出或输入流吗?

时间:2012-02-13 06:17:27

标签: java android inputstream root outputstream

要获得android的root权限,我们通常会这样做:

Process p=Runtime.getRuntime().exec(“su”);
DataOutputStream  stream=new DataOutputStream(p.getOutputStream());
stream.writeBytes("mkdir /testFolder\n");
stream.writeBytes(“exit \n”);
p.waitFor();

执行上面的代码,我们可以创建一个文件夹 / testFolder ,一切都很好,但我对此感到困惑。你知道,当我们想要在终端中执行一些命令时,我们首先输入一些代码,程序读取输入缓冲区以对代码执行某些操作。但是在这里我们将字符串写入子流程的输出流,为什么呢?似乎te子进程从其输出缓冲区读取命令,而不是输入缓冲区?

1 个答案:

答案 0 :(得分:0)

也许命名有点奇怪,但Process.getOutputStream()会返回一个连接到流程标准输入的OutputStream

名称来自父进程。父进程的输出是子进程的输入。父进程的输入是子进程的输出。