Невозможно запустить программу "/data/data/my.app.package/files/my-executable": ошибка = 13, разрешение отклонено - PullRequest
0 голосов
/ 21 октября 2019

Я копирую двоичный исполняемый файл в папку context.getFilesDir(), которая является путем /data/data/my.app.package/files/my-executable.

Разрешение файла /data/data/my.app.package/files/my-executable равно -rwxr-xr-x

Затем я пытаюсь выполнитькоманда с java ProcessBuilder вроде:

commands = Arrays.asList("/data/data/my.app.package/files/my-executable", "ls");
ProcessBuilder pb = new ProcessBuilder(commands);
pb.redirectErrorStream(true);
final Process p = pb.start();

Оператор pb.start() выдает следующее IOException:

Caused by java.io.IOException: error=13, Permission denied
       at java.lang.UNIXProcess.forkAndExec(UNIXProcess.java)
       at java.lang.UNIXProcess.<init>(UNIXProcess.java:133)
       at java.lang.ProcessImpl.start(ProcessImpl.java:141)
       at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)

Cannot run program "/data/data/my.app.package/files/my-executable": error=13, Permission denied

У меня нет доступа с правами root на тестовом телефоне. До версии Android 9 (API 28) все работало нормально. Начиная с Android 10 (API 29), я получаю вышеупомянутое исключение IOException.

Как я могу запустить свой исполняемый файл в Android 10+? Работает ли он в другом каталоге? Спасибо за вашу помощь.

...