2010-09-06 11 views
6

Estoy tratando de encontrar el método detrás de tener acceso de superusuario en dispositivos Android. Básicamente, quiero que mi aplicación pueda eliminar los archivos del sistema, y ​​preguntarle al usuario si está bien después de que la aplicación se lance como la mayoría de las otras aplicaciones, y luego, ¿qué código exactamente estoy buscando para realizar este tipo de acciones? no puedo encontrar mucho en googleAndroid con permisos de Super User? permitiendo el acceso

gracias de antemano!

Respuesta

10

Si está arraigado el dispositivo, puede utilizar el siguiente código para acceder a un intérprete de comandos:

try 
    { 
     Process process = Runtime.getRuntime().exec("su"); 
     DataOutputStream outputStream = new DataOutputStream(process.getOutputStream()); 
     DataInputStream inputStream = new DataInputStream(process.getInputStream()); 

     outputStream.writeBytes(command + "\n"); 
     outputStream.flush(); 

     outputStream.writeBytes("exit\n"); 
     outputStream.flush(); 
     process.waitFor(); 
    } 
    catch (IOException e) 
    { 
     throw new Exception(e); 
    } 
    catch (InterruptedException e) 
    { 
     throw new Exception(e); 
    } 

Dónde "command" es el comando que desea ejecutar.

+0

¿dónde encontraste que este recurso es mi amigo? hay alguna documentación para ello? Supongo que solo uso la variable de comando cada vez que quiero ejecutar un comando que necesita este acceso. –

+0

¡Me alegra ser de ayuda! No recuerdo dónde encontré ese código, pero sé que tomó mucho de Google. La muestra fue tomada de una aplicación en la que estoy trabajando actualmente. Para ejecutar comandos múltiples, simplemente haz "outputStream.writeBytes (" command \ n ");" y "outputStream.flush();" para cada comando. También puede crear una lista de comandos para repetir. –

1

Si lo estoy haciendo bien, quiere otorgar privilegios de administrador de la aplicación. Esto no es posible con la imagen estándar de Android que está instalada en los dispositivos. El comando su no admite cambiar a la raíz.

Sin embargo, puede cargar una ROM rooteada a medida en su dispositivo que no sea eso, me temo que no hay solución.

+1

yo uso muchas aplicaciones que solicitan permisos de superusuario antes de lanzar así que no sé lo que su hablando de –

+0

Claro que se puede pedir permiso de superusuario, pero en un dispositivo predeterminado no rooteado con una ROM intacta predeterminada, esto no funcionará. Eso es lo que quería decir. –

1

Here usted puede encontrar una ilustración clara acerca de cómo obtener permisos de root

Cuestiones relacionadas