Comment ouvrir l'APK et comment le modifier ? Bases de l'édition des applications système Android (apk)

Apk éditeur professionnel, que vous pouvez télécharger sur Android sur notre site Web, vous permettra de pirater/modifier le contenu des fichiers de n'importe quelle application pour appareils mobiles et personnalisez-le à votre guise.

Particularités

Le programme est un utilitaire professionnel qui, entre les mains d'utilisateurs avancés, peut devenir un outil puissant pour éditer des applications pour Android. La fonctionnalité n'est pratiquement pas différente de celle similaire logiciel pour les ordinateurs personnels.

Que peut faire cet utilitaire ?

  1. Changez (traduisez) les noms d’autres applications.
  2. Modifier les dispositions, les couleurs et les motifs de l'architecture paramètres graphiques(par exemple, taille de l'icône).
  3. Changer la conception sonore, les fichiers multimédias.
  4. Supprimez les publicités.
  5. Contournez le blocage du contenu payant.
  6. Transférer la demande de mémoire interne appareils sur la carte SD.
  7. Changez la résolution et bien plus encore.

Pour comprendre comment utiliser l'utilitaire, vous devez télécharger apk editor pro et accéder au menu. Choisissez ensuite soit application installée sur Android, ou son fichier apk. Après cela, les données par défaut s'ouvriront, que l'utilisateur pourra modifier :

  • ressources d'édition ;
  • remplacement de fichiers ;
  • édition générale;
  • édition des données.

Le programme proposera d'installer la version modifiée. Cela ne fonctionne pas dans tous les cas, donc ancienne version doit être supprimé manuellement et un nouveau installé. Après la suppression, vous devez sélectionner dossier apkéditeur (pour plus de commodité, vous pouvez utiliser ES Explorer) parmi les programmes sur Android, rechercher le fichier d'application modifié et l'installer sur l'appareil.

Le programme est différent interface conviviale. La navigation est assez simple, mais l'utilisateur doit avoir notions de base Anglais pour comprendre.

Avantages et inconvénients

  1. Le programme ouvre à l'utilisateur un large éventail d'options pour personnaliser les applications.
  2. Le menu contient une section Aide, qui décrit simplement et en détail un grand nombre de fonctionnalités du programme éditeur. Par conséquent, les utilisateurs éloignés de la programmation n'auront pas à rechercher des exemples et des instructions d'édition sur des ressources tierces.
  3. Vous pouvez télécharger le programme gratuitement sur notre site Web.

L'utilisation de cet utilitaire nécessite certaines compétences et connaissances. Entre les mains d'un utilisateur inexpérimenté, la modification peut entraîner des violations d'intégrité. système de fichiers, ce qui entraînera finalement des échecs d'application. Dans le menu Aide, vous trouverez des exemples de conversion avec des images et des conseils pour utilisation correcteéditeur apk pro pour Android. Par conséquent, si vous souhaitez comprendre ce programme, suivez simplement les instructions.

Editeur - ça suffit outil utile pour ceux qui sont confrontés à une interface d'application peu pratique (manque de langue russe, publicité constante, bannières, etc.). Si vous avez déjà utilisé ce programme, partagez vos impressions ci-dessous dans les commentaires.

Parfois, certaines applications sur Android ne conviennent pas à l'utilisateur d'une manière ou d'une autre. Un exemple est publicité ennuyeuse. Et il arrive aussi que le programme soit bon pour tout le monde, mais que la traduction soit tordue, soit complètement absente. Ou, par exemple, le programme est un essai, mais obtenez version complète il n'y a aucune possibilité. Comment changer la donne ?

Introduction

Dans cet article, nous expliquerons comment désassembler un package APK avec une application, examiner sa structure interne, désassembler et décompiler le bytecode, et également essayer d'apporter plusieurs modifications aux applications qui peuvent nous apporter un avantage ou un autre.

