From 393659c12173d7cf3a1b8fde1086dd8b0fc88114 Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 30 Jun 2021 11:04:46 +0200 Subject: [PATCH] Amazon resigns APKs --- app/src/main/java/eu/faircode/email/Helper.java | 17 ++++++++++++++--- app/src/main/res/values/strings.xml | 1 + 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java index d7dea8eecd..7bbfdaea3c 100644 --- a/app/src/main/java/eu/faircode/email/Helper.java +++ b/app/src/main/java/eu/faircode/email/Helper.java @@ -1576,12 +1576,16 @@ public class Helper { } static String getFingerprint(Context context) { + return getFingerprint(context, "SHA1"); + } + + static String getFingerprint(Context context, String hash) { try { PackageManager pm = context.getPackageManager(); String pkg = context.getPackageName(); PackageInfo info = pm.getPackageInfo(pkg, PackageManager.GET_SIGNATURES); byte[] cert = info.signatures[0].toByteArray(); - MessageDigest digest = MessageDigest.getInstance("SHA1"); + MessageDigest digest = MessageDigest.getInstance(hash); byte[] bytes = digest.digest(cert); StringBuilder sb = new StringBuilder(); for (byte b : bytes) @@ -1596,8 +1600,15 @@ public class Helper { static boolean hasValidFingerprint(Context context) { if (hasValidFingerprint == null) { String signed = getFingerprint(context); - String expected = context.getString(R.string.fingerprint); - hasValidFingerprint = Objects.equals(signed, expected); + String[] fingerprints = new String[]{ + context.getString(R.string.fingerprint), + context.getString(R.string.fingerprint_amazon) + }; + for (String fingerprint : fingerprints) + if (Objects.equals(signed, fingerprint)) { + hasValidFingerprint = true; + break; + } } return hasValidFingerprint; } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index caaea58597..d1786d708d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1935,5 +1935,6 @@ 17BA15C1AF55D925F98B99CEA4375D4CDF4C174B + 200D0AA43A8ADBC7BB8237023C1553F4753CA7D2 MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtFbxEbzL8u5accPGgBw/XdyiSS5BBE6ZQ9ELpKyJ/OQN+kdYniCAOw3lsQ/GuJScy4Y2HobqbBgLL8GLHG+Yu2EHC9dLjA3v2Mc25vvnfn86BsrpQvz1poN2n+roTBdq09FWbtebJ8m0hDBVmtfRi7RhTKIL4No3kodLhksdnucKjcFheubebWKgpmvbmw7NwuELhaZmyhw8WTtnQ4rZPMhjY1JJZgzwNExXgD7zzg4pJPkuQlfkuRkkvBpHpi3C7VDnYjrBlLHngI4wv3wxQBVwJqlvAT9PmX8dOVnTsWWdJdLQBZVWphuqVY54kjBIovN+o8w03WjsV9QiOQq+XwIDAQAB