大家好
我之所以问这个问题,是因为我需要使用/data
分区中的SuperUser命令对我的应用程序创建的文件进行写访问(我不在典型目录/data/data
中创建文件如果不是几个),但我当前的代码没有给出所需的结果:
public boolean creaArchivo2(String path, InputStream is)
throws IOException {
final int CHUNK_SIZE = 1024 * 4;
Process proc = Runtime.getRuntime().exec("su -c mount -o remount,rw "+path);
Process proc1 = Runtime.getRuntime().exec("su -c mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 "+path);
OutputStream os = new FileOutputStream(new File(path));
byte[] chunk = new byte[CHUNK_SIZE];
int bytesLeidos = 0;
while ( (bytesLeidos = is.read(chunk)) > 0) {
os.write(chunk, 0, bytesLeidos);
}
os.close();
return true;
}
解释我的代码:我所做的所有代码都是尝试对分区/数据中的文件设置读写权限,然后使用java以常规方式复制数据,如果而不是在命令中明显出现的错误可以轻松复制,但它不起作用。
如果他们意识到我的代码失败了,或者知道另一种方法来实现我的目标。请告诉我。谢谢
答案 0 :(得分:0)
您是否在手机上拥有超级用户权限?
你得到什么例外?你只是说"它没有工作"。我们需要更多信息,或者我们甚至无法帮助您。
如果您要使用root访问权限和超级用户命令,我建议您使用Stericson的RootTools库:
https://github.com/Stericson/RootTools
它包含了所有复杂的过程&运行时的东西,并提供一个可用的API来检查当前的root访问权限等等。