Dans cet article, nous explorons les différences entre la prochaine version de Xposed for Nougat de rovo89 et l'implémentation actuelle disponible pour Nougat.
Le framework Xposed était – et est toujours – un moyen majeur de personnaliser votre appareil Android, compatible avec presque tous les appareils, vous permettant d'installer facilement des modules pour peaufiner pratiquement tous les détails.
Vous souhaitez bénéficier de toutes les fonctionnalités offertes par une ROM personnalisée sans avoir à en flasher une ?GravitéBox ouXTouchwiz Fera cela. Vous souhaitez modifier certains paramètres pour chaque application, comme modifier le DPI d'une application spécifique ?Paramètres de l'application avez-vous couvert. J'aimerais que les développeurs d'une application pensent à ajouter une fonctionnalité spécifique, comme Google vous permettantpersonnaliser Hangouts ou Facebook vous permettant detéléchargez les publications Instagram que vous aimez? Eh bien, vous n'en avez pas besoin car Xposed donne aux développeurs le pouvoir de modifier à peu près tout ce qu'ils veulent. que vous souhaitiez, qu'il s'agisse d'une fonctionnalité à l'échelle du système qui nécessiterait une ROM personnalisée ou d'un ajustement pour un application.
Le framework Xposed présente un avantage majeur pour les développeurs, à savoir la facilité de développement (par rapport à la nécessité de compiler AOSP pour les ajustements de ROM ou de devoir éditer le code Smali). Cela apporte également un énorme avantage aux utilisateurs: commodité, car cela ne les oblige plus à trouver et à flasher la ROM qui fournit toutes les fonctionnalités qu'ils recherchent (au lieu de cela, ils peuvent mélanger et assortir des modules indépendants) en plus de leur équilibre cible entre stabilité et performance. Cela fait aussi peaufiner les applications beaucoup plus facile car il n'est pas nécessaire de gérer différentes signatures, ce qui obligerait les utilisateurs à désinstaller l'original version ou franchir certains obstacles lorsque l'application vérifie sa signature (quelque chose que les clients YouTube modifiés traitent, par exemple). exemple).
Le seul problème? En raison de sa nature et du temps libre, le développeur de Xposed (notre propre développeur senior reconnu,rovo89) l'a fait, il est souvent en retard sur les versions Android.Il a fallu environ quatre mois pour être mis à jour pour prendre en charge Lollipop., et il faut environ un an pour arriver à Nougat. Ce n'est pas aussi grave que cela puisse paraître si vous y réfléchissez combien d'utilisateurs Android sont réellement sur Nougat (environ 13,5%, mais gardez à l'esprit que les passionnés d'Android, le public cible de Xposed, sont également plus susceptibles d'être sur Nougat). Cependant, il peut toujours être assez ennuyeux de ne pas pouvoir utiliser vos modules Xposed préférés et disposer en même temps de la dernière et de la meilleure version d'Android.
Le code source du framework Xposed étant disponible (au moins pour les versions stables et publiées), le développeurabforcer a décidé de se salir les mains et de voir s'il pouvait porter certaines des modifications de rovo89 sur Nougat. Optant pour une approche différente et plus simple, abforce a essentiellement adapté la partie de Xposed qui fait la magie une fois installé, et permet de l'inclure lors de la compilation de votre propre ROM (après cela, d'autres solutions de contournement ont fait surface). Cette approche est sans doute très différente car il ignore l'un des principaux avantages de Xposed, qui est d'être facilement accessible à tous. Cependant, tout progrès est le bienvenu et plusieurs responsables s’attaquant à une tâche peuvent s’avérer avantageux et offrir de nouvelles perspectives. Le principal problème, à notre avis, est la désinformation entourant ce développement (diffusée par d'autres "développeurs" et certains blogs), ainsi que certaines réactions de la communauté. Espérons que cet article rendra l’ensemble plus clair.
Tout d'abord, afin de comprendre le travail qui a été effectué - et qui est toujours en cours - dans le framework officiel Xposed ainsi que dans la version abforce, nous devons examiner le fonctionnement du framework. Même si le cadre lui-même est seulement une partie du projet, nous parlons généralement à la fois du framework et de l'installateur car le framework perd bon nombre de ses avantages sans l'installateur universel, qui demande également beaucoup de travail.
La puissance de Xposed vient d'un concept simple: n'importe quelle méthode peut être « accrochée » (les méthodes étant les petites parties qui composent n'importe quel programme) pour que le code d'un module Xposed soit exécuté avant, après ou à la place de il. Prenons un exemple simple: supposons qu'Instagram utilise une méthode appelée "showMenuOptions" lorsque vous cliquez sur le bouton de menu, et que cette méthode gère l'affichage des boutons "Rapport" et "Partager". En créant un module Xposed, vous pouvez modifier cette méthode pour ajouter un bouton supplémentaire pour télécharger l'image au lieu de la partager, par exemple. Les modifications peuvent aller de simples ajustements (par ex. Journal des modifications du Play Store) aux révisions majeures (telles que GravitéBox, qui vise à fournir toutes les fonctionnalités qu'une ROM personnalisée aurait) !
Cela rend Xposed puissant, mais ce n'est qu'une partie de l'équation. Les autres éléments sont la polyvalence - ou la possibilité d'utiliser Xposed sur à peu près n'importe quel appareil (avec une version Android prise en charge) et la facilité d'utilisation. Tout ce que les utilisateurs ont à faire est de récupérer le programme d'installation, qui fait sa magie et corrige leur système de manière dynamique pour intégrer Xposed. Pour appliquer un module, il vous suffit de l'installer, de l'activer et de redémarrer. Pas de chichi, pas besoin de flasher une ROM personnalisée (surtout lorsque les ROM personnalisées ne sont pas toujours un choix viable), pas besoin de désinstaller un APK pour en installer un autre signé avec une signature différente. Tout ce dont vous avez besoin est root (vous pouvez absolument avoir une ROM personnalisée et cela a du sens la plupart du temps; mais même si Xposed peut fournir la plupart des fonctionnalités qu'une ROM personnalisée peut fournir, il va également au-delà).
Derrière cette simplicité se cache cependant beaucoup de travail :
- Pour les développeurs de modules, l'API fournie doit être stable et garantir son fonctionnement. Le framework Xposed ne peut pas échouer de manière aléatoire avec certaines combinaisons de ROM et/ou hook (sauf cas exceptionnels). En d'autres termes, si un utilisateur rencontre un problème, ce problème devrait être soit la faute de l'utilisateur (non pas installer/activer quelque chose correctement) ou la faute du développeur du module (pour avoir des bugs dans le module). Mais il devrait être presque certain que le framework lui-même fonctionne comme prévu et n'est pas la source d'erreurs qui laisseraient les utilisateurs frustrés et les développeurs confus.
- Pour les utilisateurs, le framework doit être facile à installer sur leur appareil et leur ROM, peu importe s'ils disposent d'un Samsung exécutant la dernière version de TouchWiz ou d'un Nexus avec LineageOS installé. Le programme d'installation de Xposed gère tout cela en coulisses. Beaucoup de travail doit être consacré à tester le programme d'installation et le framework sur une variété de périphériques et de combinaisons de ROM. Des erreurs sont détectées, souvent dues à des implémentations différentes par les OEM, et doivent être corrigées pour garantir la fiabilité pour tous les utilisateurs.
- Les révisions majeures d'Android peuvent parfois apporter des changements majeurs, ce qui nécessite de repenser certaines parties de l'architecture du framework pour s'adapter à ces changements. Parfois, des opportunités supplémentaires apparaissent également avec des versions plus récentes, nécessitant un peu plus de temps pour obtenir un meilleur produit. Lorsque ART a été introduit pour la première fois, par exemple, Xposed a désactivé certaines optimisations afin que le hooking puisse fonctionner correctement. Dans le cas de Nougat, lecompilateur juste à temps (JIT) apporte une opportunité àconserver ces optimisations.
Une grande partie du travail ci-dessus se concentre sur des détails mineurs, dans lesquels la majeure partie du framework fonctionne comme prévu, mais le des incohérences et des problèmes mineurs en feraient un pari à utiliser pour les utilisateurs, et un cauchemar de support et de développement pour le module développeurs. Le produit sorti se veut cependant utilisable par tous et sans surprises. Il existe bien sûr quelques exceptions, car les changements apportés par certains équipementiers nécessitent plus d'efforts d'adaptation, mais ceux-ci sont mineurs et la grande majorité des utilisateurs (et développeurs) bénéficient d'un Xposed stable et fiable expérience. Toutes les exceptions rencontrées sont documentées avecdes avertissements clairs pour que personne ne soit surpris.
En gardant ce qui précède à l'esprit, la vision de rovo89 pour Xposed est d'être une solution stable qui fournit un contrat fiable et facile à utiliser pour les utilisateurs et les développeurs. Sa philosophie, même si vous n'êtes pas d'accord avec elle, est simple et compréhensible: un produit doit être publié lorsqu'il est prêt à être utilisé comme prévu, car le publier avant entraîne plus de problèmes que avantages.
Le sous-module Xposed ART d'abforce pour Nougat
Nous sommes réticents à qualifier le travail d'abforce de "portage" ou de "Xposed non officiel", car cela est inexact et trompeur. Comme nous l'avons vu, Xposed comporte deux composants principaux :
- Le cœur du framework Xposed lui-même, qui gère la magie des méthodes de hooking.
- Le programme d'installation Xposed, qui garantit que le framework est facile à installer correctement sur tous les appareils.
Ce qu'abforce a fait, c'est porter le code Marshmallow de rovo89 sur la première partie (le framework Xposed uniquement) vers Nougat, d'une manière qui nécessiterait que les modifications soient intégrées lors de la compilation de la ROM personnalisée. En plus de cela, de nombreuses parties mineures (mais importantes) du framework ne sont pas entièrement adaptées à Nougat. En tant que tel, le comportement peut être incohérent et même s'il fonctionne généralement (bien que paspourtout le monde), ce n'est pas fiable. Pour les développeurs et les utilisateurs de modules, s'appuyer sur une implémentation incomplète et incohérente ne ferait que offrir une mauvaise expérience à toutes les parties impliquées, avec certains modules ne fonctionnent pas du tout ou empêchent le démarrage de l'appareil. Même si de nombreux utilisateurs acceptent d'avoir quelque chose plutôt que rien, le point de vue des développeurs reste parfaitement compréhensible (surtout si l’on garde à l’esprit que les clauses de non-responsabilité n’arrêtent pas les fausses questions d’assistance et les pleurnicheries).
(En plus des deux points majeurs ci-dessus, nous nous attendons également à d'autres modifications du framework Xposed final et officiel pour tirer parti des changements introduits dans Nougat.)
Il convient de noter qu'abforce a fait un excellent travail alors que la plupart se contentaient de simplement parler, mais son travail est loin de l'expérience Xposed complète et aucun développeur ou blog ne prétend le contraire (et certainement pas abforce; encore une fois, nous n'avons que du respect envers tous les développeurs actuels qui y consacrent un réel travail et des efforts). En fait, comme nous l'aborderons dans un instant, certaines réponses de la communauté (qu'il s'agisse d'utilisateurs ou de « développeurs ») sont la seule partie aigre de cette chaîne de développements.
Arrêtons-nous et allons droit au but: toute communauté comporte de mauvais éléments et aspects. Avec une communauté aussi grande que celle des passionnés d'Android, les mauvais éléments peuvent sembler être une part énorme alors qu'ils ne représentent qu'une petite partie (importante, mais toujours mineure en termes relatifs). Cependant, sans l'édulcorer, une grande partie de la réponse de la communauté à l'égard du développement de Xposed for Nougat a été extrêmement enfantine, inconsidérée ou irresponsable.
Le premier problème majeur a été l'attitude condescendante manifestée par beaucoup à propos de la « mort de Xposed », car il met trop de temps à sortir pour Nougat. C'est malgré celui de Rovo89 mises à jouretassurances, et malgré à peu près le scénario exact qui s'est produit avec Lollipop lors de l'introduction de la version initiale d'ART. C'est bien d'arrêter d'utiliser Xposed, mais il ne s'agit pas d'insulter les capacités de quelqu'un ou d'attaquer les autres parce qu'ils ont une philosophie différente ou ne garantissent pas que vos besoins en flash sont satisfaits immédiatement. Cela est encore plus vrai pour un projet entièrement gratuit, où le développeur a exprimé sa méthodologie de développement et les raisons qui la sous-tendent.
Un autre problème avec la réponse de la communauté a été une mauvaise compréhension de la nature du travail d'abforce, beaucoup le saluant comme le nouveau Xposed ou le annonçant comme un portage pour Nougat. Un problème majeur avec cela vient du fait que les "développeurs" se précipitent pour proposer des versions flashables sans comprendre (ou se soucier) des inconvénients, puisqu'aucune clause de non-responsabilité n'a été proposé dans certains fils de discussion, certains allant même jusqu'à créditer abforce et non rovo89 (qui est à l'origine de la grande majorité du travail sur Xposed) et d'autres contributeurs.
Enfin, nous pensons que nous devrions évoquer à nouveau la philosophie de développement de rovo89. De nombreux utilisateurs vocaux affirment qu’il serait bénéfique que les dernières modifications soient open source. Même si cela semble bien en théorie, c'estpas si simple en pratique surtout si l'on considère l'explication de rovo89 :
[...] Je crois que le simple fait de repousser l'état actuel n'aiderait pas le projet. Nous verrions peut-être "une" version très rapide par les personnes qui compilent le code, voir qu'il semble être fonctionne bien et le publie comme "leur port", malgré les problèmes et les choses à faire dont ils ne seraient pas au courant de. Alors traitez-moi d'égoïste, mais je ne voudrais pas voir une version aussi à moitié terminée.[Source]
Ce qui s'est en fait avéré être une assez bonne prédiction de la situation actuelle, plusieurs "développeurs" ayant postulé abforce et propose un ZIP flashable avec peu ou pas d'avertissements, des crédits incomplets, tout en demandant des dons.
Nous espérons que ces explications ont dissipé certains de vos doutes et dissipé d'éventuelles idées fausses que vous auriez pu avoir. Xposed a été un projet incroyable qui a touché une grande partie de notre communauté de passionnés et de flashaholics, et Xposed for Nougat devrait être une autre étape gigantesque pleine d'opportunités. Avec des modules comme GravityBox offrant déjà le support Nougat, le projet terminé de rovo89 reviendra à une multitude d'options.
Êtes-vous enthousiasmé par Xposed sur votre ROM Nougat? Faites le nous savoir dans les commentaires!