Primer paso de la investigacion. Se aportan el .apk, las carpetas con el apk extraido y el apk descompilado. El archivo API_DOCUMENTATION.md es un archivo donde se anotaran los descubrimientos del funcionamiento de la API, y los .py son scripts para probar la funcionalidad de la API con los métodos que vayamos encontrando. Finalmente, los archivos .js son scripts de Frida para extraer informacion de la APP durante la ejecucion.

This commit is contained in:
2025-12-04 13:59:54 +01:00
parent f2fd1c3bf5
commit e0133d2ca2
10432 changed files with 1019085 additions and 1 deletions

View File

@@ -0,0 +1,161 @@
package com.google.android.gms.common;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.text.TextUtils;
import com.google.android.gms.common.annotation.KeepForSdk;
import com.google.android.gms.common.internal.HideFirstParty;
import com.google.android.gms.common.internal.ShowFirstParty;
import com.google.android.gms.common.util.DeviceProperties;
import com.google.android.gms.common.wrappers.Wrappers;
@ShowFirstParty
@KeepForSdk
/* loaded from: classes3.dex */
public class GoogleApiAvailabilityLight {
@KeepForSdk
public static final String GOOGLE_PLAY_SERVICES_PACKAGE = "com.google.android.gms";
@KeepForSdk
public static final String GOOGLE_PLAY_STORE_PACKAGE = "com.android.vending";
@KeepForSdk
static final String TRACKING_SOURCE_DIALOG = "d";
@KeepForSdk
static final String TRACKING_SOURCE_NOTIFICATION = "n";
@KeepForSdk
public static final int GOOGLE_PLAY_SERVICES_VERSION_CODE = GooglePlayServicesUtilLight.GOOGLE_PLAY_SERVICES_VERSION_CODE;
private static final GoogleApiAvailabilityLight zza = new GoogleApiAvailabilityLight();
@KeepForSdk
public GoogleApiAvailabilityLight() {
}
@KeepForSdk
public static GoogleApiAvailabilityLight getInstance() {
return zza;
}
@KeepForSdk
public void cancelAvailabilityErrorNotifications(Context context) {
GooglePlayServicesUtilLight.cancelAvailabilityErrorNotifications(context);
}
@ShowFirstParty
@KeepForSdk
public int getApkVersion(Context context) {
return GooglePlayServicesUtilLight.getApkVersion(context);
}
@ShowFirstParty
@KeepForSdk
public int getClientVersion(Context context) {
return GooglePlayServicesUtilLight.getClientVersion(context);
}
@ShowFirstParty
@KeepForSdk
@Deprecated
public Intent getErrorResolutionIntent(int i) {
return getErrorResolutionIntent(null, i, null);
}
@KeepForSdk
public PendingIntent getErrorResolutionPendingIntent(Context context, int i, int i4) {
return getErrorResolutionPendingIntent(context, i, i4, null);
}
@KeepForSdk
public String getErrorString(int i) {
return GooglePlayServicesUtilLight.getErrorString(i);
}
@HideFirstParty
@KeepForSdk
public int isGooglePlayServicesAvailable(Context context) {
return isGooglePlayServicesAvailable(context, GOOGLE_PLAY_SERVICES_VERSION_CODE);
}
@ShowFirstParty
@KeepForSdk
public boolean isPlayServicesPossiblyUpdating(Context context, int i) {
return GooglePlayServicesUtilLight.isPlayServicesPossiblyUpdating(context, i);
}
@ShowFirstParty
@KeepForSdk
public boolean isPlayStorePossiblyUpdating(Context context, int i) {
return GooglePlayServicesUtilLight.isPlayStorePossiblyUpdating(context, i);
}
@KeepForSdk
public boolean isUninstalledAppPossiblyUpdating(Context context, String str) {
return GooglePlayServicesUtilLight.zza(context, str);
}
@KeepForSdk
public boolean isUserResolvableError(int i) {
return GooglePlayServicesUtilLight.isUserRecoverableError(i);
}
@KeepForSdk
public void verifyGooglePlayServicesIsAvailable(Context context, int i) throws GooglePlayServicesRepairableException, GooglePlayServicesNotAvailableException {
GooglePlayServicesUtilLight.ensurePlayServicesAvailable(context, i);
}
@ShowFirstParty
@KeepForSdk
public Intent getErrorResolutionIntent(Context context, int i, String str) {
if (i != 1 && i != 2) {
if (i != 3) {
return null;
}
return com.google.android.gms.common.internal.zzt.zzc("com.google.android.gms");
}
if (context != null && DeviceProperties.isWearableWithoutPlayStore(context)) {
return com.google.android.gms.common.internal.zzt.zza();
}
StringBuilder sb = new StringBuilder("gcore_");
sb.append(GOOGLE_PLAY_SERVICES_VERSION_CODE);
sb.append("-");
if (!TextUtils.isEmpty(str)) {
sb.append(str);
}
sb.append("-");
if (context != null) {
sb.append(context.getPackageName());
}
sb.append("-");
if (context != null) {
try {
sb.append(Wrappers.packageManager(context).getPackageInfo(context.getPackageName(), 0).versionCode);
} catch (PackageManager.NameNotFoundException unused) {
}
}
return com.google.android.gms.common.internal.zzt.zzb("com.google.android.gms", sb.toString());
}
@ShowFirstParty
@KeepForSdk
public PendingIntent getErrorResolutionPendingIntent(Context context, int i, int i4, String str) {
Intent errorResolutionIntent = getErrorResolutionIntent(context, i, str);
if (errorResolutionIntent == null) {
return null;
}
return PendingIntent.getActivity(context, i4, errorResolutionIntent, com.google.android.gms.internal.common.zzd.zza | 134217728);
}
@KeepForSdk
public int isGooglePlayServicesAvailable(Context context, int i) {
int isGooglePlayServicesAvailable = GooglePlayServicesUtilLight.isGooglePlayServicesAvailable(context, i);
if (GooglePlayServicesUtilLight.isPlayServicesPossiblyUpdating(context, isGooglePlayServicesAvailable)) {
return 18;
}
return isGooglePlayServicesAvailable;
}
}