From ee1a794680be01d7f966cc456bdb34979580a5d3 Mon Sep 17 00:00:00 2001 From: Glenn Carremans Date: Mon, 26 Oct 2020 12:17:32 +0100 Subject: [PATCH] Fixed bug package signature info not included --- .../java/org/fdroid/fdroid/IndexV1Updater.java | 2 +- app/src/main/java/org/fdroid/fdroid/Utils.java | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/fdroid/fdroid/IndexV1Updater.java b/app/src/main/java/org/fdroid/fdroid/IndexV1Updater.java index 21ae6c798..f9c333373 100644 --- a/app/src/main/java/org/fdroid/fdroid/IndexV1Updater.java +++ b/app/src/main/java/org/fdroid/fdroid/IndexV1Updater.java @@ -302,7 +302,7 @@ public class IndexV1Updater extends IndexUpdater { repo.version = getIntRepoValue(repoMap, "version"); if (TextUtils.isEmpty(platformSigCache)) { - PackageInfo androidPackageInfo = Utils.getPackageInfo(context, "android"); + PackageInfo androidPackageInfo = Utils.getPackageInfoWithSignatures(context, "android"); platformSigCache = Utils.getPackageSig(androidPackageInfo); } diff --git a/app/src/main/java/org/fdroid/fdroid/Utils.java b/app/src/main/java/org/fdroid/fdroid/Utils.java index 957746579..b9b101d48 100644 --- a/app/src/main/java/org/fdroid/fdroid/Utils.java +++ b/app/src/main/java/org/fdroid/fdroid/Utils.java @@ -19,6 +19,7 @@ package org.fdroid.fdroid; +import android.annotation.SuppressLint; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; @@ -808,6 +809,21 @@ public final class Utils { return null; } + /** + * Try to get the {@link PackageInfo} with signature info for the {@code packageName} provided. + * + * @return null on failure + */ + @SuppressLint("PackageManagerGetSignatures") + public static PackageInfo getPackageInfoWithSignatures(Context context, String packageName) { + try { + return context.getPackageManager().getPackageInfo(packageName, PackageManager.GET_SIGNATURES); + } catch (PackageManager.NameNotFoundException e) { + debugLog(TAG, "Could not get PackageInfo: ", e); + } + return null; + } + /** * Useful for debugging during development, so that arbitrary queries can be made, and their * results inspected in the debugger.