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,178 @@
package androidx.datastore.preferences.protobuf;
import java.nio.charset.Charset;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
/* loaded from: classes.dex */
public final class M extends LinkedHashMap {
/* renamed from: b, reason: collision with root package name */
public static final M f2857b;
/* renamed from: a, reason: collision with root package name */
public boolean f2858a = true;
static {
M m4 = new M();
f2857b = m4;
m4.f2858a = false;
}
public final void a() {
if (!this.f2858a) {
throw new UnsupportedOperationException();
}
}
/* JADX WARN: Type inference failed for: r0v1, types: [java.util.LinkedHashMap, androidx.datastore.preferences.protobuf.M] */
public final M b() {
if (isEmpty()) {
return new M();
}
?? linkedHashMap = new LinkedHashMap(this);
linkedHashMap.f2858a = true;
return linkedHashMap;
}
@Override // java.util.LinkedHashMap, java.util.HashMap, java.util.AbstractMap, java.util.Map
public final void clear() {
a();
super.clear();
}
@Override // java.util.LinkedHashMap, java.util.HashMap, java.util.AbstractMap, java.util.Map
public final Set entrySet() {
return isEmpty() ? Collections.EMPTY_SET : super.entrySet();
}
/* JADX WARN: Removed duplicated region for block: B:7:0x005d A[RETURN] */
@Override // java.util.AbstractMap, java.util.Map
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public final boolean equals(java.lang.Object r6) {
/*
r5 = this;
boolean r0 = r6 instanceof java.util.Map
r1 = 0
if (r0 == 0) goto L5e
java.util.Map r6 = (java.util.Map) r6
r0 = 1
if (r5 != r6) goto Lc
La:
r5 = r0
goto L5b
Lc:
int r2 = r5.size()
int r3 = r6.size()
if (r2 == r3) goto L18
L16:
r5 = r1
goto L5b
L18:
java.util.Set r5 = r5.entrySet()
java.util.Iterator r5 = r5.iterator()
L20:
boolean r2 = r5.hasNext()
if (r2 == 0) goto La
java.lang.Object r2 = r5.next()
java.util.Map$Entry r2 = (java.util.Map.Entry) r2
java.lang.Object r3 = r2.getKey()
boolean r3 = r6.containsKey(r3)
if (r3 != 0) goto L37
goto L16
L37:
java.lang.Object r3 = r2.getValue()
java.lang.Object r2 = r2.getKey()
java.lang.Object r2 = r6.get(r2)
boolean r4 = r3 instanceof byte[]
if (r4 == 0) goto L54
boolean r4 = r2 instanceof byte[]
if (r4 == 0) goto L54
byte[] r3 = (byte[]) r3
byte[] r2 = (byte[]) r2
boolean r2 = java.util.Arrays.equals(r3, r2)
goto L58
L54:
boolean r2 = r3.equals(r2)
L58:
if (r2 != 0) goto L20
goto L16
L5b:
if (r5 == 0) goto L5e
return r0
L5e:
return r1
*/
throw new UnsupportedOperationException("Method not decompiled: androidx.datastore.preferences.protobuf.M.equals(java.lang.Object):boolean");
}
@Override // java.util.AbstractMap, java.util.Map
public final int hashCode() {
int hashCode;
int hashCode2;
int i = 0;
for (Map.Entry entry : entrySet()) {
Object key = entry.getKey();
if (key instanceof byte[]) {
byte[] bArr = (byte[]) key;
Charset charset = AbstractC0133y.f2975a;
hashCode = bArr.length;
for (byte b4 : bArr) {
hashCode = (hashCode * 31) + b4;
}
if (hashCode == 0) {
hashCode = 1;
}
} else {
hashCode = key.hashCode();
}
Object value = entry.getValue();
if (value instanceof byte[]) {
byte[] bArr2 = (byte[]) value;
Charset charset2 = AbstractC0133y.f2975a;
hashCode2 = bArr2.length;
for (byte b5 : bArr2) {
hashCode2 = (hashCode2 * 31) + b5;
}
if (hashCode2 == 0) {
hashCode2 = 1;
}
} else {
hashCode2 = value.hashCode();
}
i += hashCode ^ hashCode2;
}
return i;
}
@Override // java.util.HashMap, java.util.AbstractMap, java.util.Map
public final Object put(Object obj, Object obj2) {
a();
Charset charset = AbstractC0133y.f2975a;
obj.getClass();
obj2.getClass();
return super.put(obj, obj2);
}
@Override // java.util.HashMap, java.util.AbstractMap, java.util.Map
public final void putAll(Map map) {
a();
for (Object obj : map.keySet()) {
Charset charset = AbstractC0133y.f2975a;
obj.getClass();
map.get(obj).getClass();
}
super.putAll(map);
}
@Override // java.util.HashMap, java.util.AbstractMap, java.util.Map
public final Object remove(Object obj) {
a();
return super.remove(obj);
}
}