Offizielles Xposed Framework für Android Nougat ist da - Laden Sie jetzt Ihre Lieblingsmodule herunter!

Da das Android-Ökosystem über die Jahre gereift ist, finden immer weniger Benutzer Gründe, warum sie ihr Gerät rooten sollten. Es gibt eine wachsende Tendenz, dass sich Benutzer dafür entscheiden, auf der Standardfirmware zu bleiben, entweder weil sie die Erfahrung zufriedenstellend finden oder weil sie kein Katz-und-Maus-Spiel mit der SafetyNet-API von Google spielen möchten. Wenn Sie einen Benutzer Anfang 2016 gefragt haben, warum er seine Telefone gerootet hat, wurde möglicherweise der Hauptgrund angegeben, damit er das Xposed Framework installieren konnte. Es ist über ein Jahr her, dass Android 7.0 Nougat zum ersten Mal veröffentlicht wurde, aber das lange Warten hat ein Ende: Das offizielle Xposed Framework für Android Nougat ist endlich verfügbar.

Im Laufe des vergangenen Jahres hat der Senior Recognized Developer rovo89, der Hauptentwickler des Xposed Framework, mehrere Aktualisierungen zum Fortschritt des Xposed Framework für Android Nougat veröffentlicht. Für einige war das Warten vor allem aufgrund der Vielzahl zusätzlicher Funktionen, die das Xposed Framework in Android Marshmallow bietet, erträglich. Aber viele andere sind zu einem Leben ohne Xposed auf ihren Geräten übergegangen.

Wir sahen einen erneuten Anflug von Aufregung in dem Projekt, als Entwickler abforce ein ART-Submodul für AOSP 7.1.2 veröffentlichte, aber wie unser eigenes GermainZ darauf hinweist, war es besser, auf die offizielle Veröffentlichung von Xposed Framework zu warten, da die Implementierung von abforce das Framework erforderte in benutzerdefinierte ROMs integriert. Darüber hinaus war diese inoffizielle Implementierung unvollständig und führte bei bestimmten Xposed-Modulen zu inkonsistentem oder fehlerhaftem Verhalten.

Während abforce großartige Arbeit geleistet hat, um sein inoffizielles Xposed auf Android 7.1 Nougat zum Laufen zu bringen, widersprach seine Implementierung der Vision von rovo89 für Xposed: Es sollte eine stabile Lösung sein, die sowohl Anwendern als auch Entwicklern einen zuverlässigen und benutzerfreundlichen Vertrag bietet. Damit ist gemeint, dass Module nicht nur für Benutzer problemlos funktionieren sollten, sondern dass die Art und Weise, wie Module eingerichtet werden, für Benutzer konsistent sein sollte, damit Entwickler wissen, ob ein Xposed-Modul für einen Absturz der App verantwortlich ist oder nicht.

Wir müssen uns keine Sorgen mehr machen, da rovo89 (nach einiger Hilfe von Recognized Developer wanam) nun bereit ist, ein offizielles Update für das Xposed Framework und den Installer zu veröffentlichen, das die Kompatibilität mit Android 7.0 / 7.1 Nougat gewährleistet . Das bedeutet, dass Sie kein benutzerdefiniertes ROM installieren oder mit instabilen Flash-Versionen herumspielen müssen, um Xposed zu genießen. Rooten Sie einfach Ihr Telefon und installieren Sie die neueste Xposed Installer-Anwendung (siehe unten), und das Xposed Installer-Programm erledigt die Magie der Installation von Xposed für dich .

Xposed Installer Durchsuchen des Modul-Repositorys

Dies scheint in manchen Köpfen etwas spät zu sein, zumal diese Veröffentlichung über einen Monat nach der Veröffentlichung von Android 8.0 Oreo erfolgt. Bedenken Sie, dass nur sehr wenige Geräte für viele Monate Zugriff auf eine stabile Version von Android Oreo haben werden. Android Oreo ist nach den neuesten Statistiken von Google nur auf 0, 2% aller Android-Geräte (im Vergleich zu ~ 18% bei Nougat) verfügbar, aber viele unserer Benutzer lieben es, benutzerdefinierte ROMs zu installieren, um auf dem neuesten Stand zu bleiben.

Verteilung der Android-Version ab Oktober 2017. Quelle: Google

