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,55 @@
package Q2;
/* loaded from: classes3.dex */
public final class a extends l {
/* renamed from: a, reason: collision with root package name */
public final /* synthetic */ int f1375a;
@Override // Q2.l
public final Object a(Y2.a aVar) {
switch (this.f1375a) {
case 0:
if (aVar.o0() != 9) {
return Double.valueOf(aVar.f0());
}
aVar.k0();
return null;
default:
if (aVar.o0() != 9) {
return Float.valueOf((float) aVar.f0());
}
aVar.k0();
return null;
}
}
@Override // Q2.l
public final void b(Y2.b bVar, Object obj) {
switch (this.f1375a) {
case 0:
Number number = (Number) obj;
if (number == null) {
bVar.b0();
return;
}
double doubleValue = number.doubleValue();
d.a(doubleValue);
bVar.e0(doubleValue);
return;
default:
Number number2 = (Number) obj;
if (number2 == null) {
bVar.b0();
return;
}
float floatValue = number2.floatValue();
d.a(floatValue);
if (!(number2 instanceof Float)) {
number2 = Float.valueOf(floatValue);
}
bVar.g0(number2);
return;
}
}
}

View File

@@ -0,0 +1,73 @@
package Q2;
import java.util.ArrayList;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.AtomicLongArray;
/* loaded from: classes3.dex */
public final class b extends l {
/* renamed from: a, reason: collision with root package name */
public final /* synthetic */ int f1376a;
/* renamed from: b, reason: collision with root package name */
public final /* synthetic */ l f1377b;
public /* synthetic */ b(l lVar, int i) {
this.f1376a = i;
this.f1377b = lVar;
}
@Override // Q2.l
public final Object a(Y2.a aVar) {
switch (this.f1376a) {
case 0:
return new AtomicLong(((Number) this.f1377b.a(aVar)).longValue());
case 1:
ArrayList arrayList = new ArrayList();
aVar.d();
while (aVar.b0()) {
arrayList.add(Long.valueOf(((Number) this.f1377b.a(aVar)).longValue()));
}
aVar.O();
int size = arrayList.size();
AtomicLongArray atomicLongArray = new AtomicLongArray(size);
for (int i = 0; i < size; i++) {
atomicLongArray.set(i, ((Long) arrayList.get(i)).longValue());
}
return atomicLongArray;
default:
if (aVar.o0() != 9) {
return this.f1377b.a(aVar);
}
aVar.k0();
return null;
}
}
@Override // Q2.l
public final void b(Y2.b bVar, Object obj) {
switch (this.f1376a) {
case 0:
this.f1377b.b(bVar, Long.valueOf(((AtomicLong) obj).get()));
return;
case 1:
AtomicLongArray atomicLongArray = (AtomicLongArray) obj;
bVar.e();
int length = atomicLongArray.length();
for (int i = 0; i < length; i++) {
this.f1377b.b(bVar, Long.valueOf(atomicLongArray.get(i)));
}
bVar.O();
return;
default:
if (obj == null) {
bVar.b0();
return;
} else {
this.f1377b.b(bVar, obj);
return;
}
}
}
}

View File

@@ -0,0 +1,26 @@
package Q2;
/* loaded from: classes3.dex */
public final class c extends l {
/* renamed from: a, reason: collision with root package name */
public l f1378a;
@Override // Q2.l
public final Object a(Y2.a aVar) {
l lVar = this.f1378a;
if (lVar != null) {
return lVar.a(aVar);
}
throw new IllegalStateException("Adapter for type with cyclic dependency has been used before dependency has been resolved");
}
@Override // Q2.l
public final void b(Y2.b bVar, Object obj) {
l lVar = this.f1378a;
if (lVar == null) {
throw new IllegalStateException("Adapter for type with cyclic dependency has been used before dependency has been resolved");
}
lVar.b(bVar, obj);
}
}

View File

