签名的两种方式
- 利用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二者选项至少包含一个或者都存在