Android Oreo führt Befehlszeilenschnittstelle für Themes ein

Android Oreo bietet Befehlszeilenschnittstellenunterstützung für RRO-Themes, was darauf hindeutet, dass das Betriebssystem immer mehr auf die systemweite Theme-Unterstützung zusteuert.

Mit der Einführung von Android Oreo wird viel Zeit mit der Suche nach versteckten Extras im Quellcode verbracht. In der Vergangenheit hat das Android-Engineering-Team dies getan sprach über die Aktivierung von Theming in Android O. Wir haben im Mai darüber berichtet dass die zweite Entwicklervorschau von Android O möglicherweise ein Hinweis darauf war, dass Google den Overlay Manager Service (OMS) und Runtime Resource Overlay (RRO) unterstützt, aber jetzt wissen wir mit Sicherheit, dass dies der Fall war. Android Oreo jetzt, technisch, unterstützt OMS/RRO-Themen und bietet sogar eine Schnittstelle zum Aktivieren oder Deaktivieren von Themen, vorausgesetzt, Sie können die Befehlszeile verwenden.

Update: Substratum verwendet diese Befehle mit den Entwicklervorschauen und jetzt mit Oreo, seit sie verfügbar sind!


Was sind RRO und OMS?

RRO wurde intern von Sony für die Theme-Funktionalität der Sony Xperia-Reihe entwickelt. Entwickler, die seine Bedeutung erkannten, arbeiteten daran, die Unterstützung auf andere ROMs auszudehnen, und damit kam das RRO-Design auf einer Vielzahl von Geräten – nicht nur auf Sony-Geräten. Es ersetzte auf geniale Weise Ressourcen zur App-Laufzeit, eine Benutzerfreundlichkeit, die zu dieser Zeit bei anderen Designoptionen nicht möglich war. Daraus entwickelte sich OMS, das ebenfalls von Sony selbst entwickelt wurde. Die Berühmten Ebenenmanager verwendete ursprünglich RRO-Themen, aber OMS wurde später in das umgewandelt, was heute als Substratum bekannt ist und den Benutzern in unseren Foren derzeit das Themen-Framework am besten bekannt ist. ROMs in unseren Foren mit OMS-Commits bedeuten, dass sie die Standard-Theming-Engine von Substratum unterstützen. Der „Legacy-Modus“ innerhalb von Substratum verwendet RRO-Themen.


Android Oreo führt Designbefehle ein

Es scheint, dass Google diesen Theme-Typ nun vollständig in AOSP unterstützen möchte und möglicherweise auf einen vollständigen, systemunterstützten Theme-Manager umsteigen möchte. Auf dem Android Gerrit hat Google in den letzten Monaten (und mit Android Oreo) eine Reihe von Änderungen vorgenommen, die darauf hindeuten, dass die Theming-Engine systemweit aktiviert werden soll. Die Änderungen sind unten aufgeführt, mit Links zu den jeweiligen Commits.

  • Overlay-Befehle
  • OverlayManagerService (OMS) eingeführt
  • Eine neue Berechtigung mit dem Titel CHANGE_OVERLAY_PACKAGES

Alle diese Änderungen bedeuten einen Schritt von Google hin zu einer Art System-Theming-Anwendung, die in Zukunft integriert werden soll. Die oben aufgeführte Berechtigung erfordert Systemrechte und bedeutet daher, dass nur eine Systemanwendung (oder eine Anwendung mit Root-Zugriff) diese Berechtigung aufrufen kann. Dennoch ist es interessant, denn es zeigt, dass Google endlich darauf hinarbeitet etwas.

