Я пытаюсь создать приложение для Android, которое может получить доступ/dir данных (например) без разбора вывода команды, запущенной на оболочке после выполнения su.root или системные привилегии для Android android
Я имею в виду, что после многозначительного изучения и поиска в коде некоторых корневых поисковиков, что они делают, когда им нужен root perms, выполняется синтаксический анализ вывода команды после выполнения su.
То, что я хочу это делать что-то вроде:
File file = new File("/data");
File[] files = file.listFiles();// get the list array of file
for (int i = 0; i < files.length; i++) {
File fileItem = files[i];
System.out.println("FILE NAME: "+fileItem.getName().toString()) {
}
Для достижения этой цели я считаю, что процесс подачи заявок должен быть запущен как корень из начала исполнения.
Я попытался запустить приложение из командной строки после выполнения sú таким образом:
$su
#am start -n com.example.test/.ui.Activity
Но его же после того, глядя на выводе команды пса я вижу, что приложение работает как пользователь «u0_a110 «а не корень.
Также я попытался с параметром --user 0 и --user 1000 с такими же результатами ... Я думаю, что виртуальная машина dalvik отбрасывает привилегии из родительского процесса.
Я также попытался преобразовать приложение в приложение системы переместив его в/системы/собств-приложение с теми же результатами, (идущее пользователь приложения его не корень, а также не система)
Может быть с:
android:sharedUserId="android.uid.system"
в манифесте приложение запускается в системе пользователя, по крайней мере, я пытался бежать, что путь приложения, а также размещены в/системы/собств-приложение, и телефон не завершения загрузки.
Я думаю, что это ошибка, потому что приложение должно быть подписано с системным ключом от производителя.
Возможно ли запустить какое-либо приложение для Android в качестве пользователя root или, по крайней мере, системы?
Я знаю, что если я перекрестно скомпилирую приложение linux для ARM (или архитектуру телефона) и запустим это приложение в оболочке от имени root, это приложение получит доступ root, но это единственный способ? Я хочу достичь этого с помощью приложения Android для Android.
Если вы посмотрите на выход: ps | grep, вы видите множество приложений для Android, которые работают как системные пользователи, некоторые из которых я почти уверен, что это Java-приложения. например com.android.settings –
@Mario Rial: Это может быть на старых устройствах. Но на нынешних устройствах Android 5 только демоны работают с системными или корневыми разрешениями. – Robert
Мое тестовое устройство - андроид 4.4.2, что вы имеете в виду с демоном? системный сервис android или обычный демон linux? поэтому в текущих версиях Android единственный способ запустить приложение в качестве корневой или, по крайней мере, системы - это сделать обычное приложение linux для Android и запустить его как root? –