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
必须引用包含专用密钥和相应的公共密钥证书链的有效密钥库密钥条目。

 

(转)【Android测试工具】03. ApkTool在Mac上的安装和使用(2.0版本)的更多相关文章

  1. 2014 非常好用的开源 Android 测试工具

    http://www.php100.com/html/it/mobile/2014/1015/7495.html 当前有很大的趋势是转向移动应用平台,Android 是最广泛使用的移动操作系统,201 ...

  2. Android Studio中mac上面的安装

    Android Studio中mac上面的安装 学习了:https://blog.csdn.net/xianrenli38/article/details/79347170 http://www.an ...

  3. Infer 在 Mac 上的安装和环境配置

    Infer 在 Mac 上的安装和环境配置 Infer 介绍 Infer 是一个静态分析工具.Infer 可以分析 Objective-C, Java 或者 C 代码,报告潜在的问题. 任何人都可以使 ...

  4. Mac上刚安装的WebStorm或PHPStorm遇到SVN版本太旧的问题

    Mac上刚安装的WebStorm或PHPStorm遇到SVN版本太旧的问题: URL: svn: E155021: This client is too old to work with the wo ...

  5. Mac上Hive安装配置

    Mac上Hive安装配置 1.安装 下载hive,地址:http://mirror.bit.edu.cn/apache/hive/ 之前我配置了集群,tjt01.tjt02.tjt03,这里hive安 ...

  6. 一点MongoDB的基础及mongodb在mac上的安装

    最近发现维持写博客的习惯还是挺困难的,尤其对我来说,计划好的事过了好长时间才想到要去做. 这段时间一直在熟悉MongoDB,首先我是参考的这一篇:8天学通MongoDB   原博主写得非常好,我这里就 ...

  7. MAC 上编译安装nginx-rtmp-module 流媒体服务器

    MAC 上编译安装nginx-rtmp-module 流媒体服务器 记录踩坑过程 下载nginx和nginx-rtmp-module wget http://nginx.org/download/ng ...

  8. 常见Android测试工具简介

    在进行android设备测试过程中,在进行系统测试时候,往往需要关注到很多方面,导致一个崩溃或者运行一段时间自动重启或者停止的问题很多.最简单来看,影响因素就有:底层硬件设备.OS层.上层app层.另 ...

  9. Android 测试工具集01

    Appium是一个支持原生,混合和移动web apps的开源的跨平台测试框架工具. ANDROID依赖 Android SDK API >= 17 (Additional features re ...

随机推荐

  1. magento产品成功添加到购物车后跳转到不同页面 添加 add to cart 按钮

    1 添加产品到购物车成功后是跳转到购物车页面或不跳转.这个在后台可以设置 system -> configuration -> After Adding a Product Redirec ...

  2. LeetCode Ugly Number (简单题)

    题意: 判断是一个数的质因子仅含有2,3,5这3个. 思路: 因子2比较容易解决,num/=num-(num&num-1)就可以了.3和5的需要通过循环来另判. C++ class Solut ...

  3. 将文件从一台linux机器拷贝到多台的方法

    首先你所操作的各台linux机器间必须设置了ssh免密码登录,具体方法可上网查看.将文件从一台linux机器拷贝到多台分为以下几个步骤: 第一步:创建脚本文件remotecopy.sh #!/bin/ ...

  4. The u32 classifier

    The u32 classifier The U32 filter is the most advanced filter available in the current implementatio ...

  5. 六 JSP 和 Servlet 的系统调优技巧

    方法一:在 Servlet 的 init() 函数中申请缓冲数据 方法二:禁止 Servlet 和 JSP 的自动重载: Servlet/JSP 提供了一个实用的技术,即自动重载技术,它为开发人员提供 ...

  6. MAVEN ERROR : Dynamic Web Module 3.0 requires Java 1.6 or newer

    问题: 在eclipse中,通过Maven->Update Project更新项目后,出现Dynamic Web Module 3.0 requires Java 1.6 or newer错误提 ...

  7. hdu 3666 Making the Grade

    题目大意 给出了一列数,要求通过修改某些值,使得最终这列数变成有序的序列,非增或者非减的,求最小的修改量. 分析 首先我们会发现,最终修改后,或者和前一个数字一样,或者和后一个数字一样,这样才能修改量 ...

  8. 徹底刪除atom

    rm -f ~/.atom rm -f /usr/local/bin/atom rm -f /usr/local/bin/apm rm -f /Applications/Atom.app rm -f ...

  9. 1-2 ISO/OSI七层模型简介

    相关名词解释: ISO:国际标准化组织 OSI:开放系统互联模型 IOS:苹果操作系统, 但是在计算机网络中,IOS是互联网操作系统,是思科公司为其网络设备开发的操作维护系统 <1>OSI ...

  10. PHP学习——数据类型

    PHP的数据是存在类型的概念的,弱类型指的是变量可以存储任何类型!一共8种,分别是:整型.浮点型.布尔型.字符串(标量类型) 数组.对象(符合类型) null.资源(特殊类型) 分成三大类: 标量类型 ...