Xposed Framework für Nougat und Abforce-Submodul erklärt

In diesem Artikel untersuchen wir die Unterschiede zwischen der kommenden Xposed for Nougat-Version von rovo89 und der aktuellen Implementierung, die für Nougat verfügbar ist.

Das Xposed-Framework war – und ist immer noch – eine wichtige Möglichkeit, Ihr Android-Gerät anzupassen, es ist mit nahezu allen Geräten kompatibel und ermöglicht die einfache Installation von Modulen, um praktisch jedes Detail zu optimieren.

Möchten Sie alle Funktionen eines benutzerdefinierten ROMs nutzen, ohne eines flashen zu müssen?GravityBox oderXTouchwiz wird das machen. Möchten Sie bestimmte Einstellungen für jede einzelne App anpassen, beispielsweise die DPI einer bestimmten App ändern?App Einstellungen ist für Sie gesorgt. Ich wünschte, die Entwickler einer Anwendung hätten darüber nachgedacht, eine bestimmte Funktion hinzuzufügen, wie Google es Ihnen ermöglichtPersonalisieren Sie Hangouts oder Facebook, das es Ihnen ermöglichtLaden Sie Instagram-Beiträge herunter, die Ihnen gefallen? Nun, das ist nicht nötig, denn Xposed gibt Entwicklern die Möglichkeit, so ziemlich alles zu ändern, was sie wollen wollen, sei es eine systemweite Funktion, die ein benutzerdefiniertes ROM erfordern würde, oder eine Optimierung für ein bestimmtes Anwendung.

Das Xposed-Framework bietet Entwicklern einen großen Vorteil: die einfache Entwicklung (im Vergleich dazu, AOSP für ROM-Optimierungen kompilieren oder Smali-Code bearbeiten zu müssen). Es bringt auch einen großen Vorteil für Benutzer: Bequemlichkeit, da es sie nicht mehr dazu zwingt, das ROM zu finden und zu flashen, das jede einzelne Funktion bietet, die sie suchen (Stattdessen können sie unabhängige Module kombinieren) zusätzlich zu ihrem Zielgleichgewicht aus Stabilität und Leistung. Es macht auch Anwendungen optimieren viel einfacher, da keine Notwendigkeit besteht, sich mit unterschiedlichen Signaturen auseinanderzusetzen, was zur Folge hätte, dass Benutzer das Original deinstallieren müssten Version oder springen durch bestimmte Rahmen, wenn die Anwendung ihre Signatur überprüft (etwas, mit dem sich modifizierte YouTube-Clients befassen, z Beispiel).

