Мне нужно запустить configure
файл на моем телефоне Android, поэтому я думаю, что лучший способ сделать это — использовать adb shell
команду.
Я запускаю эмулятор Android на платформе Windows-7 и запускаю adb shell
команду в окне DOS. Используя cd
команду, я перехожу в каталог, где находится мой configure
файл, а затем выполняю следующую команду: ./configure
. Я получаю следующую ошибку:
./configure: permission denied
Итак, я пытаюсь запустить adb в корневом режиме с помощью adb root
-- но, видимо, мой adb уже находится в корневом режиме (более того, у меня есть символ «#» перед каждой строкой моей оболочки adb).
Я также пытался использовать chmod
, но не вижу никакой разницы до и после выполнения этой команды ( ls -la
), так что, возможно, проблема здесь (как я могу запустить chmod
команду?).
Может быть, кто-то здесь может помочь мне с моей проблемой, и если у вас также есть объяснение, почему у меня нет разрешения на запуск моего configure
файла, это будет здорово.
Спасибо.
PS: Моя цель здесь — использовать пакет net-snmp на платформе Android, скомпилировав исходный код этого проекта непосредственно на платформе.
Это связано с 2 вещами:
noexec
флагом, как указано в комментарии. Это останавливает выполнение файлов.Решение:
net-snmp-5.7.2
каталог в /data/local/tmp
каталог как root.configure
файл исполняемым, запустив его от имени пользователя chmod 0777 /data/local/tmp/net-snmp-5.7.2/configure
root./data/local/tmp/net-snmp-5.7.2/configure
и нажав Enter.Примечание
Все это должно быть сделано как пользователь root :)
Как поясняется комментариями и ответом Лиама , это связано с noexec
флагом, используемым системой при монтировании SD-карты. Если ваш configure
файл представляет собой сценарий оболочки (как это обычно и бывает), вы все равно можете обмануть его выполнение:
cd
в каталог, как вы описали выше, а затем выполните sh configure
.
sh
является интерпретатором оболочки, и этот двоичный файл должен находиться в /system/bin
папке , где файлы являются исполняемыми. Передав ваш скрипт в качестве первого аргумента, вы откроете новый процесс оболочки, который выполняет ваш configure
скрипт.
sh configure
делает свое дело.
эльдарератис
граттманду03
Лиам В.
chmod 0777 ./configure
попробуйте это, затем попробуйте выполнить.эльдарератис
/sdcard
обычно монтируется сnoexec
флагом в Android, поэтому вы не можете выполнять из него двоичные файлы. Я бы порекомендовал попытаться переместить его в другое место (часто/data/local
используется для подобных вещей). Посмотрите, решит ли это проблему.Лиам В.
/usr/local/tmp
каталог (весьnet-snmp-5.7.2
каталог в формате/sdcard
.граттманду03
Лиам В.
граттманду03
т0мм13б
configure
скрипта? Он ищет файл для выполнения... Вы уверены, что знаете, что делаете? Для чегоconfigure
? Эти детали отсутствуют в вопросе! :)граттманду03
т0мм13б
граттманду03
т0мм13б
т0мм13б
Лиам В.
т0мм13б
configure
скрипт, связанный с разработкой, и применив неправильный подход!граттманду03
Лиам В.