Как использовать Process p = Runtime.getRuntime (). Exec ("su") на Android для запуска кода Java или C?

Я разрабатываю приложение Java и C для Android, которому требуется root-идентификатор для включения большей части его функциональности. Таким образом, я рутировал эмулятор Android с помощью SuperSu и вызвал Процесс p = Runtime.getRuntime (). Exec ("su") в Java-коде моего приложения в отдельном потоке, чтобы открыть новый процесс, запущенный от имени пользователя root.

Однако кажется, что я могу запускать команды терминала в этом процессе только в соответствии с https://su.chainfire.eu/#how-call, чего я не хочу. Вместо этого я хочу, чтобы процесс выполнял часть кода Java и C.

Есть ли способы запустить часть моего приложения от имени пользователя root?

NB: Код, который я хочу запустить в этом процессе, включает открытие сырого сокета, создание и отправку пакетов.

Только не с su. Или с помощью sudo. Если вам нужен root uid, тогда ваша программа должна запускаться от root.

Elliott Frisch 11.03.2018 18:15
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
581
0

Другие вопросы по теме