# Simplify

> Generic Android deobfuscator built on smalivm, a sandboxed Dalvik virtual machine that executes each method and records every possible register and class value along all execution paths, taking both branches when a value such as file or network input is unknown. Simplify then repeatedly applies constant propagation, dead-code removal, unreflection and peephole optimizations to the APK or DEX, which can decrypt strings and remove reflection while keeping behaviour the same; it does not rename classes or methods. smalivm can also be used as a library, and the last release adds sdbg, a step-through Smali debugger built on it.

- Type: Tool
- Targets: App
- Category: Android tools
- Relationship: Foundation tool
- Sources reviewed: 2026-10-19
- Added to the catalog: 2026-10-19
- Original resource: <https://github.com/CalebFenton/simplify>
- Primary source: <https://github.com/CalebFenton/simplify/blob/29fb25d624aecf0b075dea5c6029b2541474ddfe/README.md>
- Catalog page: <https://awesomerea.org/resources/simplify-android-deobfuscator/>
- Record JSON: <https://awesomerea.org/resources/simplify-android-deobfuscator/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/simplify-android-deobfuscator/index.md)

## Requirements & limits

- Development is inactive: the latest release, v1.3.0 of 2020-03-30, ships simplify, smalivm and sdbg jars, and the reviewed master commit dates from 2021-05-23. The project pins smali/dexlib2 2.4.0 and, by default, builds its Android framework reference from android-25 classes, so check results on apps that use newer DEX or API features.
- Run it as java -jar simplify.jar on a user-supplied APK or DEX. Building needs JDK 8, a recursive clone for the AndroidFrameworkSmali submodule of reference framework classes, and the Gradle fatjar task. Execution limits on visits, call depth and time apply per method; the README advises narrowing large apps with include and exclude patterns, and output DEX defaults to API level 15.
- --remove-weak, on by default, removes code even when it has weak side effects, and --ignore-errors may lead to unexpected behaviour, so compare output with the original code. The repository includes a project-provided obfuscated example app for testing; tests ran through a Travis CI configuration using Oracle JDK 8, the repository has no GitHub Actions workflow.
- Dual-licensed: GPL-3.0 for open-source use, or a commercial license that permits binary distribution without source redistribution. Android framework classes and dependencies keep their own terms.

## Primary sources

1. <https://github.com/CalebFenton/simplify/blob/29fb25d624aecf0b075dea5c6029b2541474ddfe/README.md>
2. <https://github.com/CalebFenton/simplify/blob/29fb25d624aecf0b075dea5c6029b2541474ddfe/LICENSE.GPL>
3. <https://github.com/CalebFenton/simplify/blob/29fb25d624aecf0b075dea5c6029b2541474ddfe/LICENSE.COMMERCIAL>
4. <https://github.com/CalebFenton/simplify/blob/29fb25d624aecf0b075dea5c6029b2541474ddfe/.gitmodules>
5. <https://github.com/CalebFenton/simplify/blob/29fb25d624aecf0b075dea5c6029b2541474ddfe/.travis.yml>
6. <https://github.com/CalebFenton/simplify/blob/29fb25d624aecf0b075dea5c6029b2541474ddfe/smalivm/build.gradle>
7. <https://github.com/CalebFenton/simplify/releases/tag/v1.3.0>

## More in Apps

- [GDA (GJoy Dex Analyzer)](https://awesomerea.org/resources/gda-android-decompiler/index.md) · Tool
- [APKLab](https://awesomerea.org/resources/apklab/index.md) · Tool
- [Fernflower](https://awesomerea.org/resources/fernflower/index.md) · Tool
- [Bytecode Viewer](https://awesomerea.org/resources/bytecode-viewer/index.md) · Tool
- [Logic-Lens](https://awesomerea.org/resources/logic-lens/index.md) · Tool
- [Android Security Toolkit](https://awesomerea.org/resources/android-security-toolkit/index.md) · Tool

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
