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,117 @@
package com.adif.elcanomovil.domain.entities.utils;
import com.google.firebase.analytics.FirebaseAnalytics;
import com.google.firebase.messaging.Constants;
import kotlin.Metadata;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.jvm.internal.Intrinsics;
@Metadata(d1 = {"\u00002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0000\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0003\n\u0002\b\u000e\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0010\b\n\u0000\n\u0002\u0010\u000e\n\u0002\b\u0002\b\u0086\b\u0018\u0000 \u001c*\u0006\b\u0000\u0010\u0001 \u00012\u00020\u0002:\u0001\u001cB!\u0012\u0006\u0010\u0003\u001a\u00020\u0004\u0012\b\u0010\u0005\u001a\u0004\u0018\u00018\u0000\u0012\b\u0010\u0006\u001a\u0004\u0018\u00010\u0007¢\u0006\u0002\u0010\bJ\t\u0010\u0010\u001a\u00020\u0004HÆ\u0003J\u0010\u0010\u0011\u001a\u0004\u0018\u00018\u0000HÆ\u0003¢\u0006\u0002\u0010\nJ\u000b\u0010\u0012\u001a\u0004\u0018\u00010\u0007HÆ\u0003J6\u0010\u0013\u001a\b\u0012\u0004\u0012\u00028\u00000\u00002\b\b\u0002\u0010\u0003\u001a\u00020\u00042\n\b\u0002\u0010\u0005\u001a\u0004\u0018\u00018\u00002\n\b\u0002\u0010\u0006\u001a\u0004\u0018\u00010\u0007HÆ\u0001¢\u0006\u0002\u0010\u0014J\u0013\u0010\u0015\u001a\u00020\u00162\b\u0010\u0017\u001a\u0004\u0018\u00010\u0002HÖ\u0003J\t\u0010\u0018\u001a\u00020\u0019HÖ\u0001J\t\u0010\u001a\u001a\u00020\u001bHÖ\u0001R\u0015\u0010\u0005\u001a\u0004\u0018\u00018\u0000¢\u0006\n\n\u0002\u0010\u000b\u001a\u0004\b\t\u0010\nR\u0011\u0010\u0003\u001a\u00020\u0004¢\u0006\b\n\u0000\u001a\u0004\b\f\u0010\rR\u0013\u0010\u0006\u001a\u0004\u0018\u00010\u0007¢\u0006\b\n\u0000\u001a\u0004\b\u000e\u0010\u000f¨\u0006\u001d"}, d2 = {"Lcom/adif/elcanomovil/domain/entities/utils/AsyncResult;", "T", "", "status", "Lcom/adif/elcanomovil/domain/entities/utils/Status;", Constants.ScionAnalytics.MessageType.DATA_MESSAGE, "throwable", "", "(Lcom/adif/elcanomovil/domain/entities/utils/Status;Ljava/lang/Object;Ljava/lang/Throwable;)V", "getData", "()Ljava/lang/Object;", "Ljava/lang/Object;", "getStatus", "()Lcom/adif/elcanomovil/domain/entities/utils/Status;", "getThrowable", "()Ljava/lang/Throwable;", "component1", "component2", "component3", "copy", "(Lcom/adif/elcanomovil/domain/entities/utils/Status;Ljava/lang/Object;Ljava/lang/Throwable;)Lcom/adif/elcanomovil/domain/entities/utils/AsyncResult;", "equals", "", "other", "hashCode", "", "toString", "", "Companion", "domain_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
/* loaded from: classes.dex */
public final /* data */ class AsyncResult<T> {
/* renamed from: Companion, reason: from kotlin metadata */
public static final Companion INSTANCE = new Companion(null);
private final T data;
private final Status status;
private final Throwable throwable;
@Metadata(d1 = {"\u0000\u001c\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0003\n\u0002\b\u0006\b\u0086\u0003\u0018\u00002\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002J)\u0010\u0003\u001a\b\u0012\u0004\u0012\u0002H\u00050\u0004\"\u0004\b\u0001\u0010\u00052\u0006\u0010\u0006\u001a\u00020\u00072\b\u0010\b\u001a\u0004\u0018\u0001H\u0005¢\u0006\u0002\u0010\tJ!\u0010\n\u001a\b\u0012\u0004\u0012\u0002H\u00050\u0004\"\u0004\b\u0001\u0010\u00052\b\u0010\b\u001a\u0004\u0018\u0001H\u0005¢\u0006\u0002\u0010\u000bJ!\u0010\f\u001a\b\u0012\u0004\u0012\u0002H\u00050\u0004\"\u0004\b\u0001\u0010\u00052\b\u0010\b\u001a\u0004\u0018\u0001H\u0005¢\u0006\u0002\u0010\u000b¨\u0006\r"}, d2 = {"Lcom/adif/elcanomovil/domain/entities/utils/AsyncResult$Companion;", "", "()V", Constants.IPC_BUNDLE_KEY_SEND_ERROR, "Lcom/adif/elcanomovil/domain/entities/utils/AsyncResult;", "T", "throwable", "", Constants.ScionAnalytics.MessageType.DATA_MESSAGE, "(Ljava/lang/Throwable;Ljava/lang/Object;)Lcom/adif/elcanomovil/domain/entities/utils/AsyncResult;", "loading", "(Ljava/lang/Object;)Lcom/adif/elcanomovil/domain/entities/utils/AsyncResult;", FirebaseAnalytics.Param.SUCCESS, "domain_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
/* loaded from: classes.dex */
public static final class Companion {
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
this();
}
public final <T> AsyncResult<T> error(Throwable throwable, T data) {
Intrinsics.checkNotNullParameter(throwable, "throwable");
return new AsyncResult<>(Status.ERROR, data, throwable);
}
public final <T> AsyncResult<T> loading(T data) {
return new AsyncResult<>(Status.LOADING, data, null);
}
public final <T> AsyncResult<T> success(T data) {
return new AsyncResult<>(Status.SUCCESS, data, null);
}
private Companion() {
}
}
public AsyncResult(Status status, T t2, Throwable th) {
Intrinsics.checkNotNullParameter(status, "status");
this.status = status;
this.data = t2;
this.throwable = th;
}
/* JADX WARN: Multi-variable type inference failed */
public static /* synthetic */ AsyncResult copy$default(AsyncResult asyncResult, Status status, Object obj, Throwable th, int i, Object obj2) {
if ((i & 1) != 0) {
status = asyncResult.status;
}
if ((i & 2) != 0) {
obj = asyncResult.data;
}
if ((i & 4) != 0) {
th = asyncResult.throwable;
}
return asyncResult.copy(status, obj, th);
}
/* renamed from: component1, reason: from getter */
public final Status getStatus() {
return this.status;
}
public final T component2() {
return this.data;
}
/* renamed from: component3, reason: from getter */
public final Throwable getThrowable() {
return this.throwable;
}
public final AsyncResult<T> copy(Status status, T data, Throwable throwable) {
Intrinsics.checkNotNullParameter(status, "status");
return new AsyncResult<>(status, data, throwable);
}
public boolean equals(Object other) {
if (this == other) {
return true;
}
if (!(other instanceof AsyncResult)) {
return false;
}
AsyncResult asyncResult = (AsyncResult) other;
return this.status == asyncResult.status && Intrinsics.areEqual(this.data, asyncResult.data) && Intrinsics.areEqual(this.throwable, asyncResult.throwable);
}
public final T getData() {
return this.data;
}
public final Status getStatus() {
return this.status;
}
public final Throwable getThrowable() {
return this.throwable;
}
public int hashCode() {
int hashCode = this.status.hashCode() * 31;
T t2 = this.data;
int hashCode2 = (hashCode + (t2 == null ? 0 : t2.hashCode())) * 31;
Throwable th = this.throwable;
return hashCode2 + (th != null ? th.hashCode() : 0);
}
public String toString() {
return "AsyncResult(status=" + this.status + ", data=" + this.data + ", throwable=" + this.throwable + ')';
}
}

View File

@@ -0,0 +1,42 @@
package com.adif.elcanomovil.domain.entities.utils;
import kotlin.Metadata;
import kotlin.enums.EnumEntries;
import kotlin.enums.EnumEntriesKt;
/* JADX WARN: Failed to restore enum class, 'enum' modifier and super class removed */
/* JADX WARN: Unknown enum class pattern. Please report as an issue! */
@Metadata(d1 = {"\u0000\f\n\u0002\u0018\u0002\n\u0002\u0010\u0010\n\u0002\b\u0005\b\u0086\u0081\u0002\u0018\u00002\b\u0012\u0004\u0012\u00020\u00000\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002j\u0002\b\u0003j\u0002\b\u0004j\u0002\b\u0005¨\u0006\u0006"}, d2 = {"Lcom/adif/elcanomovil/domain/entities/utils/Status;", "", "(Ljava/lang/String;I)V", "SUCCESS", "ERROR", "LOADING", "domain_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
/* loaded from: classes.dex */
public final class Status {
private static final /* synthetic */ EnumEntries $ENTRIES;
private static final /* synthetic */ Status[] $VALUES;
public static final Status SUCCESS = new Status("SUCCESS", 0);
public static final Status ERROR = new Status("ERROR", 1);
public static final Status LOADING = new Status("LOADING", 2);
private static final /* synthetic */ Status[] $values() {
return new Status[]{SUCCESS, ERROR, LOADING};
}
static {
Status[] $values = $values();
$VALUES = $values;
$ENTRIES = EnumEntriesKt.enumEntries($values);
}
private Status(String str, int i) {
}
public static EnumEntries<Status> getEntries() {
return $ENTRIES;
}
public static Status valueOf(String str) {
return (Status) Enum.valueOf(Status.class, str);
}
public static Status[] values() {
return (Status[]) $VALUES.clone();
}
}

View File

@@ -0,0 +1,148 @@
package com.adif.elcanomovil.domain.entities.utils;
import kotlin.Metadata;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.jvm.internal.Intrinsics;
@Metadata(d1 = {"\u0000,\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\b6\u0018\u0000*\u0006\b\u0000\u0010\u0001 \u00012\u00020\u0002:\u0002\r\u000eB\u0007\b\u0004¢\u0006\u0002\u0010\u0003J\u000e\u0010\b\u001a\n\u0018\u00010\tj\u0004\u0018\u0001`\nJ\r\u0010\u000b\u001a\u0004\u0018\u00018\u0000¢\u0006\u0002\u0010\fR\u0011\u0010\u0004\u001a\u00020\u00058F¢\u0006\u0006\u001a\u0004\b\u0004\u0010\u0006R\u0011\u0010\u0007\u001a\u00020\u00058F¢\u0006\u0006\u001a\u0004\b\u0007\u0010\u0006\u0082\u0001\u0002\u000f\u0010¨\u0006\u0011"}, d2 = {"Lcom/adif/elcanomovil/domain/entities/utils/SyncResult;", "T", "", "()V", "isFailure", "", "()Z", "isSuccess", "exceptionOrNull", "Ljava/lang/Exception;", "Lkotlin/Exception;", "getOrNull", "()Ljava/lang/Object;", "Error", "Success", "Lcom/adif/elcanomovil/domain/entities/utils/SyncResult$Error;", "Lcom/adif/elcanomovil/domain/entities/utils/SyncResult$Success;", "domain_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
/* loaded from: classes.dex */
public abstract class SyncResult<T> {
@Metadata(d1 = {"\u00002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0010\u0001\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0006\n\u0002\u0010\u000b\n\u0000\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\b\n\u0000\n\u0002\u0010\u000e\n\u0000\b\u0086\b\u0018\u00002\b\u0012\u0004\u0012\u00020\u00020\u0001B\u0017\u0012\u0010\b\u0002\u0010\u0003\u001a\n\u0018\u00010\u0004j\u0004\u0018\u0001`\u0005¢\u0006\u0002\u0010\u0006J\u0011\u0010\t\u001a\n\u0018\u00010\u0004j\u0004\u0018\u0001`\u0005HÆ\u0003J\u001b\u0010\n\u001a\u00020\u00002\u0010\b\u0002\u0010\u0003\u001a\n\u0018\u00010\u0004j\u0004\u0018\u0001`\u0005HÆ\u0001J\u0013\u0010\u000b\u001a\u00020\f2\b\u0010\r\u001a\u0004\u0018\u00010\u000eHÖ\u0003J\t\u0010\u000f\u001a\u00020\u0010HÖ\u0001J\t\u0010\u0011\u001a\u00020\u0012HÖ\u0001R\u0019\u0010\u0003\u001a\n\u0018\u00010\u0004j\u0004\u0018\u0001`\u0005¢\u0006\b\n\u0000\u001a\u0004\b\u0007\u0010\b¨\u0006\u0013"}, d2 = {"Lcom/adif/elcanomovil/domain/entities/utils/SyncResult$Error;", "Lcom/adif/elcanomovil/domain/entities/utils/SyncResult;", "", "cause", "Ljava/lang/Exception;", "Lkotlin/Exception;", "(Ljava/lang/Exception;)V", "getCause", "()Ljava/lang/Exception;", "component1", "copy", "equals", "", "other", "", "hashCode", "", "toString", "", "domain_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
/* loaded from: classes.dex */
public static final /* data */ class Error extends SyncResult {
private final Exception cause;
/* JADX WARN: Multi-variable type inference failed */
public Error() {
this(null, 1, 0 == true ? 1 : 0);
}
public static /* synthetic */ Error copy$default(Error error, Exception exc, int i, Object obj) {
if ((i & 1) != 0) {
exc = error.cause;
}
return error.copy(exc);
}
/* renamed from: component1, reason: from getter */
public final Exception getCause() {
return this.cause;
}
public final Error copy(Exception cause) {
return new Error(cause);
}
public boolean equals(Object other) {
if (this == other) {
return true;
}
return (other instanceof Error) && Intrinsics.areEqual(this.cause, ((Error) other).cause);
}
public final Exception getCause() {
return this.cause;
}
public int hashCode() {
Exception exc = this.cause;
if (exc == null) {
return 0;
}
return exc.hashCode();
}
public String toString() {
return "Error(cause=" + this.cause + ')';
}
public Error(Exception exc) {
super(null);
this.cause = exc;
}
public /* synthetic */ Error(Exception exc, int i, DefaultConstructorMarker defaultConstructorMarker) {
this((i & 1) != 0 ? null : exc);
}
}
@Metadata(d1 = {"\u0000&\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\t\n\u0002\u0010\u000b\n\u0000\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\b\n\u0000\n\u0002\u0010\u000e\n\u0000\b\u0086\b\u0018\u0000*\u0006\b\u0001\u0010\u0001 \u00012\b\u0012\u0004\u0012\u0002H\u00010\u0002B\r\u0012\u0006\u0010\u0003\u001a\u00028\u0001¢\u0006\u0002\u0010\u0004J\u000e\u0010\b\u001a\u00028\u0001HÆ\u0003¢\u0006\u0002\u0010\u0006J\u001e\u0010\t\u001a\b\u0012\u0004\u0012\u00028\u00010\u00002\b\b\u0002\u0010\u0003\u001a\u00028\u0001HÆ\u0001¢\u0006\u0002\u0010\nJ\u0013\u0010\u000b\u001a\u00020\f2\b\u0010\r\u001a\u0004\u0018\u00010\u000eHÖ\u0003J\t\u0010\u000f\u001a\u00020\u0010HÖ\u0001J\t\u0010\u0011\u001a\u00020\u0012HÖ\u0001R\u0013\u0010\u0003\u001a\u00028\u0001¢\u0006\n\n\u0002\u0010\u0007\u001a\u0004\b\u0005\u0010\u0006¨\u0006\u0013"}, d2 = {"Lcom/adif/elcanomovil/domain/entities/utils/SyncResult$Success;", "T", "Lcom/adif/elcanomovil/domain/entities/utils/SyncResult;", "value", "(Ljava/lang/Object;)V", "getValue", "()Ljava/lang/Object;", "Ljava/lang/Object;", "component1", "copy", "(Ljava/lang/Object;)Lcom/adif/elcanomovil/domain/entities/utils/SyncResult$Success;", "equals", "", "other", "", "hashCode", "", "toString", "", "domain_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
/* loaded from: classes.dex */
public static final /* data */ class Success<T> extends SyncResult<T> {
private final T value;
public Success(T t2) {
super(null);
this.value = t2;
}
/* JADX WARN: Multi-variable type inference failed */
public static /* synthetic */ Success copy$default(Success success, Object obj, int i, Object obj2) {
if ((i & 1) != 0) {
obj = success.value;
}
return success.copy(obj);
}
public final T component1() {
return this.value;
}
public final Success<T> copy(T value) {
return new Success<>(value);
}
public boolean equals(Object other) {
if (this == other) {
return true;
}
return (other instanceof Success) && Intrinsics.areEqual(this.value, ((Success) other).value);
}
public final T getValue() {
return this.value;
}
public int hashCode() {
T t2 = this.value;
if (t2 == null) {
return 0;
}
return t2.hashCode();
}
public String toString() {
return "Success(value=" + this.value + ')';
}
}
public /* synthetic */ SyncResult(DefaultConstructorMarker defaultConstructorMarker) {
this();
}
public final Exception exceptionOrNull() {
if (this instanceof Error) {
return ((Error) this).getCause();
}
return null;
}
public final T getOrNull() {
if (this instanceof Success) {
return (T) ((Success) this).getValue();
}
return null;
}
public final boolean isFailure() {
return this instanceof Error;
}
public final boolean isSuccess() {
return this instanceof Success;
}
private SyncResult() {
}
}

View File

@@ -0,0 +1,69 @@
package com.adif.elcanomovil.domain.entities.utils;
import kotlin.Metadata;
@Metadata(d1 = {"\u0000\u001a\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\u001aN\u0010\u0000\u001a\b\u0012\u0004\u0012\u0002H\u00020\u0001\"\u0004\b\u0000\u0010\u0003\"\u0004\b\u0001\u0010\u0002*\b\u0012\u0004\u0012\u0002H\u00030\u00012\"\u0010\u0004\u001a\u001e\b\u0001\u0012\u0004\u0012\u0002H\u0003\u0012\n\u0012\b\u0012\u0004\u0012\u0002H\u00020\u0006\u0012\u0006\u0012\u0004\u0018\u00010\u00070\u0005H\u0086@¢\u0006\u0002\u0010\b¨\u0006\t"}, d2 = {"mapResult", "Lcom/adif/elcanomovil/domain/entities/utils/SyncResult;", "O", "I", "mapper", "Lkotlin/Function2;", "Lkotlin/coroutines/Continuation;", "", "(Lcom/adif/elcanomovil/domain/entities/utils/SyncResult;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "domain_proNon_corporateRelease"}, k = 2, mv = {1, 9, 0}, xi = 48)
/* loaded from: classes.dex */
public final class SyncResultKt {
/* JADX WARN: Removed duplicated region for block: B:15:0x0031 */
/* JADX WARN: Removed duplicated region for block: B:8:0x0023 */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public static final <I, O> java.lang.Object mapResult(com.adif.elcanomovil.domain.entities.utils.SyncResult<? extends I> r4, kotlin.jvm.functions.Function2<? super I, ? super kotlin.coroutines.Continuation<? super O>, ? extends java.lang.Object> r5, kotlin.coroutines.Continuation<? super com.adif.elcanomovil.domain.entities.utils.SyncResult<? extends O>> r6) {
/*
boolean r0 = r6 instanceof i1.C0395a
if (r0 == 0) goto L13
r0 = r6
i1.a r0 = (i1.C0395a) r0
int r1 = r0.f6814b
r2 = -2147483648(0xffffffff80000000, float:-0.0)
r3 = r1 & r2
if (r3 == 0) goto L13
int r1 = r1 - r2
r0.f6814b = r1
goto L18
L13:
i1.a r0 = new i1.a
r0.<init>(r6)
L18:
java.lang.Object r6 = r0.f6813a
java.lang.Object r1 = kotlin.coroutines.intrinsics.IntrinsicsKt.getCOROUTINE_SUSPENDED()
int r2 = r0.f6814b
r3 = 1
if (r2 == 0) goto L31
if (r2 != r3) goto L29
kotlin.ResultKt.throwOnFailure(r6)
goto L47
L29:
java.lang.IllegalStateException r4 = new java.lang.IllegalStateException
java.lang.String r5 = "call to 'resume' before 'invoke' with coroutine"
r4.<init>(r5)
throw r4
L31:
kotlin.ResultKt.throwOnFailure(r6)
boolean r6 = r4 instanceof com.adif.elcanomovil.domain.entities.utils.SyncResult.Success
if (r6 == 0) goto L4d
com.adif.elcanomovil.domain.entities.utils.SyncResult$Success r4 = (com.adif.elcanomovil.domain.entities.utils.SyncResult.Success) r4
java.lang.Object r4 = r4.getValue()
r0.f6814b = r3
java.lang.Object r6 = r5.invoke(r4, r0)
if (r6 != r1) goto L47
return r1
L47:
com.adif.elcanomovil.domain.entities.utils.SyncResult$Success r4 = new com.adif.elcanomovil.domain.entities.utils.SyncResult$Success
r4.<init>(r6)
return r4
L4d:
boolean r5 = r4 instanceof com.adif.elcanomovil.domain.entities.utils.SyncResult.Error
if (r5 == 0) goto L52
return r4
L52:
kotlin.NoWhenBranchMatchedException r4 = new kotlin.NoWhenBranchMatchedException
r4.<init>()
throw r4
*/
throw new UnsupportedOperationException("Method not decompiled: com.adif.elcanomovil.domain.entities.utils.SyncResultKt.mapResult(com.adif.elcanomovil.domain.entities.utils.SyncResult, kotlin.jvm.functions.Function2, kotlin.coroutines.Continuation):java.lang.Object");
}
}