apktool Package Description
It is 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 app easier because of project-like files 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 and other GOOD purposes. Just try to be fair with authors of an app, that you use and probably like.
- decoding resources to nearly original form (including resources.arsc, XMLs and 9.png files) and rebuilding them
- smali debugging: SmaliDebugging
- helping with some repetitive tasks
- Author: Brut.alll
- License: Apache-2.0
Tools included in the apktool package
apktool – A tool for reengineering Android apk files
Apktool v1.5.2 – a tool for reengineering Android apk files
Copyright 2010 Ryszard Wiśniewski <email@example.com>
with smali v1.4.1, and baksmali v1.4.1
Updated by @iBotPeaches <firstname.lastname@example.org>
Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)
Usage: apktool [-q|–quiet OR -v|–verbose] COMMAND […]
d[ecode] [OPTS] <file.apk> [<dir>]
Decode <file.apk> to <dir>.
Do not decode sources.
Do not decode resources.
Decode in debug mode. Check project page for more info.
Baksmali — don’t write out debug info (.local, .param, .line, etc.)
Force delete destination directory.
-t <tag>, –frame-tag <tag>
Try to use framework files tagged by <tag>.
Use the specified directory for framework files
Use if there was an error and some resources were dropped, e.g.:
“Invalid config flags detected. Dropping resources”, but you
want to decode them anyway, even with errors. You will have to
fix them manually before building.
b[uild] [OPTS] [<app_path>] [<out_file>]
Build an apk from already decoded application located in <app_path>.
It will automatically detect, whether files was changed and perform
needed steps only.
If you omit <app_path> then current directory will be used.
If you omit <out_file> then <app_path>/dist/<name_of_original.apk>
will be used.
Skip changes detection and build all files.
Build in debug mode. Check project page for more info.
Loads aapt from specified location.
if|install-framework <framework.apk> [<tag>] –frame-path [<location>]
Install framework file to your system.
For additional info, see: http://code.google.com/p/android-apktool/
For smali/baksmali info, see: http://code.google.com/p/smali/
apktool Usage Example
Use debug mode (d) to decode the given apk file (/root/SdkControllerApp.apk):
I: Loading resource table…
I: Decoding AndroidManifest.xml with resources…
I: Loading resource table from file: /root/apktool/framework/1.apk
I: Regular manifest package…
I: Decoding file-resources…
I: Decoding values */* XMLs…
I: Copying assets and libs…