2013-05-22 44 views
1

我在路径上的内部存储器上有一个文件,例如/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"); 
    } 

请告诉我,我怎么能读这个非常文件。有没有其他的方式来访问你没有权限的文件?

+0

这是你的应用程序创建的文件吗? – TronicZomB

+0

@TronicZomB no ..它是来自我的另一个应用程序的文件。 –

+0

好的,不太了解它的那一面,然后...... – TronicZomB

回答

0

如果工作,尽量chmod -R 777 /data/data/<package name>/

1

你不能,也不应该你被允许访问这些文件,而无需在AndroidManifest.xml为您的应用程序设置相应的权限。

我不知道你是否打算这是一个“黑客机器人,我请吗?”问题,或者如果你只是不知道android的使用权限是什么 - 权限是关于的,但是你的问题措辞的方式,你真的不应该能够访问该文件。