Posez votre question Signaler

Fichier APK [Résolu]

coconiut 32Messages postés dimanche 30 juin 2002Date d'inscription 30 décembre 2014 Dernière intervention - Dernière réponse le 10 août 2013 à 20:55
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
Lire la suite 
Réponse
+3
moins plus
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).
Ajouter un commentaire
Réponse
+1
moins plus
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.

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.dex
Un 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 ...
Ajouter un commentaire
Réponse
+0
moins plus
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...
gravgun 4049Messages postés dimanche 12 juin 2011Date d'inscription ContributeurStatut 29 juillet 2015 Dernière intervention - 10 août 2013 à 19:09
Tout dépends des conditions d'utilisation du site, ils peuvent aussi bien autoriser la modification car c'est ton appli que l'interdire car l'APK contient du code qui leur appartient.
Regardes les conditions, c'est forcément stipulé quelque part.
Répondre
Ajouter un commentaire
Ce document intitulé «  Fichier APK  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.