Команды оболочки Android не могут найти каталог /data
В моем приложении я делаю:
try {
String[] cmd = {"su", "-c", "\"ls /data/\""}; //to debug, will be cp /src /dest
ProcessBuilder builder = new ProcessBuilder(cmd);
builder.redirectErrorStream(true);
Process process = builder.start();
InputStream is = process.getInputStream();
Log.e("copy", is.toString());
Log.e("copy", convertStreamToString(is));
try {
process.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
} catch (IOException e1) {
e1.printStackTrace();
}
Приложение установлено в /system/app/
и работает с правами root.
Я вижу наложение SuperSu, что ему предоставлены разрешения для операции.
С cp /src /dest
на месте ls
Команда выше, она не копируется, поэтому отладка с ls
, Я получил:
tmp-mksh: ls /data: not found
Почему это и как я могу это исправить?
NB. Это та же проблема, что и этот вопрос, за исключением того, что она была решена путем добавления внешних разрешений на запись - я должен отметить, что оба пути в моей команде находятся в /data/..
,