簽名的兩種方式
- 利用keystore文件進行簽名
- 利用.pk8加上.pem進行判斷
講解android簽名過程文章
Android code signing:自備梯子
Signature & Certification
查看包簽名狀態 jarsigner -verify -verbose -certs V2.1.0-E1-20130804.0535.zip
如何找到簽名apk包的簽名
unzip -q -c test.apk META-INF/CERT.RSA|openssl pkcs7 -inform DER -print_certs -out cert.pem
該命令會生成cert.pem文件,文件的樣式是:
subject=/C=1111/ST=111/L=111/O=111/OU=111/CN=111
issuer=/C=1111/ST=111/L=111/O=111/OU=111/CN=111
-----BEGIN CERTIFICATE-----
MIICIzCCAYygAwIBAgIEUiBjKzANBgkqhkiG9w0BAQUFADBVMQ0wCwYDVQQGEwQx
MTExMQwwCgYDVQQIEwMxMTExDDAKBgNVBAcTAzExMTEMMAoGA1UEChMDMTExMQww
CgYDVQQLEwMxMTExDDAKBgNVBAMTAzExMTAgFw0xMzA4MzAwOTE3MzFaGA8yMDY4
MDYwMjA5MTczMVowVTENMAsGA1UEBhMEMTExMTEMMAoGA1UECBMDMTExMQwwCgYD
VQQHEwMxMTExDDAKBgNVBAoTAzExMTEMMAoGA1UECxMDMTExMQwwCgYDVQQDEwMx
MTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJcq0GbxEn1eeNkXne/7pnSl
6wqAaAp6mQqsDkzRBv8fuPE6lL4IObGQdgogve+B9UwbBW1l6xdCIvNlTjqKCyUs
/D+jyhwCdKIrg3L5wUqvr3cfsstk0leVZElLZFYMxOIWajv9oB/eVxe8xxYTSUNb
4uRIUmK5J5K/nBtYwlCxAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAkCBHUxAzU3hr
F7wuwlQbqju9njkbzGybq6P7A4WPXOh7RsXhdYYPwO74DwlOM1NySDOLQMM0PZqy
sZ3wM9iDURTn1OVrrUC1DcrritYghtSol11Z73G51Pr5bTzYN6swQ2ukFGAw4fdU
AXxAZmLtive5XmPBKQguL0IiFsqZzKg=
-----END CERTIFICATE-----
keystore文件轉爲pem文件
Converting a .jks Key Store to a .pem Key Store:這篇文章講述瞭如何將keystore文件轉換爲pem文件
其中的主要命令就是
keytool -importkeystore -srckeystore client.jks -destkeystore client.pkcs -srcstoretype JKS -deststoretype PKCS12 |
其中.jks文件即爲我們常用的.keystore文件
openssl pkcs12 -in client.pkcs -out client.pem |
如何判斷簽名
判斷的方式就是判斷利用簽名apk包生成的pem簽名與我們自己的pem簽名是否一致
判斷的腳本可以參見附件judge.sh
主要的用法:.
/judge.sh -z xxx.apk -f xxx.pem -d dir |
其中-z選項: 後面跟的是你的簽名的apk文件
-f選項: 後面跟的是你自己的pem文件「
-d選項: 後面跟的是你的包含pem文件的文件夾
注意:
-z選項必填
-f 和 -d二者選項至少包含一個或者都存在