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:
@@ -0,0 +1,117 @@
|
||||
package com.google.android.gms.location;
|
||||
|
||||
import com.google.android.gms.common.internal.Preconditions;
|
||||
import com.google.android.gms.common.util.DefaultClock;
|
||||
import com.google.android.gms.internal.location.zzdh;
|
||||
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public interface Geofence {
|
||||
public static final int GEOFENCE_TRANSITION_DWELL = 4;
|
||||
public static final int GEOFENCE_TRANSITION_ENTER = 1;
|
||||
public static final int GEOFENCE_TRANSITION_EXIT = 2;
|
||||
public static final long NEVER_EXPIRE = -1;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder {
|
||||
private double zze;
|
||||
private double zzf;
|
||||
private float zzg;
|
||||
private String zza = null;
|
||||
|
||||
@TransitionTypes
|
||||
private int zzb = 0;
|
||||
private long zzc = Long.MIN_VALUE;
|
||||
private short zzd = -1;
|
||||
private int zzh = 0;
|
||||
private int zzi = -1;
|
||||
|
||||
public Geofence build() {
|
||||
if (this.zza == null) {
|
||||
throw new IllegalArgumentException("Request ID not set.");
|
||||
}
|
||||
int i = this.zzb;
|
||||
if (i == 0) {
|
||||
throw new IllegalArgumentException("Transitions types not set.");
|
||||
}
|
||||
if ((i & 4) != 0 && this.zzi < 0) {
|
||||
throw new IllegalArgumentException("Non-negative loitering delay needs to be set when transition types include GEOFENCE_TRANSITION_DWELL.");
|
||||
}
|
||||
if (this.zzc == Long.MIN_VALUE) {
|
||||
throw new IllegalArgumentException("Expiration not set.");
|
||||
}
|
||||
if (this.zzd == -1) {
|
||||
throw new IllegalArgumentException("Geofence region not set.");
|
||||
}
|
||||
if (this.zzh >= 0) {
|
||||
return new zzdh(this.zza, this.zzb, (short) 1, this.zze, this.zzf, this.zzg, this.zzc, this.zzh, this.zzi);
|
||||
}
|
||||
throw new IllegalArgumentException("Notification responsiveness should be nonnegative.");
|
||||
}
|
||||
|
||||
public Builder setCircularRegion(double d4, double d5, float f2) {
|
||||
Preconditions.checkArgument(d4 >= -90.0d && d4 <= 90.0d, "Invalid latitude: " + d4);
|
||||
Preconditions.checkArgument(d5 >= -180.0d && d5 <= 180.0d, "Invalid longitude: " + d5);
|
||||
Preconditions.checkArgument(f2 > BitmapDescriptorFactory.HUE_RED, "Invalid radius: " + f2);
|
||||
this.zzd = (short) 1;
|
||||
this.zze = d4;
|
||||
this.zzf = d5;
|
||||
this.zzg = f2;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setExpirationDuration(long j4) {
|
||||
if (j4 < 0) {
|
||||
this.zzc = -1L;
|
||||
return this;
|
||||
}
|
||||
this.zzc = DefaultClock.getInstance().elapsedRealtime() + j4;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setLoiteringDelay(int i) {
|
||||
this.zzi = i;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setNotificationResponsiveness(int i) {
|
||||
this.zzh = i;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setRequestId(String str) {
|
||||
this.zza = (String) Preconditions.checkNotNull(str, "Request ID can't be set to null");
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTransitionTypes(@TransitionTypes int i) {
|
||||
this.zzb = i;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public @interface GeofenceTransition {
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public @interface TransitionTypes {
|
||||
}
|
||||
|
||||
long getExpirationTime();
|
||||
|
||||
double getLatitude();
|
||||
|
||||
int getLoiteringDelay();
|
||||
|
||||
double getLongitude();
|
||||
|
||||
int getNotificationResponsiveness();
|
||||
|
||||
float getRadius();
|
||||
|
||||
String getRequestId();
|
||||
|
||||
@TransitionTypes
|
||||
int getTransitionTypes();
|
||||
}
|
||||
Reference in New Issue
Block a user