Das offizielle Xposed Framework für Android Nougat ist da

Nach langem Warten hat der Entwickler des Xposed Frameworks offiziell bekannt gegeben, dass das Projekt nun Android Nougat unterstützt. Installieren Sie jetzt Xposed Modules!

Da das Android-Ökosystem im Laufe der Jahre ausgereifter geworden ist, finden immer weniger Benutzer Gründe, warum sie ihr Gerät rooten sollten. Es gibt einen wachsenden Trend, dass Benutzer sich dafür entscheiden, auf der Standard-Firmware zu bleiben, entweder weil sie das Erlebnis zufriedenstellend finden oder weil sie nicht spielen möchten Katz-und-Maus-Spiel mit Googles SafetyNet API. Wenn Sie jedoch Anfang 2016 einen Benutzer gefragt haben, warum er seine Telefone gerootet hat, war der Hauptgrund, der genannt wurde, möglicherweise, dass er dies tun konnte Installieren Sie das Xposed Framework. Es war über ein Jahr seit Android 7.0 Nougat wurde erstmals veröffentlicht, aber das lange Warten hat endlich ein Ende: Das offizielle Xposed Framework für Android Nougat ist endlich verfügbar.

Im vergangenen Jahr war XDA Senior Recognized Developer

rovo89, der Hauptentwickler des Xposed Framework, hat bereitgestellt mehrereAktualisierung über den Fortschritt von Xposed Framework für Android Nougat. Für einige ist das Das Warten war erträglich Hauptsächlich aufgrund der schieren Anzahl zusätzlicher Funktionen, die das Xposed Framework bietet Android Marshmallow. Aber viele andere sind zu einem Leben ohne Xposed auf ihren Geräten übergegangen.

Wir sahen einen Vorgeschmack auf neue Begeisterung für das Projekt, als Entwickler Abforce eine veröffentlichte ART-Submodul für AOSP 7.1.2, aber wie unser eigener GermainZ betont Sie sollten besser auf das offizielle Xposed Framework warten Für die Implementierung von Release as abforce musste das Framework in benutzerdefinierte ROMs integriert werden. Außerdem, Diese inoffizielle Implementierung war unvollständig, was zu inkonsistentem oder fehlerhaftem Verhalten bei bestimmten Xposed führte Module.

Während abforce großartige Arbeit geleistet hat, um sein inoffizielles Xposed auf Android 7.1 Nougat zum Laufen zu bringen, scheiterte seine Implementierung Die Vision von rovo89 für Xposed – dass es eine stabile Lösung sein sollte, die einen zuverlässigen und benutzerfreundlichen Vertrag für Benutzer und Entwickler bietet wie. Damit meinen wir, dass nicht nur Module für Benutzer ohne Probleme funktionieren sollten, sondern auch die Art und Weise, wie Module eingestellt werden up sollte unter den Benutzern konsistent sein, damit Entwickler wissen, ob ein Xposed-Modul für eine App verantwortlich ist oder nicht Absturz.

Wir müssen uns nicht mehr um Probleme wie rovo89 kümmern (nach etwas Hilfe von XDA Recognized Developer). wanam) ist nun bereit, ein offizielles Update für das Xposed Framework und den Installer zu veröffentlichen Kompatibilität mit Android 7.0/7.1 Nougat. Das bedeutet, dass Sie kein benutzerdefiniertes ROM installieren oder sich mit dem Flashen instabiler Versionen herumschlagen müssen Genießen Sie Xposed – rooten Sie einfach Ihr Telefon und installieren Sie die neueste Xposed Installer-Anwendung (unten verlinkt) und Die Der Xposed-Installer übernimmt die magische Installation von Xposed für Sie.

Xposed Installer durchsucht das Modul-Repository

Für manche mag das etwas spät erscheinen, insbesondere da diese Veröffentlichung erfolgt über einen Monat nach der Veröffentlichung von Android 8.0 Oreo. Bedenken Sie, dass nur sehr wenige Geräte über viele Monate hinweg Zugriff auf eine stabile Version von Android Oreo haben werden. Android Oreo ist nur an 0.2% aller Android-Geräte (im Vergleich zu ~18 % bei Nougat) laut den neuesten Statistiken von Google, aber viele unserer Benutzer sind diejenigen, die es lieben, benutzerdefinierte ROMs zu installieren, um auf dem neuesten Stand zu bleiben.

Android-Versionsverteilung, Stand Oktober 2017. Quelle: Google

Obwohl selbst wenn Sie eine installieren inoffizieller Port von Android 8.0 Viele dieser Ports sind auf einer Vielzahl von Geräten in unseren Foren verfügbar und haben keinen täglichen Treiberstatus. Es sei denn, Sie sind bereit, Hunderte von Dollar für ein brandneues Gerät auszugeben Google Pixel 2/2 XL, Sony Xperia XZ1/XZ1 Compact, oder ein kommendes Gerät wie das Huawei Mate 10, dann können Sie Xposed Framework auf Android Nougat wahrscheinlich mehrere Monate lang nutzen.