Auch wenn Sie einen inoffiziellen Port von Android 8.0 installieren, der auf einer Vielzahl von Geräten in unseren Foren verfügbar ist, sind viele dieser Ports nicht der tägliche Treiberstatus. Wenn Sie also nicht bereit sind, Hunderte von Dollar für ein brandneues Google Pixel 2/2 XL, ein Sony Xperia XZ1 / XZ1 Compact oder ein bevorstehendes Gerät wie das Huawei Mate 10 auszugeben, werden Sie wahrscheinlich in der Lage sein, Druck auszuüben mehrere Monate der Nutzung von Xposed Framework auf Android Nougat.

Wenn das nach Ihnen klingt, besuchen Sie den offiziellen Forenthread für das Xposed-Installationsprogramm und die Framework-Reißverschlüsse, um es auf Ihrem Android-Nougat-Gerät zum Laufen zu bringen.

Xposed Installer v3.1.2 herunterladen (Anhang)

Xposed Installer für Nougat 7.0 (SDK24) herunterladen

Xposed Installer für Nougat 7.1 (SDK25) herunterladen

Für die vielen neueren Benutzer, die nicht so genau wissen, wofür das Xposed Framework verwendet werden kann oder wie es funktioniert, werden wir im Folgenden kurz das Xposed Framework erläutern, warum Sie aufgeregt sein sollten und warum die Entwicklung dazu so lange gedauert hat .


Warum das Xposed Framework installieren?

Möchten Sie benutzerdefinierte ROM-Funktionen erhalten, ohne ein benutzerdefiniertes ROM zu aktualisieren? Die Mutter aller Xposed-Module für die Optimierung Ihres ROMs, bekannt als GravityBox, hat Sie abgedeckt. Möchten Sie die Anzeigeeinstellungen für jede App einzeln anpassen? Probieren Sie die App-Einstellungen aus. Wie wäre es mit dem Anpassen bestimmter Anwendungen wie Hangouts? Oder ändern Sie Instagram, damit Sie die gewünschten Beiträge herunterladen können?

GravityBox-Benachrichtigungssteuerung

App Einstellungen

Mit Xposed können Entwickler so ziemlich alles modifizieren, was sie wollen - hauptsächlich für einzelne Anwendungen, aber auch systemweite Funktionen können modifiziert werden. Die aufgeführten Beispiele sind nur die Spitze des Eisbergs. Die Anzahl der zusätzlichen Funktionen, die Sie hinzufügen oder Apps ändern können, ist unglaublich. Durchsuchen Sie einfach das offizielle Xposed Module-Repository, um sich selbst davon zu überzeugen. Beachten Sie, dass einige Module möglicherweise für diese neue Version und für die Nougat-Unterstützung aktualisiert werden müssen. Überprüfen Sie dies, bevor Sie sie auf Ihrem Nougat-ROM installieren!

Wie funktionieren Xposed-Module?

Das Xposed Framework ermöglicht es den Modulen, sich in die Java-Methoden einer beliebigen Anwendung einzufügen, sei es vom Benutzer installiert oder eine Systemanwendung. Mit Xposed können Module ihre eigenen Methoden vor, während oder anstelle der ursprünglichen Methoden der Zielanwendung ausführen.

Stellen Sie sich zum Beispiel eine in der Google Mail-Anwendung verwendete Methode vor, mit der Benachrichtigungen für neue E-Mails gesendet werden. Standardmäßig erstellt die Methode eine neue Benachrichtigung mit Schaltflächen zum Archivieren / Löschen oder Beantworten der E-Mail. Es könnte ein Xposed-Modul erstellt werden, das sich in diese Methode einfügt und eine neue Schaltfläche wie "Als gelesen markieren" hinzufügt. (Ja, dafür gibt es bereits ein Modul.)

Das Obige ist eine übermäßige Vereinfachung des Endergebnisses dessen, was das Xposed Framework seinen Modulen ermöglicht. Das Framework selbst ist unglaublich komplex und funktioniert auf gerooteten Geräten nahezu universell - ohne dass ein benutzerdefiniertes ROM erforderlich ist. Aus diesem Grund hat die Fertigstellung von Xposed für Android Nougat so lange gedauert.

Warum dauert die Entwicklung von Xposed so lange?

Die Magie hinter Xposed - was es Modulen ermöglicht, sich in Methoden anderer Apps einzuklinken - erfordert fundierte Kenntnisse über die Funktionsweise von Zygote und der Android Runtime (ART). Diese Anforderungen hindern bereits eine große Anzahl von Menschen daran, an dem Projekt mitzuwirken. Das Problem wird jedoch durch die Tatsache verschärft, dass der rovo89 in den letzten 5 Jahren den Hauptbeitrag zu Xposed geleistet hat .

