Comment le substrat a apporté plus de choix à un TouchWiz inflexible

click fraud protection

Sungstratum de l'équipe [projekt.] apporte tous les goodies thématiques de RRO-OMS aux appareils Samsung Nougat via Substratum! Lisez la suite pour en savoir plus !

Les thèmes Android ont parcouru un long chemin, des modifications hacky à Substratum et maintenant, Strate solaire. Il y a des années, le mot « thème » dans les discussions sur Android était fréquemment remplacé par le mot « sélecteur », un clin d'œil à le sélecteur de thème T-Mobile trouvé dans CyanogenMod qui a jeté les bases qui ont fait d'Android un thème paradis. La possibilité de modifier l'apparence du système d'exploitation a offert aux utilisateurs une autre dimension de personnalisation, leur permettant d'apporter des modifications qui rendent leurs appareils beaucoup plus personnalisés.

Le bon travail s’est poursuivi dans deux directions différentes. Le sélecteur de thème a évolué vers le moteur de thème CyanogenMod, mais malgré les années d'efforts consacrés aux ressources thématiques, le CMTE est devenu obsolète. quand d'autres alternatives sont apparues.


RRO et couches

Les bases de l'une des alternatives ont été posées lorsque la contribution de Sony au code sous la forme du nouveau framework appelé Superposition de ressources d'exécution (RRO) a été accepté dans l'AOSP. Ce framework offre la possibilité de remplacer les ressources de l'application pendant l'exécution (d'où son nom). Les "superpositions" en elles-mêmes sont présentes et prises en charge dans Android dès Gingerbread (et peut-être plus tôt également), utilisé principalement pour échanger des ressources afin que les applications fonctionnent sur ce site spécifique. appareil. L'approche de Sony en matière de RRO impliquait de modifier le gestionnaire d'actifs pour accepter les apk qui utilisaient des ressources mappées sur d'autres ressources correspondantes existant sur l'appareil. Ces nouvelles ressources de l'apk ont ​​ensuite été superposées aux ressources de base au moment de l'exécution uniquement, permettant au système de fonctionner comme si ces nouvelles ressources en avaient toujours fait partie.

Le framework RRO a été fusionné avec AOSP avant que Lollipop 5.0 ne soit rendu public, mais dans les premières versions de 5.0, certaines parties du framework étaient cassées en raison d'autres changements. Les aperçus des développeurs d'Android 6.0 Marshmallow ont été les premiers à ajouter un cadre RRO fonctionnel quoique limité., ouvrant les portes de la personnalisation directement au niveau Android d'origine. Ainsi, à moins qu'un OEM ne tente délibérément de s'écarter des options de thème Android d'origine, un certain un certain niveau de cohérence pourrait être conservé dans l'approche de la manière dont les « thèmes » seraient mis en œuvre dans Android.

Alors qu'AOSP jouait avec RRO et cherchait la meilleure façon de tout intégrer, une équipe de développeurs appelée BitSyko travaillé ensemble sur un effort collectif appelé "Couches". Les couches ont étendu la fonctionnalité RRO d'origine dans Android 5.1 Lollipop pour permettre une commutation de ressources plus complexe et permettre plus de contrôle d'éléments pour les thèmes que possible avec le RRO d'origine. Étant donné que Layers était basé sur RRO, les fabricants de ROM devaient ajouter du code supplémentaire pour activer la fonctionnalité Layers dans leurs ROM, car tous les thèmes Layers ne fonctionneraient pas sur le RRO d'origine dans Marshmallow.

Pendant ce temps, Sony a poursuivi ses propres efforts en matière de thème Android. Il a commencé à travailler sur OMS (service de gestion de superposition), un client de gestion des superpositions qui permettrait aux fournisseurs de contrôler dynamiquement les priorités et d'activer et de désactiver les superpositions. OMS est en train de fusionner avec AOSP et fera son chemin vers Android O. Développeur reconnu XDA Nicolas Schum a pu confirmer via ses sources qu'Android O arborerait des "superpositions dynamiques", ce qui serait une référence à OMS.

