Android: как выполнить chmod на корневых устройствах - PullRequest
2 голосов
/ 04 января 2011

Я бы выполнил команду на своем рутированном устройстве Android 2.1

String path = "/data/data/com.android.providers.settings/databases/settings.db"; Runtime.getRuntime (). Exec ("/ system / bin / chmod -f 777" + путь);

Но эта команда ничего не делает с целевым файлом. Есть идеи?

Ответы [ 3 ]

2 голосов
/ 03 июля 2011

Библиотека RootTools предлагает простые методы проверки корневых команд и выдачи корневых команд:

RootTools.isRootAvailable()
List<String> output = RootTools.sendShell(command);

http://code.google.com/p/roottools/

1 голос
/ 04 января 2011

Вы должны сначала получить среду выполнения от имени пользователя root.Есть хороший класс ShellInterface, который вы можете использовать из источника MarketEnabler, доступного в Google Code .Хотя имейте в виду, что этот исходный код выпущен под лицензией GPL.

По сути, вам нужно определить, где находится ваша команда su , и создать своего рода оболочку, используя входной поток и выводпоток для STDIN и STDOUT.С их помощью вы можете затем отправить свои команды на ваш «терминал».Когда вы выполнили все свои команды, очистите буфер и дождитесь завершения выполнения.Когда он будет завершен, вы можете затем закрыть свой интерфейс времени выполнения.

Затем посмотрите на файл, который вы пытались создать / изменить / etc, чтобы увидеть, все ли работает правильно.

0 голосов
/ 04 января 2011

Бао Ле Я полагаю, что вы пытаетесь сбросить команды оболочки в приложении для Android, здесь ( Запуск собственного кода Android в вашем приложении для Android ) - это лишь несколько способов запуска команды из приложения.

...