Androidの署名済みapkからfingerprintを表示したくて調べたことをメモしておきます。
jarsigner -verify
で取り出した証明書のCAで判別できればいいのですが、そうではない場合や、GCMやfacebookのAPIなどに登録したい場合に証明書のfingerprintを表示したいと思うので調べました。
↓こんなのが表示したいです。
MD5: B3:4F:BE:07:AA:78:24:DC:CA:92:36:FF:AE:8C:17:DB
SHA1: 16:59:E7:E3:0C:AA:7A:0D:F2:0D:05:20:12:A8:85:0B:32:C5:4F:68
Signature algorithm name: SHA1withRSA
keystoreから取り出す場合
keytool -list -keystore my-signing-key.keystore
署名前などわかっている場合はkeytoolで普通に確認できます。
通常はこれで十分なはずです。
apkから取り出す場合
Java7以上なら
keytool -list -printcert -jarfile app.apk
Java6以下なら
-jarfile
というオプションがJava7環境からしか使えないようなので、それ以前の場合はapkファイルをunzipして.RSAファイルを取り出して以下を行います。
.RSAファイルはビルド環境などによるかと思いますが、META-INF/CERT.RSA
などにあるかと思います。
keytool -printcert -file ANDROID_.RSA