2012-01-05 10 views
6

Hay una situación aquí, estoy desarrollando una aplicación de Android, usando Java. Estoy bastante familiarizado con todo esto, pero ahora es la primera vez que necesito usar permisos SU. Solo necesito reemplazar (en realidad, renombrar) el archivo en el directorio de sistema/aplicación, pero parece que no puedo realizarlo de la manera habitual (método renameTo en la clase File), simplemente me devuelve FALSE, lo que significa que hubo algún error en la operación.Android SU permisos: ¿Cómo usarlos?

Entonces, ¿alguien me puede decir cómo usar SU? Mi teléfono de prueba está completamente rooteado con SU 3.0.3.2, cualquier aplicación que requiera SU funciona perfectamente bien.

¿Debo usar el mismo método pero con algunas adiciones en manifiesto? ¿Debo usar busybox de alguna manera?

Ya busqué en Google esto, y no puedo encontrar ninguna información útil. Además, no hay documentación en el sitio web oficial de Superusuario de Android.

¡Gracias de antemano!

+1

duplicado: http://stackoverflow.com/questions/7295873/how-do-i-request-root-access-in-android – TryTryAgain

+0

Gracias, señor :) – Adiost

+0

No hay problema. Una búsqueda rápida en StackOverflow casi siempre arroja resultados ;-) – TryTryAgain

Respuesta

8

Probablemente también necesite volver a montar el sistema de archivos como RW ya que/system es de solo lectura. Así que puede que tenga que llamar a la UB con un comando similar a continuación:

mount -o r,remount -t yaffs2 /dev/block/mtdblock3 /system

para ejecutar el comando, se puede tratar de dos maneras (he notificación de Android veces uno trabaja y el otro no)

Process p = Runtime.getRuntime().exec(new String[]{"su", "-c", "mount -o r,remount -t yaffs2 /dev/block/mtdblock3 /system"}); 

O puede hacer

Process p = Runtime.getRuntime().exec("su"); 
p.getOutputStream().write("mount -o r,remount -t yaffs2 /dev/block/mtdblock3 /system".getBytes()); 
p.getOutputStream().write(<my next command>); 
+0

Oh, sí, de hecho, tengo que hacerlo. Perdón por la pregunta coja, pero aún así: ¿cómo hacerlo? Quiero decir, ¿cómo llamar a SU con algún comando? – Adiost

+1

Editado un poco para hacerlo más completo. – user931366

+0

¿Quién es asombroso? ¡Eres increíble! :) Te debo – Adiost

Cuestiones relacionadas