Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo puedo ejecutar comandos de Linux en un dispositivo Android?

En algunos dispositivos Android, en el shell ADB, sólo puedo ejecutar echo , cd , ls . Cuando corro:

 tar -cvf //mnt/sdcard/BackUp1669/apk/test.tar /mnt/sdcard/test.apk 

O el comando cp , devuelve:

  • ¿Cómo controlar las operaciones de bluetooth usando adb shell?
  • Listando los permisos de la aplicación de Android vía adb
  • ¿Cómo simular un evento de toque en Android?
  • La versión del servidor ADB (36) no coincide con este cliente (39) {No utilizar Genymotion}
  • Actualizar Mediastore Android usando adb
  • ¿Cómo puedo usar adb para enviar un evento keypress?
  •  sh: tar: not found 

    ¿Por qué no puedo ejecutar estos comandos? Algunos dispositivos admiten estos comandos. Mi objetivo final es copiar un archivo de la carpeta / data / data a la tarjeta SD. Tengo su y tengo el siguiente código:

     int timeout = 1000; String command = "tar -cvf /" + Environment.getExternalStorageDirectory() + "/cp/" + packageName + ".tar" + " " + path; DataOutputStream os = new DataOutputStream(process.getOutputStream()); BufferedReader is = new BufferedReader(new InputStreamReader(new DataInputStream( process.getInputStream())), 64); String inLine; try { StringBuilder sbCommand = new StringBuilder(); sbCommand.append(command).append(" "); sbCommand.append("\n"); os.writeBytes(command.toString()); if (is != null) { for (int i = 0; i < timeout; i++) { if (is.ready()) break; try { Thread.sleep(5); } catch (InterruptedException e) { e.printStackTrace(); } } if (is.ready()) { inLine = is.readLine(); } else { } } } catch (IOException e) { e.printStackTrace(); } 

    Siempre se detiene en is.ready() , y cuando lo cambié a process.waitfor() también se detuvo. ¿Por qué?

  • ADB de Android: simular la prensa de una aplicación reciente
  • Error al empujar el elemento (s). En android
  • ¿Hay un shell de Android o un comando adb que podría utilizar para obtener un dispositivo IMEI / MEID?
  • Despierta Android con el uso de adb o Eclipse (justo antes de depurar)?
  • 'No se han encontrado dispositivos compatibles activos AVD's o dispositivos encontrados
  • ¿Puedo usar adb.exe para encontrar una descripción de un teléfono?
  • 5 Solutions collect form web for “¿Cómo puedo ejecutar comandos de Linux en un dispositivo Android?”

    Puede ejecutar comandos de Linux en Android. Pero normalmente hay muy pocos pre-instalado. Si desea agregar más comandos, puede que desee root el dispositivo e instalarlo en él.

    Esto no es para uso productivo dentro de una aplicación, pero puede ayudarlo a trabajar con su dispositivo.

    Por lo que sé, la única manera de ejecutar comandos shell es:

     Process proc = Runtime.getRuntime().exec("your command"); 

    Si tiene los binarios para su sistema, puede ejecutar cualquier cosa en su sistema.

    Diciendo que tienes que entender que tienes que encontrar los binarios para el tar .

    Mira aquí http://forum.xda-developers.com/showthread.php?t=872438

    Y posiblemente otros lugares ..

    Instale busybox, luego escriba el comando en el formato siguiente:

    Busybox [comando linux]

    No puedes usar todos los comandos linux sin busybox, porque Android no tiene todos los binarios que están disponibles en un sistema operativo Linux estándar.

    FYI, un binario es sólo un archivo que contiene código compilado. Muchos binarios predeterminados se almacenan en el directorio / system / bin / sh. Todos estos comandos como 'cp' 'ls' 'get' etc, son en realidad binarios. Puede verlos a través de:

    Ls -a / system / bin / sh

    Espero que esto ayude.

    En respuesta a Igor Ganapolsky, tendría que tener una base de datos establecida para localizar.

    Probablemente 'encontrar' sería adecuado para sus necesidades.

    Ejemplo:

    Find -name * .apk

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.