Xposed Framework n'a pas besoin d'être présenté aux lecteurs XDA. Lorsqu'on lui pose des questions sur les choses que notre communauté déteste le plus Lollipop, le commentaire le plus voté lors de la discussion était qu'il avait rompu le soutien à Xposed. En fait, de nombreux membres du forum ont même refusé de mettre à jour vers Lollipop spécifiquement pour cette raison. Mais tout change maintenant, puisque le très attendu Xposed Framework est enfin arrivé pour Android Lollipop.
Si vous n'êtes pas déjà familier avec Xposed, en termes simples, c'est une aubaine pour la communauté des moddeurs. Xposed ne nécessite aucun flashage de ROM, mais apporte des tonnes de personnalisations et d'ajustements que les utilisateurs peuvent installer comme des applications sur des appareils rootés. C’est incroyablement simple à utiliser et avec un risque limité. Et désormais, tous les passionnés d'Android sur Lollipop peuvent profiter des avantages de ce fantastique projet sur leurs appareils. Prenez votre téléchargement et lancez-vous dans le modding !
rovo89 a également eu la gentillesse de nous fournir une séance de questions-réponses sur le dernier projet. Vous pouvez trouver ci-dessous les réponses à toutes vos questions sur le projet.
Pourquoi cela a-t-il pris si longtemps? ART a été publié il y a plus d'un an !
Tout d’abord, de nombreuses personnes continuent de demander de l’aide pour le TAR. Lollipop a bien plus de changements que cela, tels que des politiques SELinux encore plus strictes, des ROM 64 bits et des changements d'architecture que vous attendez d'une version majeure. Et bien sûr, ART lui-même est constamment amélioré; il existe de grandes différences entre ART pour KitKat et ART pour Lollipop.
L’une des raisons est donc la grande complexité, qui a nécessité de très nombreuses heures de travail pour la recherche, le développement et les tests.
Une autre raison est qu'il y a d'autres choses dans ma vie que Xposed, donc il y a eu des semaines, voire des mois, pendant lesquels j'ai à peine regardé le code.
Devons-nous réécrire tous les modules ?
Non, l'API Xposed est pratiquement inchangée. Xposed résume tous les détails, les modules n'ont donc pas besoin de se soucier de savoir s'ils fonctionnent sur Dalvik ou ART. De nombreux modules fonctionneront effectivement sans aucun changement, notamment ceux qui modifient le comportement des applications utilisateur. Les modules ciblant le comportement du système devront peut-être être ajustés au nouveau code-cadre Android, qui n'est pas causé par ART, mais simplement par les changements d'architecture et de code qui se produisent entre deux appareils Android. libère. Le plus important est que le code des services système a été déplacé vers un fichier séparé. Pour la plupart des modules concernés, cela peut être résolu par une petite refactorisation (en déplaçant le code vers un autre endroit).
Est-ce que ça marche réellement ?
Oui! Au moins pour moi, cela fonctionne bien sur mon appareil quotidien (Nexus 5 sur CM12) et aussi sur mon Nexus 9 (payé par XDA – merci !). Le téléphone est stable comme d'habitude et les applications fonctionnent correctement. Et évidemment, les modules et leurs remplacements de hooks/ressources fonctionnent également correctement, sinon cela ne servirait à rien de publier quelque chose.
Mais alors pourquoi est-ce une version alpha ?
Parce qu'il y a eu d'énormes changements depuis la dernière version stable qui doivent être testés par des personnes sachant utiliser une récupération, échapper aux boucles de démarrage et signaler correctement les bogues. Je conseille fortement aux débutants d'attendre que Xposed ait été testé par suffisamment de personnes expérimentées.
Il existe également certains cas extrêmes qui n'ont pas encore été testés, tels que l'accrochage des méthodes JNI (natives) et des méthodes qui sont en cours d'exécution au moment de leur accrochage.
Je veux l'installer. Maintenant! Qu'est-ce que je dois faire?
Assurez-vous d’avoir lu mes mots ci-dessus et que vous connaissez les composants internes de votre téléphone. Évidemment, vous devez être sur une ROM Lollipop et disposer d’une bonne sauvegarde de vos données. Pour l'instant, je publierai uniquement la version ARMv7. Le 64 bits est plus complexe, essayons donc d’abord la variante « facile ».
Pour l'instant, l'installation doit être effectuée manuellement dans une récupération personnalisée. Flasher le fichier zip installera :
- app_process32_xposed et quelques liens symboliques
- libexposed_art.so
- libart.so et certains binaires + bibliothèques associés (basés sur 5.0.2, améliorés avec la prise en charge du hooking, etc.)
- XposedBridge.jar (maintenant stocké dans /system/framework)
Les sauvegardes des fichiers existants seront créées automatiquement et pourront être restaurées ultérieurement.
Ça ne marche pas/je n’aime pas ça! Comment puis-je le désinstaller ?
Le moyen le plus simple consiste à restaurer une sauvegarde ou à flasher la partition système. Un fichier zip pour la désinstallation n'a pas encore été créé.
Pourquoi remplacez-vous les fichiers ART sur mon appareil? C’est plus invasif que sur Dalvik, cela entraînera des problèmes de performances importants et sera instable !
J'ai écrit quelques raisons sur GitHub. Oui, c’est plus invasif, donc j’essaie de l’éviter depuis longtemps, mais d’un point de vue technique et orienté support, je pense que c’est la meilleure option.
Moins performant que l'ART original? Probablement, car j'ai dû désactiver certaines optimisations pour rendre possibles certains types de hooks. Cependant, cela n’affecte qu’une fraction de toutes les méthodes et même pour celles-ci, la perte de performances n’est certainement ni significative ni perceptible, voire mesurable. Il existe encore des milliers d'autres optimisations effectuées par ART, et j'ai essayé d'en désactiver le moins possible tout en offrant autant de flexibilité que possible.
La stabilité est bonne comme mentionné ci-dessus. Par rapport à l’approche que j’ai utilisée pour Dalvik (modifier les structures de données internes du runtime à partir de app_process), je suis même presque sûr que remplacer complètement les bibliothèques est une solution beaucoup plus fiable chemin. Je pourrais intégrer proprement mes modifications dans le code existant et réutiliser les fonctions associées, alors que de nombreux hacks et hypothèses seraient nécessaires pour d'autres moyens.
Allez-vous enfin rendre public le code source ?
Bien sûr, vous le trouverez sur GitHub très peu de temps après la sortie de la version alpha, dans une branche distincte pour le moment.
Cela signifie-t-il que les anciennes versions d’Android ne sont plus prises en charge ?
Non! Le nouveau code se compile sur toutes les versions 4.x d'Android et doit simplement être testé avant une version unifiée. Mais d’abord, je dois être sûr que cela fonctionne bien pour Lollipop. Il est possible que le support ART soit rétroporté sur KitKat, mais cela est moins prioritaire.
Comment puis-je vous remercier pour votre travail ?
De nombreuses personnes ont demandé des moyens de donner quelques dollars, j'ai donc créé un don page maintenant.
Combien dois-je donner pour que vous puissiez ajouter la fonctionnalité X ou un module qui fait Y ?
Il ne s’agit pas de faire un don, mais de payer quelqu’un dans l’attente d’un travail futur. Je ne suis pas intéressé par les emplois indépendants.