@@ -0,0 +1,406 @@
package Q2;
import T2.n;
import T2.p;
import T2.r;
import java.io.IOException;
import java.io.StringWriter;
import java.io.Writer;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.AtomicLongArray;
/* loaded from: classes3.dex */
public final class d {
/* renamed from: a, reason: collision with root package name */
public final ThreadLocal f1379a;
/* renamed from: b, reason: collision with root package name */
public final ConcurrentHashMap f1380b;
/* renamed from: c, reason: collision with root package name */
public final F.i f1381c;
/* renamed from: d, reason: collision with root package name */
public final T2.c f1382d;
/* renamed from: e, reason: collision with root package name */
public final List f1383e;
/* renamed from: f, reason: collision with root package name */
public final Map f1384f;
/* renamed from: g, reason: collision with root package name */
public final boolean f1385g;
public final List h;
public final List i;
/* renamed from: j, reason: collision with root package name */
public final List f1386j;
/* JADX WARN: Illegal instructions before constructor call */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public d() {
/*
r7 = this;
S2.h r1 = S2.h.f1597c
java.util.Map r2 = java.util.Collections.EMPTY_MAP
java.util.List r3 = java.util.Collections.EMPTY_LIST
r4 = r3
r5 = r3
r6 = r3
r0 = r7
r0.<init>(r1, r2, r3, r4, r5, r6)
return
*/
throw new UnsupportedOperationException("Method not decompiled: Q2.d.<init>():void");
}
public static void a(double d4) {
if (Double.isNaN(d4) || Double.isInfinite(d4)) {
throw new IllegalArgumentException(d4 + " is not a valid double value as per JSON specification. To override this behavior, use GsonBuilder.serializeSpecialFloatingPointValues() method.");
}
}
public final Object b(Class cls, String str) {
Object c4 = c(str, X2.a.get(cls));
if (cls == Integer.TYPE) {
cls = Integer.class;
} else if (cls == Float.TYPE) {
cls = Float.class;
} else if (cls == Byte.TYPE) {
cls = Byte.class;
} else if (cls == Double.TYPE) {
cls = Double.class;
} else if (cls == Long.TYPE) {
cls = Long.class;
} else if (cls == Character.TYPE) {
cls = Character.class;
} else if (cls == Boolean.TYPE) {
cls = Boolean.class;
} else if (cls == Short.TYPE) {
cls = Short.class;
} else if (cls == Void.TYPE) {
cls = Void.class;
}
return cls.cast(c4);
}
/* JADX WARN: Removed duplicated region for block: B:14:0x0055 A[EXC_TOP_SPLITTER, SYNTHETIC] */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public final java.lang.Object c(java.lang.String r5, X2.a r6) {
/*
r4 = this;
r0 = 0
if (r5 != 0) goto L4
return r0
L4:
java.io.StringReader r1 = new java.io.StringReader
r1.<init>(r5)
Y2.a r5 = new Y2.a
r5.<init>(r1)
java.lang.String r1 = "AssertionError (GSON 2.10.1): "
r2 = 1
r5.f2139b = r2
r3 = 0
r5.o0() // Catch: java.lang.Throwable -> L22 java.lang.AssertionError -> L24 java.io.IOException -> L26 java.lang.IllegalStateException -> L28 java.io.EOFException -> L4f
Q2.l r4 = r4.d(r6) // Catch: java.lang.Throwable -> L22 java.lang.AssertionError -> L24 java.io.IOException -> L26 java.lang.IllegalStateException -> L28 java.io.EOFException -> L2a
java.lang.Object r0 = r4.a(r5) // Catch: java.lang.Throwable -> L22 java.lang.AssertionError -> L24 java.io.IOException -> L26 java.lang.IllegalStateException -> L28 java.io.EOFException -> L2a
L1f:
r5.f2139b = r3
goto L53
L22:
r4 = move-exception
goto L7b
L24:
r4 = move-exception
goto L2d
L26:
r4 = move-exception
goto L43
L28:
r4 = move-exception
goto L49
L2a:
r4 = move-exception
r2 = r3
goto L50
L2d:
java.lang.AssertionError r6 = new java.lang.AssertionError // Catch: java.lang.Throwable -> L22
java.lang.StringBuilder r0 = new java.lang.StringBuilder // Catch: java.lang.Throwable -> L22
r0.<init>(r1) // Catch: java.lang.Throwable -> L22
java.lang.String r1 = r4.getMessage() // Catch: java.lang.Throwable -> L22
r0.append(r1) // Catch: java.lang.Throwable -> L22
java.lang.String r0 = r0.toString() // Catch: java.lang.Throwable -> L22
r6.<init>(r0, r4) // Catch: java.lang.Throwable -> L22
throw r6 // Catch: java.lang.Throwable -> L22
L43:
Q2.g r6 = new Q2.g // Catch: java.lang.Throwable -> L22
r6.<init>(r4) // Catch: java.lang.Throwable -> L22
throw r6 // Catch: java.lang.Throwable -> L22
L49:
Q2.g r6 = new Q2.g // Catch: java.lang.Throwable -> L22
r6.<init>(r4) // Catch: java.lang.Throwable -> L22
throw r6 // Catch: java.lang.Throwable -> L22
L4f:
r4 = move-exception
L50:
if (r2 == 0) goto L75
goto L1f
L53:
if (r0 == 0) goto L74
int r4 = r5.o0() // Catch: java.io.IOException -> L66 Y2.c -> L6d
r5 = 10
if (r4 != r5) goto L5e
goto L74
L5e:
Q2.g r4 = new Q2.g // Catch: java.io.IOException -> L66 Y2.c -> L6d
java.lang.String r5 = "JSON document was not fully consumed."
r4.<init>(r5) // Catch: java.io.IOException -> L66 Y2.c -> L6d
throw r4 // Catch: java.io.IOException -> L66 Y2.c -> L6d
L66:
r4 = move-exception
Q2.g r5 = new Q2.g
r5.<init>(r4)
throw r5
L6d:
r4 = move-exception
Q2.g r5 = new Q2.g
r5.<init>(r4)
throw r5
L74:
return r0
L75:
Q2.g r6 = new Q2.g // Catch: java.lang.Throwable -> L22
r6.<init>(r4) // Catch: java.lang.Throwable -> L22
throw r6 // Catch: java.lang.Throwable -> L22
L7b:
r5.f2139b = r3
throw r4
*/
throw new UnsupportedOperationException("Method not decompiled: Q2.d.c(java.lang.String, X2.a):java.lang.Object");
}
/* JADX WARN: Type inference failed for: r4v0, types: [Q2.c, java.lang.Object] */
public final l d(X2.a aVar) {
boolean z3;
Objects.requireNonNull(aVar, "type must not be null");
ConcurrentHashMap concurrentHashMap = this.f1380b;
l lVar = (l) concurrentHashMap.get(aVar);
if (lVar != null) {
return lVar;
}
ThreadLocal threadLocal = this.f1379a;
Map map = (Map) threadLocal.get();
if (map == null) {
map = new HashMap();
threadLocal.set(map);
z3 = true;
} else {
l lVar2 = (l) map.get(aVar);
if (lVar2 != null) {
return lVar2;
}
z3 = false;
}
try {
?? obj = new Object();
l lVar3 = null;
obj.f1378a = null;
map.put(aVar, obj);
Iterator it = this.f1383e.iterator();
while (true) {
if (!it.hasNext()) {
break;
}
lVar3 = ((m) it.next()).a(this, aVar);
if (lVar3 != null) {
if (obj.f1378a != null) {
throw new AssertionError("Delegate is already set");
}
obj.f1378a = lVar3;
map.put(aVar, lVar3);
}
}
if (z3) {
threadLocal.remove();
}
if (lVar3 != null) {
if (z3) {
concurrentHashMap.putAll(map);
}
return lVar3;
}
throw new IllegalArgumentException("GSON (2.10.1) cannot handle " + aVar);
} catch (Throwable th) {
if (z3) {
threadLocal.remove();
}
throw th;
}
}
public final Y2.b e(Writer writer) {
Y2.b bVar = new Y2.b(writer);
bVar.f2158f = this.f1385g;
bVar.f2157e = false;
bVar.h = false;
return bVar;
}
public final String f(Object obj) {
if (obj == null) {
StringWriter stringWriter = new StringWriter();
try {
g(e(stringWriter));
return stringWriter.toString();
} catch (IOException e4) {
throw new RuntimeException(e4);
}
}
Class cls = obj.getClass();
StringWriter stringWriter2 = new StringWriter();
try {
h(obj, cls, e(stringWriter2));
return stringWriter2.toString();
} catch (IOException e5) {
throw new RuntimeException(e5);
}
}
public final void g(Y2.b bVar) {
h hVar = h.f1388a;
boolean z3 = bVar.f2157e;
bVar.f2157e = true;
boolean z4 = bVar.f2158f;
bVar.f2158f = this.f1385g;
boolean z5 = bVar.h;
bVar.h = false;
try {
try {
p pVar = r.f1710a;
T2.h.d(bVar, hVar);
bVar.f2157e = z3;
bVar.f2158f = z4;
bVar.h = z5;
} catch (IOException e4) {
throw new RuntimeException(e4);
} catch (AssertionError e5) {
throw new AssertionError("AssertionError (GSON 2.10.1): " + e5.getMessage(), e5);
}
} catch (Throwable th) {
bVar.f2157e = z3;
bVar.f2158f = z4;
bVar.h = z5;
throw th;
}
}
public final void h(Object obj, Class cls, Y2.b bVar) {
l d4 = d(X2.a.get((Type) cls));
boolean z3 = bVar.f2157e;
bVar.f2157e = true;
boolean z4 = bVar.f2158f;
bVar.f2158f = this.f1385g;
boolean z5 = bVar.h;
bVar.h = false;
try {
try {
try {
d4.b(bVar, obj);
} catch (IOException e4) {
throw new RuntimeException(e4);
}
} catch (AssertionError e5) {
throw new AssertionError("AssertionError (GSON 2.10.1): " + e5.getMessage(), e5);
}
} finally {
bVar.f2157e = z3;
bVar.f2158f = z4;
bVar.h = z5;
}
}
public final String toString() {
return "{serializeNulls:false,factories:" + this.f1383e + ",instanceCreators:" + this.f1381c + "}";
}
public d(S2.h hVar, Map map, List list, List list2, List list3, List list4) {
this.f1379a = new ThreadLocal();
this.f1380b = new ConcurrentHashMap();
this.f1384f = map;
F.i iVar = new F.i(6, map, list4);
this.f1381c = iVar;
this.f1385g = true;
this.h = list;
this.i = list2;
this.f1386j = list4;
ArrayList arrayList = new ArrayList();
arrayList.add(r.f1732z);
arrayList.add(T2.i.f1679b);
arrayList.add(hVar);
arrayList.addAll(list3);
arrayList.add(r.p);
arrayList.add(r.f1716g);
arrayList.add(r.f1713d);
arrayList.add(r.f1714e);
arrayList.add(r.f1715f);
T2.h hVar2 = r.f1718k;
arrayList.add(new n(Long.TYPE, Long.class, hVar2));
arrayList.add(new n(Double.TYPE, Double.class, new a(0)));
arrayList.add(new n(Float.TYPE, Float.class, new a(1)));
arrayList.add(T2.h.f1677b);
arrayList.add(r.h);
arrayList.add(r.i);
arrayList.add(new p(AtomicLong.class, new b(new b(hVar2, 0), 2), 0));
arrayList.add(new p(AtomicLongArray.class, new b(new b(hVar2, 1), 2), 0));
arrayList.add(r.f1717j);
arrayList.add(r.f1719l);
arrayList.add(r.f1723q);
arrayList.add(r.f1724r);
arrayList.add(new p(BigDecimal.class, r.f1720m, 0));
arrayList.add(new p(BigInteger.class, r.f1721n, 0));
arrayList.add(new p(S2.j.class, r.f1722o, 0));
arrayList.add(r.f1725s);
arrayList.add(r.f1726t);
arrayList.add(r.f1728v);
arrayList.add(r.f1729w);
arrayList.add(r.f1731y);
arrayList.add(r.f1727u);
arrayList.add(r.f1711b);
arrayList.add(T2.d.f1669b);
arrayList.add(r.f1730x);
if (W2.b.f1971a) {
arrayList.add(W2.b.f1973c);
arrayList.add(W2.b.f1972b);
arrayList.add(W2.b.f1974d);
}
arrayList.add(T2.b.f1663d);
arrayList.add(r.f1710a);
arrayList.add(new T2.c(0, iVar));
arrayList.add(new T2.c(2, iVar));
T2.c cVar = new T2.c(1, iVar);
this.f1382d = cVar;
arrayList.add(cVar);
arrayList.add(r.f1709A);
arrayList.add(new n(iVar, hVar, cVar, list4));
this.f1383e = Collections.unmodifiableList(arrayList);
}
}

