apktool 介绍

这是逆向工程的第三方,封闭的,二进制Android应用的工具。它可以解码的资源到近原来的形式,使一些修改后,重建他们。它使得可以调试smali代码一步一步来。同时它与应用程序的工作,因为项目类文件结构就像盖APK等一些重复的任务和自动化更容易,

它的目的不是盗版和其他非合法用途。它可以用来本地化,增加了一些功能或支持自定义平台等有良好的目的。作者只是让大家尽量公平使用应用程序,

产品特点:
 解码资源接近原始形式(包括resources.arsc,XML,9.png文件)并重建,
 smali调试,
 帮助一些重复性任务,

资料来源:https://code.google.com/p/android-apktool/

apktool 首页
apktool 源代码版本库


作者:Brut.alll
许可:Apache 2.0

包含在apktool包工具

apktool - 重新规划的Andr​​oid APK文件的工具
:~# apktool
Apktool v1.5.2 - a tool for reengineering Android apk files
Copyright 2010 Ryszard Wiśniewski <>
with smali v1.4.1, and baksmali v1.4.1
Updated by @iBotPeaches <>
Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)

Usage: apktool [-q|--quiet OR -v|--verbose] COMMAND [...]

COMMANDs are:

    d[ecode] [OPTS] <file.apk> [<dir>]
        Decode <file.apk> to <dir>.

        OPTS:

        -s, --no-src
            Do not decode sources.
        -r, --no-res
            Do not decode resources.
        -d, --debug
            Decode in debug mode. Check project page for more info.
        -b, --no-debug-info
            Baksmali -- don't write out debug info (.local, .param, .line, etc.)
        -f, --force
            Force delete destination directory.
        -t <tag>, --frame-tag <tag>
            Try to use framework files tagged by <tag>.
        --frame-path <dir>
            Use the specified directory for framework files
        --keep-broken-res
            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.

        OPTS:

        -f, --force-all
            Skip changes detection and build all files.
        -d, --debug
            Build in debug mode. Check project page for more info.
        -a, --aapt
            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 用法示例

使用调试模式(D)给定的apk文件(/root/SdkControllerApp.apk)解码:

:~# apktool d /root/SdkControllerApp.apk
I: Baksmaling...
I: Loading resource table...
I: Loaded.
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: /root/apktool/framework/1.apk
I: Loaded.
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Done.
I: Copying assets and libs...