2

我正在尝试通过以下方式获取 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 一起使用。

我应该为标准输出使用什么,因为 /dev/stdout 在 Android 中不存在?

这甚至会起作用吗?

您可以假设该应用程序具有 root 权限。

4

1 回答 1

2

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

//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"});

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

于 2012-09-28T17:18:27.107 回答