IzzyOnDroid Twitter


Say Thanks:
Flattr this!
↓ Your product here? ↓
Das Inoffizielle Android-HandbuchAndroid kennenlernen, Tipps & TricksDas Inoffizielle Android-Handbuch
Android kennenlernen, Tipps & Tricks
Für EUR 16,99 bei Amazon kaufen
Das Inoffizielle Android SystemhandbuchTiefer ins System einsteigenDas Inoffizielle Android Systemhandbuch
Tiefer ins System einsteigen
Für EUR 10,00 bei Amazon kaufen
Die besten Android-AppsDen Androiden austattenDie besten Android-Apps
Den Androiden austatten
Für EUR 10,00 bei Amazon kaufen
 
enhelp

Xposed: Die mächtige Android-Toolbox

Xposed icon
Xposed icon; © rovo89

Es ist relativ unwahrscheinlich, dass ein Leser dieses Artikels noch nie von Xposed gehört hat – zumal es bereits einige Jahre in Umlauf ist. Eher hat man es bislang ignoriert (die System-Modifikationen klangen vielleicht zu gefährlich) – oder hatte einfach noch keine Zeit, sich näher damit zu beschäftigen. Dieser Artikel soll daher einen kurzen Einstieg geben, was Xposed ist, wie man es installiert/benutzt, und was sich so damit anstellen lässt.

Was ist Xposed?

Xposed ist ein Framework für Module, mit dem sich das Android-System sowie darauf installierte Apps anpassen lassen, ohne dass man dafür die zugehörigen APK Dateien selbst anfasst. Stattdessen greift das Framework tief ins System ein, und modifiziert die entsprechenden DEX1 bzw. ART2 Repräsentation der jeweiligen App. Um dies zu ermöglichen, muss natürlich Xposed selbst entsprechend tief in das Android-System integriert sein – wofür bei der Installation des Frameworks gesorgt wird, indem einige System-Komponenten (nachdem sie für eine etwaige Wiederherstellung gesichert wurden) ersetzt werden.

Dieser Ansatz bietet verschiedene Vorteile. Einige davon sind:

Wie installiert man das Framework

Das wichtigste zuerst: Voraussetzung ist ein gerootetes Gerät. Am Besten auch ein aktuelles Nandroid-Backup – man kann nie wissen. Ist diese erfüllt, kann es losgehen:

Android 4.x

Xposed Installer
Xposed Installer

Unter Android 4.x ist die Installation recht einfach: man lädt sich die APK-Datei des Installers herunter, installiert sie (beispielsweise per adb install), und started die App. Daraufhin begrüßt einen ein Bildschirm wie der rechts abgebildete. Hier tippt man den obersten Eintrag an, der mit „Framework“ beschriftet ist.

Framework
Framework management

Hier wird das Framework selbst verwaltet. Wie die Schaltflächen korrekt suggerieren, kann man es hier installieren, aktualisieren, und im Bedarfsfall auch wieder entfernen. Der Installations-Modus kann festgelegt (/system direkt beschreiben, eine .zip Datei erstellen und automatisch per Recovery installieren, oder auch die erstellte .zip Datei für die manuelle Installation per Recovery auf der SD-Karte bereitstellen), und das Gerät neu gestartet werden. Dieser letzte Schritt ist immer jeweils nach Installation/Aktualisierung des Frameworks oder seiner Module notwendig; wie bereits erwähnt, erfolgen die jeweiligen Anpassungen ja ausschließlich bei Systemstart.

Nach erfolgter Installation muss, wie beschrieben, das Gerät einmal neu gestartet werden. Dabei hat man die Wahl zwischen einem „Software-Neustart“ und einem „Geräte-Neustart“. Ersteres ist schneller (das Gerät wird nicht komplett heruntergefahren) und reicht in den meisten Fällen (zumindest bei Modul-Änderungen) aus – letzteres ist gründlicher (vollständiger Shutdown und Neustart). Der nächste Boot-Vorgang dauert nun ein ganzes Stück länger als gewohnt – schließlich muss sich Xposed nun mit dem System „verschmelzen“. Das kann u. U. mehrere Minuten brauchen, also nicht nervös werden. Das Anschließen des Ladekabels ist sicher kein schlechter Gedanke – insbesondere, wenn der Akku-Stand schon ein wenig niedrig ist :)