Das einzige Problem? Aufgrund seiner Art und der Menge an Freizeit hat der Entwickler von Xposed (unser eigener Senior Recognized Developer,rovo89) hat, bleibt es oft hinter Android-Versionen zurück.Die Aktualisierung zur Unterstützung von Lollipop dauerte etwa vier Monate, und es dauert etwa ein Jahr, bis es zu Nougat kommt. Das ist nicht so schlimm, wie es vielleicht scheint, wenn man darüber nachdenkt Wie viele Android-Nutzer nutzen Nougat tatsächlich? (rund 13,5 %(Beachten Sie jedoch, dass Android-Enthusiasten, die Zielgruppe von Xposed, ebenfalls eher auf Nougat setzen.) Es kann jedoch immer noch ziemlich ärgerlich sein, nicht gleichzeitig Ihre bevorzugten Xposed-Module verwenden und über die neueste und beste Android-Version verfügen zu können.

Da der Quellcode des Xposed-Frameworks verfügbar ist (zumindest für stabile, veröffentlichte Versionen), Entwicklerabforce beschloss, sich die Hände schmutzig zu machen und zu sehen, ob er einige der Modifikationen von rovo89 auf Nougat portieren könnte. Abforce hat sich für einen anderen und einfacheren Ansatz entschieden und im Wesentlichen den Teil von Xposed angepasst, der tatsächlich funktioniert erledigt die Magie, sobald es installiert ist, und macht es möglich, es beim Kompilieren Ihres eigenen ROMs einzubinden (danach, Andere Problemumgehungen tauchten auf). Dieser Ansatz ist wohl sehr unterschiedlich da es einen der Hauptvorteile von Xposed ignoriert, nämlich die einfache Verfügbarkeit für jedermann. Allerdings ist jeder Fortschritt willkommen und die Bewältigung einer Aufgabe durch mehrere Köpfe kann von Vorteil sein und neue Erkenntnisse bieten. Das Hauptproblem sind aus unserer Sicht die Fehlinformationen rund um diese Entwicklung (die von einigen anderen „Entwicklern“ und einigen Blogs verbreitet werden) sowie einige Reaktionen der Community. Hoffentlich wird dieser Artikel das Gesamtbild klarer machen.


Um die Arbeit zu verstehen, die in das offizielle Xposed-Framework und die Version von abforce geflossen ist und immer noch steckt, müssen wir uns zunächst einmal ansehen, wie das Framework funktioniert. Während das Framework selbst ist nur ein Teil des Projekts, Wir meinen normalerweise sowohl das Framework als auch den Installer da das Framework ohne den universellen Installer viele seiner Vorteile verliert, was ebenfalls mit viel Arbeit verbunden ist.

Die Leistungsfähigkeit von Xposed beruht auf einem einfachen Konzept: Jede Methode kann „eingehängt“ werden (die Methoden sind die kleinen). Teile, aus denen ein Programm besteht), um den Code eines Xposed-Moduls vorher, nachher oder stattdessen ausführen zu lassen Es. Nehmen wir ein einfaches Beispiel: Angenommen, Instagram verwendet eine Methode namens „showMenuOptions“, wenn Sie auf die Menüschaltfläche klicken, und diese Methode kümmert sich darum, Ihnen die Schaltflächen „Melden“ und „Teilen“ anzuzeigen. Durch die Erstellung eines Xposed-Moduls können Sie diese Methode ändern, um beispielsweise eine zusätzliche Schaltfläche hinzuzufügen, um das Bild herunterzuladen, anstatt es zu teilen. Die Änderungen können von einfachen Optimierungen (z. B. Play Store-Änderungsprotokoll) bis hin zu größeren Überholungen (z GravityBox, das darauf abzielt, alle Funktionen bereitzustellen, die ein benutzerdefiniertes ROM haben würde)!

Das macht Xposed leistungsstark, aber es ist nur ein Teil der Gleichung. Die anderen Aspekte sind Vielseitigkeit – oder tatsächlich die Möglichkeit, Xposed auf praktisch jedem Gerät da draußen (mit einer unterstützten Android-Version) zu verwenden – und Benutzerfreundlichkeit. Alles, was Benutzer tun müssen, ist, sich das Installationsprogramm zu schnappen, das seine Wirkung entfaltet und ihr System dynamisch patcht, um Xposed zu integrieren. Um ein Modul anzuwenden, müssen Sie es lediglich installieren, aktivieren und neu starten. Kein Aufwand erforderlich, keine Notwendigkeit, ein benutzerdefiniertes ROM zu flashen (insbesondere, wenn benutzerdefinierte ROMs nicht immer eine praktikable Wahl sind), keine Notwendigkeit, ein APK zu deinstallieren, um ein anderes zu installieren, das mit einer anderen Signatur signiert ist. Alles, was Sie brauchen, ist Root (Sie können durchaus ein benutzerdefiniertes ROM haben, und das macht oft Sinn; Aber während Xposed die meisten Funktionen eines benutzerdefinierten ROMs bieten kann, geht es auch darüber hinaus.

Hinter dieser Einfachheit steckt jedoch eine Menge Arbeit:

  1. Für Modulentwickler muss die bereitgestellte API stabil sein und garantiert funktionieren. Das Xposed-Framework kann bei bestimmten ROM- und/oder Hook-Kombinationen nicht zufällig ausfallen (außer in Ausnahmefällen). Mit anderen Worten: Wenn ein Benutzer ein Problem hat, sollte dieses Problem entweder die Schuld des Benutzers sein (oder nicht). etwas korrekt installieren/aktivieren) oder die Schuld des Modulentwicklers (für Fehler in der Modul). Es sollte jedoch nahezu sicher sein, dass das Framework selbst wie vorgesehen funktioniert und nicht die Fehlerquelle ist, die die Benutzer frustrieren und die Entwickler verwirren würde.
  2. Für Benutzer muss das Framework einfach auf ihrem Gerät und ROM zu installieren sein, egal ob sie ein Samsung mit der neuesten Version von TouchWiz oder ein Nexus mit installiertem LineageOS haben. Das alles erledigt der Xposed-Installer hinter den Kulissen. Hier muss viel Arbeit investiert werden, um den Installer und das Framework auf verschiedenen Geräten und ROM-Kombinationen zu testen. Fehler werden häufig aufgrund unterschiedlicher Implementierungen durch OEMs gefunden und müssen behoben werden, um die Zuverlässigkeit für alle Benutzer sicherzustellen.
  3. Große Android-Revisionen können manchmal große Änderungen mit sich bringen, was ein Überdenken von Teilen der Framework-Architektur erfordert, um sich an diese Änderungen anzupassen. Manchmal ergeben sich mit neueren Versionen auch zusätzliche Möglichkeiten, sodass es etwas mehr Zeit erfordert, ein besseres Produkt zu entwickeln. Als ART beispielsweise zum ersten Mal eingeführt wurde, hat Xposed bestimmte Optimierungen deaktiviert, damit das Hooking korrekt funktionieren kann. Im Fall von Nougat ist dasJust-in-Time-Compiler (JIT). bringt eine Gelegenheit dazuBehalten Sie diese Optimierungen bei.

