我想使用JarSigner从Java代码验证APK。我正在编写一个以编程方式安装APK(非常类似于Google Play)的应用程序,在安装之前检查以下内容:
这就像在命令行上使用-verify选项运行jarsigner一样
我查了Java文档,我想我可以使用JarSigner.verifyJar() API。但这不是公共方法。有没有人试图从Java代码验证APK?会欣赏任何指针。
答案 0 :(得分:2)
你可以这样得到你的签名:
PackageInfo packageInfo = context.getPackageManager().getPackageInfo(
context.getPackageName(), PackageManager.GET_SIGNATURES);
List<String> list = new ArrayList<>();
for (Signature signature : packageInfo.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
final String currentSignature = Base64.encodeToString(md.digest(), Base64.DEFAULT);
list.add(currentSignature);
}
查看this article了解完整详情。