5 Stimmen

Superuser-Rechte zum Bearbeiten der Datei anfordern

Ich plane eine Anwendung, bei der ich eine Systemdatei bearbeiten muss.

Ich kann diese Datei nur mit Root-Rechten bearbeiten. Ich habe ein verwurzeltes Telefon mit Superuser.apk installiert. Andere Apps, die Root benötigen, fordern beim ersten Start Root-Zugriff an. Ich möchte dasselbe tun, kann aber keine Hinweise darauf finden, wie ich Superuser-Rechte für meine App anfordern kann.

Ich habe etwas über eine Absicht Android.intent.action.superuser gefunden, aber wenn ich versuche, eine Aktivität für diese Absichtsaktion zu starten, erhalte ich eine ActivityNotFoundException .

Irgendwelche Ideen?

2voto

Chris Stratton Punkte 39229

Die Absicht verschafft Ihnen nicht wirklich Superuser-Rechte, sie interagiert nur mit dem Mechanismus der Superuser-App zur Erteilung von Berechtigungen.

Der eigentliche Schlüssel liegt darin, zu verstehen, dass das Android zugrundeliegende Linux keine Ausweitung der Rechte eines Benutzers unterstützt. Stattdessen unterstützt es einen Mechanismus, mit dem ein Benutzer anfordern kann, _einen_anderen_Prozess_ als Superuser auszuführen (bzw. wurde dafür geändert).

Das bedeutet, dass die eigentliche Aufgabe der Root-Rechte von einer anderen ausführbaren Datei erledigt werden muss, wahrscheinlich einer nativen Kommandozeilenanwendung, die Sie mit dem Befehl su oder einer anderen von Ihrem modifizierten Android-Build unterstützten Option starten. Am einfachsten ist es, wenn Sie herausfinden, wie Sie die Aufgabe mit einem der eingebauten Toolbox-Kommandozeilenprogramme erledigen können - schreiben Sie beispielsweise die Datei an einen anderen Ort und bringen Sie sie dann mit mv (und vielleicht chown) an den gewünschten Ort. Bedenken Sie auch, dass /system normalerweise schreibgeschützt gemountet ist und Sie es erst wieder auf rw setzen müssen, bevor Sie dort schreiben können.

Überlegen Sie sich gut, was Sie als Superuser tun wollen... es ist leicht, ein Chaos zu verursachen oder Probleme zu hinterlassen. Wenn Sie die Anwendung für andere bereitstellen, denken Sie auch an die Sicherheitslücken, die Sie schaffen werden.

0voto

mreichelt Punkte 12129

Vielleicht weil Sie stattdessen "Android.intent.action.superuser" wählen sollten? Ich nehme an, dass dies das Problem sein könnte. Gefunden die Quelle dieses auf: http://forum.xda-developers.com/showpost.php?p=2954887&postcount=7

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X