To modify an app, you generally follow a four-step cycle known as the Decompile-Edit-Recompile-Sign cycle:
Decode APK
Inspect resources and manifest
Modify resources
Modify code (smali)
Rebuild APK
apktool b app_decoded -o unsigned.apk
Sign APK
Install on device
adb install -r signed.apk
Debugging tips
APKTool M lacks batch search/replace, but you can use its File Manager to copy all XML files to a folder, edit on PC, then replace back. For pure mobile, edit one by one.
| Problem | Solution |
|--------|----------|
| aapt errors | Install Java 8+ and Android SDK build-tools |
| Missing framework files | apktool if framework-res.apk (from device / system) |
| App crashes after rebuild | Make sure you signed the APK — unsigned won’t run on most devices |
| AndroidManifest.xml not updating | Delete original/ folder before rebuilding |
| Smali logic errors | Test small changes first; use logcat for debugging | apktool m tutorial
Apktool M is an advanced APK decompiler, editor, and recompiler for Android. Unlike the PC-based Apktool, this app lets you decompile, modify, and rebuild APKs directly on your phone.
Developer: Maximoff (based on iBotPeaches' Apktool)
Platform: Android 5.0+
Price: Free (open-source)
Latest version: v2.4.0 (as of 2025)
apktool b app -o modified.apk
The b stands for build. Some people alias apktool m for "make" in custom scripts, but officially:
After building, modified.apk is unsigned and won’t install directly.
Let’s say you want to bypass a license check. Find a method returning boolean – e.g., isLicensed() – and change its Smali: To modify an app, you generally follow a
Original:
const/4 v0, 0x0 # false
return v0
Change to:
const/4 v0, 0x1 # true
return v0
Always keep the same number of registers.
Advanced users create "patches." Instead of editing the code manually every time, you write a small script or use a diff tool to apply changes automatically.