Pour faire tout cela vous-même, il vous faudra au moins notions de base Langage Java, dans lequel les applications Android sont écrites, et Langage XML, qui est utilisé partout dans Android - depuis la description de l'application elle-même et ses droits d'accès jusqu'au stockage des chaînes qui seront affichées à l'écran. Vous aurez également besoin de pouvoir utiliser un logiciel de console spécialisé.

Alors, qu’est-ce qu’un package APK dans lequel absolument tous les logiciels Android sont distribués ?

Décompilation d'application

Dans cet article, nous n'avons travaillé qu'avec du code d'application désassemblé, mais si grandes applications en apportant des changements plus sérieux, comprendre le code smali sera beaucoup plus difficile. Heureusement, nous pouvons décompiler le code dex en code Java, qui, bien que non original et non compilé, est beaucoup plus facile à lire et à comprendre la logique de l'application. Pour ce faire, nous aurons besoin de deux outils :

  • dex2jar est un traducteur du bytecode Dalvik en bytecode JVM, sur la base duquel nous pouvons obtenir du code en langage Java ;
  • jd-gui est un décompilateur lui-même qui vous permet d'obtenir du code Java lisible à partir du bytecode JVM. Comme alternative, vous pouvez utiliser Jad (www.varaneckas.com/jad) ; bien qu'il soit assez ancien, il génère dans certains cas plus code lisible, que Jd-gui.

C'est ainsi qu'ils doivent être utilisés. Tout d'abord, nous lançons dex2jar, en spécifiant le chemin d'accès au package apk comme argument :

% dex2jar.sh mail.apk

En conséquence, le package Java mail.jar apparaîtra dans le répertoire courant, qui peut déjà être ouvert dans jd-gui pour afficher le code Java.

Disposition des packages APK et réception de ceux-ci

Sac plastique Applications Android, en substance, est fichier ZIP normal, qui ne nécessite aucun outil spécial pour visualiser le contenu et le décompresser. Il suffit d'avoir un archiveur - 7zip pour Windows ou une console décompressée sous Linux. Mais c'est à propos de l'emballage. Qu'est-ce qu'il y a à l'intérieur? En général, nous avons la structure suivante à l’intérieur :

  • META-INF/- contient un certificat numérique de l'application, identifiant son créateur, et les sommes de contrôle des fichiers du package ;
  • res/ - diverses ressources que l'application utilise dans son travail, telles que des images, une description déclarative de l'interface, ainsi que d'autres données ;
  • AndroidManifest.xml- description de la demande. Cela inclut, par exemple, une liste des autorisations requises, requises Version Android et la résolution d'écran requise ;
  • classes.dex- bytecode d'application compilé pour la machine virtuelle Dalvik ;
  • ressources.arsc- aussi des ressources, mais d'un autre genre - notamment des chaînes (oui, ce fichier peut être utilisé pour la russification !).

Les fichiers et répertoires répertoriés se trouvent, sinon dans la totalité, du moins peut-être dans la grande majorité des APK. Cependant, il existe quelques autres fichiers/répertoires moins courants qui méritent d'être mentionnés :

  • actifs- analogue des ressources. La principale différence est que pour accéder à une ressource, il faut connaître son identifiant, mais la liste des actifs peut être obtenue dynamiquement à l'aide de la méthode AssetManager.list() dans le code de l'application ;
  • lib- des bibliothèques Linux natives écrites en utilisant NDK (Native Development Kit).

Ce répertoire est utilisé par les fabricants de jeux, y plaçant le moteur de jeu écrit en C/C++, ainsi que par les créateurs d'applications performantes (par exemple, Google Chrome). Nous avons compris l'appareil. Mais comment obtenir le fichier package de l’application qui vous intéresse ? Puisqu'il n'est pas possible de récupérer les fichiers APK de l'appareil sans root (ils se trouvent dans le répertoire /data/app) et que le root n'est pas toujours conseillé, il existe au moins trois façons d'obtenir le fichier d'application sur votre ordinateur :

  • Extension du téléchargeur d'APK pour Chrome ;
  • Véritable application APK Leecher ;
  • divers hébergements de fichiers et Varezniks.

