CFR vs JADX
CFR
benf.orgJADX
github.comSide by side
| Figure | CFR | JADX |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| API | Yes | — |
| Self-hosted | Yes | — |
| Plans published | 1 | 1 |
| Spec score · Reverse Engineering Tools | 8.2 (#10) | 7.6 (#29) |
| Spec score · Decompiler Software | 8.3 (#5) | 7.7 (#13) |
| License | The maker’s FAQ directs users to the project README for its license; the project repository identifies the license as MIT. | The project is licensed under Apache 2.0. |
| Purpose | CFR is a Java decompiler that converts Java class files back into Java source. | JADX provides command-line and GUI tools for producing Java source code from Android Dex and APK files. |
| Support | The maker invites users to email reports of problems and directs bug reports to the GitHub issue tracker. | The project directs users to its troubleshooting wiki and invites issue reports and pull requests through GitHub. |
Plans
In their own words
CFR
CFR is a free Java decompiler that reconstructs Java source from Java class files. It can process individual named classes, classes found on a classpath, or a whole JAR, and the command-line tool can place output in a chosen directory with the --outputdir option. Decompilation behavior can be adjusted through command-line options or an options file. The maker says CFR handles many features from Java 9, 12, and 14, and it can attempt class files from other JVM languages; those are rendered as Java rather than their original language. CFR is written in Java 6 and is said to run wherever Java 6 does. It is available as a downloadable JAR, through Maven, and from GitHub. The FAQ notes an API from version 0.135, and the project repository identifies the license as MIT. CFR handles bytecode rather than native code. Its maker also notes that some inputs fall into edge cases where output may be poor. There are no paid plans or usage limits stated.
JADX
JADX is a free Apache 2.0 project that turns Android Dex and APK files into Java source code through command-line and graphical tools. It also decompiles AAR, AAB, and ZIP files and decodes AndroidManifest.xml and resources.arsc. An included deobfuscator supports mappings and identifier renaming. The GUI offers syntax highlighting, declaration navigation, usage lookup, and full-text search. Its debugger can step through code, set breakpoints, and modify register values or object fields; this requires adb plus a debuggable app or a rooted device or emulator. JADX can be used as a library in Java projects, and its CLI manages plugins from the marketplace. Downloaded releases require 64-bit Java 11 or later. It runs on Linux, macOS, and Windows. The project warns that decompilation may not recover all code, so errors can occur.