如何验证apk是否签名成功,apk比对keystore的签名信息
本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦:
- 1.如何验证apk是否签名成功
- 2.apk比对keystore的签名信息
签名对于apk的重要性
发布过Android应用的朋友们应该都知道,Android APK的发布是需要签名的。签名机制在Android应用和框架中有着十分重要的作用。 —— [ csnd博客 ]
验证apk是否加签我们可以使用 jarsigner 命令来完成
cmd命令代码:jarsigner -certs -verbose -verify xxx.apk
下面是验证过签名apk的输出结果:
检测apk是否为该keystore来加签的
1.第一步需要输出keystore的签名信息,如所有者,发布者,序列号,创建时间等等,还有最为重要的证书指纹。证书指纹里面就有加签的算法 ,MD5,SHA1,SHA256,签名算法名称,这些信息。
cmd命令行代码:keytool -list -v -keystore apk.keystore
下面是keystore的签名信息:
2.第二步将XXX.apk的签名信息打印出来
(1)查找apk里的rsa文件
Windows 平台:
jar tf demo .apk |findstr RSA
Linux 平台:
jar tf demo .apk |grep RSA
META-INF/CERT.RSA
(2) 从apk中解压rsa文件
jar xf demo .apk META-INF/CERT.RSA
(PS:获取rsa文件也可以将apk解压里面就META-INF文件夹,该目录下就可以找到相应的rsa文件了)
获取签名的fingerprints
(3)keytool -printcert -file META-INF/CERT.RSA
根据上一步得到keystore 的签名信息来比对,签名证书的MD5 和 SHA1 相同就是,否则不是。
还有一种方法可以直接将apk的签名信息打印出来
cmd命令行: keytool -printcert -jarfile XXX.apk