安卓apk文件使用命令行进行V1和V2签名
- 前言
- 安装JDK、安卓SDK
- V1签名
- V2签名
- 签名验证
- 批处理自动签名
- 批处理文件编写
- 批处理签名使用
- 尾巴
前言
现在安卓APP要上传应用市场或者基于安全性考虑需要进行加固,而加固完成之后需要重新进行签名。在AS中我们能使用AS自带的打包功能进行签名,而单独的apk文件可以使用基于JDK和SDK的命令进行手动签名,下面我们就来看下怎么实现吧。
安装JDK、安卓SDK
这步是必须的,因为V1签名是基于JDK,V2签名是基于安卓SDK。
V1签名
V1签名是基于JDK,所以我们需要在命令行(win+R,然后输入cmd回车)进入安装JDK的bin目录,如下图:
接下来就是使用命令进行签名,命令如下:
jarsigner -verbose -keystore [jks路径] -signedjar [V1签名完后apk文件输出路径] [需要签名的apk路径] [签名文件别名]示例:
jarsigner -verbose -keystore D:\cer\Android\sign.jks -signedjar D:\Android\sign_V1.apk D:\Android\jiagu.apk test
如果各项配置没有问题的话,执行完命令后就可以正确生成V1签名的apk文件了。
V2签名
V2签名是基于安卓SDK,同样我们需要在命令行(win+R,然后输入cmd回车)进入SDK的build-tools目录,然后随意选择一个大于27的版本(这里最好选择高点的版本),然后进入lib目录,如下图:
接下来就是使用命令进行签名,命令如下:
java -jar apksigner.jar sign --ks [jks路径] --ks-key-alias [签名文件别名] --ks-pass pass:[证书密码] --key-pass pass:[别名密码] --out [V2签名完后apk文件输出路径] [需要V2签名的apk路径]示例:
java -jar apksigner.jar sign --ks D:\cer\Android\sign.jks --ks-key-alias test --ks-pass pass:123456 --key-pass pass:123456 --out D:\Android\sign_V2.apk D:\Android\sign_V1.apk
到这里V2签名也已经完成了。
签名验证
完成V2签名后使用命令进行签名验证(这里和V2签名一样,也要命令行进入到安卓SDK相关目录,参考上面步骤),命令如下:
java -jar apksigner.jar verify -v [签名文件的路径]示例:
java -jar apksigner.jar verify -v D:\Android\sign_V2.apk
如果正确的完成了V1和V2签名,则显示如下:
批处理自动签名
既然是用用命令行进行签名,那我们只要配置好了相关文件的路径,那就可以利用windows的批处理文件进行自动签名。
批处理文件编写
以V1签名为例,我们先要定位到JDK所在的bin目录,然后执行V1签名的命令,命令中配置好你的证书,需要签名的文件以及签完名的文件路径。代码如下:
cd /d D:\setup\JDK\Java\jdk1.8.0_171\bin && jarsigner -verbose -keystore D:cer\Android\sign.jks -signedjar D:\Android\sign_V1.apk D:\Android\jiagu.apk test
pause
新建文本,然后复制代码到文本文件,将后缀改为.bat,双击bat文件就可以进行V1自动签名了。
V2签名批处理跟上面类似,就不再赘述了,直接贴出代码:
cd /d D:\androidsdk\android-sdk-windows\build-tools\29.0.2\lib && java -jar apksigner.jar sign --ks D:\cer\Android\sign.jks --ks-key-alias test --ks-pass pass:123456 --key-pass pass:123456 --out D:\Android\sign_V2.apk D:\Android\sign_V1.apk
java -jar apksigner.jar verify -v D:\Android\sign_V2.apk
pause
这里将签名验证的命令也加入到了V2批处理文件中,如果不需要可以自行删除。
批处理签名使用
将各项参数配置好后,你就可以双击批处理文件进行自动签名,非常方便,如下图所示:
尾巴
今天的总结到这里就结束了,希望能对大家有帮助。如果喜欢我的文章,欢迎给我点赞:点赞,评论,关注,谢谢大家!