View File

@@ -0,0 +1,27 @@
package Q2;
import java.util.ArrayList;
import java.util.Iterator;
/* loaded from: classes3.dex */
public final class e extends f implements Iterable {
/* renamed from: a, reason: collision with root package name */
public final ArrayList f1387a = new ArrayList();
public final boolean equals(Object obj) {
if (obj != this) {
return (obj instanceof e) && ((e) obj).f1387a.equals(this.f1387a);
}
return true;
}
public final int hashCode() {
return this.f1387a.hashCode();
}
@Override // java.lang.Iterable
public final Iterator iterator() {
return this.f1387a.iterator();
}
}

View File

@@ -0,0 +1,22 @@
package Q2;
import T2.p;
import T2.r;
import java.io.IOException;
import java.io.StringWriter;
/* loaded from: classes3.dex */
public abstract class f {
public final String toString() {
try {
StringWriter stringWriter = new StringWriter();
Y2.b bVar = new Y2.b(stringWriter);
bVar.f2157e = true;
p pVar = r.f1710a;
T2.h.d(bVar, this);
return stringWriter.toString();
} catch (IOException e4) {
throw new AssertionError(e4);
}
}
}

View File

@@ -0,0 +1,5 @@
package Q2;
/* loaded from: classes3.dex */
public final class g extends j {
}

