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,11 @@
package com.adif.elcanomovil.observers;
import kotlin.Metadata;
import kotlin.Unit;
import kotlin.coroutines.Continuation;
@Metadata(d1 = {"\u0000\u0012\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\u0002\n\u0002\b\u0002\bf\u0018\u00002\u00020\u0001J\u000e\u0010\u0002\u001a\u00020\u0003H¦@¢\u0006\u0002\u0010\u0004¨\u0006\u0005"}, d2 = {"Lcom/adif/elcanomovil/observers/ApplicationObserver;", "", "start", "", "(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "app_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
/* loaded from: classes.dex */
public interface ApplicationObserver {
Object start(Continuation<? super Unit> continuation);
}

View File

@@ -0,0 +1,81 @@
package com.adif.elcanomovil.observers;
import java.util.List;
import kotlin.Metadata;
import kotlin.jvm.internal.Intrinsics;
import kotlin.jvm.internal.SourceDebugExtension;
@Metadata(d1 = {"\u0000\u001a\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010 \n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0002\b\u0002\u0018\u00002\u00020\u0001B\u0013\u0012\f\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00010\u0003¢\u0006\u0002\u0010\u0004J\u000e\u0010\u0005\u001a\u00020\u0006H\u0096@¢\u0006\u0002\u0010\u0007R\u0014\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00010\u0003X\u0082\u0004¢\u0006\u0002\n\u0000¨\u0006\b"}, d2 = {"Lcom/adif/elcanomovil/observers/ComposedApplicationObserver;", "Lcom/adif/elcanomovil/observers/ApplicationObserver;", "observers", "", "(Ljava/util/List;)V", "start", "", "(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "app_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
@SourceDebugExtension({"SMAP\nComposedApplicationObserver.kt\nKotlin\n*S Kotlin\n*F\n+ 1 ComposedApplicationObserver.kt\ncom/adif/elcanomovil/observers/ComposedApplicationObserver\n+ 2 _Collections.kt\nkotlin/collections/CollectionsKt___CollectionsKt\n*L\n1#1,13:1\n1855#2,2:14\n*S KotlinDebug\n*F\n+ 1 ComposedApplicationObserver.kt\ncom/adif/elcanomovil/observers/ComposedApplicationObserver\n*L\n10#1:14,2\n*E\n"})
/* loaded from: classes.dex */
public final class ComposedApplicationObserver implements ApplicationObserver {
private final List<ApplicationObserver> observers;
/* JADX WARN: Multi-variable type inference failed */
public ComposedApplicationObserver(List<? extends ApplicationObserver> observers) {
Intrinsics.checkNotNullParameter(observers, "observers");
this.observers = observers;
}
/* JADX WARN: Removed duplicated region for block: B:13:0x0044 */
/* JADX WARN: Removed duplicated region for block: B:24:0x0033 */
/* JADX WARN: Removed duplicated region for block: B:8:0x0023 */
@Override // com.adif.elcanomovil.observers.ApplicationObserver
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public java.lang.Object start(kotlin.coroutines.Continuation<? super kotlin.Unit> r5) {
/*
r4 = this;
boolean r0 = r5 instanceof p1.C0550a
if (r0 == 0) goto L13
r0 = r5
p1.a r0 = (p1.C0550a) r0
int r1 = r0.f8116d
r2 = -2147483648(0xffffffff80000000, float:-0.0)
r3 = r1 & r2
if (r3 == 0) goto L13
int r1 = r1 - r2
r0.f8116d = r1
goto L18
L13:
p1.a r0 = new p1.a
r0.<init>(r4, r5)
L18:
java.lang.Object r5 = r0.f8114b
java.lang.Object r1 = kotlin.coroutines.intrinsics.IntrinsicsKt.getCOROUTINE_SUSPENDED()
int r2 = r0.f8116d
r3 = 1
if (r2 == 0) goto L33
if (r2 != r3) goto L2b
java.util.Iterator r4 = r0.f8113a
kotlin.ResultKt.throwOnFailure(r5)
goto L3e
L2b:
java.lang.IllegalStateException r4 = new java.lang.IllegalStateException
java.lang.String r5 = "call to 'resume' before 'invoke' with coroutine"
r4.<init>(r5)
throw r4
L33:
kotlin.ResultKt.throwOnFailure(r5)
java.util.List<com.adif.elcanomovil.observers.ApplicationObserver> r4 = r4.observers
java.lang.Iterable r4 = (java.lang.Iterable) r4
java.util.Iterator r4 = r4.iterator()
L3e:
boolean r5 = r4.hasNext()
if (r5 == 0) goto L55
java.lang.Object r5 = r4.next()
com.adif.elcanomovil.observers.ApplicationObserver r5 = (com.adif.elcanomovil.observers.ApplicationObserver) r5
r0.f8113a = r4
r0.f8116d = r3
java.lang.Object r5 = r5.start(r0)
if (r5 != r1) goto L3e
return r1
L55:
kotlin.Unit r4 = kotlin.Unit.INSTANCE
return r4
*/
throw new UnsupportedOperationException("Method not decompiled: com.adif.elcanomovil.observers.ComposedApplicationObserver.start(kotlin.coroutines.Continuation):java.lang.Object");
}
}

View File

@@ -0,0 +1,49 @@
package com.adif.elcanomovil.observers;
import a1.C0107a;
import com.google.firebase.crashlytics.FirebaseCrashlytics;
import java.util.ArrayList;
import kotlin.Metadata;
import kotlin.Unit;
import kotlin.coroutines.Continuation;
import kotlin.jvm.internal.Intrinsics;
import t3.a;
import t3.b;
import t3.c;
@Metadata(d1 = {"\u0000\u001a\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0002\b\u0003\u0018\u00002\u00020\u0001B\r\u0012\u0006\u0010\u0002\u001a\u00020\u0003¢\u0006\u0002\u0010\u0004J\b\u0010\u0005\u001a\u00020\u0006H\u0002J\u000e\u0010\u0007\u001a\u00020\u0006H\u0096@¢\u0006\u0002\u0010\bR\u000e\u0010\u0002\u001a\u00020\u0003X\u0082\u0004¢\u0006\u0002\n\u0000¨\u0006\t"}, d2 = {"Lcom/adif/elcanomovil/observers/LoggerObserver;", "Lcom/adif/elcanomovil/observers/ApplicationObserver;", "firebaseCrashlytics", "Lcom/google/firebase/crashlytics/FirebaseCrashlytics;", "(Lcom/google/firebase/crashlytics/FirebaseCrashlytics;)V", "configureLoggerInstance", "", "start", "(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "app_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
/* loaded from: classes.dex */
public final class LoggerObserver implements ApplicationObserver {
private final FirebaseCrashlytics firebaseCrashlytics;
public LoggerObserver(FirebaseCrashlytics firebaseCrashlytics) {
Intrinsics.checkNotNullParameter(firebaseCrashlytics, "firebaseCrashlytics");
this.firebaseCrashlytics = firebaseCrashlytics;
}
private final void configureLoggerInstance() {
a aVar = c.f8551a;
C0107a tree = new C0107a(this.firebaseCrashlytics);
aVar.getClass();
Intrinsics.checkNotNullParameter(tree, "tree");
if (tree == aVar) {
throw new IllegalArgumentException("Cannot plant Timber into itself.");
}
ArrayList arrayList = c.f8552b;
synchronized (arrayList) {
arrayList.add(tree);
Object[] array = arrayList.toArray(new b[0]);
if (array == null) {
throw new NullPointerException("null cannot be cast to non-null type kotlin.Array<T>");
}
c.f8553c = (b[]) array;
Unit unit = Unit.INSTANCE;
}
}
@Override // com.adif.elcanomovil.observers.ApplicationObserver
public Object start(Continuation<? super Unit> continuation) {
configureLoggerInstance();
return Unit.INSTANCE;
}
}

View File

@@ -0,0 +1,25 @@
package com.adif.elcanomovil.observers;
import com.adif.elcanomovil.domain.usecases.FetchVersionUpdateUseCase;
import kotlin.Metadata;
import kotlin.Unit;
import kotlin.coroutines.Continuation;
import kotlin.coroutines.intrinsics.IntrinsicsKt;
import kotlin.jvm.internal.Intrinsics;
@Metadata(d1 = {"\u0000\u001a\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0002\b\u0002\u0018\u00002\u00020\u0001B\r\u0012\u0006\u0010\u0002\u001a\u00020\u0003¢\u0006\u0002\u0010\u0004J\u000e\u0010\u0005\u001a\u00020\u0006H\u0096@¢\u0006\u0002\u0010\u0007R\u000e\u0010\u0002\u001a\u00020\u0003X\u0082\u0004¢\u0006\u0002\n\u0000¨\u0006\b"}, d2 = {"Lcom/adif/elcanomovil/observers/RemoteConfigurationObserver;", "Lcom/adif/elcanomovil/observers/ApplicationObserver;", "fetchVersionUpdateUseCase", "Lcom/adif/elcanomovil/domain/usecases/FetchVersionUpdateUseCase;", "(Lcom/adif/elcanomovil/domain/usecases/FetchVersionUpdateUseCase;)V", "start", "", "(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "app_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
/* loaded from: classes.dex */
public final class RemoteConfigurationObserver implements ApplicationObserver {
private final FetchVersionUpdateUseCase fetchVersionUpdateUseCase;
public RemoteConfigurationObserver(FetchVersionUpdateUseCase fetchVersionUpdateUseCase) {
Intrinsics.checkNotNullParameter(fetchVersionUpdateUseCase, "fetchVersionUpdateUseCase");
this.fetchVersionUpdateUseCase = fetchVersionUpdateUseCase;
}
@Override // com.adif.elcanomovil.observers.ApplicationObserver
public Object start(Continuation<? super Unit> continuation) {
Object invoke = this.fetchVersionUpdateUseCase.invoke(continuation);
return invoke == IntrinsicsKt.getCOROUTINE_SUSPENDED() ? invoke : Unit.INSTANCE;
}
}

View File

@@ -0,0 +1,93 @@
package com.adif.elcanomovil.observers;
import com.adif.elcanomovil.domain.usecases.stations.GetStationsUseCase;
import kotlin.Metadata;
import kotlin.jvm.internal.Intrinsics;
@Metadata(d1 = {"\u0000\u001a\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0002\b\u0002\u0018\u00002\u00020\u0001B\r\u0012\u0006\u0010\u0002\u001a\u00020\u0003¢\u0006\u0002\u0010\u0004J\u000e\u0010\u0005\u001a\u00020\u0006H\u0096@¢\u0006\u0002\u0010\u0007R\u000e\u0010\u0002\u001a\u00020\u0003X\u0082\u0004¢\u0006\u0002\n\u0000¨\u0006\b"}, d2 = {"Lcom/adif/elcanomovil/observers/UpdateStationsObserver;", "Lcom/adif/elcanomovil/observers/ApplicationObserver;", "getStationsUseCase", "Lcom/adif/elcanomovil/domain/usecases/stations/GetStationsUseCase;", "(Lcom/adif/elcanomovil/domain/usecases/stations/GetStationsUseCase;)V", "start", "", "(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "app_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
/* loaded from: classes.dex */
public final class UpdateStationsObserver implements ApplicationObserver {
private final GetStationsUseCase getStationsUseCase;
public UpdateStationsObserver(GetStationsUseCase getStationsUseCase) {
Intrinsics.checkNotNullParameter(getStationsUseCase, "getStationsUseCase");
this.getStationsUseCase = getStationsUseCase;
}
/* JADX WARN: Code restructure failed: missing block: B:18:0x0050, code lost:
if (((kotlinx.coroutines.flow.Flow) r6).collect(r5, r0) != r1) goto L22;
*/
/* JADX WARN: Code restructure failed: missing block: B:19:0x0052, code lost:
return r1;
*/
/* JADX WARN: Code restructure failed: missing block: B:21:0x0043, code lost:
if (r6 == r1) goto L21;
*/
/* JADX WARN: Removed duplicated region for block: B:20:0x0038 */
/* JADX WARN: Removed duplicated region for block: B:8:0x0024 */
@Override // com.adif.elcanomovil.observers.ApplicationObserver
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public java.lang.Object start(kotlin.coroutines.Continuation<? super kotlin.Unit> r6) {
/*
r5 = this;
boolean r0 = r6 instanceof p1.C0551b
if (r0 == 0) goto L13
r0 = r6
p1.b r0 = (p1.C0551b) r0
int r1 = r0.f8119c
r2 = -2147483648(0xffffffff80000000, float:-0.0)
r3 = r1 & r2
if (r3 == 0) goto L13
int r1 = r1 - r2
r0.f8119c = r1
goto L18
L13:
p1.b r0 = new p1.b
r0.<init>(r5, r6)
L18:
java.lang.Object r6 = r0.f8117a
java.lang.Object r1 = kotlin.coroutines.intrinsics.IntrinsicsKt.getCOROUTINE_SUSPENDED()
int r2 = r0.f8119c
r3 = 2
r4 = 1
if (r2 == 0) goto L38
if (r2 == r4) goto L34
if (r2 != r3) goto L2c
kotlin.ResultKt.throwOnFailure(r6)
goto L53
L2c:
java.lang.IllegalStateException r5 = new java.lang.IllegalStateException
java.lang.String r6 = "call to 'resume' before 'invoke' with coroutine"
r5.<init>(r6)
throw r5
L34:
kotlin.ResultKt.throwOnFailure(r6)
goto L46
L38:
kotlin.ResultKt.throwOnFailure(r6)
com.adif.elcanomovil.domain.usecases.stations.GetStationsUseCase r5 = r5.getStationsUseCase
r0.f8119c = r4
java.lang.Object r6 = r5.invoke(r0)
if (r6 != r1) goto L46
goto L52
L46:
kotlinx.coroutines.flow.Flow r6 = (kotlinx.coroutines.flow.Flow) r6
p1.c r5 = p1.c.f8120a
r0.f8119c = r3
java.lang.Object r5 = r6.collect(r5, r0)
if (r5 != r1) goto L53
L52:
return r1
L53:
kotlin.Unit r5 = kotlin.Unit.INSTANCE
return r5
*/
throw new UnsupportedOperationException("Method not decompiled: com.adif.elcanomovil.observers.UpdateStationsObserver.start(kotlin.coroutines.Continuation):java.lang.Object");
}
}