Ein Großteil der oben genannten Arbeiten geht auf kleinere Details ein, bei denen der Großteil des Frameworks wie vorgesehen funktioniert, aber das Inkonsistenzen und kleinere Probleme würden die Verwendung für Benutzer zu einem Glücksspiel und für das Modul zu einem Albtraum für Support und Entwicklung machen Entwickler. Das veröffentlichte Produkt soll jedoch für alle und ohne Überraschungen nutzbar sein. Es gibt natürlich einige Ausnahmen, da die Änderungen einiger OEMs einen größeren Anpassungsaufwand erfordern, aber diese sind geringfügig und die überwiegende Mehrheit der Benutzer (und Entwickler) kann sich über ein stabiles und zuverlässiges Xposed freuen Erfahrung. Alle aufgetretenen Ausnahmen werden mit dokumentiertklare Haftungsausschlüsse damit niemand überrascht ist.

Vor diesem Hintergrund besteht die Vision von rovo89 für Xposed darin, eine stabile Lösung zu sein, die Benutzern und Entwicklern einen zuverlässigen und benutzerfreundlichen Vertrag bietet. Seine Philosophie ist, auch wenn Sie vielleicht anderer Meinung sind, einfach und verständlich: Ein Produkt sollte es sein freigegeben, wenn es bestimmungsgemäß verwendet werden kann, da eine vorherige Freigabe zu mehr Problemen führt als Vorteile.


abforces Xposed ART-Submodul für Nougat

Wir zögern, die Arbeit von abforce als „Portierung“ oder „inoffizielles Xposed“ zu bezeichnen, da das ungenau und irreführend ist. Wie wir gesehen haben, besteht Xposed aus zwei Hauptkomponenten:

  1. Der Kern des Xposed-Frameworks selbst, der die Magie der Hooking-Methoden verwaltet.
  2. Das Xposed-Installationsprogramm, das sicherstellt, dass das Framework auf allen Geräten einfach und korrekt installiert werden kann.

Was abforce tat, war, den Marshmallow-Code von rovo89 im ersten Teil (nur das Xposed-Framework) auf Nougat zu portieren, und zwar so, dass die Änderungen beim Kompilieren des benutzerdefinierten ROMs gebacken werden mussten. Darüber hinaus sind viele kleinere (aber wichtige) Teile des Frameworks nicht vollständig an Nougat angepasst. Daher kann das Verhalten inkonsistent sein und obwohl es meistens funktioniert (allerdings nichtfüralle), es ist nicht zuverlässig. Für Modulentwickler und -benutzer wäre es gerechtfertigt, sich auf eine unvollständige und inkonsistente Implementierung zu verlassen eine schlechte Erfahrung für alle Beteiligten bieten, mit Einige Module funktionieren überhaupt nicht oder führen dazu, dass das Gerät nicht startet. Während viele Benutzer damit einverstanden sein könnten etwas statt nichts, ist der Standpunkt der Entwickler immer noch vollkommen verständlich (vor allem, wenn man bedenkt, dass Haftungsausschlüsse falsche Support-Fragen und Gejammer nicht verhindern).

(Zusätzlich zu den beiden oben genannten Hauptpunkten erwarten wir auch weitere Änderungen am endgültigen, offiziellen Xposed-Framework, um die in Nougat eingeführten Änderungen zu nutzen.)

