使用su访问android中的另一个应用程序数据库?

时间:2017-01-07 05:38:22

标签: android sqlite root

我已经阅读了有关此问题的其他问题,但没有人回答这个问题,所以请不要将此标记为重复。

现在我使用以下代码访问其他应用程序的数据库。

    Process process = null;
    Runtime runtime = Runtime.getRuntime();
    OutputStreamWriter outputStreamWriter;

    try {
        String command = dbName + " " + "'" + query + "'" + ";";
        process = runtime.exec("su");

        outputStreamWriter = new OutputStreamWriter(process.getOutputStream());

        outputStreamWriter.write("sqlite3 " + command);

        outputStreamWriter.flush();
        outputStreamWriter.close();
        outputStreamWriter.close();

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

然后使用BufferedReader我可以逐行读取输出。这种方法的问题是我无法读取复杂的数据类型,如BLOB。

所以我的问题是如何从root用户的另一个应用数据库中读取这些复杂的数据类型。 一个选项可以是将sqlite数据库复制到sdcard,从中读取数据并将其移回,但这涉及不必要的数据库复制。除此之外还有更好的方法吗? 感谢。

0 个答案:

没有答案