Использование root для доступа и изменения защищенной базы данных на Android - PullRequest
3 голосов
/ 14 марта 2012

Я пытаюсь создать приложение, которое может обращаться к защищенной базе данных и изменять ее в пределах /data/data/. Этот процесс, очевидно, требует привилегий суперпользователя, и я тестирую это на рутованном устройстве. Общий код для доступа к базе данных SQLite завершен и работает с тестовой базой данных, расположенной в другом месте (в /sdcard/).

Однако, когда я хочу, чтобы приложение получило доступ к базе данных в пределах /data/data/, оно явно перестало работать, поскольку я пытаюсь получить к нему доступ как обычный пользователь. Я уже немного читал тему использования двоичного файла su на Android, и, насколько я понимаю, он обычно используется только для выполнения команд оболочки.

Итак, моя первоначальная идея сделать эту работу состояла в том, чтобы просто изменить права доступа к файлу при запуске приложения и вернуть его обратно при выходе. Поэтому, прежде чем приступить к реализации этого в самом приложении, я использовал проводник, чтобы изменить разрешение на rw-rw-rw-. Однако мое приложение все еще не смогло открыть базу данных.

Моя следующая идея состояла в том, чтобы использовать программу sqlite3 непосредственно из оболочки, но я обнаружил, что мой ПЗУ не поставляется с ним, поэтому мне пришлось бы распространять ее самостоятельно ( Titanium Backup кажется, делает это).

Однако есть кое-что, что заставляет меня задуматься, не может ли быть лучшего способа: я использую Root Explorer в качестве проводника, и у него есть встроенный способ просмотра любой База данных SQLite. Учитывая, что он, кажется, не поставляется с пользовательским двоичным файлом sqlite3, и что мой телефон не имеет самого себя, доступ, кажется, осуществляется с использованием обычных инструментов Java. Но как тогда приложение получает права root?

Есть ли способ заставить приложение Android работать от имени пользователя root? Или я забыл установить что-то для разрешений ранее, что помешало мне получить к нему доступ? Или кто-нибудь знает, как Root Explorer делает это?

1 Ответ

0 голосов
/ 14 марта 2012

Насколько я знаю, вы не можете повысить разрешения уже запущенного процесса.Самый простой ответ - скопировать его куда-нибудь, используя корневую оболочку / командную строку, отредактировать его, а затем снова скопировать обратно как root.И да, я прочитал ваш вопрос, просто не объяснил ответ полностью.Надеюсь, теперь все ясно.Не уверен, что root Explorer делает это или что-то еще, но это будет работать.

...