Executando aplicativos de um emulador de terminal [fechado]

8

Eu tenho um tablet Nexus 7 Jelly Bean com raiz e sempre que tento executar um aplicativo a partir de um aplicativo emulador de terminal após o chmod 777ing e usando a sintaxe ("./applicationName"), ele insiste que não tenho permissão para executar, mesmo que eu concedeu meus privs de superusuário usando ("su"). Depois disso, fiz uma pequena pesquisa e aprendi que, se você copiar o arquivo para o diretório (/ data / local / temp /), poderá executar o aplicativo. Então, quando tentei, ele disse que o arquivo não existe, apesar de aparecer ao listar o conteúdo do diretório usando ("ls")

Não tenho idéia de quais etapas executar, se ajudar, tentei executar (scp) como teste, mas desejo poder executar uma versão compilada personalizada do dns2tcp. Eu sei que eu poderia ter usado aplicativos melhores, como um olá mundo compilado nativamente no dispositivo, mas não consegui colocar um compilador C para Android como o gcc.

Obrigado por qualquer conselho

Andrei0427
fonte
2
você pode adicionar uma pequena transcrição do que você fez? / sdcard é montado com o recurso 'noexec', que impede a execução de executáveis. Você especificou o caminho completo com a segunda tentativa (/ data / local / tmp / yourprogram)?
CE4
@ ce4 Eu tentei o que você mencionou na segunda parte do seu comentário. Heres a transcrição: pastebin.com/RkuMHuBj EDIT: Sim, eu esqueci de imprensa Shift + Enter :) meu mau hehe
Andrei0427
Você tentou especificar o caminho completo para execução - por exemplo /data/local/tmp/scp? E garantiu que seu scparquivo não tem extensão de arquivo quando chamado sem nenhum?
Izzy
@ Izzy eu tenho, sim. Alguém aqui pode executar aplicativos C personalizados a partir do próprio terminal em um dispositivo Android?
precisa saber é o seguinte
Se o aplicativo não for compilado para Android, não funcionará.
Matthew Leia

Respostas:

3

tente colocar shna frente do seu comando, por exemplo:

sh ./scp

ou

sh -c ./scp
EsOsO
fonte
Recebi um erro de sintaxe ao executar o aplicativo. Suponho que isso aconteceu porque não foi compilado para o próprio tablet porque eu o rasguei do telefone. Infelizmente, isso deve significar que funcionou .. certo?
Andrei0427
que erro você recebeu?
EsOsO 30/08/12
o primeiro comando definitivamente não funcionará (./scp não está em um formato que possa ser interpretado pelo shell), o segundo é um exagero (apenas executa ./scp em uma subshell). Ambos não corrigem permissões de execução inadequadas e / ou outras incompatibilidades.
ce4 13/09/12
2

O aplicativo emulador deve poder executar outro aplicativo a partir de seu próprio diretório. Esse diretório é chamado algo como /data/data/com.super.emulator. Tente dar o caminho completo para o aplicativo que você deseja no emulador.

Se você deseja obter um compilador para Android, pode usar o NDK . Fácil de obter, livre de usar.

Você também não pode enviar seu arquivo /system/binvia adb ? Não sei se você recebe essa permissão ao fazer root no seu dispositivo. Mas se for esse o caso, deve tornar sua vida muito mais fácil.

auselen
fonte
1

Provavelmente, você não pode executar o programa por causa das bibliotecas no dispositivo em que você o rasgou por estar ausente do dispositivo para o qual o copiou.

Como seu objetivo final é compilar um programa e executá-lo nativamente no telefone, posso sugerir que você use o NDK do Android ? A documentação do NDK inclui o STANDALONE-TOOLCHAIN.HTMLque explica como compilar um programa nativo para ser executado no seu dispositivo Android.

Michael Hampton
fonte
0

Se você está enraizado (eu vejo que você está), use o sucomando e execute o script original. Se o problema for de permissões, isso deve corrigi-lo. E se você estiver usando um script de shell, você pode simplesmente adicionar esta linha na parte superior. pode ser necessário verificar as configurações do superSu (ou qualquer outro aplicativo de superusuário que você tenha com root) e garantir que o emulador de terminal tenha permissões de root.

Se você não está enraizado (ou não pode ser executado como root por algum motivo), sugiro examinar como o XBMC faz isso, pois acredito que ele pode executar aplicativos no modo de usuário.

Boa sorte.

Christopher
fonte