Root (deutsch: Wurzel), umgangssprachlich fĂŒr Root-Konto, bzw. Root-Konto-Zugang, bedeutet bei unixoiden[1] Systemen, darunter auch Android, dass der Nutzer vollen Zugriff auf das Betriebssystem und dessen Ressourcen hat.

Der synonym verwendete Begriff Root leitet sich vom Linux-Benutzer root ab, welcher in der Benutzer- und Berechtigungshierarchie an oberster Stelle steht und somit umfassende Systemberechtigungen besitzt. Root-User werden auch Superuser genannt.

Unter Android ist der Root-Zugriff standardmĂ€ĂŸig deaktiviert und das Arbeiten des Benutzers mit Root-Rechten aus SicherheitsgrĂŒnden nicht vorgesehen.

Root bei Unix-SystemenEdit

Das Benutzerkonto 'root' wird bei einem Unix-artigen System, wie z. B. BSD oder Linux, bei der Installation des Betriebssystems standardmĂ€ĂŸig angelegt. Dieser Benutzer ist nicht fĂŒr die tĂ€gliche Arbeit mit dem System gedacht, da aus seiner Verwendung und seinen Rechte-mĂ€ĂŸig weit eingerĂ€umten Möglichkeiten eine ebenso große Gefahr entsteht. Aus diesem Grund wird root i.d.R. nur verwendet, wenn Verwaltungsaufgaben am System durchgefĂŒhrt werden mĂŒssen, fĂŒr die die Rechte eines normalen Benutzers nicht ausreichend sind.

Wechseln der IdentitÀtEdit

Unter Ubuntu kann man die IdentitĂ€t (den Benutzer) jederzeit wechseln. Aktionen, die Root-Recht verlangen, sind z. B. die Installation eines Programms oder die Aktualisierung eines Treibers fĂŒr ein neues GerĂ€t. Aber auch viele Eingriffe von Schadsoftware in das System verlangen Root-Recht. Wenn nicht schon als root-Benutzer gearbeitet wird (was vermieden werden sollte), wird dann nach dem Passwort fĂŒr den Benutzer root gefragt. Um unberechtigte Zugriffe zu vermeiden, sollte das Root-Passwort nur eingeben werden, wenn aktiv ein Programm gestartet wurde, welches dieses Recht erfordert. Im Terminal (Shell) wechselt man in den root, indem man vor dem eigentlichen Befehl ein "su" (fĂŒr: substitute user identity, zu Deutsch: ersetze BenutzeridentitĂ€t) eingibt. Anschließend wird eine interaktive Shell des Benutzers root gestartet. Wenn nur ein Befehl mit root-Recht ausgefĂŒhrt werden soll, stellt man dem betreffenden Befehl sudo voran.

Root unter AndroidEdit

Da Android unter Android 5.0   "Lollipop" keine Benutzerkontenverwaltung besitzt, wie sie von PC Betriebssystemen bekannt ist, hat der Benutzer somit keine wirkliche IdentitĂ€t, die er wechseln kann. Er wechselt von Anwendung zu Anwendung, denen die erforderlichen Rechte bei der Installation zugesagt wurden. (Ab Android 6.0   "Marshmallow" muss der Nutzer den Apps die Berechtigungen geben, bevor diese sie nutzen können) Der Benutzer ĂŒbernimmt also die IdentitĂ€t Rechte von den einzelnen Anwendungen. FĂŒr jede App legt die Dalvik VM eine eigene User ID (UID) an[2], der grundsĂ€tzlich nur Schreib- und Leserechte auf den von der App erstellten Ordner im /data/data Verzeichnis gewĂ€hrt werden.

Rechteverwaltung unter AndroidEdit

 
Anfrage nach Superuser-Rechten beim HTC Wildfire

Da Android auf dem Linux-Kernel aufbaut, verwendet es die bekannten und bewĂ€hrten Sicherheitsmechanismen des Kernels, bspw. die Rechteverwaltung. Um eine App installieren zu können, mĂŒssen vor dem Herunterladen aus dem Google Play Store bestimmte Rechte gewĂ€hrt werden, die die App zum Arbeiten benötigt. Jede App kann nur auf die Telefonfunktionen zugreifen, die sie auch bei der Installation oder beim Update angegeben hat. Der Programmierer legt seiner App eine Datei namens AndroidManifest.xml bei. Diese Datei beinhaltet neben den Informationen zur App auch die Berechtigungen, die diese benötigt. Aus dieser Datei ĂŒbernimmt Android und der Play Store dann die Berechtigungen, die der Benutzer bestĂ€tigen muss. Nehmen wir also an, ein Programmierer fĂŒr Schadsoftware will, dass die App Zugriff auf das Senden und Empfangen von SMS hat. Dann muss dieser Programmierer dieses Recht in die AndroidManifest.xml eintragen, damit es im Telefon gewĂ€hrt wird. Es ist also theoretisch nicht möglich, einer App eine Berechtigung zu geben, ohne dieses vorher in der Datei festgelegt zu haben. Durch das Durchlesen der benötigten Rechte kann der Benutzer dann entscheiden, ob er diese App installieren möchte oder es besser bleiben lĂ€sst. So können verdĂ€chtige Berechtigungen in der App identifiziert und ein sicheres System gewĂ€hrleistet werden.