Warum also nur technisch Unterstützt Android Oreo Theming? Nun, die einfache Antwort ist, dass Sie zwar die Systemmethode zum Installieren von Themes aufrufen können, sich dies jedoch als ziemlich sinnlos erweisen würde. Dies liegt daran, dass Sie zwar die neue Befehlszeilenschnittstelle zum Verwalten installierter Designs verwenden können, dies jedoch nicht tatsächlich ist Installieren Sie neue Designs ohne Root-Zugriff, da die Designs in einem Verzeichnis abgelegt werden müssen, das für Benutzer nicht zugänglich ist Raum. Mit Root-Zugriff können Sie einfach ein Substratum-Theme aktivieren, sodass Sie es nicht auf die neue Art und Weise tun müssen. Google hat keine Systemanwendung zum Thematisieren des Geräts integriert, sodass es bis dahin überhaupt keinen Vorteil hat, dies auf die neu hinzugefügte Weise zu versuchen.

Die Befehlszeilen-Theming-Schnittstelle

Wir von XDA haben den Befehl auf einem Google Pixel getestet, auf dem die Android Oreo-Version ausgeführt wird. Wir haben beschlossen, einige der Befehle zu testen und sie zunächst zu verwenden

cmd overlays list

um alle vorinstallierten Overlays anzuzeigen. Wir haben die Existenz eines „com.google.android.theme.pixel“ festgestellt und es deaktiviert und stattdessen „android.auto_generated_rro__“ aktiviert, indem wir die folgenden Befehle ausgeführt haben.

Wie hier zu sehen ist, ist das Standard-Overlay deaktiviert und das automatisch generierte aktiviert. Wenn wir unseren Befehl ausführen, um unsere installierten Overlays erneut anzuzeigen, sehen wir die folgende Ausgabe.

Dies führt zu einer neu gestalteten Android-Systemeinstellungsanwendung auf unserem Google Pixel. Beachten Sie, dass die obige Overlay-Liste auch mit Substratum installierte Themes enthält und wir diese genauso einfach aktivieren/deaktivieren konnten.

auto_generated_rro Theme

Beim Durchstöbern der Quelle haben wir auch einen weiteren Befehl gefunden. Der Befehl lautet wie folgt

cmd overlay dump --user 0

gibt uns die folgende Ausgabe.

Ausgabe

Einstellungen

android.auto_generated_rro__: 0 {

mPackageName...: android.auto_generated_rro__

mUserId...: 0

mTargetPackageName.: android

mBaseCodePath...: /vendor/overlay/framework-res__auto_generated_rro.apk

mState...: STATE_ENABLED

mIsEnabled...: wahr

mIsStatic...: wahr

}

com.google.android.theme.pixel: 0 {

mPackageName...: com.google.android.theme.pixel

mUserId...: 0

mTargetPackageName.: android

mBaseCodePath...: /vendor/overlay/Pixel/PixelThemeOverlay.apk

mState...: STATE_DISABLED

mIsEnabled...: falsch

mIsStatic...: falsch

}

Standard-Overlays: com.google.android.theme.pixel

PackageInfo-Cache

2 Paket(e)

mehr lesen

Wie man sieht, hat Google viel Arbeit in die Entwicklung der Theming-Engine und deren Integration in die AOSP-Quelle gesteckt. Es sieht so aus, als ob es systemweit hinzugefügt würde, Themen würden im System-UI-Tuner aktiviert. Google hat es auch Bereitstellung von Informationen für OEMsDaher ist es möglich, dass weitere OEMs in Zukunft die Theme-Unterstützung basierend auf der AOSP-Version auf Android Oreo aktivieren.

Insgesamt ist dies eine sehr spannende Entwicklung. Das Thematisieren ist einer der vielen Aspekte, die Android als vollständig anpassbares Betriebssystem auf Ihrem Telefon definieren, auch wenn derzeit für systemweite Themen Root-Rechte erforderlich sind. Würde man es künftig ermöglichen, ohne Root-Zugriff zu arbeiten, wäre das ein großer Schritt in Richtung Benutzerfreiheit. Natürlich könnte es für längere Zeit im System-UI-Tuner gesperrt sein (da kaputte Themes Apps kaputt machen können), aber das ist erlaubt Dass der Benutzer die native Theme-Unterstützung überhaupt nutzen kann, ist eine große Bereicherung für den mobilen Betrieb System.