Wie Substratum einem unflexiblen TouchWiz mehr Auswahl verschaffte

Sungstratum vom Team [projekt.] bringt alle Theme-Goodies von RRO-OMS über Substratum auf Samsung Nougat-Geräte! Lesen Sie weiter, um mehr zu erfahren!

Die Android-Themengestaltung hat einen langen Weg zurückgelegt, von Hacky-Änderungen bis hin zu Substratum und jetzt Sungstratum. Vor Jahren wurde das Wort „Theme“ in Android-Diskussionen häufig durch das Wort „Chooser“ ersetzt, eine Anspielung darauf der T-Mobile Theme Chooser in CyanogenMod, der den Grundstein dafür legte, dass Android zu einem Theme wurde Paradies. Die Möglichkeit, das Erscheinungsbild des Betriebssystems zu ändern, bietet Benutzern eine weitere Dimension der Individualisierung und ermöglicht es ihnen, Änderungen vorzunehmen, die ihre Geräte viel persönlicher machen.

Die gute Arbeit ging in zwei verschiedene Richtungen weiter. Der Theme Chooser entwickelte sich zur CyanogenMod Theme Engine, aber trotz jahrelanger Bemühungen in die Theme-Ressourcen wurde CMTE veraltet als andere Alternativen auftauchten.


RRO & Schichten

Der Grundstein für eine der Alternativen wurde gelegt, als Sonys Code-Beitrag in Form des neuen Frameworks aufgerufen wurde

Laufzeitressourcen-Overlay (RRO) wurde in die AOSP aufgenommen. Dieses Framework bietet die Möglichkeit, Anwendungsressourcen während der Laufzeit zu ersetzen (daher der Name). „Overlays“ selbst sind in Android bereits seit Gingerbread vorhanden und werden unterstützt (vielleicht auch früher) wurde in erster Linie dazu verwendet, Ressourcen auszutauschen, damit Anwendungen speziell darauf funktionieren Gerät. Der RRO-Ansatz von Sony bestand darin, den Asset-Manager so zu ändern, dass er APKs akzeptiert, die Ressourcen verwenden, die anderen entsprechenden Ressourcen auf dem Gerät zugeordnet sind. Diese neuen Ressourcen aus der APK wurden dann nur zur Laufzeit über die Basisressourcen gelegt, sodass das System so weiterarbeiten konnte, als ob diese neuen Ressourcen schon immer ein Teil davon gewesen wären.

Das RRO-Framework wurde in AOSP integriert, bevor Lollipop 5.0 veröffentlicht wurde, aber bei den ersten paar Builds von 5.0 waren Teile des Frameworks aufgrund anderer Änderungen kaputt. Die Developer Previews von Android 6.0 Marshmallow waren die ersten, die ein funktionales, wenn auch eingeschränktes RRO-Framework hinzufügten, was die Türen der Anpassbarkeit direkt auf der Standard-Android-Ebene öffnet. Es sei denn, ein OEM hat absichtlich versucht, von den standardmäßigen Android-Designoptionen abzuweichen, ein gewisses Es könnte ein gewisses Maß an Konsistenz bei der Vorgehensweise bei der Umsetzung von „Themen“ beibehalten werden Android.

Während AOSP mit RRO spielte und nach der besten Möglichkeit suchte, alles zu integrieren, rief ein Entwicklerteam an BitSyko arbeiteten gemeinsam an einer gemeinsamen Aktion namens „Lagen". Layers hat die Standard-RRO-Funktionalität in Android 5.1 Lollipop erweitert, um einen komplexeren Ressourcenwechsel zu ermöglichen und mehr Elementkontrolle für Themen zu ermöglichen, als dies mit Standard-RRO möglich wäre. Da Layers auf RRO aufbauten, mussten ROM-Hersteller zusätzlichen Code hinzufügen, um die Layers-Funktionalität in ihren ROMs zu aktivieren, da nicht alle Layers-Themen auf Standard-RRO in Marshmallow funktionieren würden.

Unterdessen setzte Sony seine eigenen Bemühungen zur Android-Themengestaltung fort. Es begann zu arbeiten OMS (Overlay Manager Service), ein Client zur Verwaltung von Overlays, der es Anbietern ermöglicht, Prioritäten dynamisch zu steuern und Overlays zu aktivieren und zu deaktivieren. OMS wird mit AOSP zusammengeführt und wird seinen Weg in Android O finden. XDA-anerkannter Entwickler nikolaus konnte durch seine Quellen bestätigen, dass Android O über „dynamische Overlays“ verfügen wird, was vermutlich eine Anspielung auf OMS ist.

