Initial import of ADIF API reverse-engineering toolkit
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
package com.google.firebase.messaging;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.util.Log;
|
||||
import com.google.android.gms.common.util.PlatformVersion;
|
||||
import com.google.firebase.FirebaseApp;
|
||||
import java.util.List;
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: package-private */
|
||||
/* loaded from: classes3.dex */
|
||||
public class Metadata {
|
||||
private static final String ACTION_C2DM_REGISTER = "com.google.android.c2dm.intent.REGISTER";
|
||||
private static final String ACTION_IID_TOKEN_REQUEST = "com.google.iid.TOKEN_REQUEST";
|
||||
static final int GMSCORE_NOT_FOUND = 0;
|
||||
private static final String GMSCORE_SEND_PERMISSION = "com.google.android.c2dm.permission.SEND";
|
||||
static final String GMS_PACKAGE = "com.google.android.gms";
|
||||
static final int IID_VIA_RECEIVER = 2;
|
||||
static final int IID_VIA_SERVICE = 1;
|
||||
private String appVersionCode;
|
||||
private String appVersionName;
|
||||
private final Context context;
|
||||
private int gmsVersionCode;
|
||||
private int iidImplementation = 0;
|
||||
|
||||
public Metadata(Context context) {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
public static String getDefaultSenderId(FirebaseApp firebaseApp) {
|
||||
String gcmSenderId = firebaseApp.getOptions().getGcmSenderId();
|
||||
if (gcmSenderId != null) {
|
||||
return gcmSenderId;
|
||||
}
|
||||
String applicationId = firebaseApp.getOptions().getApplicationId();
|
||||
if (!applicationId.startsWith("1:")) {
|
||||
return applicationId;
|
||||
}
|
||||
String[] split = applicationId.split(":");
|
||||
if (split.length < 2) {
|
||||
return null;
|
||||
}
|
||||
String str = split[1];
|
||||
if (str.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
private PackageInfo getPackageInfo(String str) {
|
||||
try {
|
||||
return this.context.getPackageManager().getPackageInfo(str, 0);
|
||||
} catch (PackageManager.NameNotFoundException e4) {
|
||||
Log.w(Constants.TAG, "Failed to find package " + e4);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private synchronized void populateAppVersionInfo() {
|
||||
PackageInfo packageInfo = getPackageInfo(this.context.getPackageName());
|
||||
if (packageInfo != null) {
|
||||
this.appVersionCode = Integer.toString(packageInfo.versionCode);
|
||||
this.appVersionName = packageInfo.versionName;
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized String getAppVersionCode() {
|
||||
try {
|
||||
if (this.appVersionCode == null) {
|
||||
populateAppVersionInfo();
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
return this.appVersionCode;
|
||||
}
|
||||
|
||||
public synchronized String getAppVersionName() {
|
||||
try {
|
||||
if (this.appVersionName == null) {
|
||||
populateAppVersionInfo();
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
return this.appVersionName;
|
||||
}
|
||||
|
||||
public synchronized int getGmsVersionCode() {
|
||||
PackageInfo packageInfo;
|
||||
try {
|
||||
if (this.gmsVersionCode == 0 && (packageInfo = getPackageInfo("com.google.android.gms")) != null) {
|
||||
this.gmsVersionCode = packageInfo.versionCode;
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
return this.gmsVersionCode;
|
||||
}
|
||||
|
||||
public synchronized int getIidImplementation() {
|
||||
int i = this.iidImplementation;
|
||||
if (i != 0) {
|
||||
return i;
|
||||
}
|
||||
PackageManager packageManager = this.context.getPackageManager();
|
||||
if (packageManager.checkPermission(GMSCORE_SEND_PERMISSION, "com.google.android.gms") == -1) {
|
||||
Log.e(Constants.TAG, "Google Play services missing or without correct permission.");
|
||||
return 0;
|
||||
}
|
||||
if (!PlatformVersion.isAtLeastO()) {
|
||||
Intent intent = new Intent(ACTION_C2DM_REGISTER);
|
||||
intent.setPackage("com.google.android.gms");
|
||||
List<ResolveInfo> queryIntentServices = packageManager.queryIntentServices(intent, 0);
|
||||
if (queryIntentServices != null && queryIntentServices.size() > 0) {
|
||||
this.iidImplementation = 1;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
Intent intent2 = new Intent(ACTION_IID_TOKEN_REQUEST);
|
||||
intent2.setPackage("com.google.android.gms");
|
||||
List<ResolveInfo> queryBroadcastReceivers = packageManager.queryBroadcastReceivers(intent2, 0);
|
||||
if (queryBroadcastReceivers != null && queryBroadcastReceivers.size() > 0) {
|
||||
this.iidImplementation = 2;
|
||||
return 2;
|
||||
}
|
||||
Log.w(Constants.TAG, "Failed to resolve IID implementation package, falling back");
|
||||
if (PlatformVersion.isAtLeastO()) {
|
||||
this.iidImplementation = 2;
|
||||
} else {
|
||||
this.iidImplementation = 1;
|
||||
}
|
||||
return this.iidImplementation;
|
||||
}
|
||||
|
||||
public boolean isGmscorePresent() {
|
||||
return getIidImplementation() != 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user