Das ist der Grund, warum seine seit der letzten Veröffentlichung von Xposed an Xposed vorgenommenen Änderungen abgelehnt wurden. Es ist seine Idee und er versteht es am besten, es zu verstehen und zu modifizieren, so dass das Hinzufügen von mehr Arbeitskräften zu einem so späten Zeitpunkt das Projekt einfach weiter verzögern könnte.

Wenn rovo89 seine Quelle ständig aktualisiert, befürchtet er außerdem, dass jemand den unvollendeten Code zum Erstellen eines halbfunktionalen Xposed-Frameworks verwenden würde, ohne dass das universelle Xposed-Installationsprogramm dazugehört. (Genau das passierte jedenfalls mit der Implementierung von abforce, und das daraus resultierende Durcheinander verschiedener Installationsmethoden rechtfertigte das Zögern von rovo89.)

Das Beste, was wir tun konnten, war, rovo89 Zeit zu geben, an seinem Lieblingsprojekt zu arbeiten. Xposed ist nicht seine Voll- oder Teilzeitbeschäftigung. Es ist einfach ein Hobby, das er 5 Jahre lang zum Wohle der Community gemacht hat. Ein so komplexes Projekt wie Xposed benötigt Zeit zum Arbeiten und Testen - Zeit, die er aufgrund seiner anderen Verpflichtungen nicht oft hatte. Im vergangenen Jahr wurden Fortschritte erzielt, wie rovo89 in einigen seiner öffentlichen Updates zu diesem Thema dokumentiert hat, bis schließlich sowohl das Xposed Framework selbst als auch der Xposed Installer zur Veröffentlichung bereitstehen.

Was hat rovo89 getan, um Xposed dazu zu bringen, in Nougat zu arbeiten?

Neue Versionen von Android bringen manchmal Änderungen an der Funktionsweise von ART mit sich, sodass möglicherweise Teile von Xposed überarbeitet werden müssen. Mit Android 7.0 Nougat wurde ein Just-in-Time-Compiler für ART eingeführt, um beispielsweise die Laufzeitleistung von Anwendungen zu verbessern. Das inoffizielle Xposed Framework von abforce deaktiviert jedoch einfach viele ART-Optimierungen, sodass das Methoden-Hooking ordnungsgemäß funktionieren kann.

ART-Optimierungen in Android Nougat. Quelle: Google

Im Gegensatz dazu behält die Implementierung von rovo89 alle ART-Optimierungen in Android Nougat bei, indem der Aufrufer einer Methode mithilfe von JIT neu kompiliert wird und die Methoden-Hooks weiterhin vorhanden sind. Das heißt, Sie können die Vorteile eines Xposed-Moduls nutzen, ohne Leistungseinbußen hinnehmen zu müssen, indem Sie die ART-Optimierungen zwangsweise deaktivieren.

Für weitere Informationen darüber, was rovo89 getan hat, um in Xposed für Android Nougat endlich eine zuverlässige Hook-Methode zu erreichen, empfehlen wir Ihnen, die folgende Erklärung zu lesen, die er uns zur Verfügung gestellt hat.

Vollständige Erklärung von rovo89

Das Kernstück von Xposed ist offensichtlich die Fähigkeit, Java-Methoden zu verknüpfen, dh Module Code vor, nach oder anstelle dieser Methoden ausführen zu lassen. Nahezu jede andere Funktionalität basiert darauf, daher ist es wichtig, dass sie immer wie erwartet funktioniert. Das allgemeine Konzept ist dasselbe, seit ich Xposed vor fünf Jahren erfunden habe. Es erfordert eine Änderung des Einstiegspunkts der Methode. Dies schlägt fehl, wenn der Einstiegspunkt während der Ausführung nicht überprüft wird - was bei einigen Optimierungen in ART der Fall ist.

Ein Beispiel ist, wenn der Einstiegspunkt bereits zur Kompilierungszeit bekannt ist, können Anrufer direkt zu dieser Adresse springen, ohne sie nachzuschlagen. Ein anderes Beispiel ist Inlining. Betrachten Sie dieses Beispiel:

ART ist klug genug, um zu bemerken, dass die Methode twice () sehr einfach ist und die Logik daher direkt in die Methode doSomething () einbettet:

Sie können die Methode "twice ()" weiterhin einbinden, sie wird jedoch zur Laufzeit nicht mehr von "doSomething ()" aufgerufen, und Ihr Rückruf auch nicht. KUNST ist noch klüger: Sie erkennt, dass Magie immer 42 ist und daher die Bedingung niemals erfüllt werden kann. Die gesamte Methode doSomething () ist also ein No-Op:

