mirror of
https://github.com/M66B/FairEmail.git
synced 2025-12-27 08:01:50 +01:00
Check signature
This commit is contained in:
@@ -23,6 +23,8 @@ import android.accounts.Account;
|
||||
import android.accounts.AccountManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.TypedArray;
|
||||
import android.net.Uri;
|
||||
import android.preference.PreferenceManager;
|
||||
@@ -328,6 +330,30 @@ public class Helper {
|
||||
}
|
||||
}
|
||||
|
||||
public static String getFingerprint(Context context) {
|
||||
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");
|
||||
byte[] bytes = digest.digest(cert);
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (byte b : bytes)
|
||||
sb.append(Integer.toString(b & 0xff, 16).toUpperCase());
|
||||
return sb.toString();
|
||||
} catch (Throwable ex) {
|
||||
Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean hasValidFingerprint(Context context) {
|
||||
String signed = getFingerprint(context);
|
||||
String expected = context.getString(R.string.fingerprint);
|
||||
return (signed != null && signed.equals(expected));
|
||||
}
|
||||
|
||||
static boolean isPro(Context context) {
|
||||
if (false && BuildConfig.DEBUG)
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user