OMS verursachte Konflikte mit Layern, da solche Funktionen traditionell unter der Kontrolle des Themers standen. Um die durch OMS aufgeworfenen Probleme zu lösen und die Funktionalität von Layers zu erweitern, hat sich BitSyko erneut zusammengetan (und sich in umbenannt). [projekt.]) erschaffen Substrat. Substratum ist ein Client mit OMS-Funktionalität das versucht, die Layers-Funktionalität mit OMS in Einklang zu bringen und auch andere Elemente aus anderen früheren Designlösungen übernimmt. Overlays überlappten sich nicht mehr, um einzelne Elemente zu thematisieren, da jetzt alle benötigten Elemente in ein einziges Overlay eingefügt wurden. Funktionen wie „Compile-on-Device“ ermöglichten die Anwendung von Designs, ohne dass zwischen den Änderungen ein Neustart erforderlich war bedeutend Endbenutzern wird es einfacher, Themen auszuprobieren und zu experimentieren. Substratum befindet sich seit seiner Einführung in der aktiven Entwicklung und listet alle seine Funktionen auf Die zusätzliche Funktionalität würde den Rahmen dieses Artikels sprengen, daher wenden wir uns dem eigentlichen Thema zu Stück.


Substratum in Sungstratum

Wie im vorherigen Abschnitt erläutert, begann Substratum als eine Möglichkeit, die Standard-OMS-Funktionalität sowie die Standard-RRO-Funktionalität (durch Layers) zu erweitern. Substratum sollte zusammen mit AOSP-basierten ROMs verwendet werden, da die meisten anderen OEMs widersprüchliche Änderungen vorgenommen hätten Dies würde es Substratum nicht ermöglichen, mit ihren Modifikationen auf einem bearbeiteten UX-Skin, wie z. B. dem von Samsung, koexistieren zu können Beispiel.

Samsung selbst arbeitete auch an einer Designlösung für die Verwendung auf seinen eigenen Geräten auf Nougat. Im Gegensatz zu Sony zeigte Samsung kein Interesse daran, den Theming-Code wieder in AOSP einzubringen. Aber da die Lösung von Samsung recht einfach war, musste AOSP nicht wirklich viel einbüßen. Die in Touchwiz integrierte Design-Lösung von Samsung kam tatsächlich auf dem Samsung Galaxy S6 zum Einsatz, war aber, wie bereits erwähnt, in ihren Möglichkeiten ziemlich eingeschränkt. Zuvor gab es begrenzte Experimente, die mit dem Galaxy Alpha begannen, obwohl die meisten Elemente der System-Benutzeroberfläche außerhalb seines Anwendungsbereichs lagen. Themen können Hintergrundbilder und Symbole sowie einige Samsung-Standard-Apps wie beispielsweise den Dialer, Kontakte, Nachrichten und den Benachrichtigungsbereich ändern.

Wie sich herausstellt, Samsungs Theme-Engine erweitert RRO wie in AOSP gefunden. Samsung hat nach der Erweiterung von RRO auch seine eigene interne Version von OMS neu erstellt, sodass sich die Implementierungen von RRO und OMS von denen von AOSP unterscheiden. Aber überraschenderweise nicht sehr viel – ein ungewöhnliches Verhalten, wenn man die Einzigartigkeit und Komplexität von Touchwiz bedenkt. Themer, die neuere Samsung-Flaggschiffe verwenden, berichteten, dass sie RRO-Overlays installieren und sie mit Anwendungen von Drittanbietern thematisieren könnten.

Dies war der Hinweis, den das Team [projekt.] brauchte, um die offizielle Unterstützung von Samsung-Geräten auf Substratum zu prüfen. Das Team hat eine kleine Menge Code aus dem RRO/Legacy-Bereich seiner App konvertiert, aber stattdessen Sie forderten Root und einen Neustart an und lösten bestimmte Absichten aus, damit die Overlays installiert wurden. Das Team arbeitete dann daran, sicherzustellen, dass die von den Themes betroffenen Anwendungen im Hintergrund zwangsweise geschlossen wurden, um beim nächsten Start eine vollständige Aktualisierung der Assets sicherzustellen.

Wir haben den anerkannten XDA-Entwickler gefragt nikolaus um uns einige Einblicke in die Herausforderungen zu geben, mit denen das Team konfrontiert war, als es gegen Samsungs Closed-Source-Implementierung von RRO-OMS arbeitete:

Die Herausforderungen, vor denen wir standen, waren für viele, die nicht über viel Wissen verfügten, eher dunkel und unbekannt Theming-Systeme verstehen, ob Open-Source- oder Closed-Source-Systeme – alles hat seine eigene Testversion und Fehlerphase. In diesem Fall bin ich bei der Zusammenarbeit mit Samsung auf viele Probleme gestoßen, aber das Hauptproblem war, dass die Systemabsichten nicht vorhanden waren wird nach Abschluss der Installation für Overlays ausgelöst, z. B. bei Verwendung von Rundfunkempfängern „android.intent.action. PACKAGE_ADDED“ – der Theme-Dienst verweigert alles, was nicht Teil der Systemsignatur eines bestimmten Samsung ist Ich habe keine Theme-Service-Genehmigung erhalten, daher ist der schwierigste Teil die Problemumgehungen, für die wir einen Weg finden mussten um.

