Eu preciso executar um configure
arquivo no meu telefone Android, então acho que a melhor maneira de fazer isso é usar o adb shell
comando
Estou executando um emulador do Android em uma plataforma Windows-7 e lá estou executando o adb shell
comando em uma janela do DOS. Usando o cd
comando que eu estou mudando para o diretório onde o meu configure
arquivo é, e então eu estou executando o seguinte comando: ./configure
. Estou recebendo o seguinte erro:
./configure: permission denied
Então, eu tento executar o adb no modo raiz com adb root
- mas aparentemente meu adb já está no modo raiz (além disso, eu tenho o caractere "#" antes de cada linha do meu shell do adb).
Também tentei usar, chmod
mas não vejo nenhuma diferença antes e depois de executar este comando ( ls -la
), então talvez o problema esteja aqui (como posso executar o chmod
comando?).
Talvez alguém aqui possa me ajudar com o meu problema e, se você também tiver uma explicação sobre o motivo pelo qual não tenho permissão para executar meu configure
arquivo, será ótimo.
Obrigado.
PS: Meu objetivo aqui é usar o pacote net-snmp em uma plataforma Android, compilando as fontes deste projeto diretamente na plataforma.
/sdcard
normalmente é montado com onoexec
sinalizador no Android, portanto você não pode executar binários a partir dele. Eu recomendaria tentar movê-lo para outro lugar (geralmente/data/local
é usado para coisas assim). Veja se isso resolve o problema./usr/local/tmp
diretório (onet-snmp-5.7.2
diretório inteiro dentro/sdcard
.)Respostas:
Isto é devido a 2 coisas:
noexec
sinalizador, conforme declarado em um comentário. Isso interrompe a execução dos arquivos.Solução:
net-snmp-5.7.2
diretório para o/data/local/tmp
diretório como raiz.configure
arquivo para ser executável executandochmod 0777 /data/local/tmp/net-snmp-5.7.2/configure
como root./data/local/tmp/net-snmp-5.7.2/configure
e pressionando enter.Nota
Tudo isso deve ser feito como usuário root :)
fonte
Conforme explicado pelos comentários e pela resposta de Liam , isso se deve ao
noexec
sinalizador usado pelo sistema ao montar o sdcard. Se o seuconfigure
arquivo é um script de shell (como geralmente é), você ainda pode enganá-lo para que seja executado:cd
para o diretório conforme descrito acima e, em seguida, executesh configure
.sh
é o intérprete do Shell e esse binário deve estar localizado/system/bin
, onde os arquivos são executáveis. Passando seu script como o primeiro argumento, isso abrirá um novo processo de shell que executa seuconfigure
script.fonte
sh configure
faz o truque.