2

次の方法でddの出力を取得しようとしています。アイデアは、ddが「of」に送信するものをプログラムでキャプチャすることです。

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

「dd...」コマンドの代わりに「cat/some_file」を使用すると、期待どおりに機能しますが、これをddで機能させたいと思いました。

/ dev / stdoutはAndroidに存在しないため、stdoutには何を使用する必要がありますか?

これも機能しますか?

アプリにroot権限があると想定できます。

4

1 に答える 1

2

デバイスが大きすぎない場合は、それをファイルに追加してから、ファイルを cat してスタウトすることができます...

//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 に答える