Android ≥ 5

Beginnend mit Lollipop, wird die Sache ein wenig komplexer. Hier kommt statt Dalvik die neue ART zum Einsatz – was Xposed zusätzlichen Aufwand bei der Integration des Frameworks abverlangt. Wie im offiziellen Thread für Lollipop/Marshmallow beschrieben, muss zunächst die zur Architektur des Gerätes passende .zip Datei (xposed-v*-sdk*-*.zip) von dort heruntergeladen und per (Custom) Recovery geflasht werden (während man dort ist, lädt man sich sicherheitshalber auch gleich das Päckchen mit herunter, welches die Angelegenheit im Notfall wieder rückgängig machen kann: xposed-uninstaller*.zip). Ist das erledigt, fehlt noch das ebenfalls im ersten Post des Threads verlinkte XposedInstaller_3.0*.apk – mit dem man verfährt, wie für Android 4.x beschrieben.

Und wie wird man es im Bedarfsfall wieder los?

Eine Variante dafür war bereits weiter oben zu erkennen: Solange nichts „kaputt gegangen“ ist, lässt sich dies über den entsprechenden Menüpunkt im Xposed Installer erledigen: In der Framework Sektion gibt es schließlich eine mit „Deinstallieren“ beschriftete Option. Hat man noch Module installiert schadet es sicher nichts, diese zuvor noch separat zu entfernen: Ist das Framework weg, funktionieren sie ohnehin nicht mehr.

Was aber, wenn etwas schief gegangen ist, und das Gerät nicht mehr startet? Für diesen Fall gibt es eine .zip Datei, welche man per Recovery flashen kann. Unter Android 4.x wurde sie bei der Installation erzeugt und auf der SD-Karte abgelegt (der Installer hat den entsprechenden Speicherort sodann kundgetan). Ab Android 5 gab es den Uninstaller an der gleichen Stelle zum herunterladen, wo es auch den Installer gab (siehe oben) – auch diesen gilt es dann, per Recovery einzuspielen.

Wie benutzt man Xposed – und Was sind Module?

Modules
Xposed Modules

Unmittelbar nach der Installation des Frameworks wird man – abgesehen davon, dass der Boot-Vorgang länger als gewöhnlich gedauert hat – keine Veränderungen feststellen. Das ist jedoch völlig normal: Das Framework selbst bietet lediglich das Fundament, auf dem die Module aufbauen. Es stellt Schnittstellen zum System bereit, welche sich von ihnen nutzen lassen. Um wirklich Veränderungen zu sehen, benötigt man entsprechende Module. Einige davon findet man im Google Play Store (sowie in einigen anderen App-Märkten); die meisten jedoch sind im Xposed Repository verfügbar. Einige davon habe ich weiter unten kurz vorgestellt. Doch zuvor noch ein paar generelle Hintergrund-Informationen, die auf alle Module zutreffen.

Download
Xposed Downloads

Installierte Module werden in der gleichnamigen Sektion des Installers verwaltet, wie im rechten Screenshot zu sehen. Unmittelbar nach der installation des eigentlichen Frameworks bleibt diese Seite vermutlich leer: Hat man noch keine Module installiert, gibt es hier schließlich auch noch nichts zu verwalten. Allerdings hat der Installer den Zugriff auf sein Repository in die App integriert: Wechselt man zur Download Sektion, lassen sich verfügbare Module auflisten, installieren, und auch aktualisieren. Wie der Screenshot links zeigt, wird man über Updates installierter Module sogar informiert (leider nur hier; keine Benachrichtigung etwa in der Notification Bar, da (zumindest derzeit) keine automatischen Updates implementiert zu sein scheinen). Wichtiger Hinweis: Einige Module zielen auf spezielle Android-Versionen ab, oder funktionieren nur mit bestimmten ROMs. Man sollte also auf jeden Fall die Beschreibung genau lesen, bevor man ein Modul installiert.

