Es bien sabido que cada aplicación de Android es su propio usuario. Tengo Android Terminal Emulator instalado como usuario u0_a5 .
u0_a5@android:/ $ guau u0_a5 u0_a5@android:/ $ grupos u0_a5 sdcard_rw sdcard_r inet all_a5
Bajo adb, cualquier intento de usar el comando su para iniciar sesión como Android Terminal Emulator solo tiene éxito en parte. Como muestra la siguiente sesión de adb, los grupos de permisos a los que pertenece Android Terminal Emulator no se heredan, excepto el grupo de usuario predeterminado u0_a5 .
root@android:/ # su - u0_a5 Identificación desconocida: u0_a5 1|raíz@android:/ # su - 10005 app_5@android:/ $ guau u0_a5 app_5@android:/ $ grupos u0_a5
Como usuario 10005 , puedo eliminar archivos propiedad del usuario u0_a5 . Pero no puedo ejecutar comandos que requieran permisos especiales de Android, como "busybox wget protocol://some.uri", que requiere que una aplicación pertenezca al grupo inet .
Entonces, ¿hay alguna forma de suplantar y ejecutar una aplicación en su entorno de permisos específico? ¿O ejecutar con permisos completos de root es mi única (no) elección?
Sí, usar root es la única forma de hacerlo.
Todos los demás grupos o nombres de usuario están bloqueados en la zona de usuario de Android mediante una técnica conocida como sandboxing . Esta es una función de seguridad implementada en el núcleo, por lo que deberá volver a trabajar en Android si aún desea tener éxito.
izzy