Самопроверка подписи APK - PullRequest
5 голосов
/ 30 марта 2012

Я хотел бы программно выполнить проверку подписи APK во время выполнения.У меня есть хранилище ключей на рабочей станции для разработки, поэтому я могу знать (не знаю, как) открытый ключ, с которым я подписываю APK.

Как только я узнаю, каким будет открытый ключ после вывески, я бы хотелвведите исходный код и проверьте, соответствует ли текущее приложение ключу.

Возможно ли это?Если да, как мне получить открытый ключ из хранилища ключей, созданного Eclipse?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 30 марта 2012

Вы можете попробовать это, оно должно работать

Signature[] sigs = getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES).signatures;
    for (Signature sig : sigs)
    {
        // log the sig here
    }
0 голосов
/ 27 июля 2016

Я думаю, что у меня такая же ситуация, как и у вас. Вот мое оригинальное решение .

Вы можете попробовать это.

Signature sig = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES).signatures[0];
Signature releaseSig = context.getPackageManager().getPackageAchiveInfo("/mnt/sdcard/myReleaseApk.apk", PackageManager.GET_SIGNATURES).signatures[0];
return sig.hashCode() == releaseSig.hashCode;
...