2013-08-22 18 views
0

我想创建一个安全应用程序,并希望检查下载的应用程序是否未被篡改, 我发现了一个使用jarsigner实用程序验证应用程序的解决方案,但是可以通过编程实现吗?在Android系统上运行Jarsigner实用程序

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

回答

1

Android检查APK签名是否在安装时验证,您不必手动执行。但是,这并不意味着签名是您的签名,任何人都可以重新签名APK。随着最近所谓的'MasterKey'漏洞,APK可以被修改而不会使签名无效(就Android而言)。所以,如果你想确保你得到了你期望的相同的二进制文件,可以计算出它的SHA1等哈希,并与你所期望的相比较。您还可以检查签名证书是否属于您自己的。这会给你的二进制证书:

PackageManager pm = getPackageManager(); 
byte[] certDer = pm.getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES).signatures[0]; 
+0

,但将比较这些应用程序的SHA1与服务器上的数据库,其中保存的应用程序wid diff版本的记录和他们的哈希会好吗? – Neji

+0

您需要为每个版本保留独立的哈希值。 –

相关问题