Lequel utiliser est une question de goût ; nous préférons utiliser candidatures individuelles, alors décrivons en utilisant Réel APK Leecher, d'autant plus qu'il est écrit en Java et, par conséquent, fonctionnera sous Windows ou Nix.

Après avoir démarré le programme, vous devez remplir trois champs : Email, Mot de passe et ID de l'appareil - et sélectionner une langue. Les deux premiers sont l'e-mail et le mot de passe de votre compte Google que vous utilisez sur l'appareil. Le troisième est l'identifiant de l'appareil et peut être obtenu en tapant le code sur le composeur. # #8255## puis trouver la ligne Device ID. Lors du remplissage, il vous suffit de saisir l'ID sans le préfixe Android.

Après avoir rempli et enregistré, le message « Erreur lors de la connexion au serveur » apparaît souvent. Cela n'a rien à voir avec jeu de Google, alors n'hésitez pas à l'ignorer et à rechercher les forfaits qui vous intéressent.

Afficher et modifier

Disons que vous avez trouvé un package qui vous intéresse, que vous l'avez téléchargé, décompressé... et que lorsque vous avez essayé de visualiser un fichier XML, vous avez été surpris de découvrir que ce fichier n'était pas du texte. Comment le décompiler et comment travailler avec les packages en général ? Est-il vraiment nécessaire d'installer le SDK ? Non, il n’est pas du tout nécessaire d’installer le SDK. En fait, toutes les étapes pour extraire, modifier et empaqueter les packages APK nécessitent les outils suivants :

  • Archiveur ZIP pour le déballage et l'emballage ;
  • petit- Assembleur/désassembleur de bytecode de machine virtuelle Dalvik (code.google.com/p/smali) ;
  • apte- un outil de packaging des ressources (par défaut, les ressources sont stockées sous forme binaire pour optimiser les performances des applications). Inclus dans le SDK Android, mais peut être obtenu séparément ;
  • signataire- outil pour signature numérique paquet modifié (bit.ly/Rmrv4M).

Vous pouvez utiliser tous ces outils séparément, mais cela n'est pas pratique, il est donc préférable d'utiliser un logiciel de niveau supérieur construit sur cette base. Si vous travaillez sous Linux ou Mac OS X, il existe un outil appelé apktool. Il vous permet de décompresser les ressources dans leur forme originale (y compris les fichiers binaires XML et arsc), de reconstruire un package avec des ressources modifiées, mais il ne sait pas comment signer les packages, vous devrez donc exécuter l'utilitaire de signature manuellement. Malgré le fait que l'utilitaire soit écrit en Java, son installation est assez non standard. Vous devez d’abord récupérer le fichier jar lui-même :

$ cd /tmp $ wget http://bit.ly/WC3OCz $ tar -xjf apktool1.5.1.tar.bz2

$ wget http://bit.ly/WRjEc7 $ tar -xjf apktool-install-linux-r05-ibot.tar.bz2

