Android apk签名整理

来源:互联网 发布:国研网宏观经济数据库 编辑:程序博客网 时间:2024/06/05 09:47

Android apk 签名分三步:

1.创建证书
2.执行签名
3.对齐优化

1. 创建证书:
使用keytool工具(位于JDK的bin目录下)生成证书,创建命令举例:
keytool -genkey -v -alias CERT -keyalg RSA -keysize 2048 -validity 20000 -keystore CERT.keystore

参数解释:
-genkey—— 为生成证书
-v——为输出执行过程中的相关信息
-alias CERT——CERT为证书的别名
-keyalg RSA——加密使用算法为RSA
-keysize 2048——默认2048 bits,Android官方建议2048或是更高

查看刚生成或是已有的证书信息:
keytool -list -v -keystore keystoreName -storepass keystorePassword
参数-storepass keystorePassword——keystore的密码

若想要其他参数可以通过keytool -help查看帮助

2. 执行签名
使用jarsigner工具(位于JDK的bin目录下)对apk进行签名,命令如下:
jarsigner -verbose -keystore CERT.keystore unsigned.apk CERT

参数解释:
-verbose——输出相关信息
-keystore CERT.keystore——CERT.keystore为签名证书
CERT——签名证书别名

上述签名命令会将签好名的apk覆盖没有签名的apk,若不想覆盖可以将命令改为:
jarsigner -verbose -keystore CERT.keystore -signedjar unsigned.apk signed.apk CERT

签名后验证是否签名:
jarsigner -certs -verbose -verify unsigned.apk
参数-certs -verbose是为了方便查看更详细的验证信息

检查apk文件中的签名信息:
将apk后缀改成.zip, 解压,查看目录META-INF中的RSA文件,用keytool即可查看签名信息:
keytool -printcert -file ~/test/CERT.RSA

3. 对齐优化
使用Android SDK的zipalign工具(位于Android sdk中的build-tools下)对已签名apk进行对齐优化,命令举例:
zipalign -v 4 unaligned.apk aligned.apk

必须注意的一点是对齐必须在签名之后,因为签名会使对齐失效
验证apk是否已经对齐:
zipalign -c -v 4 aligned.apk

参考:
http://developer.android.com/intl/zh-cn/tools/publishing/app-signing.html
http://developer.android.com/intl/zh-cn/tools/help/zipalign.html

1 0
原创粉丝点击