Вопрос по signing, certificate, android – Получение информации о сертификате из apk

43

Как мне узнать подробности о сертификате, с которым был подписан apk. У меня есть несколько apks, подписанных с другим сертификатом, и я пытаюсь сгруппировать их на основе их сертификата.

Я могу получить информацию об истечении срока действия сертификата с помощью jarsigner и выполнить свою задачу, но мне было любопытно, могу ли я получить какие-либо дополнительные сведения или извлечь открытый ключ (я считаю, что он хранится в META-INF / cert.RSA, но его нельзя прочитать)

Я хотел бы сделать это без кода (пожалуйста, не делайте мне больно, stackoverflow) Ravi Vyas
Ты можешь это сделатьruntime извлекая сертификат X509 из приложения (-й), я также должен получить открытый ключ. Jens

Ваш Ответ

4   ответа
47

Попробуйте следующее:

openssl pkcs7 -inform DER -in CERT.RSA -noout -print_certs -text
Вы также можете получить некоторую информацию с помощью Java.keytool: keytool -printcert -file CERT.RSA, ноopenssl более многословный, поэтому я предпочитаю его.
7

без распаковки вы можете использовать ApkSigner из Android SDK и следующие:

apksigner.jar verify --print-certs myApplication.apk
33

unzip -p Name-of-apk.apk META-INF/CERT.RSA | keytool -printcert это то, что я использовал.

Он производит информацию, такую как владелец, эмитент, серийный номер, действительный до конца, отпечатки пальцев сертификата, алгоритмы подписи и версия.

22

Основываясь на существующих ответах, здесь приведена командная строка для оперативного использованияopenssl (unzip & pipe the cert instead of defining an -infile option):

unzip -p App.apk META-INF/CERT.RSA |openssl pkcs7 -inform DER -noout -print_certs -text

Похожие вопросы