如何在以编程方式安装之前验证下载的apk?

时间:2016-03-22 00:38:54

标签: android apk

我们使用类似下面的代码来安装从我们的服务器下载的apk:

public static void install(File file, Activity owner) {
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setDataAndType(Uri.fromFile(file),
            "application/vnd.android.package-archive");
    owner.startActivity(intent);
}

这样做没问题,但是我担心某种类型的攻击者可以用包含某种恶意软件的apk替换服务器上的apk。对于用户来说,可能很难判断这样的安装是否是我们应用程序的合法升级,即使它们出现了确认对话框。

是否可以通过编程方式验证apk中包含的签名密钥是否与我们的应用程序匹配?我知道PackageManager.getPackageInfo的存在,但我无法看到如何使用它来从尚未安装的APK中获取签名。

0 个答案:

没有答案