2013-05-31 2 views
0

Это позволило выполнить другой процесс изнутри Android приложения, как так:Разрешено ли запускать процессы из приложений Android?

Runtime.getRuntime().exec("dalvikvm ...."); 

Кажется, я получаю исключение безопасности, однако, я может выполнить «су» таким образом.

+0

В настоящее время это работает, но все детали должны быть правильными. Вероятно, вам нужно указать путь к исполняемому файлу, также вам может понадобиться способ передачи аргументов. Есть ли причина, по которой у вас не может быть Android-код для запуска в обычном процессе? (вы можете использовать спецификаторы в манифесте, чтобы запустить его в другом прикладном процессе, если по какой-то непонятной причине вам это нужно) –

+0

Мне нужно внедрить некоторый унаследованный код, который вызывает ошибку System.exit(). Я мог бы обернуть его как услугу, но даже в службе System.exit() нежелательно, хотя это может сработать. – rustyx

+0

Вы действительно должны исправить это, чтобы иметь другую обработку ошибок. Но вы можете сказать в манифесте, что сервис работает в своем собственном процессе - таким образом, Android позаботится о деталях запуска его для вас. В противном случае, если вы действительно хотите выяснить, как запустить виртуальную машину самостоятельно (что сложнее, чем просто случайный собственный исполняемый файл), вы можете попробовать посмотреть на источник команды «am», например, но остерегайтесь того, что у вас может быть много проблем с использованием API Android, если вы это сделаете. –

ответ

0

Возможно выполнить процессы таким образом из каталога данных приложения. Например, в этом проекте они выполняют двоичный файл ffmpeg (который они сначала помещают из res/raw в каталог приложения) https://github.com/guardianproject/android-ffmpeg-java/tree/master/src/org/ffmpeg/android

Я не знаю о процессах вне каталога приложения.

+1

Файл должен быть помечен как исполняемый, так и читаемый, а не на раздел с флагом монтирования noexec. Частный каталог приложения, вероятно, является единственным * портативным * местом, где вы можете выполнить это на недавно защищенном устройстве, но были и другие возможные каталоги с нуля для различных сборок. В зависимости от битов разрешения, установленных владельцем приложения, другие приложения могут также выполнить его. –

Смежные вопросы