У меня есть рутированный планшет Nexus 7 Jelly Bean, и всякий раз, когда я пытаюсь запустить приложение из приложения эмулятора терминала после запуска chmod 777 и использования синтаксиса ("./applicationName"), он настаивает на том, что у меня нет разрешения на выполнение, хотя я предоставил моей собственной привилегии пользователя superUser ("su"). После этого я провел небольшое исследование и узнал, что если вы скопируете файл в каталог (/ data / local / temp /), вы сможете выполнить приложение. Поэтому, когда я попытался, он сказал, что файл не существует, даже если он отображается при выводе содержимого каталога с помощью ("ls")
Я понятия не имею, какие шаги предпринять, если это помогает, меня пытаются запустить (scp) в качестве теста, но я хочу иметь возможность запускать специально скомпилированную версию dns2tcp. Я знаю, что мог бы использовать лучшие приложения, такие как hello world, скомпилированные изначально на устройстве, но я не смог достать компилятор C для Android, такой как gcc.
Спасибо за любой совет
/data/local/tmp/scp
? И убедитесь, что вашscp
файл не имеет расширения при вызове без каких-либо?Ответы:
попробуйте поставить
sh
перед вашей командой, например:или
источник
Приложение эмулятора должно иметь возможность запускать другое приложение из своего собственного каталога. Этот каталог называется что-то вроде
/data/data/com.super.emulator
. Попробуйте указать полный путь к нужному приложению в эмуляторе.Если вы хотите получить компилятор для Android, вы можете использовать NDK . Легко получить, бесплатно использовать.
Не могли бы вы также отправить свой файл
/system/bin
через ADB ? Я не знаю, получишь ли ты это разрешение, когда рутируешь свое устройство. Но если это так, это должно сделать вашу жизнь намного проще.источник
Скорее всего, вы не можете запустить программу из-за того, что библиотеки на устройстве, которое вы скопировали, отсутствуют на устройстве, на которое вы скопировали ее.
Поскольку ваша конечная цель - скомпилировать программу и запустить ее на телефоне, могу ли я предложить вам использовать Android NDK ? В документации NDK содержится
STANDALONE-TOOLCHAIN.HTML
описание кросс-компиляции нативной программы для запуска на вашем устройстве Android.источник
Если вы root (я вижу, вы есть), используйте
su
команду, а затем запустите свой оригинальный скрипт. Если проблема с разрешениями, это должно исправить. И если вы используете сценарий оболочки, вы можете просто добавить эту строку вверху. вам, возможно, придется проверить настройки SuperSu (или любое приложение суперпользователя, которое у вас есть с root) и убедиться, что ваш эмулятор терминала имеет права root.Если вы не root (или по какой-то причине не можете работать от имени root), я советую посмотреть, как это делает XBMC, поскольку я считаю, что он может запускать приложения в пользовательском режиме.
Удачи.
источник