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,120 @@
|
||||
package com.google.android.gms.location;
|
||||
|
||||
import C.w;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import com.google.android.gms.common.internal.Preconditions;
|
||||
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelWriter;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
|
||||
import com.google.android.gms.internal.location.zzdh;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@SafeParcelable.Class(creator = "GeofencingRequestCreator")
|
||||
@SafeParcelable.Reserved({1000})
|
||||
/* loaded from: classes3.dex */
|
||||
public class GeofencingRequest extends AbstractSafeParcelable {
|
||||
public static final Parcelable.Creator<GeofencingRequest> CREATOR = new zzn();
|
||||
public static final int INITIAL_TRIGGER_DWELL = 4;
|
||||
public static final int INITIAL_TRIGGER_ENTER = 1;
|
||||
public static final int INITIAL_TRIGGER_EXIT = 2;
|
||||
|
||||
@SafeParcelable.Field(getter = "getParcelableGeofences", id = 1)
|
||||
private final List zza;
|
||||
|
||||
@InitialTrigger
|
||||
@SafeParcelable.Field(getter = "getInitialTrigger", id = 2)
|
||||
private final int zzb;
|
||||
|
||||
@SafeParcelable.Field(defaultValue = "", getter = "getTag", id = 3)
|
||||
private final String zzc;
|
||||
|
||||
@SafeParcelable.Field(getter = "getContextAttributionTag", id = 4)
|
||||
private final String zzd;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Builder {
|
||||
private final List zza = new ArrayList();
|
||||
|
||||
@InitialTrigger
|
||||
private int zzb = 5;
|
||||
private String zzc = "";
|
||||
|
||||
public Builder addGeofence(Geofence geofence) {
|
||||
Preconditions.checkNotNull(geofence, "geofence can't be null.");
|
||||
Preconditions.checkArgument(geofence instanceof zzdh, "Geofence must be created using Geofence.Builder.");
|
||||
this.zza.add((zzdh) geofence);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder addGeofences(List<Geofence> list) {
|
||||
if (list != null && !list.isEmpty()) {
|
||||
for (Geofence geofence : list) {
|
||||
if (geofence != null) {
|
||||
addGeofence(geofence);
|
||||
}
|
||||
}
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public GeofencingRequest build() {
|
||||
Preconditions.checkArgument(!this.zza.isEmpty(), "No geofence has been added to this request.");
|
||||
return new GeofencingRequest(this.zza, this.zzb, this.zzc, null);
|
||||
}
|
||||
|
||||
public Builder setInitialTrigger(@InitialTrigger int i) {
|
||||
this.zzb = i & 7;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public @interface InitialTrigger {
|
||||
}
|
||||
|
||||
@SafeParcelable.Constructor
|
||||
public GeofencingRequest(@SafeParcelable.Param(id = 1) List list, @SafeParcelable.Param(id = 2) @InitialTrigger int i, @SafeParcelable.Param(id = 3) String str, @SafeParcelable.Param(id = 4) String str2) {
|
||||
this.zza = list;
|
||||
this.zzb = i;
|
||||
this.zzc = str;
|
||||
this.zzd = str2;
|
||||
}
|
||||
|
||||
public List<Geofence> getGeofences() {
|
||||
ArrayList arrayList = new ArrayList();
|
||||
arrayList.addAll(this.zza);
|
||||
return arrayList;
|
||||
}
|
||||
|
||||
@InitialTrigger
|
||||
public int getInitialTrigger() {
|
||||
return this.zzb;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder("GeofencingRequest[geofences=");
|
||||
sb.append(this.zza);
|
||||
sb.append(", initialTrigger=");
|
||||
sb.append(this.zzb);
|
||||
sb.append(", tag=");
|
||||
sb.append(this.zzc);
|
||||
sb.append(", attributionTag=");
|
||||
return w.r(sb, this.zzd, "]");
|
||||
}
|
||||
|
||||
@Override // android.os.Parcelable
|
||||
public void writeToParcel(Parcel parcel, int i) {
|
||||
int beginObjectHeader = SafeParcelWriter.beginObjectHeader(parcel);
|
||||
SafeParcelWriter.writeTypedList(parcel, 1, this.zza, false);
|
||||
SafeParcelWriter.writeInt(parcel, 2, getInitialTrigger());
|
||||
SafeParcelWriter.writeString(parcel, 3, this.zzc, false);
|
||||
SafeParcelWriter.writeString(parcel, 4, this.zzd, false);
|
||||
SafeParcelWriter.finishObjectHeader(parcel, beginObjectHeader);
|
||||
}
|
||||
|
||||
public final GeofencingRequest zza(String str) {
|
||||
return new GeofencingRequest(this.zza, this.zzb, this.zzc, str);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user