Не удалось запустить приложение от имени пользователя root
Я сделал файловый менеджер, который я хочу, чтобы иметь возможность navegate/ изменить некоторые системные папки (скажем, /data/
). Я скопировал свой apk в /system/app, дал разрешение 644 на файл apk и перезагрузил компьютер. Тем не менее, мое приложение по-прежнему работает без прав root (запретить простой доступ к /data
). Я использую CyanogenMod 11.
Любая подсказка?
Спасибо!
L.
1 ответ
Чтобы уточнить, приложение находится в /system/app
папка не запускается как root
, Android основан на Linux, поэтому наличие root-доступа означает, что ваше приложение может запускать команды оболочки от имени пользователя root.
Вообще говоря, приложение находится в /system/app
папка делает все заявленные разрешения доступными для нее (например, объявление WRITE_SECURE_SETTINGS
только что-то для системных приложений), и тогда код, который был доступен только для системных приложений, теперь доступен и вашему.
Для надежности вы должны по возможности использовать команды оболочки для всего, что обычно недоступно. Не использовать java.io.File
для доступа к файлам, которые обычно ограничены.
Я бы порекомендовал использовать RootTools
поскольку это делает запуск команд оболочки от имени root намного проще. Первые 3 страницы этого бланка команд Linux, вероятно, будут охватывать все, что вам нужно.