When an Android APK needs its resources inspected or changed, Apktool can decode the package into files you can work with on Windows. The command-line tool also rebuilds the decoded project into an APK.
Decoded APK contents
Decoding an APK exposes its manifest, resources, and app code in a project folder. Compiled resource files, including Android XML, are converted into readable forms; DEX bytecode is disassembled into smali, Android’s assembly-like language. This gives developers and analysts files to inspect or edit without treating the APK as a single opaque archive.
The output is not the original Java or Kotlin source. Smali is a lower-level representation, so code-level work involves reading or editing those files.
How does the rebuild workflow work?
Use Apktool’s decode command on an APK to create the working folder. After changing resources, the manifest, or smali files, run the build command on that folder to produce a rebuilt package. The same decode-and-build cycle supports resource adjustments, package inspection, and reverse-engineering tasks.
- Decode an APK into a project directory.
- Edit the extracted resources or smali code.
- Build the directory back into an APK.
Shared Android framework resources
Some APKs, particularly system apps, refer to Android framework resources that are not contained in the app package itself. Apktool can install a framework APK into its local resource set so those references can be resolved when decoding or rebuilding related packages. This step is relevant when an APK depends on framework files beyond its own contents.
Pros
- Decodes compiled Android resources into editable files
- Displays app bytecode as smali for inspection and changes
- Rebuilds decoded projects into APK packages
Does Apktool convert an APK into Java source code?
No. It disassembles DEX bytecode into smali files; it does not recreate the original Java or Kotlin source.
Can Apktool rebuild an APK after resource edits?
Yes. Decode the APK, edit files in the resulting project folder, then use the build command on that folder.
Why install a framework APK in Apktool?
Some apps rely on shared Android framework resources. Installing the relevant framework lets Apktool resolve those references during decoding or rebuilding.