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 ?