Как изменить разрешение файла в Android с помощью chmod

Я использую команду chmod для изменения прав доступа к файлу, но в моем коде это не работает, и мое устройство также имеет root-права:

String MyFilePath = "/data/data/MyPkgName/database/com.pocketchange.android.http.AsyncHttpRequestService.db";
CommandCapture command = new CommandCapture(0, "chmod  777 " + "\""+ MyFilePath+ "\"");
RootTools.getShell(true).add(command).waitForFinish();

И когда он выполняется, вывод команды:

Unable to chmod /data/data/MyPkgName/databases/com.pocketchange.android.http.AsyncHttpRequestService.db: No such file or directory

но файл существует, и когда я использую этот код, чтобы изменить разрешение другого файла в каталоге базы данных, его успех, так что я могу сделать сейчас.

2 ответа

1. Сначала выполните проверку RootTools.isAccessGiven(), затем система запросит разрешение "Root" в стиле Dialog. После разрешения root вы можете успешно запустить команду root.
2. "\" "+ MyFilePath +" \ "" => MyFilePath

Используйте команду chmod в оболочке ADB...

String[] strExec = new String[] 
{ 
       "/system/bin/sh", "-c","/system/bin/chmod 777
};

try {
    Runtime.getRuntime().exec(strExec);
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
Другие вопросы по тегам