La intención en realidad no le otorga derechos de superusuario, solo interactúa con el mecanismo de concesión de permisos de la aplicación de superusuario.
La verdadera clave es entender que el Linux subyacente de Android no admite la escalada de los privilegios de un usuario. En cambio, admite (/ se ha modificado para admitir) un mecanismo para que un usuario solicite ejecutar _su_otro_proceso_ como superusuario.
Lo que esto significa es que la tarea de derechos de root real deberá ser ejecutada por un ejecutable diferente, probablemente una 'línea de comando' nativa que se iniciará bajo delegación mediante el comando su o cualquiera que sea su particular versión de Android modificada soportes. Será más fácil si puede averiguar cómo hacer la tarea usando uno de los programas de línea de comando incorporados en la caja de herramientas; por ejemplo, escriba el archivo en otro lugar y luego muéstrelo (y quizás cuélelo) al lugar que desee. También tenga en cuenta que/system normalmente está montado como de solo lectura, y que debería volver a montarlo antes de poder escribir allí.
Piensa bien en todo lo que trates de hacer como superusuario ... es fácil hacer un desastre o dejar atrás problemas. Si está implementando la aplicación a otros, también piense en los agujeros de seguridad que creará.
gracias por la pista. Actualmente estoy tratando de leer un archivo con ese comando "cat". "su -c 'cat'" funciona bien desde adb shell. Desafortunadamente, el mismo comando no devuelve nada cuando se ejecuta desde mi aplicación (Runtime.getRuntime(). exec ("su -c 'cat '");). –
Goddchen
Tienes que pensar un poco sobre lo que debes esperar que haga, no va a 'devolver nada' útil. Si engancha el stdout de cómo lo lance, es posible que obtenga algo (consulte la fuente de la aplicación del terminal). Pruebe un caso sin privilegios sin la su para simplificar, o use algo que sea archivo a archivo en lugar de depender de stdout o stdin. –
ahora está trabajando: tuve que ejecutar ("su sh") para abrir un shell. luego crea un dataoutputstream y escribe comandos en ese shell. – Goddchen