OMS provoquait des conflits avec les Layers, car traditionnellement, ces fonctions étaient sous le contrôle du thème. Afin de résoudre les problèmes soulevés par OMS ainsi que d'étendre les fonctionnalités de Layers, BitSyko s'est à nouveau associé (et s'est renommé en [projet.]) créer Substrat. Substratum est un client avec la fonctionnalité OMS qui tente de réconcilier la fonctionnalité Layers avec OMS, et emprunte également d'autres éléments à d'autres solutions thématiques passées. Les superpositions ne se chevauchaient plus pour thématiser des éléments individuels, car désormais, tous les éléments nécessaires étaient injectés dans une seule superposition. Des fonctionnalités telles que la compilation sur appareil permettaient d'appliquer des thèmes sans avoir besoin de redémarrer entre les modifications, ce qui le rendait significativement il est plus facile pour les utilisateurs finaux d'essayer des thèmes et d'expérimenter. Substratum est en développement actif depuis sa création et répertorie toutes ses fonctionnalités et des fonctionnalités ajoutées sortiraient du cadre de cet article, nous allons donc passer au véritable sujet de cet article. morceau.


Substrat en Sungstratum

Comme expliqué dans la section précédente, Substratum a commencé comme un moyen d'étendre la fonctionnalité OMS de stock ainsi que la fonctionnalité RRO de stock (via des couches). Substratum était destiné à être utilisé avec les ROM basées sur AOSP, car la plupart des autres constructeurs OEM auraient apporté des modifications contradictoires. cela ne permettrait pas à Substratum de coexister avec leurs modifications sur un skin UX édité, comme celui de Samsung pour exemple.

Samsung, lui-même, travaillait également sur une solution de thème à utiliser sur ses propres appareils sur Nougat. Contrairement à Sony, Samsung n’a montré aucun intérêt à contribuer au code thématique de l’AOSP. Mais comme la solution de Samsung était assez basique, AOSP ne perdait pas grand-chose. La solution de thème de Samsung intégrée à Touchwiz a fait sa véritable apparition sur le Samsung Galaxy S6, mais comme mentionné, elle était assez limitée dans ce qu'elle pouvait essayer de réaliser. Avant cela, des expérimentations limitées avaient commencé avec le Galaxy Alpha, bien que la plupart des éléments de l'interface utilisateur du système sortaient de son champ d'application. Les thèmes peuvent modifier les fonds d'écran et les icônes ainsi que quelques applications Samsung telles que le numéroteur, les contacts, les messages et la zone de notification, par exemple.

Il s'avère que le moteur de thème de Samsung s'étend RRO tel que trouvé dans AOSP. Samsung a également recréé sa propre version interne d'OMS après avoir étendu RRO, de sorte que leurs implémentations de RRO et d'OMS diffèrent de celles d'AOSP. Mais étonnamment, ce n'est pas très important - un comportement anormal si l'on considère le caractère distinctif et la complexité de Touchwiz. Les utilisateurs utilisant les produits phares de Samsung les plus récents ont indiqué qu'ils pouvaient installer des superpositions RRO et leur proposer des applications tierces thématiques.

C'était le signal dont l'équipe [projekt.] avait besoin pour examiner la prise en charge officielle des appareils Samsung sur Substratum. L'équipe a converti une petite quantité de code de la section RRO/Legacy de son application, mais au lieu de demandant root et demandant de redémarrer, ils ont déclenché des intentions spécifiques pour que les superpositions soient installées. L'équipe a ensuite veillé à ce que les applications affectées par les thèmes soient fermées de force en arrière-plan afin de garantir une actualisation complète des actifs lors du prochain lancement.

Nous avons demandé au développeur reconnu XDA Nicolas Schum pour nous donner un aperçu des défis auxquels l'équipe a été confrontée lorsqu'elle a travaillé contre la mise en œuvre en source fermée de RRO-OMS par Samsung :

Les défis auxquels nous avons été confrontés étaient plutôt obscurs et inconnus de beaucoup qui n'ont pas beaucoup de connaissances. comprendre les systèmes de thèmes, qu'ils soient open source ou fermés - tout a son propre essai et phase d'erreur. Dans ce cas, en travaillant avec Samsung, je suis tombé sur de nombreux problèmes, le principal étant que les intentions du système n'étaient pas déclenché pour les superpositions une fois l'installation terminée - comme l'utilisation de récepteurs de diffusion avec « android.intent.action. PACKAGE_ADDED » - le service thématique refuse tout ce qui ne fait pas partie de la signature du système avec un Samsung spécifique. l'autorisation du service de thème de recevoir cela, donc le plus difficile est les solutions de contournement que nous avons dû trouver un moyen autour.

La façon dont nous utilisons Substratum aux côtés du moteur de thèmes de Samsung consiste à utiliser le même système qu'eux. Ils utilisent une version hautement modifiée du système Resource Runtime Overlay de Sony, abrégé en RRO ou connu sous le nom d'héritage parmi les utilisateurs de Substratum. Cependant, ce qui diffère, c'est que les thèmes Samsung disposent d'une autorisation supplémentaire qui masque ces superpositions des paramètres, vous ne pouvez donc pas les désinstaller manuellement une par une. Nous utilisons le même système, mais nous utilisons la mise en œuvre d'AOSP/Sony, c'est pourquoi Samsung Themes peut entièrement créer un cadre thématique, tout en Les superpositions de substrat ne peuvent pas toucher une cible médiatrice qui n'existe pas "fwk" - comme nous le savons tous, le framework n'est qu'un package "android" nom.

Il semblait étrange que [projekt.] ait pu travailler avec la mise en œuvre RRO de Samsung avec une relative facilité. Quiconque a déjà travaillé sur des appareils Samsung peut attester à quel point Samsung rend souvent les choses difficiles. Nous nous sommes renseignés sur tout blocage spécifique rencontré par l'équipe lors de son portage :

Il existe en effet une sorte de mécanisme de sécurité qui a affecté quelques utilisateurs - où les superpositions reviennent au démarrage. Cela est dû à la façon dont Samsung démarre son appareil. Comme nous sommes pour la plupart tous sur 7.0 sur TouchWiz/Samsung Experience, nous utilisons une nouvelle méthode d'« optimisation des applications » (vous pouvez le voir lorsque vous mettez à jour votre téléphone, cela affichera une notification avec l'icône Android Nougat, indiquant qu'il est en cours de mise à niveau en arrière-plan), donc cette façon d'optimiser les applications décharge également la cible packages, perturbant finalement le processus d'idmapping au démarrage (en raison de l'absence du package cible) et ainsi, quelques personnes subissent des déchargements de superposition après un redémarrer.

