我试图通过以下方式获取dd的输出。
这个想法是要以编程方式捕获dd发送到“ of”的任何内容。

//Process p;
// ...
p = Runtime.getRuntime().exec(new String[]{"su", "-c", "dd if=/dev/something of=stdout bs=1024"});


使用“ cat / some_file”而不是“ dd ...”命令可以按预期工作,但是我希望它可以与dd一起使用。

我应该对stdout使用什么,因为/ dev / stdout在Android中不存在?

这还行吗?

您可以假定该应用程序具有root特权。

最佳答案

如果设备不是太大,则可以将其添加到文件中,然后将文件保存为粗壮...

//Process p;
// ...
p = Runtime.getRuntime().exec(new String[]{"su", "-c", "dd if=/dev/something of=/dev/mnt/sdcard/myfile bs=1024"});
p = Runtime.getRuntime().exec(new String[]{"cat", "/dev/mnt/sdcard/myfile"});


祝好运

-编辑-

我刚刚记得,如果省略“ of =”操作数,则“ dd”命令将写入标准输出。
因此,您的代码更改为:

//Process p;
// ...
p = Runtime.getRuntime().exec(new String[]{"su", "-c", "dd if=/dev/something bs=1024"});


我已经对其进行了测试,并且可以正常工作。

10-08 03:39