Files
rr3-apk/decompiled-community/sources/com/facebook/internal/FacebookSignatureValidator.java
Daniel Elliott c080f0d97f Add Discord community version (64-bit only)
- Added realracing3-community.apk (71.57 MB)
- Removed 32-bit support (armeabi-v7a)
- Only includes arm64-v8a libraries
- Decompiled source code included
- Added README-community.md with analysis
2026-02-18 15:48:36 -08:00

73 lines
3.3 KiB
Java

package com.facebook.internal;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
import android.os.Build;
import java.util.HashSet;
import kotlin.collections.CollectionsKt___CollectionsKt;
import kotlin.collections.SetsKt__SetsKt;
import kotlin.jvm.internal.Intrinsics;
import kotlin.text.StringsKt__StringsJVMKt;
/* loaded from: classes2.dex */
public final class FacebookSignatureValidator {
private static final String FBF_HASH = "2438bce1ddb7bd026d5ff89f598b3b5e5bb824b3";
private static final String FBI_HASH = "a4b7452e2ed8f5f191058ca7bbfd26b0d3214bfc";
private static final String FBL_HASH = "df6b721c8b4d3b6eb44c861d4415007e5a35fc95";
private static final String FBR2_HASH = "cc2751449a350f668590264ed76692694a80308a";
private static final String FBR_HASH = "8a3c4b262d721acd49a4bf97d5213199c86fa2b9";
private static final String IGR_HASH = "c56fb7d591ba6704df047fd98f535372fea00211";
public static final FacebookSignatureValidator INSTANCE = new FacebookSignatureValidator();
private static final String MSR_HASH = "9b8f518b086098de3d77736f9458a3d2f6f95a37";
private static final HashSet<String> validAppSignatureHashes;
private FacebookSignatureValidator() {
}
static {
HashSet<String> hashSetOf;
hashSetOf = SetsKt__SetsKt.hashSetOf(FBR_HASH, FBR2_HASH, FBI_HASH, FBL_HASH, MSR_HASH, FBF_HASH, IGR_HASH);
validAppSignatureHashes = hashSetOf;
}
public static final boolean validateSignature(Context context, String packageName) {
boolean contains;
Intrinsics.checkNotNullParameter(context, "context");
Intrinsics.checkNotNullParameter(packageName, "packageName");
String brand = Build.BRAND;
int i = context.getApplicationInfo().flags;
Intrinsics.checkNotNullExpressionValue(brand, "brand");
if (StringsKt__StringsJVMKt.startsWith$default(brand, "generic", false, 2, null) && (i & 2) != 0) {
return true;
}
try {
PackageInfo packageInfo = context.getPackageManager().getPackageInfo(packageName, 64);
Signature[] signatureArr = packageInfo.signatures;
if (signatureArr == null) {
return false;
}
Intrinsics.checkNotNullExpressionValue(signatureArr, "packageInfo.signatures");
if (signatureArr.length == 0) {
return false;
}
Signature[] signatureArr2 = packageInfo.signatures;
Intrinsics.checkNotNullExpressionValue(signatureArr2, "packageInfo.signatures");
for (Signature signature : signatureArr2) {
HashSet<String> hashSet = validAppSignatureHashes;
Utility utility = Utility.INSTANCE;
byte[] byteArray = signature.toByteArray();
Intrinsics.checkNotNullExpressionValue(byteArray, "it.toByteArray()");
contains = CollectionsKt___CollectionsKt.contains(hashSet, Utility.sha1hash(byteArray));
if (!contains) {
return false;
}
}
return true;
} catch (PackageManager.NameNotFoundException unused) {
return false;
}
}
}