Xposed Framework für Android Lollipop ist da!

Das Xposed Framework muss den Lesern nicht vorgestellt werden. Gefragt nach den Dingen, die unsere Community am meisten an Lollipop hasst, war der Kommentar mit der höchsten Stimmenzahl in der Diskussion, dass er die Unterstützung für Xposed gebrochen hat. Tatsächlich haben sich viele Mitglieder des Forums aus diesem Grund sogar geweigert, ein Update auf Lollipop durchzuführen. Aber das ändert sich jetzt, da das mit Spannung erwartete Xposed Framework endlich für Android Lollipop verfügbar ist.

Wenn Sie mit Xposed noch nicht vertraut sind, ist es ein Glücksfall für die Modding-Community. Xposed erfordert kein Flashen von ROMs, bringt aber eine Menge Anpassungen und Optimierungen mit sich, die Benutzer wie Apps auf gerooteten Geräten installieren können. Es ist unglaublich einfach zu bedienen und mit begrenztem Risiko. Und jetzt können alle Android-Enthusiasten auf Lollipop die Vorteile dieses fantastischen Projekts auf ihren Geräten genießen. Schnapp dir deinen Download und mach dich an das Modden!

Laden Sie Xposed Framwork für Android Lollipop hier herunter.

rovo89 war auch so freundlich, uns eine Frage und Antwort für das neueste Projekt zu geben. Im Folgenden finden Sie Antworten auf alle Ihre Fragen zum Projekt.

Warum hat es so lange gedauert? ART wurde vor mehr als einem Jahr veröffentlicht!

Zuallererst - viele Leute fragen immer wieder nach ART-Unterstützung. Lollipop hat noch viel mehr Änderungen vorgenommen, wie zum Beispiel strengere SELinux-Richtlinien, 64-Bit-ROMs und Architekturänderungen, die Sie von einer Hauptversion erwarten würden. Und natürlich wird die KUNST selbst ständig verbessert; Es gibt große Unterschiede zwischen ART für KitKat und ART für Lollipop.

Ein Grund dafür ist die große Komplexität, die viele, viele Arbeitsstunden für Forschung, Entwicklung und Tests erforderte.

Ein weiterer Grund ist, dass es in meinem Leben andere Dinge als Xposed gibt, so dass es Wochen oder sogar Monate gab, in denen ich mich kaum mit dem Code befasst habe.

Müssen wir alle Module neu schreiben?

Nein, die Xposed-API ist ziemlich unverändert. Xposed abstrahiert alle Details, sodass sich Module nicht darum kümmern müssen, ob sie auf Dalvik oder ART ausgeführt werden. Viele Module funktionieren tatsächlich ohne Änderungen, insbesondere solche, die das Verhalten von Benutzer-Apps ändern. Module, die auf das Systemverhalten abzielen, müssen möglicherweise an den neuen Android-Framework-Code angepasst werden, der nicht durch ART, sondern lediglich durch Architektur- und Codeänderungen zwischen zwei Android-Versionen verursacht wird. Das wichtigste ist, dass der Code für Systemdienste in eine separate Datei verschoben wurde. Für die meisten betroffenen Module kann dies durch ein kleines Refactoring (Verschieben von Code an einen anderen Ort) behoben werden.

Funktioniert es tatsächlich?

Ja! Zumindest für mich funktioniert es gut auf meinem täglichen Gerät (Nexus 5 auf CM12) und auch auf meinem Nexus 9 (bezahlt von - danke!). Das Telefon ist wie gewohnt stabil und Apps funktionieren einwandfrei. Und natürlich funktionieren die Module und ihre Hooks / Ressourcen-Ersetzungen auch einwandfrei, sonst hätte es keinen Sinn, etwas freizugeben.

Aber warum ist es dann eine Alpha-Version?

Weil es seit der letzten stabilen Version enorme Änderungen gegeben hat, die von Leuten getestet werden müssen, die wissen, wie man eine Wiederherstellung verwendet, entkommen Sie Bootschleifen und melden Sie Fehler ordnungsgemäß. Ich rate Neulingen dringend zu warten, bis Xposed von genügend erfahrenen Leuten getestet wurde.

