Es ist jetzt eine flashbare Zip-Datei verfügbar, die das Xposed Framework auf Android 7.1 Nougat-ROMs bringt. Der Zip funktioniert sowohl auf dem OnePlus 3T als auch auf vielen anderen Telefonen!
Nach Monaten des Wartens haben wir endlich Xposed Framework-Unterstützung für Nougat-ROMs (wenn auch inoffiziell). Dank einiger talentierter Entwickler in unseren eigenen XDA-Foren können Sie das Xposed Framework jetzt über eine flashbare Zip-Datei auf einem Android-Nougat-ROM installieren.
Bisher sah die Zukunft von Xposed auf Nougat etwas unsicher aus. Rovo89 – der Entwickler hinter dem Xposed Framework – hat vor etwas mehr als einer Woche ein Update zur Unterstützung für Android Nougat bereitgestellt. Rovo89 gab im Wesentlichen an, dass noch viel zu tun sei, damit Xposed unter Nougat ordnungsgemäß funktioniert, und dass wir uns nur noch gedulden müssten.
Glücklicherweise sieht es so aus, als hätten wir eine vorübergehende Lösung für diejenigen von uns gefunden, die sehnsüchtig auf eine Notlösung gewartet haben. Das PurifyOS-Team hat sich das ART-Modul dieses Entwicklers geschnappt
abforce hatte daran gearbeitet (und worüber heute früher gepostet wurde) und hat es so angepasst, dass es über eine flashbare ZIP-Datei auf anderen benutzerdefinierten ROMs installiert werden kann (anstatt beim Kompilieren des ROM implementiert werden zu müssen).Derzeit sind drei Versionen für verschiedene Plattformen verfügbar, darunter Xposed SDK25 ARM64, Xposed SDK25 ARMund Xposed SDK25 X86. Das PurifyOS-Team hat diese neue Version von Xposed mit einem OnePlus 3T getestet, auf dem OxygenOS auf Basis von Android 7.1 läuft, aber es sollte funktionieren Andere Telefone laufen mit Android Nougat und Benutzer berichten bereits, dass sie es erfolgreich auf verschiedenen ROMs installieren konnten Geräte. Beispielsweise haben einige Benutzer des OnePlus 5 berichtet, dass es funktioniert (keine Überraschung, wenn man bedenkt, dass es auf dem OnePlus läuft). 3T völlig in Ordnung), aber ein Benutzer, der ein AOSP-basiertes ROM für das Samsung Galaxy S6 ausführt, berichtete auch, dass es bei ihm funktionierte.
Es wird einige Macken geben, die es zu lösen gilt, und nicht jeder hat es bisher geschafft, es zum Laufen zu bringen, da einige Benutzer erzwungene Schließungen und andere Kuriositäten erleben. Aber selbst wenn dies der Fall ist, können Sie es dennoch versuchen, wenn Sie seit der Veröffentlichung der vorherigen Version des Android-Betriebssystems auf die Ankunft von Xposed auf Nougat gewartet haben. Nicht alle vorhandenen Xposed Framework-Module funktionieren auf Anhieb, aber einige wirklich beliebte Module wie Amplify sollen funktionieren.
Stellen Sie sicher, dass Sie regelmäßig Backups erstellen und den Thread sorgfältig lesen, bevor Sie sich darauf einlassen, wenn Sie sich nicht sicher sind, ob Ihr Gerät oder ROM unterstützt wird. Stellen Sie abschließend sicher, dass Sie die Suchfunktion verwenden, bevor Sie eine doppelte Frage hinterlassen. Android O steht vielleicht vor der Tür, aber wie heißt es so schön: "besser spät als nie." Außerdem werden viele Benutzer Android O für längere Zeit nicht auf ihren Geräten sehen, daher sollte Xposed ein nettes Extra sein, damit Sie sich nicht abgehängt fühlen.
Update: Antwort von Rovo89
Das Original wurde hinter dem Xposed Framework entwickelt, XDA Senior Recognized Developer rovo89, hat auf Github mit seinen Gedanken zu diesen jüngsten Entwicklungen geantwortet.
Aus meiner Erfahrung kann ich Ihnen sagen, dass es zwar nicht so schwer ist, die Grundlagen zu schaffen, aber für die Details braucht es verdammt viel Zeit. Es ist wie die 80-20-Regel, nur dass es eher 95-5 oder so ist.
Der Hooking-Ansatz, den ich für die vorherigen Releases entwickelt habe, ist ziemlich stabil und kann auch für neuere Releases angewendet werden. Ich gehe davon aus, dass Sie die meiste Zeit gebraucht haben, um alle Orte zu überprüfen, an denen Sie waren
IsProxyMethod()
UndIsDirect()
wird aufgerufen und entscheidet, ob sie den neuen Methodenmodifikator berücksichtigen sollen oder nicht (d. h. Parameter verwenden).true
oder nicht). Wenn Sie das nicht getan haben, haben Sie möglicherweise einige Orte verpasst, an denen solche Aufrufe neu eingeführt wurden. Das Gleiche gilt für Methoden wieInstallStubsForMethod()
, die mit der ursprünglichen Originalmethode arbeiten müssen, auch wenn sie für eine Hook-Methode aufgerufen werden. Sie müssten nach weiteren Orten suchen, an denen dies relevant sein könnte. Das ist immer noch im Bereich von Tagen, aber wenn Sie dies versäumen, werden möglicherweise obskure Abstürze oder Fehlverhalten auftreten, die nur sehr schwer zu beheben sind.Darüber hinaus haben Sie einen Ansatz gewählt, bei dem Hooks nur für ROMs ordnungsgemäß funktionieren, die vollständig von Grund auf neu kompiliert wurden. Auf Standard-ROMs und sogar den meisten benutzerdefinierten ROMs (die Ihren Port beim Erstellen nicht einschlossen) sowie für alle Apps, die das Gerät möglicherweise zuvor kompiliert hat. Sie müssten also mit einem gelöschten Gerät, auf dem ein spezielles ROM läuft, noch einmal von vorne beginnen. Wenn nicht, können Optimierungen (z. B. Inlining) verhindern, dass eine Methode überhaupt aufgerufen wird, und Hooks würden daher nicht funktionieren. Das Schlimmste daran ist, dass das genaue Verhalten vom ROM oder sogar davon abhängt, wie der Benutzer das Gerät verwendet (jetzt werden Apps basierend auf Profilen kompiliert). Module würden zufällig ausfallen und die Modulentwickler würden sich fragen, was sie falsch gemacht haben (Antwort: nichts). Wenn nicht alle Voraussetzungen erfüllt sind, handelt es sich um eine ziemlich unzuverlässige API. Stellen Sie sich vor, Google hat ein Update veröffentlicht, in dem die
OnClickListener
Eine Schaltfläche wurde manchmal nicht aufgerufen, es sei denn, Sie haben Ihr ROM von Grund auf kompiliert... Für mich persönlich ist das eine große Einschränkung.
Er fährt fort:
Es macht überhaupt keinen Sinn, damit flashbare ZIPs zu veröffentlichen, da der Port nur dafür gedacht ist, ein ROM von Grund auf neu zu kompilieren.
Und wie ich befürchtet habe, Es gibt keine einzige Warnung, dass es sich um einen unvollständigen Port handelt, der häufig den API-Vertrag nicht erfüllt. 😠 Das ist schlecht für Entwickler und Benutzer. Sie sollten zumindest wissen, dass es unvollständig ist, damit sie entscheiden können, ob sie es unterstützen/nutzen möchten. Ich würde es niemals wagen, so etwas ohne eine dicke Vorwarnung zu tun. Da ich eher ein Perfektionist bin, würde ich überhaupt keine unvollständige Version veröffentlichen, Zuverlässigkeit ist mir sehr wichtig.
Ich habe gerade mein Git-Protokoll überprüft und im Oktober das grundlegende Hooking (wie in diesem Port) fertig. Seitdem arbeite ich daran, die Einschränkungen aufzuheben. Um die Zuverlässigkeit auf vorkompilierten ROMs zu erhöhen, hätte ich auch den Neukompilierungsteil portieren können, aber das ist immer noch nicht ideal. Wie oben irgendwo erklärt, verfügen wir jetzt über JIT, das es uns ermöglicht, alle Optimierungen beizubehalten und nur die Methoden ungültig zu machen (und möglicherweise neu zu kompilieren), die direkt vom Hooking betroffen sind. Das ist eine ziemliche Herausforderung, da es sich um mehr als nur Kopieren und Einfügen handelt. Und bis dies nicht erledigt ist, werde ich nichts veröffentlichen. 9 Monate dafür (bis jetzt) sind wirklich eine lange Zeit, ich weiß, aber hey, es ist meine Freizeit und z.B. wegen Umzug nach In einer neuen Wohnung konnte ich mehrere Monate (!) überhaupt nicht an Xposed arbeiten und hatte ansonsten nur sehr begrenzte Zeit.
Wir sollten deutlich machen, dass diese jüngsten Entwicklungen nicht das wahre „Xposed“ sind, das Sie alle kennen Liebe, aber funktional ermöglichen sie Ihnen die Verwendung einiger Xposed Framework-Module jetzt auf Android Nougat. Wir werden Ihnen nichts vorwerfen, wenn Sie nicht auf die offizielle, stabilere und kompatiblere Version des Xposed Framework für Android warten Nougat, aber wir möchten klarstellen, dass es sich bei dieser Iteration lediglich um eine Notlösung handelt, die den Bedürfnissen einiger Benutzer gerecht werden soll Jetzt. Es ist wahrscheinlich nicht die Art und Weise, wie Xposed in Zukunft gehandhabt wird.
Laden Sie das inoffizielle Xposed Framework für Nougat in den XDA-Foren herunter