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,188 @@
package com.google.android.gms.dynamic;
import android.R;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.google.android.gms.common.GoogleApiAvailability;
import com.google.android.gms.common.annotation.KeepForSdk;
import com.google.android.gms.dynamic.LifecycleDelegate;
import java.util.LinkedList;
@KeepForSdk
/* loaded from: classes3.dex */
public abstract class DeferredLifecycleHelper<T extends LifecycleDelegate> {
private LifecycleDelegate zaa;
private Bundle zab;
private LinkedList zac;
private final OnDelegateCreatedListener zad = new zaa(this);
@KeepForSdk
public DeferredLifecycleHelper() {
}
@KeepForSdk
public static void showGooglePlayUnavailableMessage(FrameLayout frameLayout) {
GoogleApiAvailability googleApiAvailability = GoogleApiAvailability.getInstance();
Context context = frameLayout.getContext();
int isGooglePlayServicesAvailable = googleApiAvailability.isGooglePlayServicesAvailable(context);
String zad = com.google.android.gms.common.internal.zac.zad(context, isGooglePlayServicesAvailable);
String zac = com.google.android.gms.common.internal.zac.zac(context, isGooglePlayServicesAvailable);
LinearLayout linearLayout = new LinearLayout(frameLayout.getContext());
linearLayout.setOrientation(1);
linearLayout.setLayoutParams(new FrameLayout.LayoutParams(-2, -2));
frameLayout.addView(linearLayout);
TextView textView = new TextView(frameLayout.getContext());
textView.setLayoutParams(new FrameLayout.LayoutParams(-2, -2));
textView.setText(zad);
linearLayout.addView(textView);
Intent errorResolutionIntent = googleApiAvailability.getErrorResolutionIntent(context, isGooglePlayServicesAvailable, null);
if (errorResolutionIntent != null) {
Button button = new Button(context);
button.setId(R.id.button1);
button.setLayoutParams(new FrameLayout.LayoutParams(-2, -2));
button.setText(zac);
linearLayout.addView(button);
button.setOnClickListener(new zae(context, errorResolutionIntent));
}
}
private final void zae(int i) {
while (!this.zac.isEmpty() && ((zah) this.zac.getLast()).zaa() >= i) {
this.zac.removeLast();
}
}
private final void zaf(Bundle bundle, zah zahVar) {
LifecycleDelegate lifecycleDelegate = this.zaa;
if (lifecycleDelegate != null) {
zahVar.zab(lifecycleDelegate);
return;
}
if (this.zac == null) {
this.zac = new LinkedList();
}
this.zac.add(zahVar);
if (bundle != null) {
Bundle bundle2 = this.zab;
if (bundle2 == null) {
this.zab = (Bundle) bundle.clone();
} else {
bundle2.putAll(bundle);
}
}
createDelegate(this.zad);
}
@KeepForSdk
public abstract void createDelegate(OnDelegateCreatedListener<T> onDelegateCreatedListener);
@KeepForSdk
public T getDelegate() {
return (T) this.zaa;
}
@KeepForSdk
public void handleGooglePlayUnavailable(FrameLayout frameLayout) {
showGooglePlayUnavailableMessage(frameLayout);
}
@KeepForSdk
public void onCreate(Bundle bundle) {
zaf(bundle, new zac(this, bundle));
}
@KeepForSdk
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
FrameLayout frameLayout = new FrameLayout(layoutInflater.getContext());
zaf(bundle, new zad(this, frameLayout, layoutInflater, viewGroup, bundle));
if (this.zaa == null) {
handleGooglePlayUnavailable(frameLayout);
}
return frameLayout;
}
@KeepForSdk
public void onDestroy() {
LifecycleDelegate lifecycleDelegate = this.zaa;
if (lifecycleDelegate != null) {
lifecycleDelegate.onDestroy();
} else {
zae(1);
}
}
@KeepForSdk
public void onDestroyView() {
LifecycleDelegate lifecycleDelegate = this.zaa;
if (lifecycleDelegate != null) {
lifecycleDelegate.onDestroyView();
} else {
zae(2);
}
}
@KeepForSdk
public void onInflate(Activity activity, Bundle bundle, Bundle bundle2) {
zaf(bundle2, new zab(this, activity, bundle, bundle2));
}
@KeepForSdk
public void onLowMemory() {
LifecycleDelegate lifecycleDelegate = this.zaa;
if (lifecycleDelegate != null) {
lifecycleDelegate.onLowMemory();
}
}
@KeepForSdk
public void onPause() {
LifecycleDelegate lifecycleDelegate = this.zaa;
if (lifecycleDelegate != null) {
lifecycleDelegate.onPause();
} else {
zae(5);
}
}
@KeepForSdk
public void onResume() {
zaf(null, new zag(this));
}
@KeepForSdk
public void onSaveInstanceState(Bundle bundle) {
LifecycleDelegate lifecycleDelegate = this.zaa;
if (lifecycleDelegate != null) {
lifecycleDelegate.onSaveInstanceState(bundle);
return;
}
Bundle bundle2 = this.zab;
if (bundle2 != null) {
bundle.putAll(bundle2);
}
}
@KeepForSdk
public void onStart() {
zaf(null, new zaf(this));
}
@KeepForSdk
public void onStop() {
LifecycleDelegate lifecycleDelegate = this.zaa;
if (lifecycleDelegate != null) {
lifecycleDelegate.onStop();
} else {
zae(4);
}
}
}