Vous pouvez également constater que cela se produit avec quelques thèmes Samsung, en particulier le thème Dark/Black de @envy~ - il rend la couleur par défaut de la barre de navigation dans Affichage -> Barre de navigation en noir, où la couleur par défaut réelle est blanc. Après l'avoir réglé sur noir, vous pouvez ouvrir le clavier et la barre de navigation reste noire. Cela sera également annulé de manière aléatoire au redémarrage sur de nombreux appareils.

Alors que la thématique reprend de l'importance, quels sont les projets de Substratum pour les branches secondaires comme Sungstratum ?

À l'avenir, nous allons fusionner une petite application dans notre module complémentaire pour nos utilisateurs actuels afin qu'ils puissent pouvoir arrêter Samsung Theme Service si tous les thèmes installés sur leurs appareils sont installés à partir de XDA. Ainsi, les personnes qui utiliseront des thèmes au format Samsung de XDA, vous pourrez utiliser l'addon pour empêcher Le service de Samsung ne revient pas au thème d'origine après chaque redémarrage (car il n'a pas été installé depuis la boutique Samsung) officiellement). Il nécessitera une clé de développeur Samsung gratuite disponible sur leur site, mais elle sera pré-fournie avec le téléchargement du module complémentaire sungstratum.


Avec les changements récents et à venir dans AOSP et Android O, il semble que le système d'exploitation autrefois naissant de Google aura encore plus de personnalisation transmise à l'utilisateur. Certains OEM envisagent même de se débarrasser de leurs interfaces utilisateur personnalisées et de leurs modules complémentaires UX. en faveur de l'AOSP, et d'autres comme Samsung se rapprochent suffisamment avec leurs propres solutions thématiques. Nous envisageons un avenir dans lequel les thèmes joueront un rôle majeur dans l'expérience utilisateur d'encore plus de personnes: un système d'exploitation où vous contrôlez véritablement l'apparence de votre appareil, où l'esthétique de l'interface utilisateur est personnalisée par vous pour toi. Et nous ne pourrions pas atteindre un tel avenir sans la puissance collective de cette formidable communauté et de projets comme Substratum.


Découvrez l'intégration Substratum pour Samsung Nougat dans nos forums Substratum !Substrat sur GitHub