Apktool is a free and open source utility for reengineering 3rd party, closed, binary Android apps.
Apktool 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, Apktool makes working with app easier because of project-like files structure and automation of some repetitive tasks like building apk, etc.
Apktool is NOT intended for piracy and other non-legal uses. Apktool 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.
Detailed instructions on how to install and use the Apktool utility on your Mac are available HERE.
Apktool is a cross-platform utility capable of running on any operating system that comes with Java support (e.g. Mac OS X, Windows, Linux).
Here are some key features of "Apktool":
- 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
- Fixed ( issue #299 ) - output smali filename errors to screen during rebuild instead of filestream
- Only show the --aapt / -a info in verbose mode.
- Fixed ( issue #392 ) - Don't crash out if .git folder isn't present. Use SNAPSHOT-DEV instead.
- Fixed ( issue #67 ) - Only store compressed resources.arsc if original was compressed, otherwise STORE.
- Moved build.gradle files to each sub-project, more organization :)
- Fixed ( issue #394 ) - Prevented duplicated files in final jar which saved around 1.2mb.
- Added Proguard to drop final jar size from 6.2mb to 2.6mb.
- Fixed ( issue #395 ) - Added check for "aapt" in unit-tests.
- Added ability to use "--frame-path" on [if|install-framework]
- Fixed renaming of ".r.9.png" images -> ".9.png".
- Added ability to use --version to print out Apktool version