Es ist bekannt, dass jede Android-App ein eigener Benutzer ist. Ich habe Android Terminal Emulator als Benutzer u0_a5 installiert .
u0_a5 @ android: / $ whoami u0_a5 u0_a5 @ android: / $ groups u0_a5 sdcard_rw sdcard_r inet all_a5
Unter adb ist jeder Versuch, sich mit dem Befehl su als Android Terminal Emulator anzumelden, nur teilweise erfolgreich. Wie die folgende ADB-Sitzung zeigt, werden die Berechtigungsgruppen, zu denen Android Terminal Emulator gehört, mit Ausnahme der Standardbenutzergruppe u0_a5 nicht vererbt .
root @ android: / # su - u0_a5 Unbekannte ID: u0_a5 1 | root @ android: / # su - 10005 app_5 @ android: / $ whoami u0_a5 app_5 @ android: / $ groups u0_a5
Als Benutzer 10005 kann ich Dateien löschen, die dem Benutzer u0_a5 gehören . Ich kann jedoch keine Befehle ausführen, für die spezielle Android-Berechtigungen erforderlich sind, z. B. "Busybox Wget Protocol: //some.uri", für die eine App zur inet- Gruppe gehören muss.
Gibt es also eine Möglichkeit, sich als eine App in ihrer spezifischen Berechtigungsumgebung auszugeben und auszuführen? Oder ist das Ausführen mit vollständigen Root-Berechtigungen meine einzige (Nicht-) Wahl?