2015-10-14 2 views
1

Я заметил, что это возможно на Android изменить разрешения на файл с chmod, что означает, что мы можем легко выполнить что-либо из приложения:Можно ли запустить исполняемый файл в одобренном приложении?

var runtime = Runtime.GetRuntime(); 
runtime.Exec("chmod 0755 /my/file").WaitFor(); 
// Then ProcessBuilder to execute it. 

ли Google Play Store принимает приложение, которое использует этого недостатка? Я не могу найти документацию об этом, но я подтверждаю, что он работает.

На самом деле, я хочу включить ffmpeg для выполнения слишком медленных задач с использованием MediaCodec.

(я также заметил, что Android рамки иногда прямой доступ к родной версии ffmpeg, поэтому, возможно, я мог бы получить доступ к нему прямо с телефона?)

+1

, на какой версии андроида вы сделали эти наблюдения? –

+0

Для наблюдения: на API 18. Я не дома, поэтому не могу вставить его здесь, но если я правильно помню, я вижу вызов FFmpeg при использовании MediaCodec на моем Xperia Z. И это не какая-то неясная вербальная информация logcat, как я вижу это в окне Application Output Xamarin. Я попытаюсь найти его и вставить здесь. –

+0

В сообществе G + Android кто-то сказал мне, что он делал это в прошлом, не отклонив приложение. Это все, что я получил до сих пор. Возможность запуска любого процесса из приложения является большой проблемой безопасности, поэтому я удивлен, что не могу найти что-либо в interwebz об этих типах ситуаций. –

ответ

2

Я не знаю наверняка, если это ok для Google Play.

Однако я не думаю, что это проблема безопасности. Вы выполните процесс с авторизованием своего приложения. Надеюсь, следующий пример вам поможет. Вы можете попробовать следующую командную строку с подключением устройства.

adb shell 

Чтобы иметь оболочку на устройствах Затем вы можете попытаться посмотреть, что находится внутри файлов для приложения (заменить com.your.package по имени debbugable APK)

ls /data/data/com.your.package 

Эта команда потерпит неудачу, потому что у вас нет хорошего разрешения. Теперь выполните следующую команду.

run-as com.your.package 

Теперь вы выполните свою командную строку с тем же разрешением, что и ваше приложение. Теперь вы можете повторить предыдущую команду ls. Это будет работать. Однако это не сработает для другого пакета.

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

+0

Интересно! Было бы замечательно, если бы предоставление кода было обязательным, поскольку они могли видеть, что это всего лишь чистый исполняемый файл ffmpeg, но если он проходит процесс разрешения, то я согласен, что риск принимается пользователем и программистом. Благодаря! –

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

  • Нет связанных вопросов^_^