Tengo una aplicación que se supone que usa algunos comandos de shell para copiar un archivo de la tarjeta SD a/system/media /. Se requerirá Root, y estoy probando en un dispositivo rooteado. Estoy usando runtimes para ejecutar los comandos de shell, pero no funciona. Esto es lo que tengo para mis tiempos de ejecuciónEjecutando comandos de Shell a través de código Java en Android?
public void RunAsRoot{String[] commands = {"sysrw", "rm /data/local/bootanimation.zip", "sysro"};{
Process p = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(p.getOutputStream());
for (String tmpCmd : commands) {
os.writeBytes(tmpCmd+"\n");
}
os.writeBytes("exit\n");
os.flush();
}
Pero mi Logcat sólo se muestran dos de ellos no ser rechazado
07-30 03:14:11.112: WARN/su(3593): request rejected (10047->0 /system/bin/sh)
07-30 03:14:11.132: DEBUG/su(3592): 10047 com.bba.stormdroid executing 0 /system/bin/sh using shell /system/bin/sh : sh
07-30 03:14:11.152: WARN/su(3594): request rejected (0->0 /system/bin/sh)
07-30 03:14:11.182: WARN/su(3595): request rejected (0->0 /system/bin/sh)
07-30 03:14:11.202: WARN/su(3596): request rejected (0->0 /system/bin/sh)
07-30 03:14:11.242: DEBUG/su(3597): 10047 com.bba.stormdroid executing 0 /system/bin/sh using shell /system/bin/sh : sh
Los dos parecen ser los comandos sysrw y sysro, sin embargo, la aplicación seguirá pide permiso de root cuando desencaudo este código. Soy nuevo en el trabajo con root y no puedo entender cómo hacerlo funcionar.
¿Puedo obtener un proyecto de trabajo de esta muestra? –
Esto no funciona para mí y no recibo ninguna excepción de FileNotFound ni nada en Java. Además, SuperSU intercepta la solicitud raíz y puedo otorgarla, así sé que 'getRuntime()' está funcionando. Por alguna razón, simplemente no me permite manipular archivos en la carpeta '/ system/media'. – anon58192932
Ah, parece que sysrw y sysro son comandantes desconocidos. – anon58192932