Permisos de Android SU: ¿Cómo usarlos?
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 de SU. Sólo necesito reemplazar (de hecho, renombrar) el archivo en el directorio del sistema / app, pero parece que no puedo realizarlo de una 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.
Entonces, ¿alguien puede decirme cómo usar SU? Mi teléfono de prueba está totalmente enraizado con SU 3.0.3.2, cualquier aplicación que requiera SU funciona perfectamente bien.
- Escribir una aplicación para Android que ejecuta comandos de Linux
- Espere a que termine el comando en RootTools
- Obtener una lista de almacenamiento externo en Android 4.3
- ¿Cómo crear aplicaciones en android que no se pueden desinstalar? ¿Podemos hacer aplicaciones de sistema?
- Escribir archivos en / system
¿Debo usar el mismo método pero con algunas adiciones en manifiesto? ¿Debo usar busybox de alguna manera?
Ya busqué Google para esto, y no puedo encontrar ninguna información útil. Y también, no hay documentación en el sitio oficial de Android Superuser.
¡Gracias por adelantado!
- Construir / compilar Android desde el origen con privilegios de superusuario
- Habilitar depuración USB a través de Clockworkmod con adb
- Privilegios raíz para una aplicación Android (aplicación completa, no sólo unos pocos comandos)
- Crear perfil VPN en Android
- Iniciar un script como root a través de ADB
- Determinar si se ejecuta en un dispositivo enraizado
- Leer la salida del comando dentro de su proceso
- Android: cambia la configuración del sistema de un dispositivo enraizado desde la aplicación
Probablemente también necesite volver a montar el sistema de archivos como RW ya que / system es de sólo lectura. Por lo tanto, puede que necesite llamar a SU con un comando similar a continuación:
mount -or,remount -t yaffs2 /dev/block/mtdblock3 /system
Para ejecutar el comando, puede probar de dos maneras (he notado en android a veces uno funciona y el otro no)
Process p = Runtime.getRuntime().exec(new String[]{"su", "-c", "mount -or,remount -t yaffs2 /dev/block/mtdblock3 /system"});
O puedes hacer
Process p = Runtime.getRuntime().exec("su"); p.getOutputStream().write("mount -or,remount -t yaffs2 /dev/block/mtdblock3 /system".getBytes()); p.getOutputStream().write(<my next command>);