Доступ / папка данных файлов в Android - PullRequest
4 голосов
/ 16 марта 2011

Я рутировал свое устройство и установил busybox. Теперь я хочу получить доступ к файлам / папкам данных через мое приложение. У моего приложения есть права суперпользователя, но я не могу получить доступ к файлу. Кто-нибудь может знать, как это сделать (с занятой коробкой или без нее)?

Пожалуйста, помогите мне.

Код:

if ((new File("/data/bin/su")).exists())
    SU_COMMAND = "/data/bin/su";
else
    SU_COMMAND = "su";

String command1 = "busybox mount /sdcard \n";
String command2 = "busybox mount /system \n";
String command = "busybox cp /data/data/com.my.test.app/databases/ /mnt/sdcard/testapp/ \n";
Process process = (new ProcessBuilder(as)).start();
Runtime rt = Runtime.getRuntime();
java.io.OutputStream outputstream = process.getOutputStream();
outputstream.write(command1.getBytes());
outputstream.flush();

1 Ответ

4 голосов
/ 19 марта 2012

Попробуйте это:

 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/data/com.my.test.app/databases/ /mnt/sdcard/testapp/");
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...