ApkTool在Mac上的安装和使用

标签: apktool mac | 发表时间:2013-05-30 15:05 | 作者:wirelessqa
出处:http://blog.csdn.net
本文目录

作者:毕小朋 

博客:  http://www.wirelessqa.com 

Android apktool是一个用来处理APK文件的工具,可以对APK进行反编译生成程序的源代码和图片、XML配置、语言资源等文件,也可以添加新的功能到APK文件中。用该工具来汉化Android软件然后重新打包发布是相当简单的。

下载地址: 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

1

运行结果:

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的配置

2

(2)将上述三个文件复制到/usr/local/bin 下面

3

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

三.APKTOOL的命令解释

1.反编译APK命令

decode:该命令用于进行反编译apk文件,一般用法为 :

apktool d <file.apk> <dir>

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

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

如果你给定的<dir>已经存在,那么输入完该命令后会提示你,并且无法执行,需要你重新修改命令加入-f指令

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

这样就会强行覆盖已经存在的文件

2.编译修改好的文件

build:该命令用于编译修改好的文件,一般用法为:

apktool b <dir>

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

3.install-framework

该命令用于为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 欢迎转载或分享,但请务必声明文章出处。如果文章对您有帮助,希望您能推荐或关注。 

反编译后的结果:

4

4.2 重新打包修改后的资源文件

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…

 

重新打包成功后,在原文件夹下面会多出一个dist文件夹,重新打包的APK就存在下面

5

4.3 自动签名

将你准备签名的keystore放到当前目录下,运行命令:

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

 

小解其意:

【keystore】:bxp.keystore

【签名后的apk名字】:new.apk

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

6.6

【如果您没有keystore或者是不知道keystore密钥库的口令,那么您需要自己做一个,怎么做?跟我来吧!!】

4.4 用命令行创建keystore

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

 

6

命令参数说明:

-genkey    产生证书文件 

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

-keyalg     指定密钥的算法

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

在输入密码时没有回显,只管输入就可以了,一般位数建议使用20位,切忌需要记下来后面还要用,

注意:

1. CN(Common Name – 名字与姓氏):其实这个“名字与姓氏”应该是域名,比如说localhost或是blog.devep.net之类的。输成了姓名,和真正运行的时候域名不符,会出问题。浏览器访问时,弹出一个对话框,提示“安全证书上的名称无效,或者与站点名称不匹配”,用户选择继续还是可以浏览网页。但是用http client写程序访问的时候,会抛出类似于“javax.servlet.ServletException: HTTPS hostname wrong: should be ”的异常。

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

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

本文链接: ApkTool在Mac上的安装和使用

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源: WirelessQA-记录老毕成长的点滴,谢谢!^^



作者:wirelessqa 发表于2013-5-30 23:05:15 原文链接
阅读:89 评论:0 查看评论

相关 [apktool mac] 推荐:

ApkTool在Mac上的安装和使用

- - CSDN博客移动开发推荐文章
三.APKTOOL的命令解释. 4.1 反编译新浪微博的APK. 4.2 重新打包修改后的资源文件. 4.4 用命令行创建keystore. 博客:  http://www.wirelessqa.com . Android apktool是一个用来处理APK文件的工具,可以对APK进行反编译生成程序的源代码和图片、XML配置、语言资源等文件,也可以添加新的功能到APK文件中.

使用apktool解包和打包apk

- - CSDN博客推荐文章
使用apktool解包和打包apk. 使用apktool解包要植入代码的apk(以下称为A),. 使用apktool解包包含待植入代码的apk(以下称为B). -将B的AndroidManifest.xml中相应的权限和各组件声明信息复制到A中. -把B的相应的smali文件复制到A中. -把B的相应的布局文件复制到A中.

新的 Mac Mini

- delphij - Gea-Suan Lin&#39;s BLOG
為了螢幕的問題弄得相當疲倦 XD. 這幾天可以在一般的店家通路買到新的 Mac Mini,但沒事先做好功課,配上 Dell U2711 讓人碰了不少壁…. 買完 Mac Mini 後第一個想法是用 DVI & USB KVM 同時接 PC 與 Mac Mini,於是順便買 ATEN CS682,裝上去後發現只能支援到 1920×1080… 想想算了,其他地方也還用的到.

Mac迅雷正式上架Mac App Store

- Woooon - cnBeta.COM
今天在Mac App store中赫然发现Mac迅雷的身影. 摘录信息如下:Thunder For Mac 是基于Mac平台的下载软件,支持P2SP,BT和eMule下载协议;高速可靠的数据传输和简约的界面操作,让下载更轻松.

ProVoc – 背!单!词![Mac] | 小众软件 > Mac

- Richard - 小众软件
长孙二狗买过的单词书如果撕开用来擦屁股的话,一年多都够用了. 他把原因归咎于自己天天玩电脑,遂在 Mac 上装专业背单词软件 ProVoc. 功能强大,便于使用,网上还有免费词库下载. 过了一年,二狗还是没记住几个单词,电脑里面的词库倒是够他看几个世纪的了. 下载: 官方 | 下载 | 来自小众软件.

Mac QQ V1.1.1 发布

- KNocTis - cnBeta.COM
1.解决发图片视频崩溃问题;2.修正部分用户反馈bug;3.支持10.5系统下的视频;. 4.大幅优化各个环节的资源使用. 新增视频功能、自定义表情、讨论组、代理登陆等功能.

酷动画: Mac与Cheese[v]

- Leo - 煎蛋
这个动画短片是由乌特列支艺术学院的四名学生耗费5个月时间做出来的. 动画的剧情很简单,两个人你追我逃,不过一个为了逃,磕了兴奋剂;另一个为了追,打了肾上腺素……然后大家请欣赏这充满了迷幻和意识流感的神奇动画吧. 剧透可耻:我看懂了开头,却没有猜中结局……. Google Picasa Mac 版释出.

Mac OS X 10.6.8 升级

- 子奇 - Engadget 中国版
看来 Apple 还打算让 Lion 上阵前再撑一阵子,Mac OS X 10.6.8 升级软件现在已经可以下载,修正了一些操作系统的问题,支持 IPv6 的一些功能以及加强 VPN 稳定度,另外也会自动找出并移除 Mac Defender 恶意软件及其已知变体,并解决预览程序有时会自动跳出的问题.

免费的Hex Color Picker (for Mac)

- yeqiu - Reborn
OS X升级到Lion之后,Pixie上没有了拷贝Color code的功能,相应的功能被打包到App Store里成了收费软件. 最方便的解决方案是使用免费的Hex Color Picker. 下载后的压缩包里,有一个名为“HexColorPicker.colorPicker”的文件,将其拷贝到“~/Library/ColorPickers”目录中(如果没有这个目录就创建它).

Mac Mini王者归来记

- Lu - 白板报
自从Mac Mini被我弄坏之后,我度过了假装世上没有它的十天. 昨天打电话给果硕维修中心,他们说不但更换被我弄坏的i/o接头,还帮我换了ssd硬盘(型号:crucial m4 256g),但是不确定有没有修好,因为他们没有显示器,无法测试. 我赶紧背着显示器出门,钱包里装了不多不少正好1000元钱,准备在对方狮子大开口的时候,掏出钱包给他们看,“就这些钱,再多,没有了,大不了,我mini不要了.