Nach der Aktualisierung eines (oder mehrerer) Module(s) muss das Gerät neu gestartet werden (nach meiner Erfahrung genügt dafür in den meisten Fällen ein „Software-Neustart“). Hat man neue Module installiert, müssen diese zuvor in der Module Sektion aktiviert werden. Dies ist eine Sicherheitsvorkehrung, damit bösartige Apps einem nicht einfach Module „unterjubeln“ können: Selbst wenn sie Apps (und somit auch Xposed Module) installieren können, werden diese somit nicht automatisch aktiv.

In der Sektion Module öffnet ein langes Drücken auf einen Modul-Eintrag ein Kontext-Menü, aus welchem man auf Updates prüfen, App-Details aufrufen, oder auch das entsprechende Modul wieder deinstallieren kann. Ein kurzes Antippen hingegen führt in die GUI (i. d. R. spezielle Einstellungen) des Modules, so es darüber verfügt. Bietet das Modul keine solche Option, informiert eine kurz eingeblendete Toast-Nachricht über diesen Fakt.

Ein weiterer genereller Hinweis: Für weitere Informationen zu Framework und Modulen, sowie im Fall von Problemen, ist der Xposed Bereich im XDA-Forum eine gute Anlaufstelle. Hier werden Neuigkeiten kundgetan (etwa die Verfügbarkeit neuer Versionen oder die Unterstützung neuerer Android-Versionen), nützliche Informationen gesammelt, Module vorgestellt – und man kann sich über etwaige Probleme austauschen. Vor dem Posten einer Frage sollte man jedoch nachschauen, ob nicht jemand anderes damit schneller war – und sich u. U. sogar schon eine Lösung/Antwort findet ;)

Einige Module kurz vorgestellt

Abschließend möchte ich noch einige der Module kurz vorstellen, die ich benutze und schätzen gelernt habe:

Einige andere Apps bringen ihre eigenen Module gleich mit, wie beispielsweise Secure Settings. Dann gibt es noch eine ganze Menge weiterer Module, die ich hier nicht alle vorstellen oder auch nur kurz benennen kann: Allein das Xposed Repo listet derzeit fast 800 Module. Da gibt es welche für Multi-Window, Pie Control, und vieles mehr. Wer nach Quellen für „Best-of-Listings“ sucht (welche natürlich immer subjektiv sind), ist herzlich eingeladen, mit den Links am Ende meiner Xposed Framework Materialsammlung zu beginnen.

Weiterführende Links

appsreview


  1. Dalvik EXecutable. Bei Android Versionen vor Lollipop kam Dalvik als Runtime zum Einsatz. Wannimmer eine App installiert wurde, wurde sie für diese „kompiliert“. Die daraus resultierenden DEX Dateien landeten im so genannten „Dalvik Cache“ – und diese wurden ausgeführt, wenn der Anwender eine App startete. Ab Android 5.0 (Lollipop) wurde Dalvik durch ART ersetzt. 

  2. Android RunTime. Diese ersetzt ab Android 5.0/Lollipop Dalvik. Sie baut ebenfalls auf den .dex Dateien auf, kompiliert sie jedoch zu ELF Binaries. Das benötigt bei der Installation ein wenig länger (und braucht auch mehr Speicherplatz) – jedoch wird damit bei der Ausführung von Apps nativer Code verwendet, was in verbesserter Performance resultiert. 

  3. Zu XPrivacy sei der Artikel XPrivacy – Android ohne Google?! Teil6 im Kuketz IT-Security Blog zur Lektüre empfohlen 

2016-01-17