2010-10-06 4 views
28

J'essaie de désosser une application android existante et de comprendre comment une interface utilisateur particulière est construite. J'ai trouvé que je peux renommer l'apk pour compresser et voir une partie de la source compilée. Le répertoire res/layout est rempli avec tous les fichiers xml qui définissent l'interface utilisateur, mais alors qu'ils ont l'extension xml, ils ne sont pas au format XML. Est-il possible de convertir ces fichiers en balisage basé sur du texte?Extraire Android .apk et lire le contenu du fichier XML dans res/layout

+0

Qu'est-ce que vous essayez exactement à l'ingénierie inverse? S'il s'agit d'un produit commercial de quelqu'un, vous ne devriez pas jouer avec. Si son open source, vous devriez aller au projet lui-même pour regarder le code. Concevoir des mises en page xml n'est pas si compliqué en tout cas ... pourquoi ne pas simplement demander "comment puis-je créer une mise en page qui ressemble à X" à la place? –

+0

Cette clarification est utile. Peut-être que cela pourrait être une bonne idée de poser une question sur la façon de traiter ce problème de haute résolution (ou à la place de celui-ci). Quelqu'un sait probablement comment résoudre ce problème s'il y a un certain nombre d'applications qui s'affichent sans problème. Aussi, je conseillerais encore un peu de prudence sur les questions de rétroingénierie. Ce n'est pas parce que vos intentions sont pures que les lecteurs suivants seront les mêmes. –

+0

Il est plus rapide et plus précis de se pencher sur la conception XML d'un autre utilisateur, puis de poster un Q ici et espérer que quelqu'un devine. Je regarde toujours d'abord dans le fichier XML d'autrui et ensuite je demande "comment l'améliorer". "Hacker" dans des fichiers XML n'est pas mauvais du tout (ça ne me dérangerait pas de casser mes fichiers XML). Le piratage de la logique Java est une chose mauvaise et immorale. – sandalone

Répondre

32

Je pense que vous pouvez utiliser android-apktool. Les fichiers XML semblent très bien.

+0

Je suis très heureux de vous aider – pengwang

+0

Pouvez-vous me dire comment l'utiliser J'ai téléchargé le fichier de ce lien et j'ai obtenu un fichier jar. –

+0

dossier smali et androidmanifest.xml est visible – Prasad

1

Commencez par recopier votre .apk à .zip. A l'intérieur, vous obtiendrez une version compilée des fichiers de classe Java appelés .dex. appliquez l'astuce suivante pour convertir ce dex en fichiers de classe

Il existe un moyen de le faire. Un moyen légèrement atypique est de télécharger cet outil opensource dextojarhttp://code.google.com/p/dex2jar/

Ceci convertira vos fichiers dex en fichiers JAR. Unjar ces fichiers pour obtenir des fichiers de classe Java.

Inversez ensuite les fichiers de classe Java pour obtenir le code Java. Ne l'utilisez pas pour casser certains projets commerciaux.

Merci

+0

Informations utiles, je cherche les fichiers xml tho, pas les classes java. – nolan

+0

cette méthode n'est pas supportée maintenant, connaissez-vous une autre méthode que apktool pour obtenir les fichiers xml. – AndroidHacker

+0

Downvoted parce que cela ne répond pas à la question. La question concerne spécifiquement le XML à l'intérieur des fichiers APK, qui est dans un format non textuel. La réponse correcte (en utilisant android-apktool) permet la récupération de ces fichiers, mais il ne suffit pas de changer le nom en zip. Utiliser 'dextojar' est utile mais ne contribue pas à répondre à la question posée. –

-1

si vous voulez juste savoir la construction de l'interface utilisateur, vous pouvez utiliser la visionneuse Hiérarchie

+0

Downvoted pour ne pas fournir un lien, une description ou une justification – Penn

3

Créer un nouveau dossier et placez le fichier .apk que vous souhaitez décoder dans ce.

Télécharger la dernière version de here.

Ouvrir cmd puis naviguer dans le répertoire racine de APKtool et tapez la commande suivante:

apktool d myApp.apk 

(où myApp.apk est le nom que vous voulez décoder)

maintenant vous avez un fichier dossier dans ce dossier et peut facilement lire les fichiers XML de l'apk.

Voici le link pour plus de détails les instructions d'installation

Questions connexes