Google pourrait enfin activer des thèmes personnalisés basés sur le framework RRO de Sony

L'Android O Developer Preview a un paramètre de thème d'affichage mystérieux. XDA a conclu que ce cadre thématique est basé sur le RRO de Sony.

Au cas où vous ne le sauriez pas déjà, Google a publié le deuxième aperçu du développeur Android O (Android O DP2) lors de l'événement I/O d'hier. Nous avons déjà j'ai plongé en profondeur dans tout ce que nous avons trouvé de nouveau jusqu'à présent, mais il y avait une chose à propos de DP2 qui me dérangeait. Tous ceux qui reçu la mise à jour bêta ou flashé manuellement les nouvelles images ont rapidement rencontré un interface utilisateur radicalement différente dans des réglages rapides. Pourquoi diable Google a-t-il décidé de changer de thème? Après quelques tests et recherches supplémentaires, je suis arrivé à une conclusion. Pour une raison quelconque, Google a décidé de faire son Thème "Inversé" le thème par défaut; peut-être alors que l'entreprise était en pleine tester une solution de thème personnalisée basée sur Superposition de ressources d'exécution de Sony

(RRO), ils n'ont pas pu faire fonctionner le thème Pixel par défaut à temps pour la version Android O Beta.

Thème système par défaut dans Android O Developer Preview 2

La révélation selon laquelle le framework de thèmes d'Android O est basé sur le RRO de Sony peut sembler évidente à certains étant donné que Google prise en charge implémentée de RRO dans Android 6.0 Marshmallow, même si cela nécessitait d'avoir un appareil rooté. Cependant, étant donné que le code source d'Android O n'a pas été publié, il aurait été pure spéculation de suggérer que ce thème système dans Android O est en fait RRO. C'est pourquoi notre couverture initiale de ce décor mystérieux, ainsi que la couverture réalisée par d'autres sites Web, n'a pas fait ce lien. Mais il existe plusieurs éléments de preuve reliant cette fonctionnalité au cadre thématique qui, selon nous, devraient montrer de manière concluante que Le thème de l'appareil Android O est basé sur RRO. Avec le support RRO à bord, cela peut fournir enfin la solution de thème aux utilisateurs non rootés que nous attendions tous.


Qu’est-ce que la superposition de ressources d’exécution (RRO)?

RRO est un framework de thèmes créé par les développeurs de Sony qui alimente Thèmes Xperia de Sony. La beauté de RRO est qu'il vous permet de remplacer les ressources de l'application sans avoir à modifier le code source de l'application. Cela se produit grâce à l'utilisation d'une superposition, qui contient ses propres chaînes de ressources utilisées pour remplacer les ressources de l'application superposée pendant le chargement de l'application.

Pour ceux d'entre vous qui voient "RRO" et pensent "Couches", vous en êtes assez proche. Layers est une version légèrement modifiée du RRO de Sony, mais au niveau de base, son fonctionnement est très similaire. RRO/Layers « installe » les APK de thème dans /system/vendor/overlay. Au démarrage, le gestionnaire de packages lit ces APK, les vérifie, puis utilise carte d'identification pour le lier à la table des ressources système. Vous pouvez lire une FAQ plus détaillée en SykoPompos, le développeur du (maintenant obsolète) Gestionnaire de calques application.

Captures d'écran de l'application obsolète Layers Manager


Lecture recommandée: Une brève histoire des thèmes: des thèmes OEM aux couches RRO


Bien entendu, peu de membres de la communauté des ROM personnalisées Android utilisent encore un moteur de thème basé sur RRO. La plupart sont passés à un autre moteur de thème tel que Substrat, qui est une évolution de Layers désormais basée sur l'Overlay Manager Service (OMS). (CyanogenMod Theme Engine (CMTE) était un autre cadre de thème populaire, bien que son avenir est encore en suspens.) Cependant, même si vous n'utilisez pas de ROM personnalisée avec les validations OMS, le Application moteur de thème de substrat prend toujours en charge la possibilité d'utiliser des thèmes "Substratum Legacy" qui ne sont que des thèmes RRO/Layers. Et pour cette raison, les utilisateurs ont commencé à comprendre que les thèmes des appareils Android O et RRO sont une seule et même chose.


Google présente enfin le thème via RRO

Sur le section de commentaires d'un AndroidPolice article, Développeur reconnu XDA Maxr1998 a publié une capture d'écran affirmant que les thèmes Substratum Legacy apparaissent dans le sélecteur de thème d'appareil de Google.

Sur la gauche, vous pouvez voir une liste des APK de superposition installés par Maxr1998 sur Android O Developer Preview 1. Sur la droite, vous pouvez voir les deux choix de thèmes dans Android O Developer Preview 2. Précédemment dans Android O DP1, les deux options étaient "Pixel" et "Inversé", avec "Pixel" défini par défaut tandis que "Inversé" ressemble à l'apparence et à la sensation en échelle de gris qui est la valeur par défaut dans O DP2.

