[转载] http://kyleyan.net/?p=360
环境
JDK 1.5 以上
1.apk反编译与打包
工具:apktool
Requirements: JRE 1.6 (Java Runtime Environment)
aapt command in a PATH
basic knowledge of what is SDK, aapt, PATH, smali and Google search engine may be useful
Installation for noobs:
Linux:Download apktool-install-linux-* file
Download apktool-* file
Unpack both to /usr/local/bin directory (you must have root permissions)
反编译:
apktool d test.apk 存放路径
打包:
sudo apktool b
2.使用keytool和jarsigner签名
生成了签名文件my.keystore:
keytool -genkey -alias my.keystore -keyalg RSA -validity 20000 -keystore my.keystore
签名:
jarsigner -verbose -keystore my.keystore -signedjar TEST-signed.apk TEST.apk my.keystore
TEST.apk:待签名的apk
TEST-signed.apk:要生成的签名apk
3.google reader修改为https连接(来源)
修改smali/com/google/android/apps/reader/net/ReaderUri.smali
将第51行的 http://www.google.com/reader/ 修改为 https://www.google.com/reader/
4.其他
签名时,生成的签名文件使用默认的my.keystore,可以签名成功,并安装成功,但无法运行,直接报错;尝试改为其他名字(改成ANDROID),一切正常。
好奇怪。。
dex2jar
1.
首先找到Android
软件安装包中的class.dex
把apk
文件改名为.zip
,然后解压缩其中的class.dex
文件,它就是java
文件编译再通过dx
工具打包成的,
所以现在我们就用上述提到的2
个工具来逆方向导出java
源文件;
2.
把class.dex
拷贝到dex2jar.bat
所在目录。
运行dex2jar.bat class.dex
,生成classes.dex.dex2jar.jar
Ubuntu
系统下:
在终端下定位到dex2jar.sh所在目录,运行
sh dex2jar.sh classes.dex
则可生成classes.dex.dex2jar.jar
GUI-JD