0

我想创建一个安全应用程序并想检查下载的应用程序是否未被篡改,我找到了使用该jarsigner实用程序验证应用程序的解决方案,但我可以以编程方式进行吗?

我已经看到我们可以添加二进制文件并以编程方式使用它,在这种情况下我可以这样做吗?如何??

4

2 回答 2

1

Android 检查 APK 签名是否在安装时验证,您不必手动进行。但是,这并不一定意味着签名就是您的签名,任何人都可以重新签署 APK。借助最近所谓的“MasterKey”漏洞,可以修改 APK 而不会使签名无效(就 Android 而言)。因此,如果您想确保获得的二进制文件与您期望的相同,请计算其 SHA1 等哈希值并与您的期望值进行比较。您还可以检查签名证书是否是您自己的。这将为您提供二进制证书:

PackageManager pm = getPackageManager();
byte[] certDer = pm.getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES).signatures[0];
于 2013-08-22T08:47:51.880 回答
0

这有一个 Maven 插件。您可以使用它来签署您的 APK 文件。https://code.google.com/p/maven-android-plugin/wiki/SigningAPKWithMavenJarsigner

于 2013-08-22T08:10:35.097 回答