Apktool vs uncompyle6
Apktool
apktool.orguncompyle6
github.comSide by side
| Figure | Apktool | uncompyle6 |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| Self-hosted | — | Yes |
| Plans published | 1 | 1 |
| Spec score · Reverse Engineering Tools | 8.1 (#12) | 7.6 (#34) |
| Command line | The official install guide provides wrapper-script installation steps for Windows, Linux, and Mac, and requires Java 8 or later. | The README shows running `uncompyle6` on compiled Python `.pyc` or `.pyo` files. |
| Purpose | Apktool is a tool for reverse engineering Android APK files. | uncompyle6 translates Python bytecode into equivalent Python source code. |
| Support | The official site points users to GitHub Discussions, Stack Overflow, and IRC for community support. | The maintainer says bug reports may take a while to receive attention and that sponsoring or supporting the project can prioritize issues. |
Plans
In their own words
Apktool
Apktool is a command-line tool for reverse engineering Android APK files. It can disassemble an app’s resources into a form close to their original structure, then rebuild an app after changes such as translation or permission edits. Its analysis mode attempts to extract resources and the manifest for inspection without rebuilding. Apktool runs on Windows, Linux, and macOS; its official installation guide describes wrapper-script steps for those systems and requires Java 8 or later. Decode options include choosing resource-resolution behavior, skipping resources or source disassembly, and setting a framework directory. Build options include selecting an aapt2 binary, adding a generic Network Security Configuration file, and disabling APK repacking. The Apache license permits redistribution, modification, and integration into another project. Apktool is free, with no pricing tiers stated. Its FAQ says Android devices are not officially supported, and some OEM-modified “Magic APKs” may not decode or build. Builds are unsigned; copying a signature retains only the original APK signature v1 scheme.
uncompyle6
uncompyle6 is a free, GPL-3.0-licensed tool for translating compiled Python bytecode into equivalent Python source code. It runs on `.pyc` and `.pyo` files from the command line, and can also deparse code fragments or return source information around a bytecode offset. The README lists bytecode from Python 1.0 through 3.8, Dropbox Python 2.5 bytecode, and some PyPy bytecode as accepted inputs. Fragment deparsing is used in trepan debuggers to show source at runtime and can provide more stack-trace detail than a line number. The `--syntax-verify` option checks decompiled syntax when used with the matching bytecode version. Control-flow handling remains a major challenge, and some incorrect decompilations may be detected and reported. The tool does not handle obfuscated code, Cython, or MicroPython, and cannot directly decompile Py2EXE executables. Python 3.7 and 3.8 support is generally better in the related decompile3 project. Installation is through PyPI for Python 3.11 and later, or a GitHub Releases file for earlier Python versions. Platforms listed include Linux, macOS, Windows, and self-hosted use.