Es gibt auch einige Edge-Cases, die noch nicht getestet wurden, z. B. das Verknüpfen von (nativen) JNI-Methoden und Methoden, die zum Zeitpunkt des Verknüpfen ausgeführt werden.

Ich möchte es installieren. Jetzt! Was muss ich tun?

Stellen Sie sicher, dass Sie meine obigen Worte gelesen haben und mit den internen Funktionen Ihres Telefons vertraut sind. Natürlich müssen Sie sich auf einem Lollipop-ROM befinden und eine gute Sicherungskopie Ihrer Daten haben. Im Moment werde ich nur die ARMv7-Version veröffentlichen. 64-Bit ist komplexer, probieren wir also zuerst die „einfache“ Variante.

Vorerst muss die Installation manuell in einer benutzerdefinierten Wiederherstellung durchgeführt werden. Das Flashen der Zip-Datei wird installiert:

  • app_process32_xposed und einige Symlinks
  • libexposed_art.so
  • libart.so und einige verwandte Binärdateien + Bibliotheken (basierend auf 5.0.2, erweitert mit Unterstützung für Hooks usw.)
  • XposedBridge.jar (jetzt in / system / framework gespeichert)

Backups bestehender Dateien werden automatisch erstellt und können später wiederhergestellt werden.

Es funktioniert nicht / es gefällt mir nicht! Wie kann ich es deinstallieren?

Am einfachsten ist es, ein Backup wiederherzustellen oder die Systempartition zu flashen. Eine Zip-Datei zur Deinstallation muss noch erstellt werden.

Warum ersetzen Sie ART-Dateien auf meinem Gerät? Das ist invasiver als auf Dalvik, verursacht erhebliche Leistungsprobleme und ist instabil!

Ich habe einige Gründe auf GitHub niedergeschrieben. Ja, es ist invasiver, also habe ich lange versucht, es zu vermeiden, aber aus technischer und supportorientierter Sicht denke ich, dass es die bessere Option ist.

Weniger Leistung als original ART? Wahrscheinlich, da ich einige Optimierungen deaktivieren musste, um bestimmte Arten von Hooks zu ermöglichen. Dies betrifft jedoch nur einen Bruchteil aller Methoden, und selbst bei diesen ist der Leistungsverlust sicherlich nicht signifikant oder spürbar, wenn nicht sogar messbar. Es gibt immer noch Tausende anderer Optimierungen, die von ART durchgeführt werden, und ich habe versucht, so wenig wie möglich zu deaktivieren und dabei so viel Flexibilität wie möglich zu gewährleisten.

Die Stabilität ist wie oben erwähnt in Ordnung. Verglichen mit dem Ansatz, den ich für Dalvik verwendet habe (Ändern der internen Datenstrukturen der Laufzeit von app_process), bin ich mir sogar ziemlich sicher, dass das vollständige Ersetzen der Bibliotheken eine viel zuverlässigere Methode ist. Ich könnte meine Änderungen sauber in vorhandenen Code integrieren und verwandte Funktionen wiederverwenden, während viele Hacks und Annahmen für andere Wege benötigt würden.

Wirst du den Quellcode endlich veröffentlichen?

Sicher, Sie werden es sehr bald nach der Veröffentlichung der Alpha-Version auf GitHub in einem separaten Zweig finden.

Bedeutet dies, dass ältere Android-Versionen jetzt nicht mehr unterstützt werden?

Nein! Der neue Code kann auf allen 4.x-Versionen von Android kompiliert werden und muss nur vor einer einheitlichen Version getestet werden. Aber zuerst muss ich sicher sein, dass es gut für Lollipop funktioniert. Möglicherweise könnte ART-Support auf KitKat zurückportiert werden, aber das hat weniger Priorität.

Wie kann ich Ihnen für Ihre Arbeit danken?

Viele Leute haben nach Möglichkeiten gefragt, ein paar Dollar zu spenden, deshalb habe ich jetzt eine Spendenseite eingerichtet.

Wie viel muss ich spenden, damit Sie Feature X oder ein Modul, das Y unterstützt, hinzufügen können?

Das ist keine Spende, das zahlt jemandem in Erwartung zukünftiger Arbeit. Ich interessiere mich nicht für Freiberuflerjobs.