Android:以root身份将文件复制到另一个包

时间:2016-04-09 16:45:50

标签: java android root file-manager

在编写我需要个人使用的应用时遇到问题,我无法找到解决方案。

我需要从其他应用程序中获取二进制文件的副本,一段时间后我需要恢复它。该文件来自/data/data/app.package/files/,因此我不能在没有root的情况下读/写它。

我能够使用文件资源管理器将文件复制到其他位置,但是我无法使用root shell将其复制回来。如果我使用文件浏览器,应用程序会再次读取该文件...如果我使用我的代码,原始应用程序会说数据损坏 我尝试了几种方法:

cp [origin] [destination] - >文件已创建,但无法读取。 cp -p [origin] [destination] - >现在权限似乎有效,但它仍然无法正常工作

cat [origin]> [目的地],并且在我手动完成chown以将用户和组设置为正确的(而不是root) - >仍然没有运气 (取自这里:Copy files to another package folder (root, su)

所有人都使用了这段代码:

Process suProcess = Runtime.getRuntime().exec("su");
    DataOutputStream os = new DataOutputStream(suProcess.getOutputStream());
    BufferedReader stdInput = new BufferedReader(new
            InputStreamReader(suProcess.getInputStream()));
    for(String command: inputCommands){
        Log.d("ROOT","Writing: " + command);
        os.writeBytes(command+"\n");
    }

    os.writeBytes("exit\n");
    os.flush();
    int suProcessRetval = suProcess.waitFor();
    /* This part is usually outside the method, 
    I copied it here to show how I access the output.
    String aLine = null;

    while ((aLine = stdInput.readLine() )!= null){
        Log.d("ROOT", aLine);
    }
    */
    os.close();

有办法吗?或者可能有任何想法可以帮助我对此进行调查?

谢谢!

0 个答案:

没有答案