In früheren Versionen deaktivierte Xposed diese Optimierungen vollständig und erzwang die Neukompilierung von allem. Das hatte mehrere Nachteile. Erstens leisten die ART-Entwickler mit ihren Optimierungen einen fantastischen Job bei der Maximierung der Leistung, und das Deaktivieren führt teilweise zwangsläufig zu einer geringeren Leistung (ich habe jedoch nie gemessen, wie viel). Die Neuzusammenstellung selbst ist dann nicht immer einfach und bereitete mir besonders am Anfang große Kopfschmerzen. Schließlich belegen die neu kompilierten Dateien zusätzlich zu den vorkompilierten Dateien auf / system Speicherplatz.

Die inoffiziellen Versionen für Nougat deaktivieren diese Optimierungen ebenfalls, erzwingen jedoch keine Neukompilierung (da der Port ursprünglich für die Integration in das ROM vorgesehen war). Daher werden manchmal möglicherweise keine Hooks ausgeführt.

Mit der offiziellen Version behalten Sie den optimierten Code bei und verfügen dennoch über zuverlässige Hooks. Wie funktioniert das? Nun, Xposed zeichnet alle getätigten Anrufe auf. Dies geschieht während der Kompilierung von APKs oder in einem separaten Durchgang für vorab optimierten Code. Diese zusätzlichen Daten belegen nicht viel Platz, ermöglichen es Xposed jedoch, herauszufinden, wo eine bestimmte Methode eingebettet wurde. Wenn eine Methode verknüpft ist, werden alle ihre Aufrufer deaktiviert, dh ihr Code wird nicht mehr verwendet. Dies stellt sicher, dass der Hook-Callback definitiv aufgerufen wird. Und wenn der Aufrufer häufig verwendet wird, wird er einfach mit JIT neu kompiliert, diesmal mit dem Wissen, dass die Methode verknüpft ist und daher einige Optimierungen nicht zutreffen. Dies bedeutet, dass die Auswirkungen von Hakenmethoden auf das Nötigste reduziert werden. Yay!

Jetzt probieren Sie es aus. Stellen Sie sicher, dass Sie Xposed Installer 3.1.2 verwenden, da der Konfigurationspfad geändert werden musste, um die dateibasierte Verschlüsselung zu unterstützen.

Fazit

Wir hoffen, Sie sind genauso begeistert wie wir von der Veröffentlichung von Xposed für Android 7.X Nougat. Das Warten war lang, aber angesichts der Komplexität von Xposed unvermeidlich. Wenn Sie immer noch nicht wissen, was Xposed ist oder wie es funktioniert, machen Sie sich keine Sorgen. Sehr wenige Leute (wir eingeschlossen) verstehen tatsächlich, wie es funktioniert. Entwickler wie rovo89 geben ihr Bestes, um ihre Arbeit zu verpacken, damit Sie nicht wirklich verstehen müssen, was unter der Motorhaube vor sich geht.

Gefällt dir das Xposed Framework? Spenden Sie an rovo89 für die großartige Arbeit, die er leistet. Wenn Sie der Meinung sind, dass Sie das Zeug dazu haben, zu dem Projekt beizutragen, lesen Sie die GitHub-Seite von rovo89 weiter unten.

Spende an rovo89

Tragen Sie zu Xposed bei

Auf der Suche nach Xposed-Modulen? Besuchen Sie unser Xposed Framework Module-Unterforum oder laden Sie die Labs-Anwendung herunter und stöbern Sie in unserer Sammlung von Xposed-Modulen.

Xposed Modules Forum

Laden Sie Labs herunter

Android Oreo Fortschritt

Falls Sie sich fragen, wie weit Sie mit Xposed für Android Oreo kommen:

Ich habe bereits mit der Arbeit an Android 8.0 begonnen. Es gibt ein paar neue Sprachfunktionen, die ich mir ansehen muss, aber das allgemeine Konzept sollte immer noch funktionieren. Dazu gehört die ganze Arbeit, kompilierten Code von Aufrufern für ungültig zu erklären, wenn eine Methode verknüpft ist, was bei weitem die meiste Zeit in Anspruch nahm, als ich an Nougat gearbeitet habe. Ich bin also sehr zuversichtlich, dass ich diesmal viel schneller sein werde. Android 8.1 sollte nicht viel anders sein, daher erwarte ich nicht viel zusätzliche Arbeit dafür.