Mit Hilfe der in Android 4.3   "Jelly Bean" eingefĂŒhrten Funktion App Ops ist es möglich, Berechtigungen einer installierten App zu entziehen.

Root fĂŒr AndroidEdit

Die AndroidManifest.xml besitzt allerdings keine Möglichkeit, einer App die Rechte des Benutzers root zu gewĂ€hren. Rechte des root werden bei Android, wie auch bei anderen Unix-Ă€hnlichen Systemen, mit der Dateiberechtigung setuid realisiert.[3] Dieses Bit steuert, ob eine ausfĂŒhrbare Datei mit den Rechten des ausfĂŒhrenden Nutzers (beispielsweise einem fĂŒr eine App angelegten Nutzer) gestartet wird oder mit den Rechten des Erstellers (bei Systemanwendungen root). Benötigt eine App root-Rechte, bedeutet das meist nicht mehr, als dass diese App ein anderes Programm mit root-Rechten ausfĂŒhren will. Das funktioniert, indem die App die gewĂŒnschte ausfĂŒhrbare Datei ĂŒber die BinĂ€rdatei su (im Ordner /system/xbin) aufruft, welche als einzige im System das Recht hat, den Befehl setuid() zum Ändern des setuid Bits auszufĂŒhren. Damit der Nutzer weiterhin die Kontrolle und Übersicht hat, welche App berechtigt ist, Befehle ĂŒber su auszufĂŒhren, gibt es eine App zur Verwaltung dieser Rechte. Eine dieser Apps ist beispielsweise SuperSU. Startet der Nutzer eine App, die root-Rechte verlangt, so wird er gefragt, ob er ihr diese gewĂ€hren möchte - oder nicht. Die Auswahl lĂ€sst sich von der SuperUser-App temporĂ€r oder dauerhaft fĂŒr diese App speichern. In den Einstellungen ist es ebenfalls möglich, nachtrĂ€glich die berechtigten Apps zu Ă€ndern. Ein ungewollter Zugriff auf einen Befehl ĂŒber su (und damit mit root-Rechten) wird somit erschwert.

SelbstverstĂ€ndlich muss der Benutzer immer kritisch Anfragen nach root-Rechten gegenĂŒberstehen, um unerwĂŒnschte Effekte zu vermeiden.

WofĂŒr benötigt man Root?Edit

So mancher Benutzer eines Smartphones wird sich schon mal gefragt haben: WofĂŒr wird denn nun root unter Android gebraucht? Mein Telefon hat vorher doch auch super funktioniert. - Die meisten Dinge, die man unter Android mit root bewerkstelligen kann, sind rein technischer Natur und sollen beispielsweise die Leistung oder Benutzerfreundlichkeit eines Telefons steigern. Es gibt zwar viele Themes, die sich nur durch den root installieren und verwenden lassen, aber diese sind dann fĂŒr einen kleinen Teil der Gemeinde geschaffen und sollen eher den Endbenutzer ansprechen. Die beliebteste Funktion, die man nur mit root erreichen kann, ist die Übertaktung des Prozessors. Das GerĂ€t arbeitet dann schneller, aber die Lebensdauer des Prozessors dĂŒrfte dadurch verkĂŒrzt werden und der Akku ist auch schneller leer. Gerade bei Ă€lteren Telefonen mit langsamer CPU hat das Übertakten des Prozessors Sinn. Um die Leistung des Telefons zu steigern, wird hĂ€ufig eine Art Script in das Autostart-Verzeichnis init.d in den Root-Ordner des Android Systems kopiert, was dafĂŒr sorgt, dass die Verwaltung des Arbeitsspeichers nicht mehr allein durch Android geschieht, sondern durch ein von der Community geschriebenes Script unterstĂŒtzt wird. Dieses bewerkstelligt, dass aus Sicht des Anwenders auch datenintensivere Apps besser und geschmeidiger laufen, als es mit dem Stock möglich wĂ€re.

Aber auch Unter-Taktung ist möglich, z. B. um den Akku zu schonen und dadurch eine lĂ€ngere Betriebszeit des Telefons bis zum nĂ€chsten Aufladen zu erreichen. Die volle Leistung fĂ€llt dabei natĂŒrlich in den Hintergrund. Anwendung findet diese Methode z. B. bei GerĂ€ten mit fest eingebautem Akku, der nur mit erheblichem Aufwand oder gar nicht zu wechseln ist. Die Lebensdauer der CPU wird ebenfalls verlĂ€ngert und damit auch die Lebensdauer des GerĂ€tes, von dem man sich vielleicht nur ungern trennen will.

