118 lines
3.9 KiB
Java
118 lines
3.9 KiB
Java
package com.google.android.gms.common;
|
|
|
|
import android.content.Context;
|
|
import android.content.pm.ApplicationInfo;
|
|
import android.content.pm.PackageInfo;
|
|
import android.content.pm.PackageManager;
|
|
import android.content.pm.Signature;
|
|
import android.util.Log;
|
|
import com.google.android.gms.common.internal.Preconditions;
|
|
import com.google.android.gms.common.wrappers.Wrappers;
|
|
|
|
/* loaded from: classes.dex */
|
|
public class GoogleSignatureVerifier {
|
|
private static GoogleSignatureVerifier b;
|
|
private final Context a;
|
|
|
|
private GoogleSignatureVerifier(Context context) {
|
|
this.a = context.getApplicationContext();
|
|
}
|
|
|
|
public static GoogleSignatureVerifier a(Context context) {
|
|
Preconditions.a(context);
|
|
synchronized (GoogleSignatureVerifier.class) {
|
|
if (b == null) {
|
|
zzc.a(context);
|
|
b = new GoogleSignatureVerifier(context);
|
|
}
|
|
}
|
|
return b;
|
|
}
|
|
|
|
private final zzm b(PackageInfo packageInfo) {
|
|
ApplicationInfo applicationInfo;
|
|
boolean honorsDebugCertificates = GooglePlayServicesUtilLight.honorsDebugCertificates(this.a);
|
|
if (packageInfo == null) {
|
|
return zzm.a("null pkg");
|
|
}
|
|
Signature[] signatureArr = packageInfo.signatures;
|
|
if (signatureArr.length != 1) {
|
|
return zzm.a("single cert required");
|
|
}
|
|
zzf zzfVar = new zzf(signatureArr[0].toByteArray());
|
|
String str = packageInfo.packageName;
|
|
zzm a = zzc.a(str, zzfVar, honorsDebugCertificates);
|
|
return (!a.a || (applicationInfo = packageInfo.applicationInfo) == null || (applicationInfo.flags & 2) == 0 || (honorsDebugCertificates && !zzc.a(str, (zze) zzfVar, false).a)) ? a : zzm.a("debuggable release cert app rejected");
|
|
}
|
|
|
|
public boolean a(int i) {
|
|
zzm a;
|
|
String[] a2 = Wrappers.a(this.a).a(i);
|
|
if (a2 == null || a2.length == 0) {
|
|
a = zzm.a("no pkgs");
|
|
} else {
|
|
a = null;
|
|
for (String str : a2) {
|
|
a = a(str, i);
|
|
if (a.a) {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
a.b();
|
|
return a.a;
|
|
}
|
|
|
|
public static boolean a(PackageInfo packageInfo, boolean z) {
|
|
if (packageInfo != null && packageInfo.signatures != null) {
|
|
if ((z ? a(packageInfo, zzh.a) : a(packageInfo, zzh.a[0])) != null) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public boolean a(PackageInfo packageInfo) {
|
|
if (packageInfo == null) {
|
|
return false;
|
|
}
|
|
if (a(packageInfo, false)) {
|
|
return true;
|
|
}
|
|
if (a(packageInfo, true)) {
|
|
if (GooglePlayServicesUtilLight.honorsDebugCertificates(this.a)) {
|
|
return true;
|
|
}
|
|
Log.w("GoogleSignatureVerifier", "Test-keys aren't accepted on this build.");
|
|
}
|
|
return false;
|
|
}
|
|
|
|
private final zzm a(String str, int i) {
|
|
try {
|
|
return b(Wrappers.a(this.a).a(str, 64, i));
|
|
} catch (PackageManager.NameNotFoundException unused) {
|
|
String valueOf = String.valueOf(str);
|
|
return zzm.a(valueOf.length() != 0 ? "no pkg ".concat(valueOf) : new String("no pkg "));
|
|
}
|
|
}
|
|
|
|
private static zze a(PackageInfo packageInfo, zze... zzeVarArr) {
|
|
Signature[] signatureArr = packageInfo.signatures;
|
|
if (signatureArr == null) {
|
|
return null;
|
|
}
|
|
if (signatureArr.length != 1) {
|
|
Log.w("GoogleSignatureVerifier", "Package has more than one signature.");
|
|
return null;
|
|
}
|
|
zzf zzfVar = new zzf(signatureArr[0].toByteArray());
|
|
for (int i = 0; i < zzeVarArr.length; i++) {
|
|
if (zzeVarArr[i].equals(zzfVar)) {
|
|
return zzeVarArr[i];
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
}
|