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 toolforreengineering Android apk files
03 Copyright2010Ryszard 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 License2.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 pageformore 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 directoryforframework files
36 --keep-broken-res
37 Useifthere 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 pageformore 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 manifestpackage
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 -signedjarnew.apk com.sina.weibo.apk bxp.keystore

【keystore】:bxp.keystore

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

1 keytool -genkey -keystore bxp.keystore -keyalg RSA -validity10000-alias bxp.keystore

-genkey 产生证书文件

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

-keyalg 指定密钥的算法

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

注意:

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

更多相关文章

  1. GitHub 标星 2.5K+!教你通过玩游戏的方式学习 VIM!
  2. 如何在后台运行Linux命令?
  3. 一款常用的 Squid 日志分析工具
  4. No.11 使用firewall配置的防火墙策略的生效模式
  5. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  6. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  7. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  8. Android(安卓)之AnimationDrawable
  9. android初涉JNI

随机推荐

  1. 如何修改Android设备添加重启、飞行模式
  2. Libusb库在Android下的使用例程
  3. 预知未来!2013年Android发展3大趋势预测
  4. Android Studio XML布局控件不提示属性以
  5. android定时器的用法总结
  6. 更改Android studio中SDK,AVD的默认路径
  7. Android中的帧动画的简单使用
  8. Android模拟器的换肤和Android学习资料下
  9. Android(安卓)开发杂记
  10. android中TextView属性方法总结