从没有读/写权限的内部存储中读取文件?

时间:2013-05-22 12:38:48

标签: android file file-io permissions file-permissions

我在路径上有一个内部存储文件,例如/data/data/<package name>/folder/myfile 我没有访问此文件的权限,但对于我的实现,我必须阅读此文件。为此,我首先在文件上运行su命令,并通过chmod命令将权限设置为777,然后尝试访问该文件。但仍显示该文件不存在。请告诉我如何才能阅读此文件。

以下是我要做的事。

public void runChmodAndSU(String filePath)
  {
    Process chperm;
    try {
        chperm = Runtime.getRuntime().exec("su");

        DataOutputStream os = new DataOutputStream(chperm.getOutputStream());
        os.writeBytes("chmod 777 "+ filePath +"\n");
        os.writeBytes("exit\n");
        os.flush();

        chperm.waitFor();


    } catch (IOException e) {
        e.printStackTrace();
    } catch (InterruptedException e) {

        e.printStackTrace();
    }
}

运行上面的代码后,我会这样检查:

 File myFile  = new File(filePath);

    if (myFile.exists())
    {
        Log.e("Success!", "myFile Exists");
    }
    else {
        Log.e("Failure!", "myFile Does not Exists");
    }

请告诉我如何阅读这个文件。有没有其他方法可以访问您没有权限的文件?

2 个答案:

答案 0 :(得分:1)

如果没有为您的应用程序在AndroidManifest.xml中设置适当的权限,您不能也不允许访问此类文件。

我不知道你是否打算将它作为“我的黑客机器人?”问题,或者如果你只是不知道android的使用权限是什么,但问题的措辞方式,你真的应该无法访问该文件。

答案 1 :(得分:0)

如果 su 有效,请尝试chmod -R 777 /data/data/<package name>/