Mais regardez bien le nom du thème par défaut dans O DP2. Il s'appelle "android.auto_generated_rro". Un nom très étrange en effet, mais l'inclusion de "RRO" dans le nom est ce qui m'a amené à croire qu'il s'agissait bien du RRO de Sony.

J'ai alors pensé, s'il s'agit bien de RRO, où puis-je chercher à corroborer cela? Ces réflexions m'ont amené à vérifier /system/vendor/overlay, et comme prévu, il y a effectivement deux fichiers APK situés à l'intérieur: framework-res__auto_generated_rro.apk et PixelThemeOverlay.apk.

Ces deux éléments correspondent aux noms des thèmes dans les paramètres d’affichage. Curieusement, lorsque vous sélectionnez le thème Pixel dans les paramètres d'affichage, cela ne fonctionne pas. Je ne suis pas un expert en développement de thèmes RRO, je ne peux donc pas dire pourquoi le thème Pixel ne fonctionne pas, cependant, en effectuant un démontage de l'APK des deux applications, il est clair qu'il s'agit bien d'une superposition applications.

Démontage de l'APK PixelThemeOverlay.apk

[onglets][titre de l'onglet ="AndroidManifest.xml"]


package="com.google.android.theme.pixel" platformBuildVersionCode="25" platformBuildVersionName="O">
<overlayandroid: priority="1"android: targetPackage="android"/>
<applicationandroid: hasCode="false"android: label="@string/pixel_overlay_pixel"/>
manifest>

[/tab][titre de l'onglet ="strings.xml"]


<resources>
<stringname="pixel_overlay_pixel">Pixelstring>
resources>

[/tab][titre de l'onglet ="colors.xml"]


<resources>
<colorname="user_icon_1">#ff5e97f6color>
<colorname="user_icon_2">#ff5c6bc0color>
<colorname="user_icon_3">#ff26a69acolor>
<colorname="user_icon_4">#ffec407acolor>
<colorname="user_icon_5">#ff33ac71color>
<colorname="user_icon_6">#ff8bc34acolor>
<colorname="user_icon_7">#ffff9800color>
<colorname="user_icon_8">#ffff7043color>
<colorname="system_error">#ffea4335color>
<colorname="primary_device_default_dark">#ff2d2d2dcolor>
<colorname="primary_device_default_settings">#ff2d2d2dcolor>
<colorname="primary_dark_device_default_dark">#ff242424color>
<colorname="primary_dark_device_default_settings">#ff242424color>
<colorname="secondary_device_default_settings">#ff3a3a3acolor>
<colorname="tertiary_device_default_settings">#ff616161color>
<colorname="quaternary_device_default_settings">#ff9e9e9ecolor>
<colorname="accent_device_default_700">#ff3367d6color>
<colorname="accent_device_default_light">#ff4285f4color>
<colorname="accent_device_default_dark">#ff5e97f6color>
<colorname="accent_device_default_50">#ffe8f0fecolor>
resources>

[/languette]

[/onglets]

Si tu survoles sur la documentation de RRO fourni par Sony, il est clair qu'il s'agit d'un thème RRO. Dans le fichier AndroidManifest, la ligne de superposition indique que cette superposition cible le fichier framework-res.apk ("android") et qu'elle a une priorité de "1", qui est la priorité la plus élevée qui puisse lui être attribuée.

D'un autre côté, dans le fichier framework-res__auto_generated_rro.apk se trouve un fichier AndroidManifest.xml d'apparence similaire, mais il existe de nombreuses autres chaînes présentes qui n'ont aucun rapport avec la thématique. Mais cela s'explique facilement par le fait que ce thème RRO est fondamentalement une version allégée de le framework-res.apk de Google Pixel, ce que je pensais être vrai puisque \res\values\bools.xml a la ligne true que je sais d'après un message sur notre forum comme étant une ligne que les utilisateurs besoin de définir pour activer la prise en charge des icônes rondes à l'échelle du système.


Conclusion

Mon testeur n'a pas encore réussi à obtenir un accès root dans O DP2 afin d'essayer d'exécuter un thème Substratum Legacy/RRO, mais étant donné mes propres découvertes et celles de Maxr1998, on peut dire sans se tromper que Google pourrait enfin se préparer à proposer le thème RRO au grand public.

Bien entendu, rien ne garantit que cette fonctionnalité ne sera pas supprimée dans l’une des versions ultérieures d’Android O. Il est possible que Google décide que RRO ne fonctionne pas comme il le souhaite et abandonne la fonctionnalité. Cependant, étant donné la longue histoire de RRO entre les mains de Sony et de notre propre communauté de développement, beaucoup d'entre nous connaissent déjà la grandeur de la superposition de ressources d'exécution de Sony. Et comme il existe déjà une tonne de thèmes compatibles RRO disponibles, si jamais Google décide de nous autoriser à installer thèmes personnalisés, ils ouvriront les vannes à un marché déjà vaste de thèmes disponibles pour le plaisir des utilisateurs.


Crédits d’image de fonctionnalité: SonyDevWorld