View File

@@ -0,0 +1,16 @@
package Q2;
/* loaded from: classes3.dex */
public final class h extends f {
/* renamed from: a, reason: collision with root package name */
public static final h f1388a = new Object();
public final boolean equals(Object obj) {
return obj instanceof h;
}
public final int hashCode() {
return h.class.hashCode();
}
}

View File

@@ -0,0 +1,21 @@
package Q2;
import S2.o;
/* loaded from: classes3.dex */
public final class i extends f {
/* renamed from: a, reason: collision with root package name */
public final o f1389a = new o(false);
public final boolean equals(Object obj) {
if (obj != this) {
return (obj instanceof i) && ((i) obj).f1389a.equals(this.f1389a);
}
return true;
}
public final int hashCode() {
return this.f1389a.hashCode();
}
}

View File

@@ -0,0 +1,8 @@
package Q2;
/* loaded from: classes3.dex */
public class j extends RuntimeException {
public j() {
super("Message was missing required fields. (Lite runtime could not determine which fields were missing).");
}
}

View File

@@ -0,0 +1,105 @@
package Q2;
import java.io.Serializable;
import java.math.BigInteger;
import java.util.Objects;
/* loaded from: classes3.dex */
public final class k extends f {
/* renamed from: a, reason: collision with root package name */
public final Serializable f1390a;
public k(Boolean bool) {
Objects.requireNonNull(bool);
this.f1390a = bool;
}
public static boolean c(k kVar) {
Serializable serializable = kVar.f1390a;
if (!(serializable instanceof Number)) {
return false;
}
Number number = (Number) serializable;
return (number instanceof BigInteger) || (number instanceof Long) || (number instanceof Integer) || (number instanceof Short) || (number instanceof Byte);
}
public final Number a() {
Serializable serializable = this.f1390a;
if (serializable instanceof Number) {
return (Number) serializable;
}
if (serializable instanceof String) {
return new S2.j((String) serializable);
}
throw new UnsupportedOperationException("Primitive is neither a number nor a string");
}
public final String b() {
Serializable serializable = this.f1390a;
if (serializable instanceof String) {
return (String) serializable;
}
if (serializable instanceof Number) {
return a().toString();
}
if (serializable instanceof Boolean) {
return ((Boolean) serializable).toString();
}
throw new AssertionError("Unexpected value type: " + serializable.getClass());
}
public final boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || k.class != obj.getClass()) {
return false;
}
k kVar = (k) obj;
Serializable serializable = this.f1390a;
Serializable serializable2 = kVar.f1390a;
if (serializable == null) {
return serializable2 == null;
}
if (c(this) && c(kVar)) {
return a().longValue() == kVar.a().longValue();
}
if (!(serializable instanceof Number) || !(serializable2 instanceof Number)) {
return serializable.equals(serializable2);
}
double doubleValue = a().doubleValue();
double doubleValue2 = kVar.a().doubleValue();
if (doubleValue != doubleValue2) {
return Double.isNaN(doubleValue) && Double.isNaN(doubleValue2);
}
return true;
}
public final int hashCode() {
long doubleToLongBits;
Serializable serializable = this.f1390a;
if (serializable == null) {
return 31;
}
if (c(this)) {
doubleToLongBits = a().longValue();
} else {
if (!(serializable instanceof Number)) {
return serializable.hashCode();
}
doubleToLongBits = Double.doubleToLongBits(a().doubleValue());
}
return (int) (doubleToLongBits ^ (doubleToLongBits >>> 32));
}
public k(Number number) {
Objects.requireNonNull(number);
this.f1390a = number;
}
public k(String str) {
Objects.requireNonNull(str);
this.f1390a = str;
}
}

View File

@@ -0,0 +1,8 @@
package Q2;
/* loaded from: classes3.dex */
public abstract class l {
public abstract Object a(Y2.a aVar);
public abstract void b(Y2.b bVar, Object obj);
}

View File

@@ -0,0 +1,6 @@
package Q2;
/* loaded from: classes3.dex */
public interface m {
l a(d dVar, X2.a aVar);
}