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,169 @@
package com.adif.elcanomovil.widget.configuration;
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\u000e\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0002\b \n\u0002\u0010\b\n\u0002\b\u0002\b\u0086\b\u0018\u00002\u00020\u0001BM\u0012\n\b\u0002\u0010\u0002\u001a\u0004\u0018\u00010\u0003\u0012\n\b\u0002\u0010\u0004\u001a\u0004\u0018\u00010\u0003\u0012\n\b\u0002\u0010\u0005\u001a\u0004\u0018\u00010\u0006\u0012\n\b\u0002\u0010\u0007\u001a\u0004\u0018\u00010\u0003\u0012\n\b\u0002\u0010\b\u001a\u0004\u0018\u00010\u0003\u0012\n\b\u0002\u0010\t\u001a\u0004\u0018\u00010\u0006¢\u0006\u0002\u0010\nJ\u000b\u0010\u001c\u001a\u0004\u0018\u00010\u0003HÆ\u0003J\u000b\u0010\u001d\u001a\u0004\u0018\u00010\u0003HÆ\u0003J\u0010\u0010\u001e\u001a\u0004\u0018\u00010\u0006HÆ\u0003¢\u0006\u0002\u0010\u0010J\u000b\u0010\u001f\u001a\u0004\u0018\u00010\u0003HÆ\u0003J\u000b\u0010 \u001a\u0004\u0018\u00010\u0003HÆ\u0003J\u0010\u0010!\u001a\u0004\u0018\u00010\u0006HÆ\u0003¢\u0006\u0002\u0010\u0010JV\u0010\"\u001a\u00020\u00002\n\b\u0002\u0010\u0002\u001a\u0004\u0018\u00010\u00032\n\b\u0002\u0010\u0004\u001a\u0004\u0018\u00010\u00032\n\b\u0002\u0010\u0005\u001a\u0004\u0018\u00010\u00062\n\b\u0002\u0010\u0007\u001a\u0004\u0018\u00010\u00032\n\b\u0002\u0010\b\u001a\u0004\u0018\u00010\u00032\n\b\u0002\u0010\t\u001a\u0004\u0018\u00010\u0006HÆ\u0001¢\u0006\u0002\u0010#J\u0013\u0010$\u001a\u00020\u00062\b\u0010%\u001a\u0004\u0018\u00010\u0001HÖ\u0003J\t\u0010&\u001a\u00020'HÖ\u0001J\t\u0010(\u001a\u00020\u0003HÖ\u0001R\u001c\u0010\u0002\u001a\u0004\u0018\u00010\u0003X\u0086\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\u000b\u0010\f\"\u0004\b\r\u0010\u000eR\u001e\u0010\u0005\u001a\u0004\u0018\u00010\u0006X\u0086\u000e¢\u0006\u0010\n\u0002\u0010\u0013\u001a\u0004\b\u000f\u0010\u0010\"\u0004\b\u0011\u0010\u0012R\u001c\u0010\u0004\u001a\u0004\u0018\u00010\u0003X\u0086\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\u0014\u0010\f\"\u0004\b\u0015\u0010\u000eR\u001c\u0010\u0007\u001a\u0004\u0018\u00010\u0003X\u0086\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\u0016\u0010\f\"\u0004\b\u0017\u0010\u000eR\u001e\u0010\t\u001a\u0004\u0018\u00010\u0006X\u0086\u000e¢\u0006\u0010\n\u0002\u0010\u0013\u001a\u0004\b\u0018\u0010\u0010\"\u0004\b\u0019\u0010\u0012R\u001c\u0010\b\u001a\u0004\u0018\u00010\u0003X\u0086\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\u001a\u0010\f\"\u0004\b\u001b\u0010\u000e¨\u0006)"}, d2 = {"Lcom/adif/elcanomovil/widget/configuration/WidgetViewConfigData;", "", "stationCode", "", "stationName", "stationIsRodalies", "", "stationToCode", "stationToName", "stationToIsRodalies", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)V", "getStationCode", "()Ljava/lang/String;", "setStationCode", "(Ljava/lang/String;)V", "getStationIsRodalies", "()Ljava/lang/Boolean;", "setStationIsRodalies", "(Ljava/lang/Boolean;)V", "Ljava/lang/Boolean;", "getStationName", "setStationName", "getStationToCode", "setStationToCode", "getStationToIsRodalies", "setStationToIsRodalies", "getStationToName", "setStationToName", "component1", "component2", "component3", "component4", "component5", "component6", "copy", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)Lcom/adif/elcanomovil/widget/configuration/WidgetViewConfigData;", "equals", "other", "hashCode", "", "toString", "widget_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
/* loaded from: classes3.dex */
public final /* data */ class WidgetViewConfigData {
private String stationCode;
private Boolean stationIsRodalies;
private String stationName;
private String stationToCode;
private Boolean stationToIsRodalies;
private String stationToName;
public WidgetViewConfigData() {
this(null, null, null, null, null, null, 63, null);
}
public static /* synthetic */ WidgetViewConfigData copy$default(WidgetViewConfigData widgetViewConfigData, String str, String str2, Boolean bool, String str3, String str4, Boolean bool2, int i, Object obj) {
if ((i & 1) != 0) {
str = widgetViewConfigData.stationCode;
}
if ((i & 2) != 0) {
str2 = widgetViewConfigData.stationName;
}
if ((i & 4) != 0) {
bool = widgetViewConfigData.stationIsRodalies;
}
if ((i & 8) != 0) {
str3 = widgetViewConfigData.stationToCode;
}
if ((i & 16) != 0) {
str4 = widgetViewConfigData.stationToName;
}
if ((i & 32) != 0) {
bool2 = widgetViewConfigData.stationToIsRodalies;
}
String str5 = str4;
Boolean bool3 = bool2;
return widgetViewConfigData.copy(str, str2, bool, str3, str5, bool3);
}
/* renamed from: component1, reason: from getter */
public final String getStationCode() {
return this.stationCode;
}
/* renamed from: component2, reason: from getter */
public final String getStationName() {
return this.stationName;
}
/* renamed from: component3, reason: from getter */
public final Boolean getStationIsRodalies() {
return this.stationIsRodalies;
}
/* renamed from: component4, reason: from getter */
public final String getStationToCode() {
return this.stationToCode;
}
/* renamed from: component5, reason: from getter */
public final String getStationToName() {
return this.stationToName;
}
/* renamed from: component6, reason: from getter */
public final Boolean getStationToIsRodalies() {
return this.stationToIsRodalies;
}
public final WidgetViewConfigData copy(String stationCode, String stationName, Boolean stationIsRodalies, String stationToCode, String stationToName, Boolean stationToIsRodalies) {
return new WidgetViewConfigData(stationCode, stationName, stationIsRodalies, stationToCode, stationToName, stationToIsRodalies);
}
public boolean equals(Object other) {
if (this == other) {
return true;
}
if (!(other instanceof WidgetViewConfigData)) {
return false;
}
WidgetViewConfigData widgetViewConfigData = (WidgetViewConfigData) other;
return Intrinsics.areEqual(this.stationCode, widgetViewConfigData.stationCode) && Intrinsics.areEqual(this.stationName, widgetViewConfigData.stationName) && Intrinsics.areEqual(this.stationIsRodalies, widgetViewConfigData.stationIsRodalies) && Intrinsics.areEqual(this.stationToCode, widgetViewConfigData.stationToCode) && Intrinsics.areEqual(this.stationToName, widgetViewConfigData.stationToName) && Intrinsics.areEqual(this.stationToIsRodalies, widgetViewConfigData.stationToIsRodalies);
}
public final String getStationCode() {
return this.stationCode;
}
public final Boolean getStationIsRodalies() {
return this.stationIsRodalies;
}
public final String getStationName() {
return this.stationName;
}
public final String getStationToCode() {
return this.stationToCode;
}
public final Boolean getStationToIsRodalies() {
return this.stationToIsRodalies;
}
public final String getStationToName() {
return this.stationToName;
}
public int hashCode() {
String str = this.stationCode;
int hashCode = (str == null ? 0 : str.hashCode()) * 31;
String str2 = this.stationName;
int hashCode2 = (hashCode + (str2 == null ? 0 : str2.hashCode())) * 31;
Boolean bool = this.stationIsRodalies;
int hashCode3 = (hashCode2 + (bool == null ? 0 : bool.hashCode())) * 31;
String str3 = this.stationToCode;
int hashCode4 = (hashCode3 + (str3 == null ? 0 : str3.hashCode())) * 31;
String str4 = this.stationToName;
int hashCode5 = (hashCode4 + (str4 == null ? 0 : str4.hashCode())) * 31;
Boolean bool2 = this.stationToIsRodalies;
return hashCode5 + (bool2 != null ? bool2.hashCode() : 0);
}
public final void setStationCode(String str) {
this.stationCode = str;
}
public final void setStationIsRodalies(Boolean bool) {
this.stationIsRodalies = bool;
}
public final void setStationName(String str) {
this.stationName = str;
}
public final void setStationToCode(String str) {
this.stationToCode = str;
}
public final void setStationToIsRodalies(Boolean bool) {
this.stationToIsRodalies = bool;
}
public final void setStationToName(String str) {
this.stationToName = str;
}
public String toString() {
return "WidgetViewConfigData(stationCode=" + this.stationCode + ", stationName=" + this.stationName + ", stationIsRodalies=" + this.stationIsRodalies + ", stationToCode=" + this.stationToCode + ", stationToName=" + this.stationToName + ", stationToIsRodalies=" + this.stationToIsRodalies + ')';
}
public WidgetViewConfigData(String str, String str2, Boolean bool, String str3, String str4, Boolean bool2) {
this.stationCode = str;
this.stationName = str2;
this.stationIsRodalies = bool;
this.stationToCode = str3;
this.stationToName = str4;
this.stationToIsRodalies = bool2;
}
public /* synthetic */ WidgetViewConfigData(String str, String str2, Boolean bool, String str3, String str4, Boolean bool2, int i, DefaultConstructorMarker defaultConstructorMarker) {
this((i & 1) != 0 ? null : str, (i & 2) != 0 ? null : str2, (i & 4) != 0 ? null : bool, (i & 8) != 0 ? null : str3, (i & 16) != 0 ? null : str4, (i & 32) != 0 ? null : bool2);
}
}