7 votos

¿Por qué no puedo usar su para ejecutar bajo los permisos de otra aplicación?

Es bien sabido que cada aplicación de Android es su propio usuario. Tengo el emulador de terminal Android instalado como usuario u0_a5 .

u0\_a5@android:/ $ whoami
u0\_a5
u0\_a5@android:/ $ groups
u0\_a5 sdcard\_rw sdcard\_r inet all\_a5

Bajo adb, cualquier intento de utilizar el su para iniciar la sesión como emulador de terminal de Android sólo tiene éxito en parte. Como muestra la siguiente sesión adb, los grupos de permisos a los que pertenece Android Terminal Emulator no se heredan, excepto el usuario por defecto u0_a5 grupo.

root@android:/ # su - u0\_a5
Unknown id: u0\_a5
1|root@android:/ # su - 10005
app\_5@android:/ $ whoami
u0\_a5
app\_5@android:/ $ groups
u0\_a5

Como usuario 10005 Puedo borrar los archivos propiedad del usuario u0_a5 . Pero no puedo ejecutar comandos que requieren permisos especiales de Android, como "busybox wget protocol://some.uri", que requiere que una aplicación pertenezca al inet grupo.

Entonces, ¿hay alguna manera de suplantar y ejecutar una aplicación bajo su entorno de permisos específicos? ¿O es la ejecución con todos los permisos Root mi única (no) opción?

2voto

forums Puntos 611

Sí, utilizando root es el único camino a seguir.

Todos los demás grupos o nombres de usuario están bloqueados en la zona de usuarios de Android mediante una técnica conocida como sandboxing . Esta es la característica de seguridad implementada en el núcleo, por lo que tendrá que volver a trabajar en Android si todavía quiere tener éxito.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X