gpt4 book ai didi

java - 使用 Java 访问 Android 中的原始分区

转载 作者:行者123 更新时间:2023-11-30 04:32:56 25 4
gpt4 key购买 nike

我在 Android 中有一个未挂载的分区,因为它没有文件系统,我需要向其中写入一个字符串。我尝试了三种不同的方法,只有第一种(来自 adb)有效。我需要在程序控制下执行此操作,这是第二种和第三种方法所做的,但都失败了。我尝试向我的应用程序添加系统权限,但这没有帮助。我需要 root 权限才能从程序执行此操作吗?

第一种方法-

adb shell "echo test > /cache/command"
adb shell dd if=/cache/command of=/dev/block/mmcblk3p3 bs=4096 seek=1

第二种方法-

java.lang.Process p = Runtime.getRuntime().exec(
"dd if=/cache/command of=/dev/block/mmcblk3p3 bs=4096 seek=1");

第三种方法-

File fileName = new File("/dev/block/mmcblk3p3");
String cmd = "test";
FileOutputStream fos = new FileOutputStream(fileName);
fos.write(cmd.getBytes(), 4096, cmd.length());
fos.flush();

第二种方法没有反馈,即使它失败了。第三种方法给出以下输出:

W/System.err( 1014): java.io.FileNotFoundException: 
/dev/block/mmcblk3p3 (Permission denied)

最佳答案

我应该警告您,在应用程序不应访问的分区上启用自由权限可能会带来风险。话虽如此,假设您知道风险,您可以做的是更改权限,如果您想永久更改权限,您可以添加

chmod 0666 /dev/block/mmcblk3p3

init.rc。有些部分包含其他 chmod 命令,您可以在其中放置您的命令。

关于java - 使用 Java 访问 Android 中的原始分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7375887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com