Android: как выполнить chmod на корневых устройствах

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

Строковый путь = "/data/data/com.android.providers.settings/databases/settings.db"; Runtime.getRuntime().exec("/system/bin/chmod -f 777 " + путь);

Но эта команда ничего не делает с целевым файлом. Любая идея?


person Bao Le    schedule 04.01.2011    source источник


Ответы (3)


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

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

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

person csaunders    schedule 04.01.2011
comment
Сладкий. Работайте идеально. Спасибо - person Bao Le; 04.01.2011

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

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

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

person Intrications    schedule 03.07.2011

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

person 100rabh    schedule 04.01.2011
comment
Я не пробовал с вашими указателями. Но предыдущее решение работает отлично. Спасибо, в любом случае - person Bao Le; 04.01.2011
comment
рад слышать, что это сработало, я постараюсь протестировать его, а затем добавить в указательный пост, чтобы иметь компиляцию технологий, служащих для запуска команд оболочки на Android. - person 100rabh; 05.01.2011