7 votes

Pourquoi ne puis-je pas utiliser su pour fonctionner sous les autorisations d'une autre application ?

Il est bien connu que chaque application Android est son propre utilisateur. J'ai installé l'émulateur de terminal Android comme utilisateur u0_a5 .

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

Sous adb, toute tentative d'utiliser l'option su pour se connecter en tant qu'émulateur de terminal Android ne réussit que partiellement. Comme le montre la session adb suivante, les groupes de permission auxquels Android Terminal Emulator appartient ne sont pas hérités, sauf pour l'utilisateur par défaut u0_a5 groupe.

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

En tant qu'utilisateur 10005 Je peux supprimer les fichiers appartenant à l'utilisateur u0_a5 . Mais je ne peux pas exécuter les commandes qui requièrent des autorisations spéciales d'Android, comme "busybox wget protocol://some.uri", qui nécessite que l'application appartienne à l'interface de l'utilisateur. inet groupe.

Existe-t-il un moyen d'usurper l'identité d'une application et de l'exécuter dans son environnement de permissions spécifique ? Ou est-ce que l'exécution avec les permissions complètes de Root est mon seul (non)choix ?

2voto

forums Points 840

Oui, en utilisant Racine est le seul moyen d'y arriver.

Tous les autres groupes ou noms d'utilisateur sont verrouillés dans l'espace utilisateur d'Android par une technique connue sous le nom de bac à sable . Il s'agit d'une fonction de sécurité implémentée au cœur du système. Vous devrez donc retravailler Android si vous voulez réussir.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X