zoukankan      html  css  js  c++  java
  • (转)【Android测试工具】03. ApkTool在Mac上的安装和使用(2.0版本)

     

    http://blog.csdn.net/wirelessqa/article/details/8997168

     

     

    http://code.google.com/p/android-apktool/downloads/list

    1.下载apktool.jar — 解压

    2.下载Mac上的辅助工具apktool-install-macosx.. – 解压

     

    3. 将apktool.jar放到apktool-install-macosx..目录下,也就是跟apktool命令放到一起

    4.运行sh apktool

     

     

     

     

    01 bixiaopeng@bixiaopengtekiMacBook-Pro ~$ /Users/bixiaopeng/Downloads/apktool-install-macosx-r05-ibot/apktool ; exit;
    02 Apktool v1.5.2 - a tool for reengineering Android apk files
    03 Copyright 2010 Ryszard Wi?niewski <brut.alll@gmail.com>
    04 with smali v1.4.1, and baksmali v1.4.1
    05 Updated by @iBotPeaches <connor.tumbleson@gmail.com>
    06 Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)
    07  
    08  
    09 Usage: apktool [-q|--quiet OR -v|--verbose] COMMAND […]
    10  
    11  
    12 COMMANDs are:
    13  
    14  
    15     d[ecode] [OPTS] <file.apk> [<dir>]
    16         Decode <file.apk> to <dir>.
    17  
    18  
    19         OPTS:
    20  
    21  
    22         -s, --no-src
    23             Do not decode sources.
    24         -r, --no-res
    25             Do not decode resources.
    26         -d, --debug
    27             Decode in debug mode. Check project page for more info.
    28         -b, --no-debug-info
    29             Baksmali -- don't write out debug info (.local, .param, .line, etc.)
    30         -f, --force
    31             Force delete destination directory.
    32         -t <tag>, --frame-tag <tag>
    33             Try to use framework files tagged by <tag>.
    34         --frame-path <dir>
    35             Use the specified directory for framework files
    36         --keep-broken-res
    37             Use if there was an error and some resources were dropped, e.g.:
    38             "Invalid config flags detected. Dropping resources", but you
    39             want to decode them anyway, even with errors. You will have to
    40             fix them manually before building.
    41  
    42  
    43     b[uild] [OPTS] [<app_path>] [<out_file>]               ----从你给出的本地路径构建一个apk
    44         Build an apk from already decoded application located in <app_path>.
    45  
    46  
    47         It will automatically detect, whether files was changed and perform
    48         needed steps only.
    49  
    50  
    51         If you omit <app_path> then current directory will be used.
    52         If you omit <out_file> then <app_path>/dist/<name_of_original.apk>
    53         will be used.
    54  
    55  
    56         OPTS:
    57  
    58  
    59         -f, --force-all
    60             Skip changes detection and build all files.
    61         -d, --debug
    62             Build in debug mode. Check project page for more info.
    63         -a, --aapt
    64             Loads aapt from specified location.
    65  
    66  
    67     if|install-framework <framework.apk> [<tag>] --frame-path [<location>]
    68         Install framework file to your system.
    69  
    70  
    71 For additional info, see: http://code.google.com/p/android-apktool/
    72 For smali/baksmali info, see: http://code.google.com/p/smali/

     

    (1)先查看$PATH的配置

     

     

     


    (3)  接下来你就可以直接使用apktool了

    三.APKTOOL的命令解释

    1.反编译APK命令

    apktool d <file.apk> <dir>

    <file.apk>代表了要反编译的apk文件的路径,最好写绝对路径,比如C:MusicPlayer.apk

    <dir>代表了反编译后的文件的存储位置,比如C:MusicPlayer

    -f指令

    apktool d –f <file.apk> <dir>

     

     

    apktool b <dir>

    这里的<dir>就是刚才你反编译时输入的<dir>(如C:MusicPlayer),输入这行命令后,如果一切正常,你会 发现C:MusicPlayer内多了2个文件夹build和dist,其中分别存储着编译过程中逐个编译的文件以及最终打包的apk文件。

    该命令用于为APKTool安装特定的framework-res.apk文件,以方便进行反编译一些与ROM相互依赖的APK文件。具体情况请看常见问题

    四.APKTOOL使用实例

    4.1 反编译新浪微博的APK

     

    01 bixiaopeng@bixiaopengtekiMacBook-Pro ~$ apktool d /Users/bixiaopeng/Downloads/com.sina.weibo.apk /Users/bixiaopeng/work-folder/OWL-APKTOOL
    02 I: Baksmaling…
    03 I: Loading resource table…
    04 I: Loaded.
    05 I: Decoding AndroidManifest.xml with resources…
    06 I: Loading resource table from file: /Users/bixiaopeng/Library/apktool/framework/1.apk
    07 I: Loaded.
    08 I: Regular manifest package
    09 I: Decoding file-resources…
    10 I: Decoding values */* XMLs…
    11 I: Done.
    12 I: Copying assets and libs…

     

    作者:毕小朋  出处: http://www.wirelessqa.com 欢迎转载或分享,但请务必声明文章出处。如果文章对您有帮助,希望您能推荐或关注。 

    反编译后的结果:

     

     

     

    1 bixiaopeng@bixiaopengtekiMacBook-Pro ~$ apktool b /Users/bixiaopeng/work-folder/OWL-APKTOOL
    2 I: Checking whether sources has changed…
    3 I: Checking whether resources has changed…
    4 I: Building resources…
    5 I: Building apk file…

     

     


    4.3 自动签名

     

     

     

    1 bixiaopeng@bixiaopengtekiMacBook-Pro dist$ jarsigner -verbose -keystore bxp.keystore -signedjar new.apk com.sina.weibo.apk bxp.keystore

     

    【keystore】:bxp.keystore

    【签名前的apk名字】:com.sina.weibo.apk

     

     

     

     

    1 keytool -genkey -keystore bxp.keystore -keyalg RSA -validity 10000 -alias bxp.keystore

     

     

    -genkey    产生证书文件 

    -keystore  指定密钥库的.keystore文件中 

    -keyalg     指定密钥的算法

    -validity    为证书有效天数,这里我们写的是10000天。 
    -alias       产生别名 

    注意:

    2. 在用keytool生成数字证书时必须保证:-keystore androidapp.keystore -alias androidapp.keystore 两者名称必须相同。否则下一步签名时会出现错误:jarsigner: 找不到 androidapp.keystore 的证书链。androidapp.keystore 必须引用包含专用密钥和相应的公共密钥证书链的有效密钥库密钥条目。

     

     

     
  • 相关阅读:
    11.29 两百字
    Django:基础知识
    deepdiff:对比文件
    openpyxl:二次封装
    openpyxl:openpyxl的随笔
    web:pykeyboard、pymouse得使用
    Jmeter:如何让线程顺序执行
    Jmeter:如何将上一个线程得变量使用到下一个线程中,将上一个线程变量设置为全局变量
    Jmeter:BeanShell中的vars.put(string,string)
    Jmeter:数据库查询当天的日期
  • 原文地址:https://www.cnblogs.com/showker/p/4390007.html
Copyright © 2011-2022 走看看