Flashable Zip apporte le framework Xoffed non officiel à Android 7.1 Nougat

Après des mois et des mois d'attente, nous avons enfin obtenu le support de Xposed Framework pour les ROM Nougat (bien que de manière non officielle). Grâce à des développeurs talentueux présents sur nos propres forums, vous pouvez désormais installer le framework Xposed sur une ROM Android Nougat via un zip compressible.

Jusqu'à présent, l'avenir de Xposed on Nougat était un peu fragile. Rovo89 - le développeur derrière Xposed Framework - a fourni une mise à jour sur la prise en charge d'Android Nougat il y a un peu plus d'une semaine. Rovo89 a essentiellement déclaré qu'il restait encore beaucoup de travail à faire pour que Xposed fonctionne correctement sur Nougat et que nous devions simplement faire preuve de patience.

Heureusement, il semble que nous ayons trouvé une solution temporaire pour ceux d'entre nous qui attendions avec impatience une mesure provisoire. L'équipe PurifyOS a saisi le module ART sur lequel le développeur abforce travaillait (et qui avait été posté plus tôt aujourd'hui), et l'a adapté pour pouvoir être installé sur d'autres ROM personnalisées au moyen d'un zip compressible (au lieu de devoir être implémenté lors de la compilation de la ROM). .

Il existe actuellement trois versions disponibles pour différentes plates-formes, notamment Xposed SDK25 ARM64, Xposed SDK25 ARM et Xposed SDK25 x 86 . L'équipe PurifyOS a testé cette nouvelle version de Xposed avec un OnePlus 3T exécutant OxygenOS sous Android 7.1, mais il devrait fonctionner sur d'autres téléphones fonctionnant sous Android Nougat. Les utilisateurs signalent déjà qu'ils ont réussi à l'installer sur différentes ROM. et appareils. Par exemple, quelques utilisateurs de OnePlus 5 ont indiqué que cela fonctionnait (pas de surprise, étant donné qu’il fonctionne très bien sur OnePlus 3T), mais un utilisateur utilisant une ROM basée sur un AOSP pour le Samsung Galaxy S6 a également indiqué que cela fonctionnait correctement. leur.

Il y aura des problèmes à comprendre et tout le monde n’a pas réussi à le faire fonctionner jusqu’à présent, certains utilisateurs subissant des fermetures forcées et d’autres bizarreries. Cependant, même dans ce cas, vous pouvez toujours tenter votre chance si vous attendez l'arrivée de Xposed sur Nougat depuis la sortie de la version précédente du système d'exploitation Android. Tous les modules Xposed Framework existants ne fonctionneront pas d'emblée, mais certains très populaires, tels que Amplify, fonctionneraient.

Veillez à effectuer des sauvegardes régulières et à lire attentivement le fil de discussion avant de vous aventurer si vous ne savez pas si votre périphérique ou votre ROM est pris en charge. Enfin, assurez-vous d’utiliser la fonction de recherche avant de laisser une question en double. Android O est peut-être à portée de main, mais comme le dit le proverbe «Mieux vaut tard que jamais». De plus, de nombreux utilisateurs ne verront pas Android O sur leurs appareils pendant un certain temps, donc Xposed devrait être un belle gâterie pour ne pas se sentir laissé pour compte.


Mise à jour: réponse de Rovo89

L'original développé derrière Xposed Framework, rovo89, développeur reconnu et reconnu, a répondu à Github en lui faisant part de ses réflexions sur ces développements récents.

D'après mon expérience, je peux vous dire que ce n'est pas si difficile d'obtenir les bases, mais cela prend beaucoup de temps pour les détails. C'est comme la règle des 80-20, sauf que c'est plutôt 95-5 ou plus.

L’approche d’accrochage que j’ai conçue pour les versions précédentes est plutôt stable et peut également s’appliquer aux nouvelles versions. Je suppose que vous avez eu besoin la plupart du temps de vérifier tous les endroits où IsProxyMethod() et IsDirect() sont appelés et de décider s'ils doivent ou non considérer le nouveau modificateur de méthode (c'est-à-dire utiliser le paramètre true ou non). Si vous ne le faisiez pas, vous auriez peut-être oublié certains endroits où ils ont récemment introduit de tels appels. Idem pour des méthodes telles que InstallStubsForMethod(), qui doit fonctionner sur la méthode d'origine, même lorsqu'elles sont appelées pour une méthode accrochée. Vous devez rechercher d'autres endroits où cela pourrait être pertinent. Cela reste encore dans la gamme des jours, mais si vous manquez de le faire, vous pourriez voir des plantages obscurs ou des erreurs de comportement qui sont très difficiles à résoudre.

