A tool for reverse engineering 3rd party, closed, binary Android apps. It can decode resources to nearly original form and rebuild them after making some modifications; it makes possible to debug smali code step by step. Also it makes working with an app easier because of project-like file structure and automation of some repetitive tasks like building apk, etc.
It is NOT intended for piracy and other non-legal uses. It could be used for localizing, adding some features or support for custom platforms, analyzing applications and much more.
Features
- Disassembling resources to nearly original form (including
resources.arsc
, classes.dex
, 9.png.
and XMLs
)
- Rebuilding decoded resources back to binary APK/JAR
- Organizing and handling APKs that depend on framework resources
- Smali Debugging (to be removed in
2.1.0
in favor of IdeaSmali)
- Helping with repetitive tasks
Requirements
- Java 7 (JRE 1.7)
- Basic knowledge of Android SDK, AAPT and smali
Install Instructions
Quick Check
- Apktool 2.x (Versions after
1.5.2
)
- Is Java 1.7 installed?
- Does executing java -version on command line / command prompt return 1.7?
- If not, please install Java 7 and make it the default.
- Apktool 1.x (Versions prior to
1.5.2
)
- Is Java 1.6 or higher installed?
- Does executing java -version on command line / command prompt return 1.6 or above?
- If not, please install Java 6 or Java 7.
- Windows:
- Download Windows wrapper script (Right click, Save Link As
apktool.bat
)
- Download apktool-2 (find newest here)
- Rename downloaded jar to
apktool.jar
- Move both files (
apktool.jar
& apktool.bat
) to your Windows directory (Usually C://Windows
)
- If you do not have access to
C://Windows
, you may place the two files anywhere then add that directory to your Environment Variables System PATH variable.
- Try running apktool via command prompt
- Linux:
- Download Linux wrapper script (Right click, Save Link As
apktool
)
- Download apktool-2 (find newest here)
- Make sure you have the 32bit libraries (
ia32-libs
) downloaded and installed by your linux package manager, if you are on a 64bit unix system.
- (This helps provide support for the 32bit native binary aapt, which is required by apktool)
- Rename downloaded jar to
apktool.jar
- Move both files (
apktool.jar
& apktool
) to /usr/local/bin
(root needed)
- Make sure both files are executable (
chmod +x
)
- Try running apktool via cli
- Mac OS X:
- Download Mac wrapper script (Right click, Save Link As
apktool
)
- Download apktool-2 (find newest here)
- Rename downloaded jar to
apktool.jar
- Move both files (
apktool.jar
& apktool
) to /usr/local/bin
(root needed)
- Make sure both files are executable (
chmod +x
)
- Try running apktool via cli
Note - Wrapper scripts are not needed, but helpful so you don’t have to type java -jar apktool.jar over and over.
- Windows:
- Download
apktool-install-windows-*
file
- Download
apktool-*
file
- Unpack both to your Windows directory
- Linux:
- Download
apktool-install-linux-*
file
- Download
apktool-*
file
- Unpack both to
/usr/local/bin
directory (you must have root permissions)
- Mac OS X:
- Download
apktool-install-macos-*
file
- Download
apktool-*
file
- Unpack both to
/usr/local/bin
directory (you must have root permissions)