Androidにはファイルシステムを持たないためマウントされていないパーティションがあり、そのパーティションに文字列を書き込む必要があります。私は3つの異なる方法を試して、最初のもの(adbから)だけが働きます。私はプログラム制御の下でこれを行う必要があります。これは2番目と3番目の方法で行われますが、どちらも失敗します。私は自分のアプリにシステム権限を追加しようとしましたが、それは役に立たなかった。プログラムからこれを行うにはroot権限が必要ですか?Javaを使用したAndroidでのrawパーティションへのアクセス
まず方法 -
adb shell "echo test > /cache/command"
adb shell dd if=/cache/command of=/dev/block/mmcblk3p3 bs=4096 seek=1
第2の方法 -
java.lang.Process p = Runtime.getRuntime().exec(
"dd if=/cache/command of=/dev/block/mmcblk3p3 bs=4096 seek=1");
第3の方法 -
File fileName = new File("/dev/block/mmcblk3p3");
String cmd = "test";
FileOutputStream fos = new FileOutputStream(fileName);
fos.write(cmd.getBytes(), 4096, cmd.length());
fos.flush();
2番目の方法は、動作しなくてもフィードバックを提供しません。 3番目の方法では、次の出力が得られます。
なぜファイルシステムを持たないパーティションに書き込みたいのですか? –
/dev/block/mmcblk3p3に適切な権限を与えます。 –
@Hemal:このパーティションは、Androidとブートローダー間の通信に使用されるため、ファイルシステムはありません。 – Ravi