From 2fc8060a5dc76f6705476b26798e914814d6da1c Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Thu, 6 Jul 2017 14:06:20 +1000 Subject: [PATCH] Check file size first before checking hash to save cycles. --- app/src/main/java/org/fdroid/fdroid/AppUpdateStatusService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/org/fdroid/fdroid/AppUpdateStatusService.java b/app/src/main/java/org/fdroid/fdroid/AppUpdateStatusService.java index e846dd7dc..fcdf0ef3d 100644 --- a/app/src/main/java/org/fdroid/fdroid/AppUpdateStatusService.java +++ b/app/src/main/java/org/fdroid/fdroid/AppUpdateStatusService.java @@ -107,6 +107,7 @@ public class AppUpdateStatusService extends IntentService { PackageInfo info = getPackageManager().getPackageInfo(downloadedApk.packageName, 0); File pathToInstalled = InstalledAppProviderService.getPathToInstalledApk(info); if (pathToInstalled != null && pathToInstalled.canRead() && + pathToInstalled.length() == downloadedApk.size && // Check size before hash for performance. TextUtils.equals(Utils.getBinaryHash(pathToInstalled, "sha256"), downloadedApk.hash)) { Log.i(TAG, downloadedApk.packageName + " is pending install, but we already have the correct version installed."); AppUpdateStatusManager.getInstance(this).markAsNoLongerPendingInstall(downloadedApk.getUrl());