De plus, vous avez opté pour une approche dans laquelle les hooks ne fonctionneraient correctement que pour des ROM entièrement compilées. Sur les ROM en stock et même dans la plupart des ROM personnalisées (qui n'incluaient pas votre port lors de la construction), ainsi que pour toutes les applications que le périphérique avait peut-être compilées auparavant. Il vous faudra donc tout recommencer avec un périphérique effacé exécutant une ROM spéciale. Si ce n'est pas le cas, des optimisations (par exemple, l'inline) peuvent empêcher une méthode d'être appelée, et les hooks ne fonctionneraient donc pas. La pire chose à propos de cela est que le comportement exact dépend de la ROM, voire de la manière dont l'utilisateur utilise l'appareil (maintenant que les applications sont compilées à partir de profils). Les modules échoueraient de manière aléatoire et les développeurs de modules se demanderaient ce qu'ils ont mal fait (réponse: rien). Si toutes les conditions préalables ne sont pas remplies, c'est une API peu fiable. Imagine Google a publié une mise à jour où le OnClickListener d’un bouton OnClickListener parfois pas, à moins que vous ne OnClickListener votre ROM à partir de rien… Pour moi personnellement, c’est une grosse limitation.

Il continue:

Publier des fichiers ZIP compressibles n’a aucun sens, car le port n’est conçu que pour recompiler une ROM à partir de rien .

Et comme je le craignais, il n’ya pas un seul avertissement indiquant que c’est un port incomplet qui échouera souvent à remplir le contrat de l’API . ???? C'est mauvais pour les développeurs et les utilisateurs, ils devraient au moins savoir qu'ils sont incomplets pour pouvoir décider s'ils souhaitent le prendre en charge / l'utiliser. Je n'oserais jamais faire quelque chose comme ça sans un gros avertissement. En fait, comme je suis plutôt perfectionniste, je ne publierais pas du tout une version incomplète, la fiabilité est très importante pour moi.

Je viens de vérifier mon journal Git et j'avais la connexion de base (comme dans ce port) prête en octobre. Depuis lors, j'ai travaillé sur la suppression des limitations. Pour le rendre plus fiable sur les ROM pré-compilées, j'aurais aussi pu porter la partie de recompilation, mais ce n'est toujours pas idéal. Comme expliqué ci-dessus, nous avons maintenant JIT, ce qui nous permet de conserver toutes les optimisations, n'invalidant que (et éventuellement recompilant) les méthodes directement affectées par le hook. C'est assez difficile, car il ne suffit pas de copier / coller. Et tant que cela ne sera pas fait, je ne publierai rien. 9 mois pour cela (jusqu'à maintenant), c'est vraiment long, je sais, mais bon, c'est mon temps libre et par exemple, en raison du déménagement dans un nouvel appartement, je ne pouvais pas travailler sur Xposed pendant plusieurs mois (!), et n’avait que très peu de temps sinon.

Nous devons préciser que ces développements récents ne sont pas le véritable «Xposed» que vous connaissez et que vous aimez tous, mais ils vous permettent, sur le plan fonctionnel, d’utiliser certains modules du framework Xposed à l’aide du Android Nougat. Nous ne vous reprocherons pas de ne pas attendre la version officielle, plus stable et plus compatible de Xposed Framework pour Android Nougat, mais nous tenons à préciser que cette itération est simplement une mesure palliative destinée à satisfaire les besoins de certains utilisateurs. les utilisateurs en ce moment. Ce n'est probablement pas comme cela que Xposed sera traité à l'avenir.


Téléchargez le framework Xoffed non officiel pour le nougat sur les forums