使用Android系统签名
直接使用系统签名,签名apk
需要platform.pk8
、platform.x509.pem
和signapk.jar
signapk jar
platform.pk8
保存private key加密
platform.x509.pem
X.509证书存储数字证书,公钥信息还能存各种key
java -jar signapk.jar platform.x509.pem platform.pk8 test.apk test_sign.apk
在windows上,使用Android系统的pk8和pem签名生成keystore文件
前提条件:系统安装了openssl
、jdk
或者git
如果有openssl
,直接使用openssl
即可,如果没有安装openssl
,可以使用git bash
窗口,git
支持openssl
,jdk
自带keytool
工具
在git bash
窗口生成keystore签名步骤如下:
openssl
使用platform.pk8
生成platform.pem
文件
openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem
openssl
使用platform.x509.pem
和platform.pem
生成了platform.p12
文件,设置的签名的密码:android
,别名:android
openssl pkcs12 -export -in platform.x509.pem -inkey platform.pem -out platform.p12 -password pass:android -name android
keytool
使用platform.p12
文件生成platform.keystore
文件,keystore
密码:android
/d/jdk-11.0.13.8-hotspot/bin/keytool.exe -importkeystore -deststorepass android -destkeystore platform.keystore -srckeystore platform.p12 -srcstoretype PKCS12 -srcstorepass android
- 确认
keystore
文件是PKCS12
标准(可省略)
/d/jdk-11.0.13.8-hotspot/bin/keytool.exe -importkeystore -srckeystore platform.keystore -destkeystore platform.keystore -deststoretype pkcs12
- 验证
keystore
签名,密码android
/d/jdk-11.0.13.8-hotspot/bin/keytool.exe -list -v -keystore platform.keystore
- 使用下面bat脚本对apk签名,使用
sdk
中的apksigner.jar
java -jar "D:\androidsdk\build-tools\30.0.3\lib\apksigner.jar" sign --ks platform.keystore --ks-key-alias android --ks-pass pass:android --key-pass pass:android --out test_sign.apk test.apk
- 使用下面bat脚本验证签名
java -jar "D:\androidsdk\build-tools\30.0.3\lib\apksigner.jar" verify -v test_sign.apk
验证结果如下
Verifies
Verified using v1 scheme (JAR signing): false
Verified using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): true
Verified using v4 scheme (APK Signature Scheme v4): false
Verified for SourceStamp: false
Number of signers: 1