2014-12-19 70 views
0

我有一個應用程序,可以複製和修改文件的權限。但是當我嘗試讀取所述文件時,我獲得了權限被拒絕的權限。Roottols讓我無法打開文件

java.io.FileNotFoundException:/data/data/com.lstupenengo.primeraapp/files/xx:打開失敗:EACCES(拒絕)

我怎麼能知道什麼時候RootTools完了?

我的代碼:

RootTools.copyFile("/data/data/com.xxx/" + file, getFilesDir() +"/"+ file, true, false); 
     CommandCapture cmd = new CommandCapture(0,"chmod 777 "+getFilesDir()+"/"+file); 
     try { 
      RootTools.getShell(true).add(cmd); 
     } catch (TimeoutException | RootDeniedException | IOException e) { 
      e.printStackTrace(); 
      Log.e("Root "+file, "Fallo"); 
     } 

     File fts = new File(getFilesDir()+"/"+file); 
     FileInputStream fis = new FileInputStream(fts); //Here I get my error. 

logcat的

12-18 16:23:41.874 30092-30806/com.lstupenengo.primeraapp W/System.err﹕ java.io.FileNotFoundException: /data/data/com.lstupenengo.primeraapp/files/xx: open failed: EACCES (Permission denied) 
12-18 16:23:41.874 30092-30806/com.lstupenengo.primeraapp W/System.err﹕ at libcore.io.IoBridge.open(IoBridge.java:418) 
12-18 16:23:41.874 30092-30806/com.lstupenengo.primeraapp W/System.err﹕ at java.io.FileInputStream.<init>(FileInputStream.java:78) 
12-18 16:23:41.874 30092-30806/com.lstupenengo.primeraapp W/System.err﹕ at com.lstupenengo.primeraapp.myFTP.upload(myFTP.java:80) 
12-18 16:23:41.874 30092-30806/com.lstupenengo.primeraapp W/System.err﹕ at com.lstupenengo.primeraapp.FirstRunService.upload(FirstRunService.java:75) 
12-18 16:23:41.874 30092-30806/com.lstupenengo.primeraapp W/System.err﹕ at com.lstupenengo.primeraapp.FirstRunService.onHandleIntent(FirstRunService.java:47) 

回答

0

添加此代碼,現在我得到的文件模式的exeption但它的作品。

CommandCapture cmd = new CommandCapture(0,"chmod 777 "+getApplicationInfo().dataDir+"/databases/"+file); 
     try { 
      RootTools.getShell(true).add(cmd); 
      while (!cmd.isFinished()) { 

       synchronized (cmd) { 
        try { 
         if (!cmd.isFinished()) { 
          cmd.wait(100); 
         } 
        } catch (InterruptedException e) { 
         e.printStackTrace(); 
        } 
       } 
      } 
     } catch (TimeoutException | RootDeniedException | IOException e) { 
      Log.e(file, "Chmod fail"); 
      e.printStackTrace(); 
     }