Es sollte angemerkt werden, dass abforce hervorragende Arbeit geleistet hat, als sich die meisten mit einfachem Reden zufrieden gaben, aber seine Arbeit ist bei weitem nicht das vollständige Xposed-Erlebnis und kein Entwickler oder Blog behauptet etwas anderes (und schon gar nicht abforce; Auch hier haben wir nichts als Respekt gegenüber allen tatsächlichen Entwicklern, die echte Arbeit und Mühe in dieses Projekt stecken. Tatsächlich sind einige der Reaktionen der Community (sei es Benutzer oder „Entwickler“), wie wir gleich darauf eingehen werden, der einzige Kritikpunkt in dieser Kette von Entwicklungen.


Lassen Sie uns den Kern durchbrechen und gleich zum Punkt kommen: Jede Community hat schlechte Elemente und Aspekte. Bei einer so großen Community wie Android-Enthusiasten können die schlechten Elemente wie ein riesiger Teil erscheinen, obwohl sie nur ein kleiner Teil sind (beträchtlich, aber im Verhältnis gesehen immer noch unbedeutend). Ohne es beschönigen zu wollen: Viele Reaktionen der Community auf die Entwicklung von Xposed for Nougat waren äußerst kindisch, rücksichtslos oder unverantwortlich.

Das erste große Problem war die herablassende Haltung vieler gegenüber dem „Tod von Xposed“, weil die Veröffentlichung für Nougat zu lange dauerte. Dies trotz rovo89 AktualisierungUndZusicherungen, und das, obwohl sich bei Lollipop ziemlich genau das Szenario abspielte, als die erste Version von ART eingeführt wurde. Es ist in Ordnung, mit der Verwendung von Dies gilt umso mehr für ein völlig kostenloses Projekt, bei dem der Entwickler seine Entwicklungsmethodik und die Gründe dafür dargelegt hat.

Ein weiteres Problem bei der Reaktion der Community bestand darin, dass die Arbeit von abforce missverstanden wurde. Viele bezeichneten es als das neue Xposed oder bewarben es als Port für Nougat. Ein großes Problem dabei war, dass „Entwickler“ sich beeilten, flashbare Versionen anzubieten, ohne die Nachteile zu verstehen (oder sich darum zu kümmern), da es keine Haftungsausschlüsse gab wird in einigen Threads überhaupt nicht angeboten, wobei einige sogar so weit gehen, Abforce und nicht rovo89 (der hinter dem Großteil der Arbeit an Xposed steht) zu nennen, und andere Mitwirkende.

Als letzten Punkt sind wir der Meinung, dass wir die Entwicklungsphilosophie von rovo89 noch einmal zur Sprache bringen sollten. Viele lautstarke Benutzer behaupten, dass es von Vorteil wäre, wenn die neuesten Änderungen Open Source wären. Auch wenn das theoretisch gut klingt, ist es das auchin der Praxis nicht so einfach vor allem, wenn wir die Erklärung von rovo89 berücksichtigen:

[...] Ich glaube, dass es dem Projekt nicht helfen würde, nur den aktuellen Stand zu verdrängen. Wir würden vielleicht sehr schnell „einige“ Veröffentlichungen von Leuten sehen, die den Code kompilieren und sehen, dass es so aussieht funktioniert einwandfrei und veröffentlicht es als „ihren Hafen“, trotz der Probleme und Dinge, die zu tun sind, die ihnen nicht bewusst wären von. Nennen Sie mich also egoistisch, aber ich würde eine so halbfertige Veröffentlichung nicht sehen wollen.[Quelle]

Das hat sich tatsächlich als ziemlich gute Vorhersage der aktuellen Situation erwiesen, da sich mehrere „Entwickler“ beworben haben Änderungen von abforce und das Anbieten einer flashbaren ZIP-Datei mit minimalen oder keinen Warnungen, unvollständigen Credits, alles während Sie danach fragen Spenden.


Wir hoffen, dass diese Erklärungen einige Ihrer Zweifel ausgeräumt und mögliche Missverständnisse ausgeräumt haben. Xposed war ein erstaunliches Projekt, das einen großen Teil unserer Enthusiasten- und Flashaholic-Community erreicht hat, und Xposed für Nougat sollte ein weiterer gigantischer Meilenstein voller Möglichkeiten sein. Mit Modulen wie GravityBox Das fertige Projekt von rovo89 bietet bereits Nougat-Unterstützung und wird auf eine Vielzahl von Optionen zurückgreifen.


Freust du dich auf Xposed auf deinem Nougat ROM? Lass es uns in den Kommentaren wissen!