-:Apktool:-
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
- Helping with repetitive tasks
-:Requirements:-
- Java 7 (JRE 1.7)
- Basic knowledge of Android SDK, AAPT and smali
-:Installation:-
-
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.
-:Links of Interest:-
- XDA Thread – For those who wish to communicate on XDA-Developers for community support
- Smali Project – Smali Project is the tool used in the disassembling of
.dex
files
- Freenode #apktool – IRC Channel for support, bugs and discussions
-:Authors:-
-:How To Use Apktool:-
Here is a example Guide of command which is used to de-compile and re-compile apk’s
$ apktool d test.apk
I: Using Apktool 2.0.0 on test.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: 1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
$ apktool b test
I: Using Apktool 2.0.0 on test
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
I: Checking whether resources has changed...
I: Building resources...
I: Building apk file...
I: Copying unknown files/dir...
$