Android Oreo présente une interface de ligne de commande pour les thèmes

Android Oreo inclut la prise en charge de l'interface de ligne de commande pour les thèmes RRO, faisant allusion au système d'exploitation qui se rapproche de plus en plus de la prise en charge des thèmes à l'échelle du système.

Avec le lancement d'Android Oreo, nous passons beaucoup de temps à rechercher des fonctionnalités cachées dans le code source. Dans le passé, l'équipe d'ingénierie Android a a parlé de l'activation des thèmes dans Android O. Nous avons signalé en mai que le deuxième aperçu du développeur d'Android O était peut-être une allusion à la prise en charge par Google du service Overlay Manager (OMS) et du Runtime Resource Overlay (RRO), mais nous savons maintenant avec certitude que c'était le cas. Android Oreo maintenant, techniquement, prend en charge les thèmes OMS/RRO et fournit même une interface pour activer ou désactiver les thèmes, à condition que vous puissiez utiliser la ligne de commande.

Mise à jour: Substratum utilise ces commandes avec les aperçus des développeurs et maintenant avec Oreo depuis qu'elles sont disponibles !


Que sont RRO et OMS?

RRO a été développé en interne par Sony pour la fonctionnalité de thème sur la gamme Sony Xperia. Les développeurs qui ont reconnu son importance ont travaillé pour étendre sa prise en charge à d'autres ROM, et avec cela est apparu le thème RRO sur une multitude d'appareils, pas seulement les appareils Sony. Il a ingénieusement remplacé les ressources au moment de l’exécution de l’application, une facilité d’utilisation inédite parmi les autres options de thème de l’époque. Cela a évolué vers OMS, qui a également été développé en interne par Sony. Le célèbre Gestionnaire de calques utilisait le thème RRO à l'origine, mais OMS a ensuite été adapté dans ce qui est maintenant connu sous le nom de Substratum et est désormais le cadre de thème le plus familier aux utilisateurs de nos forums. Les ROM sur nos forums avec des commits OMS signifient qu'elles prennent en charge le moteur de thème standard de Substratum. Le « mode hérité » dans Substratum utilise le thème RRO.


Android Oreo présente les commandes de thème

Il semble que Google souhaite désormais prendre pleinement en charge ce type de thème dans AOSP, éventuellement en évoluant vers un gestionnaire de thèmes complet pris en charge par le système. Sur Android Gerrit, Google a apporté un certain nombre de modifications ces derniers mois (et avec Android Oreo) qui suggèrent des mesures visant à activer le moteur de thème à l'échelle du système. Les modifications sont ci-dessous, avec des liens vers leurs commits respectifs.

  • Commandes de superposition
  • OverlayManagerService (OMS) introduit
  • Une nouvelle autorisation intitulée CHANGE_OVERLAY_PACKAGES

Tous ces changements signifient une évolution de Google vers une certaine forme d'application de thème système à inclure dans le futur. L'autorisation répertoriée ci-dessus nécessite des privilèges système et signifie donc que seule une application système (ou une application avec un accès root) peut invoquer cette autorisation. C'est néanmoins intéressant, car cela montre que Google travaille enfin vers quelque chose.

Alors pourquoi seulement techniquement Android Oreo prend-il en charge les thèmes? Eh bien, la réponse simple est que même si vous pouvez invoquer la méthode système d’installation de thèmes, cela s’avérerait plutôt inutile. En effet, même si vous pouvez utiliser la nouvelle interface de ligne de commande pour gérer les thèmes installés, vous ne pouvez pas réellement installez de nouveaux thèmes sans accès root car les thèmes doivent aller dans un répertoire restreint à l'utilisateur espace. Avec un accès root, vous pouvez simplement activer un thème Substratum de toute façon, il n'est donc pas nécessaire de le faire de la nouvelle manière. Google n'a pas inclus d'application système pour thématiser l'appareil, donc jusque-là, il n'y a aucun avantage à essayer de le faire de la manière nouvellement incluse.

L'interface de thématisation en ligne de commande

Chez XDA, nous avons testé la commande sur un Google Pixel exécutant la version Android Oreo. Nous avons décidé de tester certaines commandes et avons d'abord utilisé

cmd overlays list

pour afficher toutes les superpositions préinstallées. Nous avons remarqué l'existence d'un "com.google.android.theme.pixel", le désactivant et activant à la place "android.auto_generated_rro__" en exécutant les commandes suivantes.

Comme on peut le voir ici, la superposition standard est désactivée et celle générée automatiquement est activée. En exécutant notre commande pour afficher à nouveau nos superpositions installées, nous voyons le résultat suivant.

Cela se traduit par une nouvelle application de paramètres du système Android sur notre Google Pixel. Notez que la liste de superposition ci-dessus inclut également des thèmes installés à l'aide de Substratum, et nous avons pu les activer/désactiver tout aussi facilement.

Thème auto_generated_rro

Nous avons également trouvé une autre commande en fouillant dans la source. La commande est la suivante

cmd overlay dump --user 0

nous donne le résultat suivant.

Sortir

Paramètres

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...: vrai

mIsStatic...: vrai

}

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...: faux

mIsStatic...: faux

}

Superpositions par défaut: com.google.android.theme.pixel

Cache PackageInfo

2 colis

En savoir plus

Comme on peut le constater, Google a consacré beaucoup de travail au développement du moteur de thème et à son intégration dans la source AOSP. Il semble que s'il devait être ajouté à l'échelle du système, les thèmes seraient activés dans le tuner de l'interface utilisateur système. Google a également fourni des informations aux OEM, il est donc possible que d'autres constructeurs OEM puissent à l'avenir activer la prise en charge des thèmes basés sur la version AOSP sur Android Oreo.

Dans l’ensemble, il s’agit d’un développement très excitant. La création de thèmes est l'un des nombreux éléments qui définissent Android comme un système d'exploitation entièrement personnalisable sur votre téléphone, même s'il nécessite actuellement une racine pour les thèmes à l'échelle du système. À l’avenir, s’il était possible de fonctionner sans accès root, ce serait un pas majeur vers la liberté des utilisateurs. Bien sûr, il peut être verrouillé dans le tuner de l'interface utilisateur système pendant un certain temps (car des thèmes cassés peuvent interrompre les applications), mais en permettant le fait que l'utilisateur puisse même profiter de la prise en charge des thèmes natifs en premier lieu constitue un énorme ajout au fonctionnement mobile. système.