$ mv apktool.jar ~/bin $ mv apktool-install-linux-r05-ibot/* ~/bin $ export PATH=~/bin:$PATH

Si vous travaillez sous Windows, il existe un excellent outil appelé Virtuous Ten Studio, qui rassemble également tous ces outils (y compris apktool lui-même), mais au lieu d'une interface CLI, il fournit à l'utilisateur une interface graphique intuitive avec laquelle vous pouvez effectuez les opérations de déballage, de démontage et de décompilation en quelques clics. Cet outil est Donation-ware, c'est-à-dire que parfois des fenêtres apparaissent vous demandant d'obtenir une licence, mais en fin de compte, cela peut être toléré. Cela ne sert à rien de le décrire, car vous pouvez comprendre l'interface en quelques minutes. Mais apktool, en raison de sa nature de console, devrait être discuté plus en détail.

Regardons les options d'apktool. En bref, il existe trois commandes de base : d (décoder), b (construire) et if (installer le framework). Si tout est clair avec les deux premières commandes, alors que fait la troisième ? opérateur conditionnel? Il décompresse le cadre d'interface utilisateur spécifié, ce qui est nécessaire dans les cas où vous disséquez un package système.

Regardons les options les plus intéressantes de la première commande :

  • -s- ne démontez pas les fichiers dex ;
  • -r- ne décompressez pas les ressources ;
  • -b- n'insérez pas d'informations de débogage dans les résultats du démontage du fichier dex ;
  • --frame-path- utilisez le framework d'interface utilisateur spécifié au lieu de celui intégré à apktool. Examinons maintenant quelques options pour la commande b :
  • -F- assemblage forcé sans vérifier les modifications ;
  • -un- indiquez le chemin vers aapt (un outil pour créer une archive APK), si pour une raison quelconque vous souhaitez l'utiliser à partir d'une autre source.

L'utilisation d'apktool est très simple ; pour cela, il suffit de spécifier l'une des commandes et le chemin d'accès à l'APK, par exemple :

$ apktool d mail.apk

Après cela, tous les fichiers extraits et désassemblés du package apparaîtront dans le répertoire de messagerie.

Préparation. Désactiver la publicité

La théorie est bien sûr bonne, mais pourquoi est-elle nécessaire si nous ne savons pas quoi faire du paquet déballé ? Essayons d'appliquer la théorie à notre avantage, à savoir modifier certains logiciels pour qu'ils ne nous montrent pas de publicité. Par exemple, que ce soit Virtual Torch - une torche virtuelle. Ce logiciel est idéal pour nous, car il regorge de publicités ennuyeuses et, en plus, il est suffisamment simple pour ne pas se perdre dans la jungle du code.


Ainsi, en utilisant l’une des méthodes ci-dessus, téléchargez l’application depuis le marché. Si vous décidez d'utiliser Virtuous Ten Studio, ouvrez simplement le fichier APK dans l'application et extrayez-le, pour lequel créez un projet (Fichier -> Nouveau projet), puis dans menu contextuel projet, sélectionnez Importer un fichier. Si votre choix s'est porté sur apktool, exécutez simplement une commande :

$ apktool d com.kauf.particle.virtualtorch.apk

Après cela, une arborescence de fichiers similaire à celle décrite dans la section précédente apparaîtra dans le répertoire com.kauf.particle.virtualtorch, mais avec un répertoire smali supplémentaire au lieu des fichiers dex et un fichier apktool.yml. Le premier contient le code désassemblé du fichier dex exécutable de l'application, le second contient les informations de service nécessaires à apktool pour réassembler le package.

Le premier endroit que nous devrions examiner est, bien sûr, AndroidManifest.xml. Et là, nous rencontrons immédiatement la ligne suivante :

Il n'est pas difficile de deviner qu'il est chargé d'accorder à l'application les autorisations pour utiliser la connexion Internet. En fait, si nous voulons simplement nous débarrasser de la publicité, il nous suffira probablement de bloquer l’application sur Internet. Essayons de faire cela. Nous supprimons la ligne spécifiée et essayons de créer le logiciel à l'aide d'apktool :

$ apktool b com.kauf.particle.virtualtorch

Le fichier APK résultant apparaîtra dans le répertoire com.kauf.particle.virtualtorch/build/. Cependant, il ne sera pas possible de l'installer, car il n'a pas de signature numérique ni de somme de contrôle de fichier (il n'a tout simplement pas de répertoire META-INF/). Nous devons signer le package à l'aide de l'utilitaire apk-signer. Lancé. L'interface se compose de deux onglets - sur le premier (Key Generator), nous créons des clés, sur le second (APK Signer), nous signons. Pour créer notre clé privée, remplissez les champs suivants :

  • Fichier cible- fichier de sortie du magasin de clés ; il stocke généralement une paire de clés ;
  • Mot de passe Et Confirmer- mot de passe pour le stockage ;
  • Alias- nom de la clé dans le stockage ;
  • Mot de passe pseudo Et Confirmer- mot de passe de la clé secrète ;
  • Validité- durée de validité (en années). La valeur par défaut est optimale.

Les champs restants sont, en général, facultatifs – mais au moins un doit être rempli.


AVERTISSEMENT

Pour signer une application à l'aide d'apk-signer, vous devez installer le SDK Android et spécifier chemin complet avant dans les paramètres de l'application.

Toutes les informations sont fournies à titre informatif uniquement. Ni les éditeurs ni l'auteur ne sont responsables de tout dommage éventuel causé par les éléments de cet article.

Vous pouvez maintenant signer l'APK avec cette clé. Dans l'onglet APK Signer, sélectionnez le fichier nouvellement généré, entrez le mot de passe, l'alias de clé et le mot de passe, puis recherchez le fichier APK et cliquez hardiment sur le bouton « Signer ». Si tout se passe bien, le colis sera signé.

INFO

Puisque nous avons signé le package avec notre propre clé, il entrera en conflit avec l'application d'origine, ce qui signifie que lorsque nous essaierons de mettre à jour le logiciel via le marché, nous recevrons une erreur.

Une signature numérique n'est requise que pour les logiciels tiers, donc si vous modifiez applications système, qui sont installés en les copiant dans le répertoire /system/app/, vous n'avez pas besoin de les signer.

Après cela, téléchargez le package sur votre smartphone, installez-le et lancez-le. Voilà, la pub est partie ! Au lieu de cela, cependant, un message est apparu indiquant que nous n'avons pas Internet ou que nous ne disposons pas des autorisations appropriées. En théorie, cela pourrait suffire, mais le message semble ennuyeux et, pour être honnête, nous avons juste eu de la chance avec une application stupide. Un logiciel normalement écrit clarifiera très probablement ses informations d'identification ou vérifiera la disponibilité d'une connexion Internet et sinon il refusera simplement de démarrer. Comment être dans ce cas ? Bien sûr, modifiez le code.

Généralement, les auteurs d'applications créent des classes spéciales pour afficher des publicités et appellent des méthodes de ces classes lorsque l'application ou l'une de ses « activités » (en termes simples, les écrans d'application) est lancée. Essayons de trouver ces classes. On va dans le répertoire smali, puis com (org ne contient que la bibliothèque graphique ouverte cocos2d), puis kauf (c'est là que c'est, car c'est le nom du développeur et tout son code est là) - et le voici, l'annuaire marketing. À l’intérieur, nous trouvons un tas de fichiers avec l’extension smali. Ce sont des classes, et la plus remarquable d'entre elles est la classe Ad.smali, d'après le nom de laquelle il est facile de deviner que c'est celle qui affiche de la publicité.

Nous pourrions changer la logique de son fonctionnement, mais il serait beaucoup plus simple de simplement supprimer les appels à l'une de ses méthodes depuis l'application elle-même. Par conséquent, nous quittons le répertoire marketing et allons dans le répertoire de particules adjacent, puis dans virtualtorch. Le fichier MainActivity.smali mérite ici une attention particulière. C'est la norme pour Classe Android, qui est créé par le SDK Android et installé comme point d'entrée de l'application (analogue à la fonction principale en C). Ouvrez le fichier pour le modifier.

A l'intérieur il y a du petit code (assembleur local). Il est assez déroutant et difficile à lire en raison de sa nature de bas niveau, nous ne l'étudierons donc pas, mais trouverons simplement toutes les références à la classe Ad dans le code et les commenterons. Nous saisissons la ligne « Annonce » dans la recherche et arrivons à la ligne 25 :

Champ annonce privée : Lcom/kauf/marketing/Ad ;

Ici, un champ publicitaire est créé pour stocker un objet de classe Ad. Nous commentons en plaçant un signe ### devant la ligne. Nous continuons la recherche. Ligne 423 :

Nouvelle instance v3, Lcom/kauf/marketing/Ad ;

C'est là que se produit la création de l'objet. Commentons. Nous continuons la recherche et trouvons dans les lignes 433, 435, 466, 468, 738, 740, 800 et 802 des appels aux méthodes de la classe Ad. Commentons. On dirait que c'est ça. Sauvegarder. Il faut maintenant reconstituer le package et vérifier sa fonctionnalité et la présence de publicité. Pour la pureté de l'expérience, nous renvoyons la ligne supprimée de AndroidManifest.xml, assemblons le package, signons et installons.

Notre cobaye. Publicité visible

Oops! La publicité n'a disparu que pendant l'exécution de l'application, mais est restée dans le menu principal, que l'on voit au lancement du logiciel. Alors attendez, mais le point d'entrée est la classe MainActivity, et la publicité a disparu pendant l'exécution de l'application, mais est restée dans le menu principal, donc le point d'entrée est différent ? Pour identifier le véritable point d'entrée, rouvrez le fichier AndroidManifest.xml. Et oui, il contient les lignes suivantes :

Ils nous disent (et, plus important encore, à Android) qu'une activité nommée Start doit être lancée en réponse à la génération d'une intention (événement) android.intent.action.MAIN de la catégorie android.intent.category.LAUNCHER. Cet événement est généré lorsque vous appuyez sur l'icône de l'application dans le lanceur, il détermine donc le point d'entrée, à savoir la classe Start. Très probablement, le programmeur a d'abord écrit une application sans menu principal, dont le point d'entrée était la classe MainActivity standard, puis a ajouté une nouvelle fenêtre (activité) contenant le menu et décrit dans la classe Start, et en a fait manuellement l'entrée. indiquer.

Ouvrez le fichier Start.smali et cherchez à nouveau la ligne « Ad », on retrouve aux lignes 153 et 155 une mention de la classe FirstAd. Il est également présent dans le code source et, à en juger par son nom, il est responsable de l'affichage des publicités sur l'écran principal. Regardons plus loin, il y a la création d'une instance de la classe FirstAd et d'une intention qui, selon le contexte, est liée à cette instance, puis le label cond_10 dont la transition conditionnelle s'effectue exactement avant de créer une instance de la classe:

If-ne p1, v0, :cond_10 .line 74 nouvelle instance v0, Landroid/content/Intent ; ... :cond_10

Très probablement, le programme calcule de manière aléatoire si la publicité doit être affichée sur l'écran principal et, dans le cas contraire, passe directement à cond_10. Ok, simplifions sa tâche et remplaçons la transition conditionnelle par une transition inconditionnelle :

#if-ne p1, v0, :cond_10 goto:cond_10

Il n'y a plus de mention de FirstAd dans le code, nous fermons donc le fichier et réassemblons notre torche virtuelle à l'aide d'apktool. Copiez-le sur votre smartphone, installez-le, lancez-le. Voilà, toute publicité a disparu, ce pour quoi nous nous félicitons tous.

Résultats

Cet article n'est qu'une brève introduction aux méthodes de piratage et de modification des applications Android. De nombreux problèmes restaient en coulisses, tels que la suppression de la protection, l'analyse du code obscurci, la traduction et le remplacement des ressources des applications, ainsi que la modification des applications écrites avec en utilisant Android NDK. Cependant, ayant des connaissances de base, ce n’est qu’une question de temps pour tout comprendre.

Les programmes pour la plateforme Android sont un seul fichier avec extension apk, ce qui est très pratique. En fait, installer n'importe quel programme sur un smartphone ou une tablette se résume à son copie simpleà votre gadget. Qu'est-ce qu'un fichier apk et comment voir ce qu'il contient ?

Qu'est-ce qu'un fichier APK ?

L'abréviation APK se révèle comme Forfait Android Kit est un package exécutable de fichiers pour les applications Android. Il s'agit d'une archive contenant des codes et d'autres ressources compilés et prêts à être exécutés. les fichiers apk sont stockés sur des sites Internet tels que Google Play, d'où ils peuvent être téléchargés et installés sur votre gadget. Ils ne sont pas cryptés.

Sa structure est préparée par le développeur pour fonctionner dans l'environnement de machine virtuelle Dalvik ou ART. Ces machines sont intégrées au système d’exploitation Android et exécutent toutes les applications présentes sur votre appareil.

Le fichier apk lui-même est une archive standard que vous pouvez ouvrir avec n'importe quel archiveur Environnement Windows. Par exemple, WinRAR ou gestionnaire de fichiers, qui ouvre les archives ZIP. Voyons ce qu'il y a à l'intérieur.

  • Un fichier exécutable avec une extension dex (le nom peut être n'importe lequel), qui est précisément le code du programme.
  • À côté se trouve resources.arsc, il s'agit d'un registre de ressources que le programme doit utiliser. Il s'agit d'une structure au format XML.
  • AndroidManifest.xml est un fichier obligatoire pour tout programme, un manifeste contenant des informations de base à son sujet. Ici, par exemple, la version du programme, la version Android requise, les informations sur le développeur, les résolutions d'écran requises, etc. peuvent être enregistrées.
  • Le répertoire res contient les ressources internes dont le programme a besoin pour fonctionner. Toutes les images, icônes, icônes, cartes, etc. peuvent être ici.
  • Le répertoire lib – bibliothèques natives pour exécuter le programme, par exemple, du code C++. Ce répertoire peut ne pas être présent si les bibliothèques ne sont pas utilisées.
  • Le répertoire des ressources constitue des ressources supplémentaires pour l'application, et peut aussi parfois être manquant. Les ressources à utiliser sont décrites dans le fichier resources.arsc.
  • Répertoire META-INF – métadonnées du programme. Par exemple, le fichier MANIFEST.MF, qui peut contenir des chemins d'accès aux données et leurs sommes de contrôle. Les fichiers de certificat RSA, les informations de version du manifeste et des informations de service similaires peuvent être stockées ici.

Examen des éditeurs de fichiers ARK populaires

Comme déjà mentionné, vous pouvez décompresser le fichier apk à l'aide de n'importe quel archiveur ZIP. Après cela, vous pourrez visualiser les ressources qui y sont stockées.

Il n'y aura aucun problème avec les images, elles peuvent être ouvertes dans n'importe quel programme approprié. Format XML s'ouvre avec n'importe quel éditeur de texte par exemple Notepad++. Si vous savez comment fonctionne ce format, vous pouvez déjà les modifier. Mais pour les fichiers exécutables compilés, vous devrez utiliser des outils spéciaux.

Éditeur d'éclipses. Il s'agit d'un environnement multiplateforme complet pour un programmeur. Vous pouvez développer dans n'importe quelle langue moderne et préparer fichiers exécutables, y compris pour Android. L'environnement peut être personnalisé de manière flexible à l'aide de nombreux plugins.

SDK Android. Comme son nom l'indique, il s'agit d'un outil de développement spécialisé programmes mobiles spécifiquement pour Android. Avec son aide, vous pouvez facilement décompiler les fichiers exécutables de l'application de quelqu'un d'autre ou écrire le vôtre à partir de zéro. Il diffère en ce qu'il connecte éventuellement divers modules pour déboguer et tester votre code, pour tester la compatibilité des programmes avec différents gadgets, etc.

Téléchargeur d'APK. Ceci est un plugin pour Navigateur Chrome, ce qui permet de télécharger très facilement des programmes apk depuis n'importe quel site et de visualiser leur structure. Pour ce faire, vous n’avez même pas besoin d’être inscrit sur Google Play.

Éditeur d'APK. Un éditeur qui vous permet de travailler avec des ressources dans les packages apk. Pas aussi puissant qu'Eclipse, mais il résout de nombreux problèmes simples. Par exemple, vous pouvez supprimer blocs publicitaires depuis le programme, russifiez l'interface, remplacez les icônes ou les textures par les vôtres, et bien plus encore.

A partir de cet article, vous apprendrez en quoi consiste une application pour Android, comment l'ouvrir Fichier APK et en utilisant quels programmes.

Qu'est-ce qu'un fichier APK ?

Format APK système opérateur Android, utilisé pour les fichiers d'application exécutables archivés, et le nom du fichier lui-même peut être n'importe quoi, mais l'extension ne devrait ressembler qu'à ceci.apk. Les analogues de l'APK dans d'autres systèmes d'exploitation sont .msi sous Windows, .sis sous Symbian, .rpm ou .deb sous Linux.

Voyons ce qu'il y a à l'intérieur
Essentiellement, .apk est Archives ZIP, alors regarde organisation interne vous pouvez utiliser n'importe quel gestionnaire de fichiers ou archiveur, par exemple WinRAR ou application mobile X-plore.





Il convient de rappeler que vous obtenez uniquement accès visuel aux ressources internes, les capacités d’édition sont extrêmement limitées.
Regardons la structure
À l’intérieur du .apk, nous voyons un certain nombre de fichiers et de dossiers, découvrons à quoi ils servent :
  • AndroidManifest.xml est une sorte de « passeport » de l'application à partir duquel vous pouvez connaître tous les points principaux, les exigences, la version, les autorisations, etc.
  • META-INF ce fichier contient des métadonnées, c'est-à-dire des données sur les données, des sommes de contrôle, des chemins d'accès aux données, des chemins et des sommes de contrôle des ressources, des certificats. Vous pouvez ouvrir ce fichier avec n'importe quel éditeur de texte, mais il est recommandé d'utiliser Notepad++.
  • Le dossier res contient toutes les ressources du programme, graphiques, telles que les icônes, les images, le texte et les éléments de l'interface graphique. Vous pouvez également accéder facilement au dossier.
  • classes.dex - immédiat code de programme applications en cours d'exécution machine virtuelle Dalvik VM, vous pouvez voir ce qu'il y a à l'intérieur de ce fichier uniquement en décompilant le .apk, nous en parlerons dans d'autres articles. ressources.arsc -compilé Fichier XML, ce fichier contient des données sur toutes les ressources impliquées dans le programme.
  • lib - un dossier avec des bibliothèques natives dont les ressources ne sont accessibles que lors de l'utilisation programmes spécialisés. L'APK peut également contenir des fichiers et des dossiers tels que com, org, udk, mais pas toujours.

Examinons maintenant plus en détail la structure interne ; pour cela, nous avons besoin d'un programme de décompilation, de Java et d'un fichier APK. L'outil principal pour désassembler .apk est Apktool, mais ce programme Cela ne fonctionne qu'à partir d'une ligne, ce qui n'est pas très pratique. Pour une analyse plus rapide et plus pratique, vous pouvez utiliser APKing, c'est toujours le même Apktool, mais avec la possibilité de travailler à partir du menu contextuel.
Et donc nous installons APKing comme n'importe quelle application pour Windows et, après avoir sélectionné .apk, cliquez dessus avec le bouton droit de la souris et Shift en même temps, après quoi nous verrons ce qui suit :


Et choisissez action requise, par exemple, décompilez complètement, le programme terminera l'opération et créera un dossier du même nom.


En ouvrant le dossier, nous aurons accès à toutes les ressources du fichier APK.


C'est ça fichiers texte peut être édité, tout en respectant les règles de base, vous pouvez utiliser programme populaire Notepad++, par exemple, considérez AndroidManifest.xml