Wie füge ich einer App selbst die Root-Berechtigung hinzu?

11

Gibt es eine Möglichkeit, einer App absichtlich Root-Berechtigungen zu erteilen? Nicht automatisch über SuperSU, wenn eine bestimmte App nach Root-Berechtigungen fragt, sondern um eine App über ein Tool auszuwählen und ihr Root-Berechtigungen zu erteilen.

Zum Beispiel füge ich meine bevorzugte Text-App zur genehmigten Liste hinzu und kann dann über diese App Stammdateien öffnen.

AnDroDroo
quelle

Antworten:

13

Nein. Sie sollten den App-Entwickler dazu auffordern.

Auf UNIX-ähnlichen Systemen werden Berechtigungen mit sogenannten UIDs verwaltet.

Jeder Prozess hat einen und bestimmt, worauf sie zugreifen können. Darüber hinaus gibt es auch Gruppen mit Berechtigungen, die ihre Mitglieder verwenden können. Wenn eine App über Berechtigungen verfügt, werden Write to SD cardsie einer Gruppe zugeordnet, die über diese Berechtigung verfügt.

Die Root-Berechtigungen sind eine Ausnahme, da sie nicht im Manifest der App deklariert werden, sondern im Code. Root ist auch keine Gruppe, sondern eine separate UID (da es sich um einen separaten Benutzer handelt), sodass es für eine App nicht so einfach ist, sie zu verwenden. Apps mit Root-Rechten müssen dazu explizit geschrieben werden.

Dies funktioniert jedes Mal, wenn eine App etwas als Root ausführen möchte su, muss sie stattdessen die Binärdatei dazu auffordern. sufragt dann die App, die diese Berechtigungen verwaltet (z. B. SuperSU), ob die App Root-Zugriff erhalten darf. Wenn dies nicht der Fall ist, werden Sie aufgefordert, dies zuzulassen oder abzulehnen. Dann wird die Aktion als root, nicht als App-Benutzer ausgeführt. Diese Aktionen sind kein integraler Bestandteil der App, sondern eine externe ausführbare Datei.

Während es theoretisch möglich ist, dies zu einer App hinzuzufügen, wäre dies ein nicht trivialer Prozess, der Kenntnisse über das Schreiben von Smali-Code erfordert. Dies ist das interne Format der virtuellen Dalvik-Maschine (der Teil des Systems, auf dem die APK-Datei ausgeführt wird) smali. Und selbst dann besteht ein großes Sicherheitsrisiko, wenn die App anderen Apps den Zugriff darauf ermöglicht: Sie würde nicht wissen, wie der privilegierte Root-Zugriff von seinem normalen Zugriff getrennt werden kann. In Wirklichkeit ist dies also nicht wirklich machbar.

RR
quelle
1
Für diejenigen, die nicht wissen, was Smali ist: Es ist der Assembly- Dialekt für den Dalvik-Code für virtuelle Maschinen von Android und wird häufig in Reverse Engineering-Dex-Dateien verwendet. Was vielleicht etwas unklar ist: Die App muss sich selbst darum kümmern , programmgesteuert root zu werden . Deshalb muss der Entwickler es einbeziehen. Das Hinzufügen zu SuperSU hilft nicht, solange die App ihre Root-Rechte nicht ausübt.
Ce4
Ich kann also keine Root-Textdatei über meinen bevorzugten Texteditor öffnen, wenn die Programmierer die App nicht so codiert haben, dass das Öffnen von Root-Dateien akzeptiert wird.
AnDroDroo
1
Absolut korrekt. Ein Beispiel: Wenn die App nicht mit root gestartet wird und versucht, eine "root-Datei" zu öffnen, wird einfach eine "Berechtigung verweigert" angezeigt, da der Zugriff auf die Datei weiterhin mit der UID der Apps (it) erfolgt wird nicht nach Superuser-Berechtigungen fragen, um es zu öffnen). Wenn die App hingegen mit der Root-UID (dh su <app>) gestartet wird, greift sie als Root auf diese Root-Datei zu und erhält somit die Berechtigung.
Izzy
Aus diesem Grund konnte ich keine anderen Texteditoren zum Lesen von Root-Dateien verwenden :).
AnDroDroo
1
@Izzy AFAIK Sie können keine reguläre Android-App mit Root-UID ausführen oder die UID einer laufenden App ändern. Sie können nur Befehlszeilenprogramme mit su ausführen und daher Befehle mit Administratorrechten ausführen.
Robert
2

Ich habe einen Weg gefunden, der Ihnen helfen kann. Ich habe dies verwendet, um Tasker Root-Zugriff zu gewähren .

Wenn Sie den Terminalemulator verwenden, um Lese-, aber keinen Schreibzugriff auf einen Ordner mit zu gewähren

  • su
  • chmod 775 /location/of/folder/

Dann kann Ihr Texteditor dieses Verzeichnis lesen. Wenn Sie also versuchen können, eine Datei im Ordner zu speichern, versucht er, die Root-Berechtigung anzufordern.

Es kann auch nur einen Schreibfehler geben.

Graeme Evans
quelle