当我尝试将/ data / data中的文件夹复制到SD卡时出现问题。
我的手机根植了。
我在我的应用中请求超级用户权限:
Runtime.getRuntime().exec("su");
我正在使用Apache的FileUtils
来复制文件/文件夹。
我发现如果我手动将文件夹权限更改为READ
我可以将其从/ data / data复制到SD卡。
有没有办法以递归方式更改 / data / data 中所有文件夹的RW
权限来读写文件夹?
我已经尝试chmod
,但它不起作用。
Runtime.getRuntime().exec("chmod 777 /data/data");
我想做一个备份程序,我想阅读 / data / data 中的一些文件夹,并将它们写在SDcard的文件夹中。
然后我想恢复这个文件夹,从SDcard的文件夹中读取它们并将它们写在 / data / data 中。
请问你能帮帮我吗?
答案 0 :(得分:10)
最后我明白了!!!!
我使用带有cp命令的SuperUser进程来复制文件和文件夹。
我希望你觉得它很有帮助。
String comando = "cp -r /data/data/sourcefolder /sdcard/targetfolder";
Process suProcess = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(suProcess.getOutputStream());
os.writeBytes(comando + "\n");
os.flush();
os.writeBytes("exit\n");
os.flush();
try
{
int suProcessRetval = suProcess.waitFor();
if (255 != suProcessRetval)
{
// Acceso Root concedido
retval = true;
}else
{
// Acceso Root denegado
retval = false;
}
}
catch (Exception ex)
{
Log.w("Error ejecutando el comando Root", ex);
}
非常感谢本论坛的所有人以及您提供的所有帮助!!