Короче говоря, нет, это не строго возможно через API, так как вам нужно убедиться, что ваши команды модификации выполняются от имени root, иначе ОС отклонит эти операции.
Вам необходимо передать команды изменения в команду su
, чтобы она выполнялась от имени пользователя root.
На своем github Chainfire предоставляет пример реализации класса Shell
, который можно использовать для выполнения команд rm
или любой другой команды в качестве пользователя root.
Один из способов сделать это программно - скопировать файл, который вы пытаетесь редактировать, во временный каталог, скажем, /sdcard/tmp.txt
, и отредактировать этот файл, затем скопировать его обратно в исходное местоположение и перезаписать тот, который там есть. .
Другим способом было бы chmod
целевой файл (то есть chmod 777 /data/xxx.txt
), чтобы вы могли читать / записывать его содержимое программным путем. Вот почему вы получаете ошибку Permission denied
, так как ваша программа не имеет прав доступа к другим файлам. Ключевым моментом здесь является то, что вам нужно убедиться, что сама команда chmod
передана в команду su
, чтобы команда TH не была отклонена. Я бы посоветовал прочесть руководство по ссылке ниже, так как в нем очень подробно описано, как можно подойти к ситуациям, когда необходимо работать с правами root.
Источник: How-To SU