2 つの APK ファイルが同じ証明書で署名されていることを確認したいと思います。
Java SDK 全体を利用できますが、クロスプラットフォームの理由から Java コードから作成したいと考えています。
何か案は?
また、それらが同じ署名を使用して署名されているか、作成日による証明書の検証を使用していないかを知ることができます。
まず、ターミナルで .apk を含むフォルダーに移動します。
$ jarsigner -verify -verbose -certs my_application.apk
組み込み API PackageManager.checkSignatures()を使用します。
解決策は少し面倒ですが、それでも実行可能です。ソース コードを掘り下げてPackageManager.checkSignatures()
、実装を Java に移植するだけです。PackageManager では、署名の読み込みとチェックの部分は主に Java API に基づいています。
一般的なアイデア:
Signature
、チェックアウト方法、collectCertificates()
およびandroid.content.pm.PackageParserのメソッド。loadCertificates()
checkSignatures()
、およびcompareSignatures()
メソッドをチェック/比較する方法。これが理にかなっていることを願っています。