46 votes

Comment conserver deux versions d'une application installée ?

L'Android Market vient de mettre à jour une application dans mon appareil. J'ai aimé la mise à jour, mais elle est complètement différente de la dernière version qui était aussi ma préférée. Donc, je veux garder la dernière version aussi. J'ai l'apk de la dernière version grâce à Titanium Backup. Mais, je ne peux pas l'installer sans remplacer la version actuelle (l'architecture d'Android est nulle). Y a-t-il un moyen de le faire ? Hacks etc.
Note : Je veux conserver la version actuelle qui doit être connectée à Market pour recevoir les futures mises à jour.

29voto

R R Points 6242

C'est possible, mais pas simple pour les raisons suivantes elderathis mentionné. Vous devez apktool . Se référer à ce guide sur la façon de l'utiliser. Et ce sur la signature de l'apk après que tu aies terminé.

Vous devez modifier le fichier AndroidManifest.xml. Trouvez la ligne qui ressemble à ceci :

manifest package="com.example.app"

et le changer en quelque chose comme :

"com.example.app.foo"

Après avoir terminé, recompilez puis démissionnez. Pour restaurer vos données, essayez ce qui suit via adb :

adb rm /data/data/com.example.app.foo
adb push /data/data/com.example.app /data/data/com.example.app.foo

Donde com.example.app est le nom du paquet de l'original et com.example.app.foo est le modifié.

Il y a toujours une petite chance que l'application se brise, ou selon la façon dont l'application est structurée, vous pouvez recevoir un dialogue à chaque changement d'écran vous invitant à choisir l'application que vous voulez lancer, mais cela vaut vraiment la peine d'essayer si vous le voulez vraiment.

Bien entendu, les deux applications ne partageront pas les mêmes paramètres et données.

2 votes

Super... Je ne pense pas que ce soit sujet à des problèmes légaux puisque je ne vais pas le distribuer/vendre... Merci !

1 votes

Cela dépend de votre pays. En Hongrie, il est légal de faire de l'ingénierie inverse sur une application à des fins d'apprentissage ou personnelles, mais je ne sais pas pour le reste du monde. Mais comme vous ne distribuez rien, vous n'aurez pas d'ennuis.

17voto

David Negron Points 971

Vous ne pouvez pas faire ça. Chaque application Android a un nom de paquet, qui définit effectivement l'espace de nom Java/Dalvik que ses classes occupent. Il n'est pas possible d'installer deux paquets du même nom, car cela créerait un chevauchement des espaces de noms. C'est pourquoi l'ancien paquet est toujours remplacé lorsque vous en installez un nouveau. Le seul moyen d'y parvenir est d'obtenir les sources de l'application et de modifier toutes les définitions de paquetage.

8voto

totti Points 373

Faites-le en 5 minutes

Méthode : Changez le nom du paquet pour qu'Android le reconnaisse comme une application différente.

Pas d'APKtool, pas d'adb, pas de compétences de super utilisateur nécessaires.

Outils nécessaires

  • PC avec JAVA ( Windows, Linux, Mac ) ( JDK 8 de préférence )
  • ApkRename

Étapes

  1. Sauvegarder/télécharger une copie de l'application souhaitée ( app.APK )
  2. Transfert vers le PC
  3. Sur PC, téléchargez JAVA et ApkRename.
  4. Changez le nom du paquet en fournissant le chemin du fichier APK et le nouveau nom du paquet à ApkRename.
  5. Signer l'APK en utilisant ApkSign
  6. Transférez le nouvel APK sur le téléphone et installez-le.

NOTE : En cas de difficulté à signer l'APK, utilisez une application d'édition d'APK pour Android telle que Advanced permission manager et faites n'importe quelle modification, appuyez sur enregistrer et installer. À ce moment-là, ils signeront l'application.

2voto

Mark Points 3011

Vous pouvez essayer de reconditionner l'application. Une fois, j'ai installé une version modifiée d'un jeu et le résultat était deux jeux. Si je me souviens bien, les noms des paquets n'étaient pas les mêmes.

0voto

user39670 Points 1

Parfois, il y a des références dans la bibliothèque exécutable ( .so ), et changer le nom du paquet (également smali -> classes.dex) n'aide pas non plus.

Dans les cas simples, recherchez ApkEditor .

1 votes

C'est un bon début, mais cela n'explique pas les changements que vous devez faire dans ApkEditor. Si vous voulez que votre réponse soit utile, vous devriez la modifier pour ajouter un peu plus d'informations.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X