2012-09-07 93 views
3

海蘭,同時爲2.3.3的Android應用程序,我得到了以下錯誤:訪問/data/data/com.whatsapp

我試圖訪問文件:

private static final String src_msg = "/data/data/com.whatsapp/databases/msgstore.db"; 
private static final String src_wa = "/data/data/com.whatsapp/databases/wa.db"; 

我做SU之前:

Process process = Runtime.getRuntime().exec("su"); 

我試圖複製文件通過cp命令到SD卡 - >沒有成功 我想檢查是否通過new File(src_msg).exists()存在的文件 - >沒有成功

我使用清單以下權限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

還有什麼在這裏失蹤?允許根的彈出窗口出現並被接受。

+0

http://stackoverflow.com/questions/5325469/access-data-folder-files-in-android檢查這個問題 –

回答

1

嘗試是:(感謝ramdroid)

private boolean run(boolean runAsRoot, String cmd) { 

String shell = runAsRoot ? "su" : "sh"; 

int exitCode = 255; 
Process p; 
try { 

    p = Runtime.getRuntime().exec(shell); 
    DataOutputStream os = new DataOutputStream(p.getOutputStream()); 

    os.writeBytes(cmd + "\n"); 
    os.flush(); 

    os.writeBytes("exit\n"); 
    os.flush(); 

    exitCode = p.waitFor(); 

} catch (IOException e1) { 
     Log.e("Exception", e1.toString()); 
} catch (InterruptedException e) { 
     Log.e("Exception", e.toString()); 
} 
return (exitCode != 255); 

}

public boolean copyFile() { 
return run(true, "busybox cp /data/FILE TO COPY space DRECTORY TO COPY"); 
} 

變化僅YOUR_DIRECTORY和目錄來CopyTo從所需要的。

+0

你只是複製粘貼的答案,你的cp命令實際上是錯誤的 – vikki

+1

你確實知道你必須將其複製到您自己的目錄中?米洛斯不知道你想要哪個目錄,所以他把這部分留下了。 – tolgap

+0

@vikki,是的,這就是爲什麼我說感謝ramdroid.I不知道他想使用哪個目錄,這部分應該定製。 –