Wir verwenden Substratum zusammen mit der Theme Engine von Samsung, indem wir dasselbe System verwenden wie sie. Sie verwenden eine stark modifizierte Version des Resource Runtime Overlay-Systems von Sony, abgekürzt als RRO oder unter Substratum-Benutzern als Legacy bekannt. Der Unterschied besteht jedoch darin, dass Samsung-Designs über eine zusätzliche Berechtigung verfügen, die diese Overlays in den Einstellungen verbirgt, sodass Sie sie nicht einzeln manuell deinstallieren können. Wir verwenden das gleiche System, verwenden jedoch die Implementierung von AOSP/Sony, weshalb Samsung Themes das Theme-Framework vollständig nutzen kann Substratum-Overlays können kein Mediatorziel berühren, das nicht existiert „fwk“ – wie wir alle wissen, ist das Framework nur ein „Android“-Paket Name.

Es schien seltsam, dass [projekt.] relativ einfach mit der RRO-Implementierung von Samsung zusammenarbeiten konnte. Jeder, der schon einmal an Samsung-Geräten gearbeitet hat, kann bestätigen, wie schwierig Samsung die Dinge oft macht. Wir haben uns nach einer bestimmten Blockade erkundigt, auf die das Team während seines Ports gestoßen ist:

Es gibt tatsächlich eine Art Sicherheitsmechanismus, der einige Benutzer betraf – bei dem Overlays beim Start wiederhergestellt werden. Dies liegt an der Art und Weise, wie Samsung sein Gerät startet. Da wir bei TouchWiz/Samsung Experience größtenteils 7.0 verwenden, verwenden wir eine neue Methode zur „App-Optimierung“ (Sie können dies sehen, wenn Sie Ihr Telefon aktualisieren). zeigt eine Benachrichtigung mit dem Android-Nougat-Symbol an, die darauf hinweist, dass im Hintergrund ein Upgrade durchgeführt wird), sodass diese Art der App-Optimierung auch das Ziel entlastet Pakete, was letztendlich den Idmapping-Prozess beim Booten unterbricht (weil das Zielpaket nicht vorhanden ist) und daher kommt es bei einigen Leuten zu Overlay-Entladevorgängen nach einem neu starten.

Sie können dies auch bei einigen Samsung-Themes beobachten, insbesondere beim Dark/Black-Theme von @envy~ – er Stellt die Standardfarbe der Navigationsleiste unter „Anzeige“ -> „Navigationsleiste“ auf Schwarz ein, wo sich die tatsächliche Standardfarbe befindet Weiß. Nachdem Sie es auf Schwarz gesetzt haben, können Sie die Tastatur öffnen und die Navigationsleiste bleibt schwarz. Dies wird bei vielen Geräten auch beim Neustart zufällig zurückgesetzt.

Welche Pläne hat Substratum für die Seitenzweige wie Sungstratum, da die Thematik wieder an Bedeutung gewinnt?

In Zukunft werden wir für unsere aktuellen Benutzer eine kleine App in unser Add-on integrieren, damit sie dies tun können Sie können den Samsung Theme Service stoppen, wenn alle auf ihren Geräten installierten Themes von installiert werden XDA. Wer also Samsung-Theme-formatierte Themes von XDA verwenden möchte, kann das Add-on nutzen, um dies zu verhindern Der Service von Samsung verhindert, dass das Theme nach jedem Neustart wieder auf das Standarddesign zurückgesetzt wird (weil es nicht aus dem Samsung Store installiert wurde). offiziell). Dafür ist ein kostenloser Samsung-Entwicklerschlüssel erforderlich, der auf der Website erhältlich ist. Dieser ist jedoch bereits beim Herunterladen des Sungstratum-Add-ons im Paket enthalten.


Angesichts der jüngsten und bevorstehenden Änderungen an AOSP und Android O sieht es so aus, als ob Googles einst junges Betriebssystem noch mehr Personalisierung an den Benutzer weitergeben wird. Bestimmte OEMs planen sogar, ihre benutzerdefinierten Benutzeroberflächen und UX-Erweiterungen abzuschaffen zugunsten von AOSP, und andere wie Samsung kommen mit ihren eigenen Theming-Lösungen nah dran. Wir stellen uns eine Zukunft vor, in der Themen eine wichtige Rolle in der Benutzererfahrung von noch mehr Menschen spielen – ein Betriebssystem Hier haben Sie wirklich die Kontrolle darüber, wie Ihr Gerät aussieht, und die Ästhetik der Benutzeroberfläche wird von Ihnen maßgeschneidert Du. Und ohne die kollektive Kraft dieser großartigen Community und Projekte wie Substratum wären wir nicht in der Lage, eine solche Zukunft zu erreichen.


Schauen Sie sich die Substratum-Integration für Samsung Nougat in unseren Substratum-Foren an!Substratum auf GitHub