Sans racines
Désolé mais AFAIK ce n'est pas possible :( Je n'ai jamais vu une application/outil/utilité modifier avec succès les données d'autres applications, même pas en lecture !
Vous pouvez également le faire dans une récupération personnalisée, mais qui utilise une récupération personnalisée sans rooter ? Lisez donc ci-dessous.
Racine simple (méthode manuelle)
Ne le prenez pas trop mal. Il suffit de déplacer les données d'origine, de désinstaller l'application d'origine et d'installer la nouvelle, puis de déplacer les données et de les réinstaller. chown
. Des exemples de commandes de l'interpréteur de commandes sont présentés ci-dessous.
# mv /data/data/com.example.foo /data/media
* UNINSTALL_ORIGINAL_APP
* INSTALL_NEW_APP
# ls -ld /data/data/com.example.foo
* take note of the user (e.g. u0_a123)
# mv /data/media/com.example.foo /data/data
# chown -R 10123.10123 /data/data/com.example.foo
Explications pour chaque étape :
- Déplacer les données de l'application d'origine vers un autre endroit. Comme Androis supprime automatiquement les fichiers non pertinents dans certains répertoires, nous avons besoin d'un endroit sûr comme Alt. AFAIK les fichiers inconnus sont ignorés dans
/data/media
c'est donc ce qui a été choisi.
- Remplacer l'app. Pas d'explication.
- Obtenir l'UID de l'application nouvellement installée. Un mauvais UID entraîne la suppression des données de l'application par l'installateur de paquets .
- Déplacer les données vers l'arrière et modifier l'UID.
Une petite remarque : la fonction intégrée chown
La commande n'accepte pas l'option -R
(récursif) par défaut dans Android L ou inférieur. Vous avez besoin de BusyBox dans ce cas. Sous Android M et supérieur, cela fonctionne très bien.
Utilitaires de racine
-
Titanium Backup
Avec TiBu, vous pouvez facilement sauvegarder les données existantes, puis supprimer l'ancienne application et installer la nouvelle en toute sécurité. Tant que les deux paquets ont le même nom, vous pouvez restaurer les données de l'application avec TiBu, intactes !
Cependant, cette solution est essentiellement une sauvegarde de données, et ne sera donc pas présentée ici. Si vous souhaitez en savoir plus sur la sauvegarde et la restauration des données, consultez notre rubrique tag wiki para sauvegarde , dans le cadre de la Sauvegardes basées sur les applications section.
Modules Xposed (le plus simple, recommandé par iBug)
XInstaller et son successeur, InstallerOpt peut permettre à Package Installer d'autoriser l'installation de paquets dont les signatures ne correspondent pas (en ignorant la vérification de la signature). Toutes vos données sont alors préservées et vous pouvez facilement passer d'une version à l'autre. C'est la méthode que j'utilise actuellement et elle fonctionne très bien. Malheureusement, Xposed n'est pas officiellement disponible pour Android N (pour l'instant), donc cette solution n'est valable que pour Android M et les versions inférieures.
Théoriquement, ils ne devraient pas causer de problème, car tout ce qu'ils font, c'est accrocher la fonction de vérification de la signature et changer sa valeur de retour en une valeur vraie, contournant ainsi la vérification. Si le paquet de remplacement présente d'autres défauts que la non-concordance des signatures, l'installation échouera quand même, de sorte qu'aucun paquet défectueux ne peut être installé même si vous ignorez la vérification des signatures.
Avis important
Il n'est pas recommandé de laisser cette option (ignorer la vérification de la signature) activée en permanence. En effet, elle crée une importante faille de sécurité, car des applications piratées (qui utilisent presque toujours une signature différente) peuvent également être installées. Personnellement, je ne l'active que lorsque c'est nécessaire et je la désactive dès que j'ai fini de remplacer mon paquet.