Every Android application that you use on your phone is distributed as APK files that contain images, codes, and other essential media files that assist in the smooth running of the app.
To extract the code and other files from such applications, one can use APK Decompilers. Using such decompilers enable complete decoding of an application’s code.
After the decoding process, the decompiler builds the application again with certain modifications.
Table of Contents
- 1 The list of most competitive and efficient APK decompilers:
- 1.1 JADX
- 1.2 Bytecode Viewer
- 1.3 Apktool
- 1.4 ClassyShark
- 1.5 Smali
- 1.6 Androguard
- 1.7 Enjarify (Google)
- 1.8 APK Studio
- 1.9 ShowJava
- 1.10 Android Decompiler
- 1.11 Decompile APK
- 1.12 TTDEDroid
- 1.13 APK Changer
- 1.14 Android Apk Decompiler
- 1.15 apkToJava
- 1.16 DeAPK
- 1.17 Android Decompiler
- 1.18 Android Binary XML
- 1.19 apk2java
- 1.20 Python based APK Decompiler
- 1.21 Webservice Android Decompiler
- 1.22 EraAPK
- 1.23 Docker Container Android Decompiler
- 1.24 Apk CSigner
- 1.25 APK Decompiler Tools
- 1.26 APK Decompiler APP
- 1.27 Android APK decompiler
- 1.28 Apktool for reverse engineering
- 1.29 Android Apk Decompiler
- 1.30 Decompiler
- 1.31 Online Apk decompiler (apkdecompiles.online)
- 1.32 APK Easy Tool 1.56/1.57 beta-1
- 2 Conclusion
The list of most competitive and efficient APK decompilers:
This is an open-source decompiler that uses Graphical User Interface as well as the tools of Command Line Interface to decompile Android Dex and APK files. The code of such files is then used to build Java source code.
- It includes deobfuscator.
- Dalvik bytecode is decompiled to java code by using aar, APK, aab, dex, and zip files
- Resources are decoded from resources.arsc
- Important GUI features of JADX include: complete text search, jumping to declaration feature, find usage, using highlighted syntax to see decompiled codes
After downloading this software, the user can run the GUI or CLI version by running it from the bin directory. A number of Operating Systems such as Windows, arch linux, and macOSsupport JADX.
This is a lightweight software that uses a user-friendly interface to enable the viewing of JAVA Bytecode. It also includes GUI JAVA decompiler, bytecode editor, APK editor, GUI Smali, DEX editor, Procyon JAVA Decompiler, Dexdecompiler, FernFlower JAVA Decompiler, Hex viwer, Debugger, etc.
This is also open-source and is written in JAVA script. Konloch is the developer of Bytecode Viewer.
- It can be used to edit class files or dex files
- It is equipped with Dex2Jar and Jar2Dex that enable the user to save and load the application files easily To assemble and disassemble Bytecode, Krakatau Integration is used
- To decompile JAVA, FernFlower, JD, Procyon, and CFR is used
- It is equipped with Hex Viewer which is powered by JHexPane.
- The user can select what each pane displays making the interface very uesr-friendly.
- The search system is very precise and the user can search through variables, functions, and strings
- Malicious code is easily detected through an in-built scanner
- Features other built-in plugins like string decrypters.
- Scripting system is available that also supports Groovy
- Hooks and debugging codes can be graphically inserted
- Users can begin using the Bytecode Viewer by installing and inserting a particular jar or APK in the workspace.
The Apktool is used for reverse engineering (decoding and rebuilding) closed, 3rd party, Binary Android applications. It is very useful to decode the applications to such an extent that it almost reaches its original form. After attaining the original form, the application is rebuilt but with some modifications.
Smali code can be debugged in an orderly manner by using the reverse engineering process of Apktool. Building apk over and over is a monotonous task, which is made easier through apktool’s automation feature.
The most important thing a user must bear in mind is that decoding and rebuilding Android apk must not be done for some illegal purpose. It must be used for localizing or adding a few essential features for custom platforms.
Piracy issues must be avoided and the author of the application must be respected.
This is a binary inspection tool used by Android developers. It helps the developers browse through an Android executable. The browsing displays important information such as dexcounts, interface, and dependencies.
The formats ClassySharksupports are listed below:
- Resources and layouts
If you want to use ClassyShark to develop, you need to clone the repo, open it in an IDE editor, and use the various build options like Gradle script, RetroBuild, etc.
This serves the purpose of assembling and disassembling specifically for the dex format. It is used by Dalvik. Smali is said to be inspired by the syntax of Jasmin or dedexer. It is capable of supporting the fully-functioning dex format including annotations or debugging information, etc.
This is a tool to play with Android files. It can disassemble DEX/ODEX bytecodes as well as decompile them. Its features include DEX/ODEX, Android’s binary xml, Android resources, Apk. Anthony Desnos and Geoffroy Gueguen are the developers of Androguard.
This is a tool for converting Dalvik bytecode to equivalent JAVA bytecode. Java analysis tools are used to examine Android applications. This is a python 3 application so the user is only supposed to git clone and then, they are able to run Enjarify.
If users are looking to use Enjarify for regular purposes, they need to use wrapper scripts and set it on their paths.
For Linux users, a wrapper shell script is provided for convenient use. This allows Enjarify to use Pypy which is much faster than CPython. Create a symlink from your PATH in order to run/call Enjarify from any location.
For Window users, a wrapper batch script is provided. Add root directory of the repository to your PATH if you want to call out to Enjarify from any given location.
Python 3 is generally used as an interpreter but if the user wishes to use Pypy they can just edit the script. Enjarify can translate a number of classes but only a few can’t be translated due to an issue in either Android or Java: however, such issues are very rare.
Enjarify uses optimizations for bytecodes making it readable for humans. However, upon disabling optimization, the entire process and functioning can be made much faster.
It is an open-source IDE tool for reverse engineering of Android applications. It is best known for its user friendly layout similar to IDE that enables editing of codes by using syntax highlighting for even Smali code files.
This is one of the best tools to quickly decompile and break down Android applications for legal purposes. It runs on several operating systems including MacOs X, Windows and Linux.
It has a built-in code-editor (.xml .yml .java. smali), a built-in image viewer (.jpg .jpeg .gif .png) as well as a built-in hex editor for files.
This is an excellent decompiler tool that can extract the source codes of JAR packages, dex files, and Android applications. It can extract the code Android apps including xml files and images.
The greatest convenience of using ShowJava is that it can be run from your android device directly. To decompile, the user is allowed to use either the FernFlower, CFR, or JADX as the analytical decompiler.
The application you want to extract the source code of can be selected from the list of installed applications on the device be it apk, dex, or jar file. It has a built-in media and code viewer that makes the source navigator very accessible.
The code is presented to the user with syntax highlighting. The code can be zoomed in and line-wrap can also be used. Copying of the decompiled code is enabled from the SD card and the code can also be shared.
Andorid Decompiler is basically a script that makes use of various decompilers to decompile the Android applications to extract its Java source code and other resources.
This is a perfect tool for complete decompilation of applications. Dex2Jar, android-apk tool, Artistic style, and JD-Core-Java are some of the tools used by the Android Decompiler to carry out full decompilation of applications.
This tool can be run on Mac as well as all UNIX operating systems.
This is a tool that is a combination of script with different assisting tools. The best feature of this is the auto-decompile function that enables the decompilation of android apk files of GUI to produce their java source code.
The tools that assist Decompile APK to carry out auto decompilation include dex2jar, jadx, jd-gui, apktool, classyshark, BVC. It can run on MAC, Linux, and UNIX.12.
This tool can decompile apk/aar/jar/dex files and their source code can be extracted. It does not require the installation of a python environment for successful running.
This is a CLI based program that can enable the modification of apk files. It has a normal and an advanced mode and multicore support that makes image optimization very fast.
The user can choose the part of an application they want to assemble or disassemble. It protects apk resources and enable optimization of pngs present inside apk files.
It runs in four languages such as English, Russian, Dutch, and Deutch. If an error occurs, APK Changer is programmed to inform the user.
This tool is best for converting installed Android applications (built with Android SDK) into source files. To use this tool, users must install ADB. It is a very simple process that conducts maximum decompilation and then provides the user with the code in a zip file.
This tool converts into class files but certain tools can be used by the user to get java codes instead.
If a user simply wishes to view android applications as java codes whilst using the Graphical User Interface, this tool is ideal.
This tool downloads all the necessary tools and then conducts the process of converting apk to java codes. It can be run on Mac and Linux operating systems.
This is a web application framework that allows the user to indulge in the creative developing experience. This application is equipped with easy commands and features that make the developing process very easy.
It has simple routing engines, broadcasting of real-time events, expressive database and syntax, background job processing.
This is a script that enable the decompilation of apk files. To install this script for easy decompilation of Android applications, you need to clone, install dependencies, and then make executable.
This is an efficient program that decodes apk files in Rust. If the user wishes to use and work with the binary files present inside android applications, they can use ABXML for this purpose.
All the resources and binary XML folders can be decoded easily with the help of this library. This library used buffers and wrappers.
Wrappers allow the read-only view and it presents the data only when it is accessed. Wrappers can be converted to buffers and vice versa. Some applications must be installed to run this program such as Rust, apktool, colordiff, etc.
apk2java is a shell script that allows the user to decompile android applications by using a number of decompilers. Android applications can be decoded and their java source code can be extracted.
This is a python-based application. It can decompile android applications by using external decompiling tools and their java source code, assets, etc. are all extracted successfully.
This program was initially supposed to be a website. It enables the users to conduct reverse engineering by disassembling android applications and assembling them again into applications with certain modifications.
Since the website idea did not work for the developer, he chose to convert this project into an open-source project. This program depends on Jadx, 7zip, and ApkTool.
This is also an android application decompiler.
The user needs to install docker in order to run this decompiler. To use this, the user needs to pull the image, and find their way through the apk file directory and write a certain command.
To make this entire process easy for when you conduct it the next time, you can add the executed function to your bashrc. For executing the command next time, you can load your bash profile.
This tool signs applications. Moreover, it can decompile and compile apks that are used as resources replacement. Apparently, signing applications can be quite an issue especially because Google does not allow test certificates.
Users struggling with application self-signing can use CSignerfor this purpose. It runs on 34-bit and 64-bit Windows Operating System.
The installation of Java and Windows is required to run the CSigner. Users that continuously receive the ‘application not installed’ error need to check out this application signing tool.
Along with signing apps, it can easily conduct reverse engineering.
This is a very convenient tool for users new to decompiling. It kind of serves the same purpose as an auto decompiler.
All the user needs to do is to upload the required android application on the cloud of the developer and they will decompile the application and extract the code for the user.
This is a website that uses efficient decompiling tools like JADX and APKTool to decompile android applications and allow the users to conduct reverse engineering of 3rd party, closed, binary android applications. The resources of such decompiled applications are nearly restored to their original form.
This is necessary for the users because they need to use the original codes to rebuild the application after some modifications. In order to avoid repetitive tasks like decompiling applications, users can seek automated decompilation of apk which is a huge convenience.
It must be noted that decompiling apps and using their source code to rebuild those applications must not be done for any illegal purpose.
This is a website that allows users to upload certain android application packages for decompilation. Jadx is the decompiling tool used by this website.
It decompiles class and jar files and it also produces java source code from dex and apk files. For users that wish to extract code near to the original form, it is more advisable to use apktool instead of jadx.
This website allows the users to upload the android application package from their computer and decompile it completely to restore it to its original form. Assets are completely decoded using apktool.
The resources and assets of android applications are stored in binary form, which is then completely decoded by the apktool. The almost original source code can be used to rebuild the android application with certain changes.
This is another apk decompiler website that allows the users to upload their apk and it is decompiled within minutes! The process is not only convenient but also extremely quick. All the code of the images, assets, resources of a certain apk is extracted by the website in a few minutes.
This is an online website that decompiles exe, DLL, jar, class, apk, xapk, dex, pyc, pyo, luac, lub, smx, amxx files. You can choose the files from your computer and easily upload them.
Once the artefact is upload on the online decompiler, the user can either view the content online or download it. The user can view the all the content after decompilation online, without having to download it.
This decompiler can convert .exe and .dll files back to C# project. Similarly, .jar, .class, .dex, .apk files are converted to java source code. Python files are converted to python source code. Lua files are decompiled back to lua source code.
Online Apk decompiler (apkdecompiles.online)
This is also an apk decompiler that extracts the source code of application resources.
As the name suggests, this is an easy to use tool that is in the form of a lightweight GUI application. It allows the users to manage their files, sign their applications, compile and decompile apk files.
This tool can be used for commercial and non-commercial purposes and it is absolutely free of cost! It is important to note that although this is a highly efficient tool, it is not advisable for newcomers to use it.
It is best suited for the ease of users who need to perform the above mentioned tasks as fast as possible and they do not want to use CMD. To be able to run this tool on Windows OS, the user must have at least Windows 7 or higher.
Apk, Dex, and Jar files are successfully decompiled and compiled with SPACE and different symbols. It translates into different languages such as German, Danish, Swedish, etc.
Signing applications is a somewhat inconvenient task; however, with the availability of this amazing tool, users can easily sign their applications after they have compiled them.
The extraction and zip of APK can be carried out with 7z Compression level 0-9 and it can be cancelled during operation.
The users is allowed to install the framework and manage their various framework paths. The information of the apk that the user is working with can be displayed by using an icon as well as a link to the Play Store. Users are allowed to choose which tool they want to use such as apktool version, java heap, apksigner version, java path, directories, Windows explorer integration, etc.
These tools allow the user to perform various tasks instead of limiting their work to only assembling and disassembling of android application packages. Various shortcuts are also available to provide quick access to certain functions like there are 4 buttons to open the work directories of decompiled android applications.
A lot of beneficial android application decompilers are available for users to choose from. Some of the decompilers are available online, others need to be installed.
For newbies, automated decompiling and compiling features are available. Whether the users are advanced developers or newcomers, everyone can take advantage of these decompiling tools in order to extract useful source codes.
The extraction of source codes can enable the rebuilding of android application packages with modifications that can benefit custom platforms. Although these decompiling tools offer exemplary services, it must be noted that these tools are not to be used for illegal purposes that may cause piracy of applications.