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:
304
apk_decompiled/sources/kotlin/collections/AbstractMap.java
Normal file
304
apk_decompiled/sources/kotlin/collections/AbstractMap.java
Normal file
@@ -0,0 +1,304 @@
|
||||
package kotlin.collections;
|
||||
|
||||
import com.google.firebase.crashlytics.internal.metadata.UserMetadata;
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import kotlin.Metadata;
|
||||
import kotlin.SinceKotlin;
|
||||
import kotlin.jvm.functions.Function1;
|
||||
import kotlin.jvm.internal.DefaultConstructorMarker;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
import kotlin.jvm.internal.SourceDebugExtension;
|
||||
import kotlin.jvm.internal.markers.KMappedMarker;
|
||||
|
||||
@SinceKotlin(version = "1.1")
|
||||
@Metadata(d1 = {"\u0000D\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010$\n\u0002\b\u0002\n\u0002\u0010\"\n\u0000\n\u0002\u0010\u001e\n\u0002\b\u0004\n\u0002\u0010\b\n\u0002\b\u0006\n\u0002\u0010\u000b\n\u0000\n\u0002\u0010&\n\u0002\b\b\n\u0002\u0010\u0000\n\u0002\b\u0007\n\u0002\u0010\u000e\n\u0002\b\u0003\b'\u0018\u0000 )*\u0004\b\u0000\u0010\u0001*\u0006\b\u0001\u0010\u0002 \u00012\u000e\u0012\u0004\u0012\u0002H\u0001\u0012\u0004\u0012\u0002H\u00020\u0003:\u0001)B\u0007\b\u0004¢\u0006\u0002\u0010\u0004J\u001f\u0010\u0013\u001a\u00020\u00142\u0010\u0010\u0015\u001a\f\u0012\u0002\b\u0003\u0012\u0002\b\u0003\u0018\u00010\u0016H\u0000¢\u0006\u0002\b\u0017J\u0015\u0010\u0018\u001a\u00020\u00142\u0006\u0010\u0019\u001a\u00028\u0000H\u0016¢\u0006\u0002\u0010\u001aJ\u0015\u0010\u001b\u001a\u00020\u00142\u0006\u0010\u001c\u001a\u00028\u0001H\u0016¢\u0006\u0002\u0010\u001aJ\u0013\u0010\u001d\u001a\u00020\u00142\b\u0010\u001e\u001a\u0004\u0018\u00010\u001fH\u0096\u0002J\u0018\u0010 \u001a\u0004\u0018\u00018\u00012\u0006\u0010\u0019\u001a\u00028\u0000H\u0096\u0002¢\u0006\u0002\u0010!J\b\u0010\"\u001a\u00020\rH\u0016J#\u0010#\u001a\u0010\u0012\u0004\u0012\u00028\u0000\u0012\u0004\u0012\u00028\u0001\u0018\u00010\u00162\u0006\u0010\u0019\u001a\u00028\u0000H\u0002¢\u0006\u0002\u0010$J\b\u0010%\u001a\u00020\u0014H\u0016J\b\u0010&\u001a\u00020'H\u0016J\u0012\u0010&\u001a\u00020'2\b\u0010(\u001a\u0004\u0018\u00010\u001fH\u0002J\u001c\u0010&\u001a\u00020'2\u0012\u0010\u0015\u001a\u000e\u0012\u0004\u0012\u00028\u0000\u0012\u0004\u0012\u00028\u00010\u0016H\bR\u0016\u0010\u0005\u001a\n\u0012\u0004\u0012\u00028\u0000\u0018\u00010\u0006X\u0082\u000e¢\u0006\u0002\n\u0000R\u0016\u0010\u0007\u001a\n\u0012\u0004\u0012\u00028\u0001\u0018\u00010\bX\u0088\u000e¢\u0006\u0002\n\u0000R\u001a\u0010\t\u001a\b\u0012\u0004\u0012\u00028\u00000\u00068VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\n\u0010\u000bR\u0014\u0010\f\u001a\u00020\r8VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\u000e\u0010\u000fR\u001a\u0010\u0010\u001a\b\u0012\u0004\u0012\u00028\u00010\b8VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\u0011\u0010\u0012¨\u0006*"}, d2 = {"Lkotlin/collections/AbstractMap;", "K", "V", "", "()V", "_keys", "", "_values", "", UserMetadata.KEYDATA_FILENAME, "getKeys", "()Ljava/util/Set;", "size", "", "getSize", "()I", "values", "getValues", "()Ljava/util/Collection;", "containsEntry", "", "entry", "", "containsEntry$kotlin_stdlib", "containsKey", "key", "(Ljava/lang/Object;)Z", "containsValue", "value", "equals", "other", "", "get", "(Ljava/lang/Object;)Ljava/lang/Object;", "hashCode", "implFindEntry", "(Ljava/lang/Object;)Ljava/util/Map$Entry;", "isEmpty", "toString", "", "o", "Companion", "kotlin-stdlib"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
||||
@SourceDebugExtension({"SMAP\nAbstractMap.kt\nKotlin\n*S Kotlin\n*F\n+ 1 AbstractMap.kt\nkotlin/collections/AbstractMap\n+ 2 _Collections.kt\nkotlin/collections/CollectionsKt___CollectionsKt\n*L\n1#1,153:1\n1747#2,3:154\n1726#2,3:157\n288#2,2:160\n*S KotlinDebug\n*F\n+ 1 AbstractMap.kt\nkotlin/collections/AbstractMap\n*L\n28#1:154,3\n60#1:157,3\n141#1:160,2\n*E\n"})
|
||||
/* loaded from: classes3.dex */
|
||||
public abstract class AbstractMap<K, V> implements Map<K, V>, KMappedMarker {
|
||||
|
||||
/* renamed from: Companion, reason: from kotlin metadata */
|
||||
public static final Companion INSTANCE = new Companion(null);
|
||||
private volatile Set<? extends K> _keys;
|
||||
private volatile Collection<? extends V> _values;
|
||||
|
||||
@Metadata(d1 = {"\u0000*\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0000\n\u0002\u0010&\n\u0002\b\u0003\n\u0002\u0010\b\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0002\b\u0002\b\u0080\u0003\u0018\u00002\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002J'\u0010\u0003\u001a\u00020\u00042\u000e\u0010\u0005\u001a\n\u0012\u0002\b\u0003\u0012\u0002\b\u00030\u00062\b\u0010\u0007\u001a\u0004\u0018\u00010\u0001H\u0000¢\u0006\u0002\b\bJ\u001d\u0010\t\u001a\u00020\n2\u000e\u0010\u0005\u001a\n\u0012\u0002\b\u0003\u0012\u0002\b\u00030\u0006H\u0000¢\u0006\u0002\b\u000bJ\u001d\u0010\f\u001a\u00020\r2\u000e\u0010\u0005\u001a\n\u0012\u0002\b\u0003\u0012\u0002\b\u00030\u0006H\u0000¢\u0006\u0002\b\u000e¨\u0006\u000f"}, d2 = {"Lkotlin/collections/AbstractMap$Companion;", "", "()V", "entryEquals", "", "e", "", "other", "entryEquals$kotlin_stdlib", "entryHashCode", "", "entryHashCode$kotlin_stdlib", "entryToString", "", "entryToString$kotlin_stdlib", "kotlin-stdlib"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
||||
@SourceDebugExtension({"SMAP\nAbstractMap.kt\nKotlin\n*S Kotlin\n*F\n+ 1 AbstractMap.kt\nkotlin/collections/AbstractMap$Companion\n+ 2 fake.kt\nkotlin/jvm/internal/FakeKt\n*L\n1#1,153:1\n1#2:154\n*E\n"})
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Companion {
|
||||
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
|
||||
this();
|
||||
}
|
||||
|
||||
public final boolean entryEquals$kotlin_stdlib(Map.Entry<?, ?> e4, Object other) {
|
||||
Intrinsics.checkNotNullParameter(e4, "e");
|
||||
if (!(other instanceof Map.Entry)) {
|
||||
return false;
|
||||
}
|
||||
Map.Entry entry = (Map.Entry) other;
|
||||
return Intrinsics.areEqual(e4.getKey(), entry.getKey()) && Intrinsics.areEqual(e4.getValue(), entry.getValue());
|
||||
}
|
||||
|
||||
public final int entryHashCode$kotlin_stdlib(Map.Entry<?, ?> e4) {
|
||||
Intrinsics.checkNotNullParameter(e4, "e");
|
||||
Object key = e4.getKey();
|
||||
int hashCode = key != null ? key.hashCode() : 0;
|
||||
Object value = e4.getValue();
|
||||
return hashCode ^ (value != null ? value.hashCode() : 0);
|
||||
}
|
||||
|
||||
public final String entryToString$kotlin_stdlib(Map.Entry<?, ?> e4) {
|
||||
Intrinsics.checkNotNullParameter(e4, "e");
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(e4.getKey());
|
||||
sb.append('=');
|
||||
sb.append(e4.getValue());
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
private Companion() {
|
||||
}
|
||||
}
|
||||
|
||||
private final Map.Entry<K, V> implFindEntry(K key) {
|
||||
Object obj;
|
||||
Iterator<T> it = entrySet().iterator();
|
||||
while (true) {
|
||||
if (!it.hasNext()) {
|
||||
obj = null;
|
||||
break;
|
||||
}
|
||||
obj = it.next();
|
||||
if (Intrinsics.areEqual(((Map.Entry) obj).getKey(), key)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return (Map.Entry) obj;
|
||||
}
|
||||
|
||||
@Override // java.util.Map
|
||||
public void clear() {
|
||||
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
|
||||
}
|
||||
|
||||
public final boolean containsEntry$kotlin_stdlib(Map.Entry<?, ?> entry) {
|
||||
if (entry == null) {
|
||||
return false;
|
||||
}
|
||||
Object key = entry.getKey();
|
||||
Object value = entry.getValue();
|
||||
Intrinsics.checkNotNull(this, "null cannot be cast to non-null type kotlin.collections.Map<K of kotlin.collections.MapsKt__MapsKt.get, V of kotlin.collections.MapsKt__MapsKt.get>");
|
||||
V v3 = get(key);
|
||||
if (!Intrinsics.areEqual(value, v3)) {
|
||||
return false;
|
||||
}
|
||||
if (v3 != null) {
|
||||
return true;
|
||||
}
|
||||
Intrinsics.checkNotNull(this, "null cannot be cast to non-null type kotlin.collections.Map<K of kotlin.collections.MapsKt__MapsKt.containsKey, *>");
|
||||
return containsKey(key);
|
||||
}
|
||||
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
@Override // java.util.Map
|
||||
public boolean containsKey(Object key) {
|
||||
return implFindEntry(key) != null;
|
||||
}
|
||||
|
||||
@Override // java.util.Map
|
||||
public boolean containsValue(Object value) {
|
||||
Set<Map.Entry<K, V>> entrySet = entrySet();
|
||||
if (entrySet != null && entrySet.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
Iterator<T> it = entrySet.iterator();
|
||||
while (it.hasNext()) {
|
||||
if (Intrinsics.areEqual(((Map.Entry) it.next()).getValue(), value)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // java.util.Map
|
||||
public final /* bridge */ Set<Map.Entry<K, V>> entrySet() {
|
||||
return getEntries();
|
||||
}
|
||||
|
||||
@Override // java.util.Map
|
||||
public boolean equals(Object other) {
|
||||
if (other == this) {
|
||||
return true;
|
||||
}
|
||||
if (!(other instanceof Map)) {
|
||||
return false;
|
||||
}
|
||||
Map map = (Map) other;
|
||||
if (size() != map.size()) {
|
||||
return false;
|
||||
}
|
||||
Set<Map.Entry<K, V>> entrySet = map.entrySet();
|
||||
if (entrySet != null && entrySet.isEmpty()) {
|
||||
return true;
|
||||
}
|
||||
Iterator<T> it = entrySet.iterator();
|
||||
while (it.hasNext()) {
|
||||
if (!containsEntry$kotlin_stdlib((Map.Entry) it.next())) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
@Override // java.util.Map
|
||||
public V get(Object key) {
|
||||
Map.Entry<K, V> implFindEntry = implFindEntry(key);
|
||||
if (implFindEntry != null) {
|
||||
return implFindEntry.getValue();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public abstract Set getEntries();
|
||||
|
||||
public Set<K> getKeys() {
|
||||
if (this._keys == null) {
|
||||
this._keys = new AbstractSet<K>(this) { // from class: kotlin.collections.AbstractMap$keys$1
|
||||
final /* synthetic */ AbstractMap<K, V> this$0;
|
||||
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
{
|
||||
this.this$0 = this;
|
||||
}
|
||||
|
||||
@Override // kotlin.collections.AbstractCollection, java.util.Collection
|
||||
public boolean contains(Object element) {
|
||||
return this.this$0.containsKey(element);
|
||||
}
|
||||
|
||||
@Override // kotlin.collections.AbstractCollection
|
||||
/* renamed from: getSize */
|
||||
public int get_size() {
|
||||
return this.this$0.size();
|
||||
}
|
||||
|
||||
@Override // kotlin.collections.AbstractSet, kotlin.collections.AbstractCollection, java.util.Collection, java.lang.Iterable
|
||||
public Iterator<K> iterator() {
|
||||
return new AbstractMap$keys$1$iterator$1(this.this$0.entrySet().iterator());
|
||||
}
|
||||
};
|
||||
}
|
||||
Set<? extends K> set = this._keys;
|
||||
Intrinsics.checkNotNull(set);
|
||||
return set;
|
||||
}
|
||||
|
||||
public int getSize() {
|
||||
return entrySet().size();
|
||||
}
|
||||
|
||||
public Collection<V> getValues() {
|
||||
if (this._values == null) {
|
||||
this._values = new AbstractCollection<V>(this) { // from class: kotlin.collections.AbstractMap$values$1
|
||||
final /* synthetic */ AbstractMap<K, V> this$0;
|
||||
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
{
|
||||
this.this$0 = this;
|
||||
}
|
||||
|
||||
@Override // kotlin.collections.AbstractCollection, java.util.Collection
|
||||
public boolean contains(Object element) {
|
||||
return this.this$0.containsValue(element);
|
||||
}
|
||||
|
||||
@Override // kotlin.collections.AbstractCollection
|
||||
/* renamed from: getSize */
|
||||
public int get_size() {
|
||||
return this.this$0.size();
|
||||
}
|
||||
|
||||
@Override // kotlin.collections.AbstractCollection, java.util.Collection, java.lang.Iterable
|
||||
public Iterator<V> iterator() {
|
||||
return new AbstractMap$values$1$iterator$1(this.this$0.entrySet().iterator());
|
||||
}
|
||||
};
|
||||
}
|
||||
Collection<? extends V> collection = this._values;
|
||||
Intrinsics.checkNotNull(collection);
|
||||
return collection;
|
||||
}
|
||||
|
||||
@Override // java.util.Map
|
||||
public int hashCode() {
|
||||
return entrySet().hashCode();
|
||||
}
|
||||
|
||||
@Override // java.util.Map
|
||||
public boolean isEmpty() {
|
||||
return size() == 0;
|
||||
}
|
||||
|
||||
@Override // java.util.Map
|
||||
public final /* bridge */ Set<K> keySet() {
|
||||
return getKeys();
|
||||
}
|
||||
|
||||
@Override // java.util.Map
|
||||
public V put(K k4, V v3) {
|
||||
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
|
||||
}
|
||||
|
||||
@Override // java.util.Map
|
||||
public void putAll(Map<? extends K, ? extends V> map) {
|
||||
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
|
||||
}
|
||||
|
||||
@Override // java.util.Map
|
||||
public V remove(Object obj) {
|
||||
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
|
||||
}
|
||||
|
||||
@Override // java.util.Map
|
||||
public final /* bridge */ int size() {
|
||||
return getSize();
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return CollectionsKt___CollectionsKt.joinToString$default(entrySet(), ", ", "{", "}", 0, null, new Function1<Map.Entry<? extends K, ? extends V>, CharSequence>(this) { // from class: kotlin.collections.AbstractMap$toString$1
|
||||
final /* synthetic */ AbstractMap<K, V> this$0;
|
||||
|
||||
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
{
|
||||
super(1);
|
||||
this.this$0 = this;
|
||||
}
|
||||
|
||||
@Override // kotlin.jvm.functions.Function1
|
||||
public final CharSequence invoke(Map.Entry<? extends K, ? extends V> it) {
|
||||
String abstractMap;
|
||||
Intrinsics.checkNotNullParameter(it, "it");
|
||||
abstractMap = this.this$0.toString((Map.Entry) it);
|
||||
return abstractMap;
|
||||
}
|
||||
}, 24, null);
|
||||
}
|
||||
|
||||
@Override // java.util.Map
|
||||
public final /* bridge */ Collection<V> values() {
|
||||
return getValues();
|
||||
}
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: private */
|
||||
public final String toString(Map.Entry<? extends K, ? extends V> entry) {
|
||||
return toString(entry.getKey()) + '=' + toString(entry.getValue());
|
||||
}
|
||||
|
||||
private final String toString(Object o4) {
|
||||
return o4 == this ? "(this Map)" : String.valueOf(o4);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user