1.创建签名文件
创建key: 使用keytool.exe(位于%JAVA_HOME%\bin\keytool.exe)创建xxx.keystore,在命令行输入:
keytool -genkey -alias debug.keystore -keyalg RSA -validity 20000 -keystore debug.keystore
说明:
-genkey 产生密钥
-alias debug.keystore 别名
-keyalg RSA 使用RSA算法对签名加密
-validity 20000 有效期限2000天
-keystore debug.keystore
默认生成路径是:users/pcname/debug.keystore 指定路径就在最后替换如: -keystore d:\debug.keystore
2.解包
命令:apktool d demo.apk demo
说明:指定被解包的apk和输出的目录
3.修改
此步骤对解出的包进行修改
4.打包
命令:apktool b demo demo.apk
说明:指定需要打包的apk所在的目录和打包生成的apk名字
5.签名
命令:jarsigner -verbose -keystore demo.keystore -signedjar demo_si
gned.apk demo.apk demo.keystore
如果证书有密码,运行上面的命令以后,会提示输入证书密码
说明:
-verbose 输出签名的详细信息
-keystore demo.keystore 密钥库位置
-signedjar demo_signed.apk demo.apk demo.keystore 正式签名,三个参数中依次为签名后产生的文件demo_signed.apk,要签名的文件demo.apk和密钥库demo.keystore
其中jarsigner 位于..\jdk\bin目录下,可预设环境变量
6. 使用zipalign工具优化已签名的apk(非必须但建议这么做)
zipalign -v 4 demo_signed.apk demo_signed_aligned.apk
其中这里-v代表详细输出, 4代表对齐为4个字节,
对于是否有效可以通过 zipalign -c -v 4 destination.apk 来查看是否成功的优化了你的apk文件,这里-c参数代表检查对齐,可以看作是只读执行