我该如何获取apk签名证书的详细信息。我有一堆使用不同证书签名的apks,我想按照它们的证书分组。
我可以使用jarsigner获取证书到期日的详细信息并完成我的任务,但我很好奇是否可以获取更多详细信息或提取公钥(我相信它存储在META-INF/cert.RSA中,但无法读取)。
我该如何获取apk签名证书的详细信息。我有一堆使用不同证书签名的apks,我想按照它们的证书分组。
我可以使用jarsigner获取证书到期日的详细信息并完成我的任务,但我很好奇是否可以获取更多详细信息或提取公钥(我相信它存储在META-INF/cert.RSA中,但无法读取)。
请尝试以下操作:
openssl pkcs7 -inform DER -in CERT.RSA -noout -print_certs -text
keytool
命令获取一些信息:keytool -printcert -file CERT.RSA
,但是openssl
提供了更详尽的输出,所以我更喜欢使用它。 - pevikunzip -p Name-of-apk.apk META-INF/CERT.RSA | keytool -printcert
是我所使用的。
它会生成一些信息,例如所有者、颁发者、序列号、有效期限、证书指纹、签名算法和版本号。
最简单的方法:
keytool -printcert -jarfile file.apk
这也适用于Android应用程序包(.aab)
keytool
在输出中已经停止显示MD5了。有猜测为什么会这样吗?尝试了很多搜索但没有成功。 - node_analyser根据现有答案,以下是使用 openssl
进行即时操作的命令行 (解压并将证书传递给管道而不是定义 -infile
选项):
unzip -p App.apk META-INF/CERT.RSA |openssl pkcs7 -inform DER -noout -print_certs -text
您可以使用 Android SDK 中的 ApkSigner,而无需解压缩 APK 文件,具体请参考以下内容:
apksigner.jar verify --print-certs myApplication.apk