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,18 @@
package com.adif.elcanomovil.serviceNetworking.stationObservations;
import com.adif.elcanomovil.serviceNetworking.ServicePaths;
import com.adif.elcanomovil.serviceNetworking.stationObservations.model.StationObservationsRequest;
import com.adif.elcanomovil.serviceNetworking.stationObservations.model.StationObservationsResponse;
import kotlin.Metadata;
import kotlin.coroutines.Continuation;
import retrofit2.http.Body;
import retrofit2.http.Headers;
import retrofit2.http.POST;
@Metadata(d1 = {"\u0000\u0018\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\bf\u0018\u00002\u00020\u0001J\u0018\u0010\u0002\u001a\u00020\u00032\b\b\u0001\u0010\u0004\u001a\u00020\u0005H§@¢\u0006\u0002\u0010\u0006¨\u0006\u0007"}, d2 = {"Lcom/adif/elcanomovil/serviceNetworking/stationObservations/StationObservationsService;", "", "stationObservations", "Lcom/adif/elcanomovil/serviceNetworking/stationObservations/model/StationObservationsResponse;", "stationCodes", "Lcom/adif/elcanomovil/serviceNetworking/stationObservations/model/StationObservationsRequest;", "(Lcom/adif/elcanomovil/serviceNetworking/stationObservations/model/StationObservationsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "service-networking_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
/* loaded from: classes.dex */
public interface StationObservationsService {
@Headers({ServicePaths.Headers.contentType, ServicePaths.Headers.apiManagerUserKeyStations})
@POST(ServicePaths.StationObservationsService.observations)
Object stationObservations(@Body StationObservationsRequest stationObservationsRequest, Continuation<? super StationObservationsResponse> continuation);
}

View File

@@ -0,0 +1,105 @@
package com.adif.elcanomovil.serviceNetworking.stationObservations.model;
import C.w;
import kotlin.Metadata;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.jvm.internal.Intrinsics;
@Metadata(d1 = {"\u0000(\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0010\n\u0002\u0010\b\n\u0002\b\u0002\b\u0086\b\u0018\u00002\u00020\u0001B)\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u0012\u0006\u0010\u0004\u001a\u00020\u0003\u0012\n\b\u0002\u0010\u0005\u001a\u0004\u0018\u00010\u0006\u0012\u0006\u0010\u0007\u001a\u00020\\u0006\u0002\u0010\tJ\t\u0010\u0011\u001a\u00020\u0003HÆ\u0003J\t\u0010\u0012\u001a\u00020\u0003HÆ\u0003J\u000b\u0010\u0013\u001a\u0004\u0018\u00010\u0006HÆ\u0003J\t\u0010\u0014\u001a\u00020\bHÆ\u0003J3\u0010\u0015\u001a\u00020\u00002\b\b\u0002\u0010\u0002\u001a\u00020\u00032\b\b\u0002\u0010\u0004\u001a\u00020\u00032\n\b\u0002\u0010\u0005\u001a\u0004\u0018\u00010\u00062\b\b\u0002\u0010\u0007\u001a\u00020\bHÆ\u0001J\u0013\u0010\u0016\u001a\u00020\u00032\b\u0010\u0017\u001a\u0004\u0018\u00010\u0001HÖ\u0003J\t\u0010\u0018\u001a\u00020\u0019HÖ\u0001J\t\u0010\u001a\u001a\u00020\u0006HÖ\u0001R\u0011\u0010\u0002\u001a\u00020\u0003¢\u0006\b\n\u0000\u001a\u0004\b\n\u0010\u000bR\u0011\u0010\u0004\u001a\u00020\u0003¢\u0006\b\n\u0000\u001a\u0004\b\f\u0010\u000bR\u0013\u0010\u0005\u001a\u0004\u0018\u00010\u0006¢\u0006\b\n\u0000\u001a\u0004\b\r\u0010\u000eR\u0011\u0010\u0007\u001a\u00020\\u0006\b\n\u0000\u001a\u0004\b\u000f\u0010\u0010¨\u0006\u001b"}, d2 = {"Lcom/adif/elcanomovil/serviceNetworking/stationObservations/model/ObservationDTO;", "", "avldmd", "", "cercanias", "observation", "", "type", "Lcom/adif/elcanomovil/serviceNetworking/stationObservations/model/ObservationTypeDTO;", "(ZZLjava/lang/String;Lcom/adif/elcanomovil/serviceNetworking/stationObservations/model/ObservationTypeDTO;)V", "getAvldmd", "()Z", "getCercanias", "getObservation", "()Ljava/lang/String;", "getType", "()Lcom/adif/elcanomovil/serviceNetworking/stationObservations/model/ObservationTypeDTO;", "component1", "component2", "component3", "component4", "copy", "equals", "other", "hashCode", "", "toString", "service-networking_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
/* loaded from: classes.dex */
public final /* data */ class ObservationDTO {
private final boolean avldmd;
private final boolean cercanias;
private final String observation;
private final ObservationTypeDTO type;
public ObservationDTO(boolean z3, boolean z4, String str, ObservationTypeDTO type) {
Intrinsics.checkNotNullParameter(type, "type");
this.avldmd = z3;
this.cercanias = z4;
this.observation = str;
this.type = type;
}
public static /* synthetic */ ObservationDTO copy$default(ObservationDTO observationDTO, boolean z3, boolean z4, String str, ObservationTypeDTO observationTypeDTO, int i, Object obj) {
if ((i & 1) != 0) {
z3 = observationDTO.avldmd;
}
if ((i & 2) != 0) {
z4 = observationDTO.cercanias;
}
if ((i & 4) != 0) {
str = observationDTO.observation;
}
if ((i & 8) != 0) {
observationTypeDTO = observationDTO.type;
}
return observationDTO.copy(z3, z4, str, observationTypeDTO);
}
/* renamed from: component1, reason: from getter */
public final boolean getAvldmd() {
return this.avldmd;
}
/* renamed from: component2, reason: from getter */
public final boolean getCercanias() {
return this.cercanias;
}
/* renamed from: component3, reason: from getter */
public final String getObservation() {
return this.observation;
}
/* renamed from: component4, reason: from getter */
public final ObservationTypeDTO getType() {
return this.type;
}
public final ObservationDTO copy(boolean avldmd, boolean cercanias, String observation, ObservationTypeDTO type) {
Intrinsics.checkNotNullParameter(type, "type");
return new ObservationDTO(avldmd, cercanias, observation, type);
}
public boolean equals(Object other) {
if (this == other) {
return true;
}
if (!(other instanceof ObservationDTO)) {
return false;
}
ObservationDTO observationDTO = (ObservationDTO) other;
return this.avldmd == observationDTO.avldmd && this.cercanias == observationDTO.cercanias && Intrinsics.areEqual(this.observation, observationDTO.observation) && this.type == observationDTO.type;
}
public final boolean getAvldmd() {
return this.avldmd;
}
public final boolean getCercanias() {
return this.cercanias;
}
public final String getObservation() {
return this.observation;
}
public final ObservationTypeDTO getType() {
return this.type;
}
public int hashCode() {
int c4 = w.c(Boolean.hashCode(this.avldmd) * 31, 31, this.cercanias);
String str = this.observation;
return this.type.hashCode() + ((c4 + (str == null ? 0 : str.hashCode())) * 31);
}
public String toString() {
return "ObservationDTO(avldmd=" + this.avldmd + ", cercanias=" + this.cercanias + ", observation=" + this.observation + ", type=" + this.type + ')';
}
public /* synthetic */ ObservationDTO(boolean z3, boolean z4, String str, ObservationTypeDTO observationTypeDTO, int i, DefaultConstructorMarker defaultConstructorMarker) {
this(z3, z4, (i & 4) != 0 ? "" : str, observationTypeDTO);
}
}

View File

@@ -0,0 +1,41 @@
package com.adif.elcanomovil.serviceNetworking.stationObservations.model;
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\u0004\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\u0004¨\u0006\u0005"}, d2 = {"Lcom/adif/elcanomovil/serviceNetworking/stationObservations/model/ObservationTypeDTO;", "", "(Ljava/lang/String;I)V", "INCIDENCE", "INFO", "service-networking_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
/* loaded from: classes.dex */
public final class ObservationTypeDTO {
private static final /* synthetic */ EnumEntries $ENTRIES;
private static final /* synthetic */ ObservationTypeDTO[] $VALUES;
public static final ObservationTypeDTO INCIDENCE = new ObservationTypeDTO("INCIDENCE", 0);
public static final ObservationTypeDTO INFO = new ObservationTypeDTO("INFO", 1);
private static final /* synthetic */ ObservationTypeDTO[] $values() {
return new ObservationTypeDTO[]{INCIDENCE, INFO};
}
static {
ObservationTypeDTO[] $values = $values();
$VALUES = $values;
$ENTRIES = EnumEntriesKt.enumEntries($values);
}
private ObservationTypeDTO(String str, int i) {
}
public static EnumEntries<ObservationTypeDTO> getEntries() {
return $ENTRIES;
}
public static ObservationTypeDTO valueOf(String str) {
return (ObservationTypeDTO) Enum.valueOf(ObservationTypeDTO.class, str);
}
public static ObservationTypeDTO[] values() {
return (ObservationTypeDTO[]) $VALUES.clone();
}
}

View File

@@ -0,0 +1,76 @@
package com.adif.elcanomovil.serviceNetworking.stationObservations.model;
import com.google.android.gms.measurement.internal.a;
import java.util.List;
import kotlin.Metadata;
import kotlin.jvm.internal.Intrinsics;
@Metadata(d1 = {"\u0000,\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\u000e\n\u0000\n\u0002\u0010 \n\u0002\u0018\u0002\n\u0002\b\t\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0010\b\n\u0002\b\u0002\b\u0086\b\u0018\u00002\u00020\u0001B\u001b\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u0012\f\u0010\u0004\u001a\b\u0012\u0004\u0012\u00020\u00060\u0005¢\u0006\u0002\u0010\u0007J\t\u0010\f\u001a\u00020\u0003HÆ\u0003J\u000f\u0010\r\u001a\b\u0012\u0004\u0012\u00020\u00060\u0005HÆ\u0003J#\u0010\u000e\u001a\u00020\u00002\b\b\u0002\u0010\u0002\u001a\u00020\u00032\u000e\b\u0002\u0010\u0004\u001a\b\u0012\u0004\u0012\u00020\u00060\u0005HÆ\u0001J\u0013\u0010\u000f\u001a\u00020\u00102\b\u0010\u0011\u001a\u0004\u0018\u00010\u0001HÖ\u0003J\t\u0010\u0012\u001a\u00020\u0013HÖ\u0001J\t\u0010\u0014\u001a\u00020\u0003HÖ\u0001R\u0017\u0010\u0004\u001a\b\u0012\u0004\u0012\u00020\u00060\u0005¢\u0006\b\n\u0000\u001a\u0004\b\b\u0010\tR\u0011\u0010\u0002\u001a\u00020\u0003¢\u0006\b\n\u0000\u001a\u0004\b\n\u0010\u000b¨\u0006\u0015"}, d2 = {"Lcom/adif/elcanomovil/serviceNetworking/stationObservations/model/StationObservationsDTO;", "", "stationCode", "", "observations", "", "Lcom/adif/elcanomovil/serviceNetworking/stationObservations/model/ObservationDTO;", "(Ljava/lang/String;Ljava/util/List;)V", "getObservations", "()Ljava/util/List;", "getStationCode", "()Ljava/lang/String;", "component1", "component2", "copy", "equals", "", "other", "hashCode", "", "toString", "service-networking_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
/* loaded from: classes.dex */
public final /* data */ class StationObservationsDTO {
private final List<ObservationDTO> observations;
private final String stationCode;
public StationObservationsDTO(String stationCode, List<ObservationDTO> observations) {
Intrinsics.checkNotNullParameter(stationCode, "stationCode");
Intrinsics.checkNotNullParameter(observations, "observations");
this.stationCode = stationCode;
this.observations = observations;
}
/* JADX WARN: Multi-variable type inference failed */
public static /* synthetic */ StationObservationsDTO copy$default(StationObservationsDTO stationObservationsDTO, String str, List list, int i, Object obj) {
if ((i & 1) != 0) {
str = stationObservationsDTO.stationCode;
}
if ((i & 2) != 0) {
list = stationObservationsDTO.observations;
}
return stationObservationsDTO.copy(str, list);
}
/* renamed from: component1, reason: from getter */
public final String getStationCode() {
return this.stationCode;
}
public final List<ObservationDTO> component2() {
return this.observations;
}
public final StationObservationsDTO copy(String stationCode, List<ObservationDTO> observations) {
Intrinsics.checkNotNullParameter(stationCode, "stationCode");
Intrinsics.checkNotNullParameter(observations, "observations");
return new StationObservationsDTO(stationCode, observations);
}
public boolean equals(Object other) {
if (this == other) {
return true;
}
if (!(other instanceof StationObservationsDTO)) {
return false;
}
StationObservationsDTO stationObservationsDTO = (StationObservationsDTO) other;
return Intrinsics.areEqual(this.stationCode, stationObservationsDTO.stationCode) && Intrinsics.areEqual(this.observations, stationObservationsDTO.observations);
}
public final List<ObservationDTO> getObservations() {
return this.observations;
}
public final String getStationCode() {
return this.stationCode;
}
public int hashCode() {
return this.observations.hashCode() + (this.stationCode.hashCode() * 31);
}
public String toString() {
StringBuilder sb = new StringBuilder("StationObservationsDTO(stationCode=");
sb.append(this.stationCode);
sb.append(", observations=");
return a.o(sb, this.observations, ')');
}
}

View File

@@ -0,0 +1,53 @@
package com.adif.elcanomovil.serviceNetworking.stationObservations.model;
import com.google.android.gms.measurement.internal.a;
import java.util.List;
import kotlin.Metadata;
import kotlin.jvm.internal.Intrinsics;
@Metadata(d1 = {"\u0000&\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010 \n\u0002\u0010\u000e\n\u0002\b\u0006\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0010\b\n\u0002\b\u0002\b\u0086\b\u0018\u00002\u00020\u0001B\u0013\u0012\f\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003¢\u0006\u0002\u0010\u0005J\u000f\u0010\b\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003HÆ\u0003J\u0019\u0010\t\u001a\u00020\u00002\u000e\b\u0002\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003HÆ\u0001J\u0013\u0010\n\u001a\u00020\u000b2\b\u0010\f\u001a\u0004\u0018\u00010\u0001HÖ\u0003J\t\u0010\r\u001a\u00020\u000eHÖ\u0001J\t\u0010\u000f\u001a\u00020\u0004HÖ\u0001R\u0017\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003¢\u0006\b\n\u0000\u001a\u0004\b\u0006\u0010\u0007¨\u0006\u0010"}, d2 = {"Lcom/adif/elcanomovil/serviceNetworking/stationObservations/model/StationObservationsRequest;", "", "stationCodes", "", "", "(Ljava/util/List;)V", "getStationCodes", "()Ljava/util/List;", "component1", "copy", "equals", "", "other", "hashCode", "", "toString", "service-networking_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
/* loaded from: classes.dex */
public final /* data */ class StationObservationsRequest {
private final List<String> stationCodes;
public StationObservationsRequest(List<String> stationCodes) {
Intrinsics.checkNotNullParameter(stationCodes, "stationCodes");
this.stationCodes = stationCodes;
}
/* JADX WARN: Multi-variable type inference failed */
public static /* synthetic */ StationObservationsRequest copy$default(StationObservationsRequest stationObservationsRequest, List list, int i, Object obj) {
if ((i & 1) != 0) {
list = stationObservationsRequest.stationCodes;
}
return stationObservationsRequest.copy(list);
}
public final List<String> component1() {
return this.stationCodes;
}
public final StationObservationsRequest copy(List<String> stationCodes) {
Intrinsics.checkNotNullParameter(stationCodes, "stationCodes");
return new StationObservationsRequest(stationCodes);
}
public boolean equals(Object other) {
if (this == other) {
return true;
}
return (other instanceof StationObservationsRequest) && Intrinsics.areEqual(this.stationCodes, ((StationObservationsRequest) other).stationCodes);
}
public final List<String> getStationCodes() {
return this.stationCodes;
}
public int hashCode() {
return this.stationCodes.hashCode();
}
public String toString() {
return a.o(new StringBuilder("StationObservationsRequest(stationCodes="), this.stationCodes, ')');
}
}

View File

@@ -0,0 +1,53 @@
package com.adif.elcanomovil.serviceNetworking.stationObservations.model;
import com.google.android.gms.measurement.internal.a;
import java.util.List;
import kotlin.Metadata;
import kotlin.jvm.internal.Intrinsics;
@Metadata(d1 = {"\u0000*\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010 \n\u0002\u0018\u0002\n\u0002\b\u0006\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0010\b\n\u0000\n\u0002\u0010\u000e\n\u0000\b\u0086\b\u0018\u00002\u00020\u0001B\u0013\u0012\f\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003¢\u0006\u0002\u0010\u0005J\u000f\u0010\b\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003HÆ\u0003J\u0019\u0010\t\u001a\u00020\u00002\u000e\b\u0002\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003HÆ\u0001J\u0013\u0010\n\u001a\u00020\u000b2\b\u0010\f\u001a\u0004\u0018\u00010\u0001HÖ\u0003J\t\u0010\r\u001a\u00020\u000eHÖ\u0001J\t\u0010\u000f\u001a\u00020\u0010HÖ\u0001R\u0017\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003¢\u0006\b\n\u0000\u001a\u0004\b\u0006\u0010\u0007¨\u0006\u0011"}, d2 = {"Lcom/adif/elcanomovil/serviceNetworking/stationObservations/model/StationObservationsResponse;", "", "observations", "", "Lcom/adif/elcanomovil/serviceNetworking/stationObservations/model/StationObservationsDTO;", "(Ljava/util/List;)V", "getObservations", "()Ljava/util/List;", "component1", "copy", "equals", "", "other", "hashCode", "", "toString", "", "service-networking_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
/* loaded from: classes.dex */
public final /* data */ class StationObservationsResponse {
private final List<StationObservationsDTO> observations;
public StationObservationsResponse(List<StationObservationsDTO> observations) {
Intrinsics.checkNotNullParameter(observations, "observations");
this.observations = observations;
}
/* JADX WARN: Multi-variable type inference failed */
public static /* synthetic */ StationObservationsResponse copy$default(StationObservationsResponse stationObservationsResponse, List list, int i, Object obj) {
if ((i & 1) != 0) {
list = stationObservationsResponse.observations;
}
return stationObservationsResponse.copy(list);
}
public final List<StationObservationsDTO> component1() {
return this.observations;
}
public final StationObservationsResponse copy(List<StationObservationsDTO> observations) {
Intrinsics.checkNotNullParameter(observations, "observations");
return new StationObservationsResponse(observations);
}
public boolean equals(Object other) {
if (this == other) {
return true;
}
return (other instanceof StationObservationsResponse) && Intrinsics.areEqual(this.observations, ((StationObservationsResponse) other).observations);
}
public final List<StationObservationsDTO> getObservations() {
return this.observations;
}
public int hashCode() {
return this.observations.hashCode();
}
public String toString() {
return a.o(new StringBuilder("StationObservationsResponse(observations="), this.observations, ')');
}
}