Andere Funktionen, die nur mit einem root-Zugang zu bewerkstelligen sind, sind z. B. das Löschen von hersteller- und providerseitig installierter Apps, die oft zu kostenpflichtigen Diensten verweisen und gerne als Bloatware bezeichnet werden. Ohne Rootzugang kann man nur selbst installierte Apps aus der Datenpartition des Betriebsystems löschen. Ein Rootzugung ermöglicht das Zugreifen auf die Systempartition (die /system Partition wird dabei read/write (r/w) eingebunden und ermöglicht neben dem Lesen nun auch das Schreiben von Daten bzw. Löschen oder VerÀndern) und damit auf die Systemapps. Eine weitere Option ist das Installieren einer vollstÀndigen Busybox (also der Unix/Linux Dienstprogramme), um damit die Funktionen des Linuxkernels voll auszunutzen. Vor allem Anwender, die auf dem Desktop mit Unix/Linux und viel in der Shell arbeiten, wissen dies zu schÀtzen. Die vollstÀndige Busybox ermöglicht z. B. eine IP-Table firewall, mit der man Apps den Zugang zum Internet verbieten kann. Auch das Einrichten eines swap-spaces (virtueller Arbeitsspeicher) oder das Modifizieren des Kernelverhaltens setzt eine Busybox - und damit root - voraus.

Besonders aus GrĂŒnden des Datenschutzes ist das Rooten sinnvoll, denn ein root-Zugang ermöglicht es, kritische Rechte fĂŒr eine App zu blockieren (z. b. Lokalisierungsfunktionen oder das Auslesen der Kontakte). Ebenso lassen sich Werbeblocker installieren, welche die Bannerwerbung in Apps unterbinden.

Entgegen landlĂ€ufiger Meinung ist fĂŒr das Installieren eines Custom ROM nicht zwingend root erforderlich. Lediglich der Rom Manager  , welcher in vielen Anleitungen genutzt wird, benötigt root zum Installieren des Recoveries. Zum Flashen eines Custom ROM wird lediglich ein entsperrter Bootloader benötigt.

Das RootenEdit

Das Rooten an sich ist eine relativ einfache Angelegenheit und wird durch die Installation, bzw. Kopieren der su-binary in den Ordner /system/xbin erreicht. Die App SuperUser dient nach der Installation der Verwaltung dieser Binary. Die Binary kann man sich kostenfrei hier herunterladen und zum Beispiel mit dem ClockWorkMod-Recovery installieren. Problematisch wird es, wenn man als Nutzer keine Schreibrechte auf die /system Partition hat. In dem Fall muss man gerĂ€tespezifisch recherchieren, ob es eine Möglichkeit gibt, Schreibrechte auf diese Partition zu erhalten. Dies wird irrtĂŒmlich immer wieder als "Rooten" bezeichnet, obwohl der Prozess im wesentlichen nur die oben genannte Installation beschreibt.

Wie erkenne ich, ob ich Root-Rechte habe?Edit

Nachdem man sein GerĂ€t "gerootet" hat, möchte man natĂŒrlich gerne wissen, ob die angewendete root-Methode funktioniert hat. Um dies zu ĂŒberprĂŒfen, ist es am einfachsten, sich eine App aus dem Play Store herunter zu laden, welche (fĂŒr einzelne Funktionen) root-Rechte benötigt und diese dann ausprobiert. Dies kann zum Beispiel ein Datei-Explorer sein, welcher auch auf das Dateisystem mit erhöhten Rechten zugreifen kann (siehe Root-Explorer). Auch die App Root Checker   ist dafĂŒr eine beliebte und gute Möglichkeit. Die einzige Funktion dieser App ist es anzuzeigen, ob das GerĂ€t gerootet ist oder nicht.

systemless RootEdit

→ Hauptartikel: systemless Root

Beim systemless Root handelt es sich um eine Installationsmethode des su-Dienstes, der SuperSU App und der benötigten Dateien ohne die /system-Partition zu verÀndern.

Der SuperuserEdit

Der Superuser ist ein Synonym fĂŒr den User root. Um root auf dem Android-GerĂ€t nutzen zu können, benötigt man, wie bereits erwĂ€hnt, den superuser oder genauer gesagt die Superuser  -App. Der Superuser ist unter Unix/Linux gleichzusetzen mit dem Administrator-Konto in Windows-Systemen.

Die Superuser-App in Android ist sozusagen eine Schnittstelle zwischen dem Superuser und dem Handybediener. Wenn eine App Rechte des Superusers benötigt, wird die Anfrage von der Superuser-App registriert und dem Bediener angezeigt. Der Benutzer hat dann die Möglichkeit, der anfragenden App die Superuser-Rechte zu gewÀhren oder zu verweigern.

Siehe auchEdit

EinzelnachweisEdit

  1. ↑ UnixĂ€hnliches Betriebssystem, welches versucht das Verhalten von Unix zu implementieren, http://de.wikipedia.org/wiki/Unixoides_System
  2. ↑ http://www.zdnet.de/41553061/android-architektur-wieviel-linux-steckt-in-googles-os/
  3. ↑ Android 4.3: Der Tod der Root-Rechte? 29. Juli 2013, abgerufen am 2. Februar 2020 (deutsch).