Wenn das nach Ihnen klingt, besuchen Sie den offiziellen Forenthread für den Xposed Installer und die Framework-ZIPs, um ihn 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 gut damit vertraut sind, wofür das Xposed Framework verwendet werden kann oder wie es funktioniert, wir Im Folgenden erläutern wir kurz das Xposed Framework, warum Sie gespannt sein sollten und warum die Entwicklung so lange gedauert hat tat.


Warum das Xposed Framework installieren?

Möchten Sie benutzerdefinierte ROM-Funktionen erhalten, ohne ein benutzerdefiniertes ROM zu flashen? Die Mutter aller Xposed-Module zum Optimieren Ihres ROM, bekannt als GravityBox, ist für Sie gesorgt. Möchten Sie die Anzeigeeinstellungen für jede einzelne App anpassen? Versuchen App Einstellungen. Wie wäre es mit der Anpassung bestimmter Anwendungen wie z Hangouts? Oder Instagram so modifizieren, dass Sie es können Laden Sie alle Beiträge herunter, die Ihnen gefallen?

Xposed gibt Entwicklern die Möglichkeit dazu ändern Sie so ziemlich alles, was sie wollen– hauptsächlich auf einzelne Anwendungen ausgerichtet, aber auch systemweite Funktionen können geändert werden. Die von uns 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 die offizielles Xposed-Modul-Repository um es selbst zu sehen. 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 daher unbedingt, bevor Sie sie auf Ihrem Nougat-ROM installieren!

Wie funktionieren Xposed-Module?

Der Kern davon ist, dass das Xposed Framework Modulen dies ermöglicht „Hook“ in die Java-Methoden jeder Anwendung– sei es vom Benutzer installiert oder eine Systemanwendung. Mit Xposed können Module ihre eigenen Methoden ausführen vor, während oder anstelle von die ursprünglichen Methoden der Zielanwendung.

Stellen Sie sich zum Beispiel eine Methode vor, die in der Gmail-Anwendung verwendet wird und Benachrichtigungen für neue E-Mails veröffentlicht. Standardmäßig erstellt die Methode eine neue Benachrichtigung mit Schaltflächen zum Archivieren/Löschen oder Beantworten der E-Mail. Ein Xposed-Modul könnte so gestaltet werden, dass es sich in diese Methode einklinkt und eine neue Schaltfläche wie „Als gelesen markieren“ hinzufügt. (Ja, das gibt es bereits ein Modul dafür.)

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 da es nahezu universell auf gerooteten Geräten funktioniert – ohne dass ein benutzerdefiniertes ROM erforderlich ist –, hat die Fertigstellung von Xposed für Android Nougat so lange gedauert.

Warum dauert die Entwicklung von Xposed so lange?

Die Magie hinter Xposed – die es Modulen ermöglicht, sich in Methoden anderer Apps einzubinden – erfordert tiefe Kenntnisse darüber, wie Zygote und das Android-Runtime (KUNST) funktioniert. Diese Anforderungen schließen bereits eine große Zahl von Menschen davon aus, sich an dem Projekt zu beteiligen, aber das Problem wird dadurch noch verschärft rovo89 war in den letzten 5 Jahren der Hauptbeitragszahler von Xposed.

Aus diesem Grund wurden Forderungen nach einer offenen Bereitstellung seiner seit der letzten öffentlichen Veröffentlichung von Xposed an Xposed vorgenommenen Änderungen abgelehnt. Es ist seine Idee, und er ist der Beste darin, sie zu verstehen und zu modifizieren, sodass er in einem so späten Stadium mehr Arbeitskräfte in das Projekt einbeziehen kann könnte das Projekt einfach weiter verzögern.

