Fichier APK
Résolu
coconiut
Messages postés
42
Date d'inscription
Statut
Membre
Dernière intervention
-
ryko1820 Messages postés 1677 Date d'inscription Statut Membre Dernière intervention -
ryko1820 Messages postés 1677 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Peut on ouvrir un fichier APK dans eclipse et le "bidouiller" par la suite avec du code java où le fichier est il déjà compilé ?
merci
Peut on ouvrir un fichier APK dans eclipse et le "bidouiller" par la suite avec du code java où le fichier est il déjà compilé ?
merci
A voir également:
- Peut on supprimer fichiers apk
- Supprimer rond bleu whatsapp - Guide
- Vidmate apk - Télécharger - TV & Vidéo
- Fichier impossible à supprimer - Guide
- Supprimer une page word - Guide
- Comment ouvrir un fichier apk ? - Guide
3 réponses
Salut, oui les apk contiennent déjà du java compilé, modifié sous forme de bytecode pour la machine vituelle d'Android, Dalvik.
Directement c'est pas modifiable dans éclipse, mais il existe un projet, dex2jar, qui permet de convertir les apk en jar, avec du java normal dedans, qu'il faudra par la suite décompiler avec par exemple JD.
Je tient à préciser que la décompilation et modification est illégale si tu t'as pas le droit de le faire (licence qui l'interdit; sauf si autorisation de l'auteur). C'est légal si la licence le dit, ou que c'est un logiciel libre (décompiles pas alors, cherches la source).
Directement c'est pas modifiable dans éclipse, mais il existe un projet, dex2jar, qui permet de convertir les apk en jar, avec du java normal dedans, qu'il faudra par la suite décompiler avec par exemple JD.
Je tient à préciser que la décompilation et modification est illégale si tu t'as pas le droit de le faire (licence qui l'interdit; sauf si autorisation de l'auteur). C'est légal si la licence le dit, ou que c'est un logiciel libre (décompiles pas alors, cherches la source).
Hello,
En vertu du code de la propriété intellectuelle (et plus précisément de l'article Art. L. 122-6) on trouvera ce que l'on a le droit de faire en France en matière de rétroingénierie ... En clair, cela dépends surtout des CLUF de chaque programme ...
Ceci-dit, cela fait maintenant quelques jours que j'ai mon premier terminal Androîd et je n'ai pu m'empêcher de "patcher" un programme que j'aime bien mais dont le fonctionnement normal ne me satisfaisait pas, et c'est vraiment très simple ...
Comme avant d'essayer je n'y connaissais rien et que c'est quand même un comble pour un informaticien de ne pas savoir comment marche sa machine, je vous met le résultat de mes expérimentations fructueuses en espérant que cela fera gagner du temps aux autres.
Un .apk est en fait un fichier compressé (que l'on peut décompresser avec 7zip par exemple) et qui contient entre autres un fichier classes.dex (qui est le fichier java compilé, le coeur de l'application), des fichiers de ressources nécessaires au programme (des .pcm, des .txt, des base de données, etc ...) et un répertoire manifest qui est utilisé lors de l'installation et qui contient la signature (date, checksum, etc ...) des fichiers de l'apk.
J'ai pour ma part utilisé baksmali / smali (sans wrapper : en ligne de commande) pour réaliser la décompilation puis recompilation et ils m'ont vraiment donné entière satisfaction ... (Ayant le SDK android d'installé je ne peut confirmer si il est nécessaire ou inutile pour l'utilisation de ces programmes java).
C'est bien évidemment le fichier classes.dex de l'apk que l'on décompile avec baksmali.
Comme avec tous les décompilateurs on obtient pas un vrai code source lisible, joliment écrit et commenté mais une masse de petits fichiers xxx.smali (suivant la complexité de son programme) dans un répertoire "out" qu'il faut ensuite analyser un par un, pour trouver ce que l'on veut modifier.
Une fois les modifications réalisées il ne reste plus qu'a recompiler avec smali.
On autorise les apk non market dans la configuration de sa machine.
Eventuellement on resigne l'appli (car la taille du .dex ayant changé son checksum (dans le répertoire manifest) n'est plus correcte) avec testsign , autosign ou autre (On désinstalle l'appli d'origine), on installe l'appli. customisée
... et si on a assuré, elle fonctionne toujours et cette fois, de la façon que l'on souhaite ...
En vertu du code de la propriété intellectuelle (et plus précisément de l'article Art. L. 122-6) on trouvera ce que l'on a le droit de faire en France en matière de rétroingénierie ... En clair, cela dépends surtout des CLUF de chaque programme ...
Ceci-dit, cela fait maintenant quelques jours que j'ai mon premier terminal Androîd et je n'ai pu m'empêcher de "patcher" un programme que j'aime bien mais dont le fonctionnement normal ne me satisfaisait pas, et c'est vraiment très simple ...
Comme avant d'essayer je n'y connaissais rien et que c'est quand même un comble pour un informaticien de ne pas savoir comment marche sa machine, je vous met le résultat de mes expérimentations fructueuses en espérant que cela fera gagner du temps aux autres.
Un .apk est en fait un fichier compressé (que l'on peut décompresser avec 7zip par exemple) et qui contient entre autres un fichier classes.dex (qui est le fichier java compilé, le coeur de l'application), des fichiers de ressources nécessaires au programme (des .pcm, des .txt, des base de données, etc ...) et un répertoire manifest qui est utilisé lors de l'installation et qui contient la signature (date, checksum, etc ...) des fichiers de l'apk.
J'ai pour ma part utilisé baksmali / smali (sans wrapper : en ligne de commande) pour réaliser la décompilation puis recompilation et ils m'ont vraiment donné entière satisfaction ... (Ayant le SDK android d'installé je ne peut confirmer si il est nécessaire ou inutile pour l'utilisation de ces programmes java).
C'est bien évidemment le fichier classes.dex de l'apk que l'on décompile avec baksmali.
java -jar baksmali-2.0b5.jar classes.dex
Comme avec tous les décompilateurs on obtient pas un vrai code source lisible, joliment écrit et commenté mais une masse de petits fichiers xxx.smali (suivant la complexité de son programme) dans un répertoire "out" qu'il faut ensuite analyser un par un, pour trouver ce que l'on veut modifier.
Une fois les modifications réalisées il ne reste plus qu'a recompiler avec smali.
java -jar smali-2.0b5.jar out -o new_classes.dexUn nouveau fichier classes.dex est produit. On remplace dans l'apk l'ancien, par le nouveau ...
On autorise les apk non market dans la configuration de sa machine.
Eventuellement on resigne l'appli (car la taille du .dex ayant changé son checksum (dans le répertoire manifest) n'est plus correcte) avec testsign , autosign ou autre (On désinstalle l'appli d'origine), on installe l'appli. customisée
... et si on a assuré, elle fonctionne toujours et cette fois, de la façon que l'on souhaite ...
Merci gravgun,
je m'explique, beaucoup de sites proposent de programmer des applications android sans connaissances en programmation sur leurs serveurs et génère un fichier apk que l'on peut enregistrer sur pc ou mobile et ainsi le tester. J'ai réalisé une application que je voudrais personnelle, ne pas la publier et la garder sur mon mobile. Mais je voudrais modifier cette application et pouvoir la bidouiller...
je m'explique, beaucoup de sites proposent de programmer des applications android sans connaissances en programmation sur leurs serveurs et génère un fichier apk que l'on peut enregistrer sur pc ou mobile et ainsi le tester. J'ai réalisé une application que je voudrais personnelle, ne pas la publier et la garder sur mon mobile. Mais je voudrais modifier cette application et pouvoir la bidouiller...