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:
327
apk_decompiled/sources/com/google/android/gms/tasks/zzw.java
Normal file
327
apk_decompiled/sources/com/google/android/gms/tasks/zzw.java
Normal file
@@ -0,0 +1,327 @@
|
||||
package com.google.android.gms.tasks;
|
||||
|
||||
import android.app.Activity;
|
||||
import com.google.android.gms.common.internal.Preconditions;
|
||||
import java.util.concurrent.CancellationException;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: package-private */
|
||||
/* loaded from: classes3.dex */
|
||||
public final class zzw<TResult> extends Task<TResult> {
|
||||
private final Object zza = new Object();
|
||||
private final zzr zzb = new zzr();
|
||||
private boolean zzc;
|
||||
private volatile boolean zzd;
|
||||
private Object zze;
|
||||
private Exception zzf;
|
||||
|
||||
private final void zzf() {
|
||||
Preconditions.checkState(this.zzc, "Task is not yet complete");
|
||||
}
|
||||
|
||||
private final void zzg() {
|
||||
if (this.zzd) {
|
||||
throw new CancellationException("Task is already canceled.");
|
||||
}
|
||||
}
|
||||
|
||||
private final void zzh() {
|
||||
if (this.zzc) {
|
||||
throw DuplicateTaskCompletionException.of(this);
|
||||
}
|
||||
}
|
||||
|
||||
private final void zzi() {
|
||||
synchronized (this.zza) {
|
||||
try {
|
||||
if (this.zzc) {
|
||||
this.zzb.zzb(this);
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final Task<TResult> addOnCanceledListener(Activity activity, OnCanceledListener onCanceledListener) {
|
||||
zzh zzhVar = new zzh(TaskExecutors.MAIN_THREAD, onCanceledListener);
|
||||
this.zzb.zza(zzhVar);
|
||||
zzv.zza(activity).zzb(zzhVar);
|
||||
zzi();
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final Task<TResult> addOnCompleteListener(Activity activity, OnCompleteListener<TResult> onCompleteListener) {
|
||||
zzj zzjVar = new zzj(TaskExecutors.MAIN_THREAD, onCompleteListener);
|
||||
this.zzb.zza(zzjVar);
|
||||
zzv.zza(activity).zzb(zzjVar);
|
||||
zzi();
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final Task<TResult> addOnFailureListener(Activity activity, OnFailureListener onFailureListener) {
|
||||
zzl zzlVar = new zzl(TaskExecutors.MAIN_THREAD, onFailureListener);
|
||||
this.zzb.zza(zzlVar);
|
||||
zzv.zza(activity).zzb(zzlVar);
|
||||
zzi();
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final Task<TResult> addOnSuccessListener(Activity activity, OnSuccessListener<? super TResult> onSuccessListener) {
|
||||
zzn zznVar = new zzn(TaskExecutors.MAIN_THREAD, onSuccessListener);
|
||||
this.zzb.zza(zznVar);
|
||||
zzv.zza(activity).zzb(zznVar);
|
||||
zzi();
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final <TContinuationResult> Task<TContinuationResult> continueWith(Continuation<TResult, TContinuationResult> continuation) {
|
||||
return continueWith(TaskExecutors.MAIN_THREAD, continuation);
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final <TContinuationResult> Task<TContinuationResult> continueWithTask(Continuation<TResult, Task<TContinuationResult>> continuation) {
|
||||
return continueWithTask(TaskExecutors.MAIN_THREAD, continuation);
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final Exception getException() {
|
||||
Exception exc;
|
||||
synchronized (this.zza) {
|
||||
exc = this.zzf;
|
||||
}
|
||||
return exc;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final TResult getResult() {
|
||||
TResult tresult;
|
||||
synchronized (this.zza) {
|
||||
try {
|
||||
zzf();
|
||||
zzg();
|
||||
Exception exc = this.zzf;
|
||||
if (exc == null) {
|
||||
tresult = (TResult) this.zze;
|
||||
} else {
|
||||
throw new RuntimeExecutionException(exc);
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
return tresult;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final boolean isCanceled() {
|
||||
return this.zzd;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final boolean isComplete() {
|
||||
boolean z3;
|
||||
synchronized (this.zza) {
|
||||
z3 = this.zzc;
|
||||
}
|
||||
return z3;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final boolean isSuccessful() {
|
||||
boolean z3;
|
||||
synchronized (this.zza) {
|
||||
try {
|
||||
z3 = false;
|
||||
if (this.zzc && !this.zzd && this.zzf == null) {
|
||||
z3 = true;
|
||||
}
|
||||
} finally {
|
||||
}
|
||||
}
|
||||
return z3;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final <TContinuationResult> Task<TContinuationResult> onSuccessTask(SuccessContinuation<TResult, TContinuationResult> successContinuation) {
|
||||
Executor executor = TaskExecutors.MAIN_THREAD;
|
||||
zzw zzwVar = new zzw();
|
||||
this.zzb.zza(new zzp(executor, successContinuation, zzwVar));
|
||||
zzi();
|
||||
return zzwVar;
|
||||
}
|
||||
|
||||
public final void zza(Exception exc) {
|
||||
Preconditions.checkNotNull(exc, "Exception must not be null");
|
||||
synchronized (this.zza) {
|
||||
zzh();
|
||||
this.zzc = true;
|
||||
this.zzf = exc;
|
||||
}
|
||||
this.zzb.zzb(this);
|
||||
}
|
||||
|
||||
public final void zzb(Object obj) {
|
||||
synchronized (this.zza) {
|
||||
zzh();
|
||||
this.zzc = true;
|
||||
this.zze = obj;
|
||||
}
|
||||
this.zzb.zzb(this);
|
||||
}
|
||||
|
||||
public final boolean zzc() {
|
||||
synchronized (this.zza) {
|
||||
try {
|
||||
if (this.zzc) {
|
||||
return false;
|
||||
}
|
||||
this.zzc = true;
|
||||
this.zzd = true;
|
||||
this.zzb.zzb(this);
|
||||
return true;
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public final boolean zzd(Exception exc) {
|
||||
Preconditions.checkNotNull(exc, "Exception must not be null");
|
||||
synchronized (this.zza) {
|
||||
try {
|
||||
if (this.zzc) {
|
||||
return false;
|
||||
}
|
||||
this.zzc = true;
|
||||
this.zzf = exc;
|
||||
this.zzb.zzb(this);
|
||||
return true;
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public final boolean zze(Object obj) {
|
||||
synchronized (this.zza) {
|
||||
try {
|
||||
if (this.zzc) {
|
||||
return false;
|
||||
}
|
||||
this.zzc = true;
|
||||
this.zze = obj;
|
||||
this.zzb.zzb(this);
|
||||
return true;
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final <TContinuationResult> Task<TContinuationResult> continueWith(Executor executor, Continuation<TResult, TContinuationResult> continuation) {
|
||||
zzw zzwVar = new zzw();
|
||||
this.zzb.zza(new zzd(executor, continuation, zzwVar));
|
||||
zzi();
|
||||
return zzwVar;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final <TContinuationResult> Task<TContinuationResult> continueWithTask(Executor executor, Continuation<TResult, Task<TContinuationResult>> continuation) {
|
||||
zzw zzwVar = new zzw();
|
||||
this.zzb.zza(new zzf(executor, continuation, zzwVar));
|
||||
zzi();
|
||||
return zzwVar;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final Task<TResult> addOnCanceledListener(OnCanceledListener onCanceledListener) {
|
||||
addOnCanceledListener(TaskExecutors.MAIN_THREAD, onCanceledListener);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final Task<TResult> addOnCompleteListener(OnCompleteListener<TResult> onCompleteListener) {
|
||||
this.zzb.zza(new zzj(TaskExecutors.MAIN_THREAD, onCompleteListener));
|
||||
zzi();
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final Task<TResult> addOnFailureListener(OnFailureListener onFailureListener) {
|
||||
addOnFailureListener(TaskExecutors.MAIN_THREAD, onFailureListener);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final Task<TResult> addOnSuccessListener(OnSuccessListener<? super TResult> onSuccessListener) {
|
||||
addOnSuccessListener(TaskExecutors.MAIN_THREAD, onSuccessListener);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final <TContinuationResult> Task<TContinuationResult> onSuccessTask(Executor executor, SuccessContinuation<TResult, TContinuationResult> successContinuation) {
|
||||
zzw zzwVar = new zzw();
|
||||
this.zzb.zza(new zzp(executor, successContinuation, zzwVar));
|
||||
zzi();
|
||||
return zzwVar;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final Task<TResult> addOnCanceledListener(Executor executor, OnCanceledListener onCanceledListener) {
|
||||
this.zzb.zza(new zzh(executor, onCanceledListener));
|
||||
zzi();
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final Task<TResult> addOnFailureListener(Executor executor, OnFailureListener onFailureListener) {
|
||||
this.zzb.zza(new zzl(executor, onFailureListener));
|
||||
zzi();
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final Task<TResult> addOnSuccessListener(Executor executor, OnSuccessListener<? super TResult> onSuccessListener) {
|
||||
this.zzb.zza(new zzn(executor, onSuccessListener));
|
||||
zzi();
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final Task<TResult> addOnCompleteListener(Executor executor, OnCompleteListener<TResult> onCompleteListener) {
|
||||
this.zzb.zza(new zzj(executor, onCompleteListener));
|
||||
zzi();
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.tasks.Task
|
||||
public final <X extends Throwable> TResult getResult(Class<X> cls) throws Throwable {
|
||||
TResult tresult;
|
||||
synchronized (this.zza) {
|
||||
try {
|
||||
zzf();
|
||||
zzg();
|
||||
if (!cls.isInstance(this.zzf)) {
|
||||
Exception exc = this.zzf;
|
||||
if (exc == null) {
|
||||
tresult = (TResult) this.zze;
|
||||
} else {
|
||||
throw new RuntimeExecutionException(exc);
|
||||
}
|
||||
} else {
|
||||
throw cls.cast(this.zzf);
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
return tresult;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user