apktool 下载地址: http://code.google.com/p/android-apktool/
使用说明上面的链接也写非常清楚,需要注意的就是java是1.6版本的。
前段时间整理了一个 wiki文档 http://lytsing.org/wiki/android/decompile.html ,简要列出了三个反编译工具:
- smali
- dedexer
- dexdump
今天下午与absurd老大聊了一下,他说apktool很强大,于是G它一把,看到youtubu有两个视频:
Apktool Demo 1 – Editing HTC_IME resources
Apktool Demo 2 – Smali improvements
视频请自行翻墙观看。视频还有人留言:”Fantastic! Simply Awesome. Thanks so much, I will be looking for your dontate button” . Laugh!人家弄个软件也不容易啊。
AndroidManifest.xml 一般用 AXMLPrinter2.jar 反编译后,勉强看懂,但还有一些字符串没翻译,apktool做的更彻底,一步到位。不过用AXMLPrinter2.jar反编译xml文件输出的结果很整齐美观。用Eclipse格式化layout的xml文件,结果不那么令人满意。在Jeff Sharkey的一篇博文中,他说Roman Guy会把xml格式化很漂亮,为此,曾经给Roman Guy发过邮件,至今没得到回复:(
用dedexer反编译出来的ddx文件,参数名没显示出来,
.method public static getSearchQueryForPublisher(Ljava/lang/String;)Ljava/lang/String;
.limit registers 3
; parameter[0] : v2 (Ljava/lang/String;)
apktool 反编译出来的smali文件,参数名都列出来了:
.method public static getSearchQueryForPublisher(Ljava/lang/String;)Ljava/lang/String;
.locals 2
.parameter "publisher"
用dedexer反编译出来的ddx格式文件,可读性会好一些。
youtube的视频演示了如何修改代码,然后重新打包,签名发布。至于用来汉化,更是小case。同时,从另一个方面来讲,Android程序的安全问题也很是忧虑。
apktool令人感到震撼,我那wiki页面信息全out了。