3

Hy,在为 2.3.3 构建 android 应用程序时,出现以下错误:

我试图访问这些文件:

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 命令将文件复制到 sdcard -> 不成功我试图通过new File(src_msg).exists()-> 不成功检查文件是否存在

我在清单中使用以下权限:

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

这里还缺少什么?允许root的弹出窗口出现并已被接受。

4

1 回答 1

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 和 DIRECTORY TO COPY 更改为所需的。

于 2012-09-07T13:50:28.163 回答