La dernière version d'Android Oreo de Google intègre déjà la prise en charge des thèmes natifs et, grâce au moteur de thèmes Substratum, elle arrivera dans 1 semaine.
Mise à jour du 13/09/17: Le module complémentaire Andromeda pour Substratum, qui permet des thèmes personnalisés sur les appareils Android Oreo non rootés, est maintenant disponible. Voir cet article pour plus de détails. L'article original restera ci-dessous.
Avec chaque nouvelle version du système d'exploitation Android de Google, la plupart des utilisateurs ont moins de raisons de rooter leurs appareils. Cependant, parmi les utilisateurs restants qui choisissent toujours de rooter leurs appareils, l'une des raisons les plus fréquemment citées est d'activer la prise en charge des thèmes à l'échelle du système. Généralement, cela est géré via le Substratum cadre thématique depuis le disparition malheureuse du moteur de thème CyanogenMod. Au fil du temps, le équipe derrière Substratum a travaillé dur pour inclure la prise en charge d'un plus grand nombre d'appareils en incorporant la prise en charge de Substratum
au niveau ROM afin qu'il puisse fonctionner sans accès root. Et maintenant, l'équipe a poussé le projet au-delà de ce que chacun d'entre nous aurait pu imaginer en apportant prise en charge complète du thème à l'échelle du système sans racine pour tout appareil Android Oreo.Captures d'écran montrant Thème Android Oreo Black de Sai fonctionnant sur un Google Pixel non rooté sur Android Oreo 8.0.0
Pour vous donner une idée de la façon dont c'est incroyable ce développement, considérons que ce qui suit sera désormais possible sans racine:
- Thématisation du Framework Android et interface utilisateur du système Android, ainsi que toute autre application système. (Beaucoup d'entre vous vont amour avoir enfin un thème sombre disponible !)
- Thématisation de toute application tierce
- Polices personnalisées pour applications tierces
- De nombreuses autres modifications telles qu'un mod d'horloge centrale dans la barre d'état
La liste continue! Le substrat a un liste complète des thèmes disponibles qui soutiennent le cadre (qui sont tous pris en charge dans cette nouvelle version à venir de Substratum pour Android 8.0), une communauté active sur Google+ et le nôtre forums, et compte tenu de cette évolution, le soutien ne fera que croître !
Android Oreo et le service Overlay Manager
Depuis que Google a incorporé prise en charge native de la superposition de ressources d'exécution de Sony (RRO) moteur de thème dans Android 6.0 Marshmallow, nous attendions pour que Google fournisse une interface intégrée ainsi que des API publiques que les développeurs peuvent utiliser pour créer un thème à la fois pour les applications de structure système et pour les applications tierces. Hélas, la version Android Nougat n'a apporté que peu de nouveautés depuis que le RRO de Sony a été ajouté au projet Android Open Source (AOSP).
Mais grâce au travail assidu des ingénieurs de Sony Mobile, le moteur de thème RRO a finalement évolué vers ce que l'on appelle Overlay Manager Service (OMS), sur lequel est basé Substratum. Sony a été le pionnier en matière de solution de thème open source, mais depuis que son moteur de thème OMS a été accepté dans l'AOSP aux alentours du Au moment de la version finale d'Android 7.1, le seul moyen pour les utilisateurs d'appareils non Sony de profiter du moteur de thème est de créer un thème personnalisé. ROM.
Cela a changé dans Android 8.0. Lorsque Substratum a été initialement publié pour le premiers aperçus des développeurs Android O, les développeurs de Substratum ont réalisé que plein soutien pour Sony SGD était disponible. Cela signifie qu'un utilisateur pourrait installer un thème existant pris en charge par Substratum et qu'il fonctionnerait pleinement sur les appareils Android Oreo sans nécessiter de correctifs ROM. Il n'y avait cependant qu'un seul problème: le processus d'activation d'un thème Substratum installé nécessitait un accès root, ou c'est ce qu'ils pensaient.
Prise en charge du thème de substrat sans racine et à l'échelle du système pour Android Oreo
Alors que les développeurs travaillent tranquillement sur la question de fournir aux utilisateurs d'Android Oreo une solution de thème entièrement sans racine à l'arrière graveur, nous avons fouillé indépendamment chaque aperçu du développeur Android O et trouvé des preuves du moteur de thème en jeu, cependant nous l'avons mal identifié comme étant basé sur l'ancien RRO plutôt que sur le nouveau OMS de Sony. Google a même taquiné la communauté à propos de la prise en charge des thèmes dans un AMA centrée sur les développeurs sur Reddit, déclarant qu'il restait encore quelques obstacles à surmonter avant qu'une solution de thème complète puisse être intégrée à Android.
Non satisfaits de cette réponse, nous voulions voir jusqu'où Google était allé pour obtenir la prise en charge des thèmes pour Android Oreo. Pour ce faire, j'ai fouillé le code source d'Android 8.0 une fois la version finale abandonnée, et j'ai découvert le existence de commandes shell ADB pouvant activer ou désactiver les superpositions, dont l'écrivain XDA Adam Conway a couvert hier.
Au départ, je n'étais pas vraiment impressionné par cette découverte, car à ma connaissance à l'époque, elle était fonctionnellement inutile car mes collègues et moi-même avions l'impression que l'installation un thème nécessitait toujours un accès root car les fichiers du thème devraient être déplacés vers un dossier inaccessible à l'espace utilisateur (dans /system/vendor/overlay, comme le fait RRO a fonctionné). Nicolas Chum lui-même, l'un des principaux développeurs derrière Substratum, a commenté dans notre article qu'il était au courant de l'existence de ces commandes depuis un certain temps et l'utilise déjà pour les versions Android O.
Une personne, cependant, a vu une opportunité se présenter après la publication de notre article hier. Le propre de XDA Jeff Corcoran, le développeur derrière notre interne Application XDA Labs, s'est rendu compte qu'il existait une solution de contournement potentielle pour faire fonctionner l'interface de ligne de commande native d'Android Oreo pour qu'OMS fonctionne sans root. Il s'agissait d'une méthode utilisée par Hélium, la solution de sauvegarde non root populaire, et plus récemment par l'alternative open source Greenify connue sous le nom de Brévent.
Privilèges élevés grâce à un script
D'ordinaire, le "superposition cmd" Les commandes que Google a ajoutées à la version Oreo ne peuvent être exécutées que via un appareil doté des privilèges root ou via un appareil connecté à un ordinateur appelant le shell Android Debug Bridge (ADB). Une poignée de développeurs intelligents, tels que les développeurs Helium et Brevent, ont compris au fil des années comment essentiellement élever les privilèges d'une application exécutée sur le téléphone pour qu'ils correspondent à ceux d'ADB coquille. Ce faisant, l'application peut envoyer des commandes qu'elle ne pourrait généralement pas envoyer en raison d'autorisations restreintes. Dans le cas de Substratum, cela signifie l'application peut installer puis activer ou désactiver les thèmes Substratum sans root.
Cette prise de conscience était une majeur une percée qui n'a été découverte qu'hier soir. En quelques heures, Nicholas (avec l'aide de Jeff) a pu créer une version alpha rapide d'un gestionnaire de thèmes Substratum sans racine pour les appareils Android Oreo. Et cela fonctionne – mais avec quelques mises en garde.
Mises en garde concernant le support de substrat sans racines
Le processus requis pour accorder des privilèges élevés au shell Substratum ADB nécessitera l'utilisation d'un très simple et léger application de bureau (ou simplement une commande shell ADB si vous savez ce que vous faites). Une fois accordé, Substratum fonctionnera comme vous vous en doutez, étant capable de gérer la gestion de tous vos thèmes Substratum installés. Tous les thèmes que vous installez resteront installés jusqu'à ce que vous choisissiez de le désinstaller à nouveau via Substratum.
Cependant, les privilèges accordés à Substratum sont transitoires, car ils sont perdus lorsque l'utilisateur effectue un redémarrage complet (bien que, heureusement, les redémarrages en douceur de l'interface utilisateur du système ne perdent pas le privilège). Cela signifie que vous devrez réexécuter le programme de bureau si vous avez redémarré votre téléphone et souhaitez utiliser Substratum pour ajouter, supprimer ou modifier un thème. Je tiens à réitérer encore une fois que tous les thèmes que vous installez resteront installés même si vous redémarrez, cela signifie donc que si vous souhaitez simplement modifier quelques thèmes de temps en temps, cela devrait être parfait pour vous. Vous devriez également pouvoir changer de thème à partir du menu Paramètres, comme le Option « Thème » de Developer Preview sous Paramètres d'affichage reconnaît ensuite les thèmes installés et vous permet de basculer entre eux
Enfin, la dernière chose que je dois mentionner est quelque chose qui semble évident une fois que vous y réfléchissez, mais dans votre enthousiasme à l'idée d'entendre des nouvelles, vous l'avez peut-être oublié. Votre appareil n'est toujours pas rooté. Cela signifie que vous ne pouvez pas toucher ou modifier les fichiers qui nécessitent absolument un accès root pour être modifiés, même si le thème Substratum que vous avez installé a promis de changer quelque chose. Désolé, mais malheureusement, cela signifie que vous ne pouvez pas appliquer une modification de police à l'échelle du système à ramenez les emojis blob, bien que, comme mentionné au début, est Il est possible pour un thème Substratum de modifier les polices d'applications individuelles.
La nécessité du substrat
Éliminons maintenant un détail important. Quand est-ce que ça arrive? Comme le titre le mentionne, la première disponibilité publique du Substratum sans racine pour les appareils Android 8.0 tels que le Google Nexus 5X, le Google Nexus 6P, le Google Pixel et le Google Pixel XL devrait avoir lieu. dans 1 semaine. C'est pas une garantie par tous les moyens, car les choses peuvent changer au cours du processus de développement, ce qui peut nécessiter un investissement de temps supplémentaire, mais comme OMS est déjà entièrement pris en charge dans AOSP, tout ce sur quoi l'équipe Substratum travaille actuellement est l'interface entre l'application Substratum et unroot dispositifs.
Ensuite: est-ce que ce sera gratuit? Non. Le substrat pour les appareils Android Oreo non rootés sera un application payante. Je ne peux pas vous dire combien cela coûtera car Nicholas n'a pas encore décidé de prix, mais soyez assuré que le prix sera juste compte tenu de la valeur de ce que vous recevrez. Jusqu'à présent, Substratum était disponible gratuitement pour de nombreux appareils, alors pensez à prendre en charge ce type de développement en prenant d'abord en charge Team Substratum. Vous pouvez soit attendre que Google publie éventuellement le thème sombre dont vous avez toujours rêvé (ha, bien un), ou vous pouvez investir quelques centimes pour soutenir un développement indépendant que beaucoup de gens considèrent comme accordé.
Vous n'êtes toujours pas convaincu de sa valeur? Tu peux essayer installer des thèmes Substratum sur votre propre appareil 8.0 non rooté. En fait, c'est exactement ce que nous avons fait ci-dessus. Bien sûr, nous avons eu un peu d’aide de la part de Nicholas pour y parvenir. Si vous souhaitez installer un thème Substratum existant depuis le Google Play Store, voici les étapes générales :
- Téléchargez et installez le fichier APK sur votre appareil.
- Extrayez le contenu et compilez chaque superposition dans un fichier APK individuel pour chaque application dont vous souhaitez créer un thème.
- Installez chaque fichier APK de superposition individuel que vous avez compilé manuellement à l'étape 2.
- Pour chaque APK de superposition que vous installez, exécutez la commande suivante pour l'activer:
cmd overlay enable
- Si vous souhaitez modifier la priorité des superpositions, utilisez:
cmd overlay set-priority
PARENT|lowest|highest - Listez toutes vos superpositions installées avec:
cmd overlay list
- Supprimez toutes les superpositions dont vous ne voulez pas avec:
cmd overlay disable
Si vous souhaitez vraiment utiliser la ligne de commande pour gérer les thèmes, soyez notre invité! Personnellement, j'étais bloqué pour dépasser l'étape 2. Le substrat n'utilise pas une méthode cachée que vous ne pouvez pas trouver par vous-même, mais il la crée loin plus facile à gérer pour vous. Lorsqu'il est possible de faire quelque chose manuellement mais qu'une application peut le faire pour moi beaucoup plus facilement, j'ai tendance à laisser l'application faire son travail. Mais c'est à vous de décider.
Personnellement, je suis vraiment, vraiment excité pour voir où cela mène. Pour tous les appareils qui ne prennent pas déjà en charge un système de gestion de thème intégré (tels que les appareils Motorola ou OnePlus), vous avez désormais une autre raison d'attendre avec impatience la mise à jour Android 8.0. Pour ceux d’entre vous qui ont la chance de déjà goûter ce sucré Oreo, vous avez quelque chose à espérer dans 1 semaine.
P.S. Utilisateurs de Samsung, connaissiez-vous vos appareils prend déjà en charge les thèmes Substratum sans avoir besoin de root ?
PPS Êtes-vous un développeur souhaitant en savoir plus sur Substratum? Découvrez celui de Nicolas superbe présentation diaporama ici!