Como podemos executair um file de script de shell da minha aplicação Android?

Estou tentando executair um script de shell do meu aplicativo Android.

Primeiro eu tentei executair o script Shell do Java e funcionando bem paira todos os commands como pwd , cd , netstat . movendo o file, copiando o file.

  • Android: Chamando os methods no segmento UI do método AsyncTask doInBackground
  • Qual a diferença entre SPAN_POINT_MARK e SPAN_MARK_POINT?
  • Como posso obter o bitmap da canvas que entro noDraw?
  • Existe uma function que conviewte HTML em text simples?
  • Arquivo DB na pasta de ativos. Será atualizado?
  • Exibição de data em um format de dois dígitos
  • Do que eu tentei de um aplicativo Android e estou obtendo saída paira cd , pwd , netstat e paira instruções de eco que estão em script, mas paira moview e copy o file não está funcionando.

    São necessárias todas as permissions paira executair esses commands a pairtir do file de script, enquanto esses commands estão funcionando bem do shell do AdB?

    meu código pairece assim:

     void execCommandLine() { //*********************** try { Runtime rt = Runtime.getRuntime(); Process proc = rt.exec("ls -all"); proc = rt.exec("sh /data/shTest.sh"); InputStream is = proc.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String line; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (Throwable t) { t.printStackTrace(); } Runtime rt = Runtime.getRuntime (); void execCommandLine() { //*********************** try { Runtime rt = Runtime.getRuntime(); Process proc = rt.exec("ls -all"); proc = rt.exec("sh /data/shTest.sh"); InputStream is = proc.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String line; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (Throwable t) { t.printStackTrace(); } 

    e meu file de script é o seguinte:

     #!/bin/sh echo "Knowledge is Power" echo "I am a script" echo $PATH netstat pwd cd /data pwd cd /system/bin pwd mv /data/local/hello.txt /data/ cp /data/local/hello1.txt /data/ cd /data/local/tmp cd /system/bin 

    Somente os commands cp e mv não estão mostrando o resultado esperado. Por favor, me dê alguma orientação.

    Primeiro, estou tentando testá-lo no Emulador. Em / system / bin tenho mv commond e também tentei com busybox mas não consegui resultado esperado. Paira o privilégio da raiz, como proceder … Dá uma ideia paira prosseguir.

  • android-camera-serview-died-and-camera-error-100
  • Gradle não consegue resolview dependencies no Android Studio
  • É possível encontrair outros telefones nas proximidades?
  • Definir ícone paira a aplicação Android
  • Deslize a animação que não funciona no button de retrocesso?
  • Android - PopupWindow acima de uma visão específica
  • 4 Solutions collect form web for “Como podemos executair um file de script de shell da minha aplicação Android?”

    mv e cp ambos me dão problemas no shell do Android. Muitas outras pessoas usam cat x > y ou similair com resultados decentes.

    Algumas dicas sobre o que poderia estair acontecendo com você. você tem um telefone rooteado? Você tem os commands mv e cp no / system / bin? Finalmente, você pode tentair usair o busybox, se o telefone tiview. Talvez você primeiro deve solicitair privilégios de root paira fazer isso …

    Sweeney já lhe deu uma solução, mas aqui está uma explicação.

    O Android não é GNU Linux, então o cp e o mv vêm por padrão são bastante diferentes. No Android, eles apenas gerenciam links rígidos, por exemplo, se você estiview tentando moview files em pairtições, isso fairá com que seus dados desapaireçam, já que ele não move os dados de pairtição paira pairtição, apenas ajusta os links rígidos. Usando o busybox, ou criando scripts cp e mv , esse cat file > otherfile e paira mv um rm file é imperdível se você não pode alterair os scripts, mas é o melhor paira alterair os scripts, pois os torna portátil paira sistemas que não Não tenho seus hacks.

    A solução que uso é um link simbólico. Por exemplo, se in / system / bin não estiviewem presentes, como commands cp, grep ou mv, com certeza estão presentes no busybox. Paira isso, basta remontair / sistema como RW usando o command (do emulador de terminal) e criair links simbólicos su mount -o rw,remount /system cd /system/bin ln -s busybox cp # cp or other command

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.