Jump to content
cybertaf62

[TUTO] Décompiler, traduire , compiler et signer une apk.

Recommended Posts

Ce tuto pour vous relater la méthode que j'ai utilisée pour traduire mms.apk dans un autre topic.

Évidemment, votre mobile doit être rooté.

Vous devez avoir une machine java installée sur votre machine (JRE 1.6).

Pour décompiler et compiler l'apk on utilisera apktool

Pour signer l'application compilée sign+

Préparatifs :

1/ Apktool

Télécharger et installer apktool sur cette page :

http://code.google.c.../downloads/list

Vous devez télécharger apktool 1.4.3 et l'archive qui correspond à votre système.

Décompressez tout dans un même dossier.

2/ Sign+

Télécharger et installer dans un autre dossier le logiciel pour signer les applis

http://forum.xda-dev...ad.php?t=997180

3/ Framework

Sur votre mobile par exemple avec Root Browser Lite

Récupérer le fichier de votre téléphone

framework-res.apk

dans

/system/framework

copier le dans le dossier apktool

en ligne de commande dans le dossier apktool on installe le framework avec cette commande :

apktool if framework-res.apk

Décompiler :

1/ Copier l'appli à décompiler dans le même dossier qu'apktool, exemple mms.apk

2/ en ligne de commande taper :

apktool decode mms.apk 

apktool affichera :