Und wenn rovo89 seine Quelle kontinuierlich aktualisiert, er war besorgt dass jemand den unvollendeten Code nehmen würde, um ein halb funktionsfähiges Xposed Framework zu erstellen, ohne dass der universelle Xposed Installer dazugehört. (Genau das passierte ohnehin bei der abforce-Implementierung, 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 sein Voll- oder auch nur Teilzeitjob. Es ist einfach ein Hobby, das er seit fünf Jahren zum Wohle der Gemeinschaft betreibt. Ein so komplexes Projekt wie Xposed erfordert Zeit zum Arbeiten und anschließenden Testen – Zeit, die er aufgrund seiner anderen Verpflichtungen oft nicht hatte. Fortschritt War Im Laufe des letzten Jahres wurden einige Änderungen vorgenommen, so 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 bereit sind.

Was hat rovo89 getan, um Xposed in Nougat zum Laufen zu bringen?

Neue Versionen von Android bringen manchmal Änderungen in der Funktionsweise von ART mit sich, was möglicherweise eine Überarbeitung von Teilen von Xposed erforderlich macht. Mit Android 7.0 Nougat wurde ein Just-in-Time-Compiler für ART eingeführt, um beispielsweise die Laufzeitleistung von Anwendungen zu verbessern. Aber das inoffizielle Xposed Framework von abforce deaktiviert einfach viele ART-Optimierungen, damit das Methoden-Hooking korrekt funktionieren kann.

ART-Optimierungen in Android Nougat. Quelle: Google

Im Gegensatz dazu die Implementierung von rovo89 behält 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 bedeutet, dass Sie die Vorteile eines Xposed-Moduls nutzen können, ohne die Leistung zu beeinträchtigen, indem Sie ART-Optimierungen zwangsweise deaktivieren.

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

Vollständige Stellungnahme von rovo89

Der Kern von Xposed ist offensichtlich seine Fähigkeit, Java-Methoden einzubinden, d. h. Module vor, nach oder anstelle dieser Methoden Code ausführen zu lassen. So ziemlich 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 tatsächlich der Fall ist.

Ein Beispiel wäre, wenn der Einstiegspunkt zur Kompilierungszeit bereits bekannt ist, dann können Aufrufer direkt zu dieser Adresse springen, ohne sie nachschlagen zu müssen. Ein weiteres Beispiel ist Inlining. Betrachten Sie dieses Beispiel:

ART ist schlau genug, um zu erkennen, dass die Methode two() sehr einfach ist und daher die Logik direkt in die Methode doSomething() einbettet, wie folgt:

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

In früheren Versionen hat Xposed diese Optimierungen vollständig deaktiviert und eine Neukompilierung aller Elemente erzwungen. Das brachte mehrere Nachteile mit sich. Erstens leisten die ART-Entwickler fantastische Arbeit bei der Maximierung der Leistung mit ihnen Optimierungen, und deren Deaktivierung führt teilweise zwangsläufig zu einer geringeren Leistung (ich habe nie gemessen, wie viel). obwohl). Dann ist die Neukompilierung selbst nicht immer einfach und hat mir vor allem am Anfang große Kopfschmerzen bereitet. 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 nicht die Neukompilierung (da der Port ursprünglich für die Integration in das ROM gedacht war). Daher werden Hooks manchmal nicht ausgeführt.

Mit der offiziellen Version können Sie den optimierten Code beibehalten und dennoch über zuverlässige Hooks verfügen. Wie soll das gehen? Nun, Xposed zeichnet alle getätigten Anrufe auf. Dies geschieht während der Kompilierung von APKs oder in einem separaten Durchgang für voroptimierten Code. Diese zusätzlichen Daten beanspruchen nicht viel Platz, ermöglichen es Xposed jedoch herauszufinden, wo eine bestimmte Methode möglicherweise eingebunden wurde. Wenn also eine Methode eingehängt wird, werden alle ihre Aufrufer deoptimiert, d. h. ihr Code wird nicht mehr verwendet. Dadurch wird sichergestellt, dass der Hook-Callback definitiv aufgerufen wird. Und wenn der Aufrufer stark genutzt wird, wird er einfach mit JIT neu kompiliert, dieses Mal mit dem Wissen, dass die Methode einen Haken hat und daher einige der Optimierungen nicht anwendbar sind. Dadurch werden die Auswirkungen von Hooking-Methoden auf das Nötigste reduziert. Yay!

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

mehr lesen

Abschluss

Wir hoffen, dass Sie von der Veröffentlichung von Xposed für Android 7.X Nougat genauso begeistert sind wie wir. Das Warten war lang, aber angesichts der Komplexität von Xposed unvermeidbar. Wenn Sie immer noch nicht wissen, was Xposed ist oder wie es funktioniert, machen Sie sich keine Sorgen. Nur sehr wenige Menschen (wir eingeschlossen) verstehen tatsächlich, wie es funktioniert. Entwickler wie rovo89 geben ihr Bestes, ihre Arbeit so zu verpacken, dass man nicht wirklich verstehen muss, was unter der Haube vor sich geht.

Gefällt Ihnen das Xposed Framework? Erwägen Sie eine Spende an rovo89 für die großartige Arbeit, die er leistet. Wenn Sie der Meinung sind, dass Sie das Zeug dazu haben, zum Projekt beizutragen, schauen Sie sich unten die GitHub-Seite von rovo89 an.

Spenden Sie an rovo89

Tragen Sie zu Xposed bei

Suchen Sie nach Xposed-Modulen? Schauen Sie sich unser Xposed Framework Module-Unterforum an oder laden Sie die XDA Labs-Anwendung herunter und stöbern Sie in unserer Sammlung von Xposed-Modulen.

Xposed-Module-Forum

Laden Sie XDA Labs herunter

Android Oreo-Fortschritt

Falls Sie sich fragen, erfahren Sie hier, wie weit Sie bei der Bereitstellung von Xposed für Android Oreo gekommen sind:

Ich habe bereits mit der Arbeit an Android 8.0 begonnen. Es gibt ein paar neue Sprachfunktionen das muss ich mir ansehen, aber das Gesamtkonzept sollte trotzdem funktionieren. Dazu gehört auch die gesamte Arbeit zur Ungültigmachung des kompilierten Codes aller Aufrufer, wenn eine Methode eingehakt wird, was bei meiner Arbeit an Nougat bei weitem die meiste Zeit in Anspruch nahm. Deshalb bin ich wirklich zuversichtlich, dass ich dieses Mal viel schneller sein werde. Android 8.1sollte nicht viel anders sein, daher erwarte ich nicht viel zusätzlichen Aufwand dafür.