I: Baksmaling...
testI: Loading resource table...
I: Loaded.
I: Loading resource table from file: C:\Users\Fred\apktool\framework\1.apk
I: Loaded.
I: Decoding file-resources...
I: Decoding values*/* XMLs...
I: Done.
I: Copying assets and libs...

3/ Un dossier a été créé avec le nom de l'appli, il contient le code décompilé.

Traduire :

Pour la traduction il faut un éditeur xml ou tout simplement le bloc-notes

Dans mms/res on trouve un dossier

values  

et autant de dossiers que de langues installées ex pour la france.

values-fr

Dans chaque dossier se trouve des fichiers xml avec les traductions. Pour traduire une appli, créez un dossier dossier

valuez-fr

et copiez-y tous les fichiers xml avec des chaînes à traduire.

On ne traduit que le texte entre les balises sans toucher au reste, par exemple :

<string name="app_label">Messages</string>

<string name="new_message">Nouveau message</string>

Compilation/Signature :

1/ Une fois que les traductions sont faites, il faut recompiler l'application.

apktool build mms mms2.apk

mms : nom du dossier

mms2.apk nom de l'apk à créer

2/ Signature de l'application :

Exécuter sign+ en administrateur

Parcourir, sélectionner le nouvel apk puis "signer les fichiers"

3/ Installation dans le téléphone

Copier votre appli ex

mms2.apk

dans

/system/apk

puis changer les permissions rw-r-r

Si vous travaillez sur une appli déjà installé, prenez soin de la renommer ex: mm.apkb

4/ Enfin redémarrer le launcheur.

Edited by cybertaf62
  • Like 4

Share this post


Link to post
Share on other sites

Sympa, sa peux aider beaucoup de personne :)

Par contre, tu aurais du poster sa dans la section tutoriels ^^

Edited by H@st

Share this post


Link to post
Share on other sites

@Host, je savais pas trop où le placer, si un admin passe je crois qu'il le déplacera :-)

Share this post


Link to post
Share on other sites

Je vais demander à tib de le déplacer.

Et le @, c'est un a ^_^

  • Like 1

Share this post


Link to post
Share on other sites

Je vais demander à tib de le déplacer.

Et le @, c'est un a ^_^

lol

Share this post


Link to post
Share on other sites

Quand tu parle de l'invite de commande c'est bien sous windows?

Car quand je rentre la ligne pour installer le framework ,ca me dit que java n'est pas reconnu en tant que commande interne.

:)

ps: est ce important d'extraire les archives dans un dossier nommé apktool ou bien le nom de ce dossier n'a pas d'importance.

Ne faut il pas installer le sdk car visiblement il me manque un truc.

Merci

Edited by MNK

Share this post


Link to post
Share on other sites
Quand tu parle de l'invite de commande c'est bien sous windows?

Oui mais sous Linux ça marche aussi.

ps: est ce important d'extraire les archives dans un dossier nommé apktool ou bien le nom de ce dossier n'a pas d'importance.

Le nom du dossier n'a pas d'importance,

ca me dit que java n'est pas reconnu en tant que commande interne

mais effectivement il faut un java installé sur ta machine.

Ton dossier doit contenir ceci :

15/05/2011  17:23		 5 445 617 aapt.exe
03/09/2010  18:13				69 apktool.bat
08/12/2011  03:38		 3 090 514 apktool.jar
26/04/2012  01:38		 3 307 699 framework-res.apk

Edited by cybertaf62

Share this post


Link to post
Share on other sites

Salut

merci java est bien installé,j'ai exactement les meme fichiers dans un dossier,mais toujours le même message,je ne comprend pas.

Je vais essayer de chercher ce qui ne va pas.

:)

Share this post


Link to post
Share on other sites

Envoie une copie d'écran on ne sait jamais B)

Share this post


Link to post
Share on other sites

oui voila et je comfirme java est bien installé .

20120430210723.jpg

Share this post


Link to post
Share on other sites

C'est un problème de variable d'environnement, ton Seven ne trouve pas java :

EDIT :
J'ai trouvé :D :D :D :D ! Après 2 jours de recherches sur Google.
En fait, c'est le PATH (le chemin) qui n'est pas indiqué !
Donc même si vous avez installé la toute dernière version de Java dlamorkitukiroxtou, ça ne fonctionnera pas puisque Windows ne sait pas où aller chercher Java !
Pour remédier à cela :
Clic-droit sur "Ordinateur" (ou "Poste de travail", selon les versions de Windows)
Clic-gauche sur "Propriétés"
Dans la colonne de gauche, clic-gauche sur "Paramètres système avancés"
Une fenêtre s'ouvre, allez dans l'onglet "Paramètres système avancés" (eh oui, encore), normalement vous y êtes déjà
Clic-gauche sur le bouton "Variables d'environnement..."
Dans la partie "Variables système" > chercher dans la liste "Path", clic-gauche dessus
Clic-gauche sur le bouton "Modifier..."
A la fin, rajoutez ;C:\Program Files (x86)\Java\jre6\bin\ (n'oubliez pas le point-virgule au début et vous modifiez bien sûr le chemin avec le votre, suivant où vous avez installé Java)
Clic-gauche sur "Ok"
Clic-gauche sur "Ok"
Clic-gauche sur "Ok"

Et voilà, ça fonctionne, de rien :D !

J'ai trouvé ce code ici

Edited by cybertaf62

Share this post


Link to post
Share on other sites

Salut

j'ai modifié la variable d'environnement avec le chemin d'installation de java rien y fait ca fonctionne toujours pas.

Comme je suis sous Windows 7 X 64 le chemin vers program files doit s'appeller autrement mais je vais chercher .

Merci pour ce tuyau :)

:)

Share this post


Link to post
Share on other sites

Bonjour,

sous Windows 7 x64 il y a Program Files (Programmes pour les programmes en 64 bits) et Program Files (x86) pour les programmes en 32 bits.

Edited by Tilt56

Share this post


Link to post
Share on other sites

Oui je sais.

Mais ca ne fonctionne pas .

Comme ma version Windows 7 est une version unattend ca vient peut etre de la .

Je vais en installer une officielle sous virtual box et refaire un essai.

Comme je fais parti des rare privilegiés a travailler aujourd'hui ^^ je verrais ca demain.

Merci

ps:le chemin pour java est=>;C:\PROGRA~2\Java\jre6\bin

et ça fonctionne .

merci

Edited by MNK

Share this post


Link to post
Share on other sites

J'ai une erreur quand j'essaie de recompiler l'application avec les fichiers modifié mais pas avec les fichier original. :(

Share this post


Link to post
Share on other sites
J'ai une erreur quand j'essaie de recompiler l'application avec les fichiers modifié mais pas avec les fichier original. :(

Quoi comme erreur ?

si tu as mis des caractères spéciaux genre des accents il faut encadrer ta chaîne de guillemets

Share this post


Link to post
Share on other sites

Je vais voir sa merci

Tu pourrais me donner un exemple ?

Sinon très bon tuto je te remercie pour le partage.

Edited by bos773
  • Like 1

Share this post


Link to post
Share on other sites

Moi j'ai un gros soucis, j'ai le SDK d'installer, le JDK, et je JRE6, j'ai modifier les vrialbes, mais même avec ça les 3 ne marchent pas : enfin, quand dans apktools je lance la commande bat elle se ferme directement. Je précise bien que dans le fichier il se trouve juste aapt.exe ; apktools.bat; apktools.jar et framework-res.apk

Share this post


Link to post
Share on other sites

en y regardant de plus pres je m'en suis apperçu, vous savez, les parametres style ICS, j'ai voulu le traduire, c'est fait, mais il faut recompiler et signer, et apktool ne veux pas compiler.

Il me met :

xception in thread "main" brut.androlib.AndrolibException: brut.directory.Path

tExist: apktool.yml

at brut.androlib.Androlib.readMetaFile(Androlib.java:142)

at brut.androlib.Androlib.build(Androlib.java:159)

at brut.androlib.Androlib.build(Androlib.java:154)

at brut.apktool.Main.cmdBuild(Main.java:182)

at brut.apktool.Main.main(Main.java:67)

aused by: brut.directory.PathNotExist: apktool.yml

at brut.directory.AbstractDirectory.getFileInput(AbstractDirectory.java

03)

at brut.androlib.Androlib.readMetaFile(Androlib.java:138)

... 4 more

Share this post


Link to post
Share on other sites

Salut SweetPurple,

Même problème que toi avec la Rom Apocalypse.

Par contre j'ai réussi avec la Rom Democraty

Tu as essayé avec quelle Rom ?

Share this post


Link to post
Share on other sites

détérage de topic mon amour .... ^^

Je tente une modif simple du framework-res.apk, modif qui porte sur le fichier bools.xml pour activer la rotation auto du lockscreen.

En suivant scrupuleusement les étapes de la premiere page, apres modif du fichier, au moment de faire le rebuild:

1 - j'ai un warning "W: Could not find sources"

2 - le fichier n'a pas la même taille que l'original

est ce grave docteur ?

si non, comment dois-je faire pour replacer mon nouveau fichier dans le systeme ? est-ce possible a chaud avec un explorateur de fichier root ? ou est ce que je dois faire un zip flashable ?

Merci

Share this post


Link to post
Share on other sites

de mon cote avec 3 facon different (programme).

je suis toujour bloqué a la recompliation.

toujour des erreurs...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.






×
×
  • Create New...