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:
310
apk_decompiled/sources/kotlin/collections/AbstractList.java
Normal file
310
apk_decompiled/sources/kotlin/collections/AbstractList.java
Normal file
@@ -0,0 +1,310 @@
|
||||
package kotlin.collections;
|
||||
|
||||
import C.w;
|
||||
import com.google.firebase.analytics.FirebaseAnalytics;
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.ListIterator;
|
||||
import java.util.NoSuchElementException;
|
||||
import java.util.RandomAccess;
|
||||
import kotlin.Metadata;
|
||||
import kotlin.SinceKotlin;
|
||||
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 = {"\u00008\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0010 \n\u0002\b\u0002\n\u0002\u0010\b\n\u0002\b\u0003\n\u0002\u0010\u000b\n\u0000\n\u0002\u0010\u0000\n\u0002\b\b\n\u0002\u0010(\n\u0002\b\u0002\n\u0002\u0010*\n\u0002\b\b\b'\u0018\u0000 \u001c*\u0006\b\u0000\u0010\u0001 \u00012\b\u0012\u0004\u0012\u0002H\u00010\u00022\b\u0012\u0004\u0012\u0002H\u00010\u0003:\u0004\u001c\u001d\u001e\u001fB\u0007\b\u0004¢\u0006\u0002\u0010\u0004J\u0013\u0010\t\u001a\u00020\n2\b\u0010\u000b\u001a\u0004\u0018\u00010\fH\u0096\u0002J\u0016\u0010\r\u001a\u00028\u00002\u0006\u0010\u000e\u001a\u00020\u0006H¦\u0002¢\u0006\u0002\u0010\u000fJ\b\u0010\u0010\u001a\u00020\u0006H\u0016J\u0015\u0010\u0011\u001a\u00020\u00062\u0006\u0010\u0012\u001a\u00028\u0000H\u0016¢\u0006\u0002\u0010\u0013J\u000f\u0010\u0014\u001a\b\u0012\u0004\u0012\u00028\u00000\u0015H\u0096\u0002J\u0015\u0010\u0016\u001a\u00020\u00062\u0006\u0010\u0012\u001a\u00028\u0000H\u0016¢\u0006\u0002\u0010\u0013J\u000e\u0010\u0017\u001a\b\u0012\u0004\u0012\u00028\u00000\u0018H\u0016J\u0016\u0010\u0017\u001a\b\u0012\u0004\u0012\u00028\u00000\u00182\u0006\u0010\u000e\u001a\u00020\u0006H\u0016J\u001e\u0010\u0019\u001a\b\u0012\u0004\u0012\u00028\u00000\u00032\u0006\u0010\u001a\u001a\u00020\u00062\u0006\u0010\u001b\u001a\u00020\u0006H\u0016R\u0012\u0010\u0005\u001a\u00020\u0006X¦\u0004¢\u0006\u0006\u001a\u0004\b\u0007\u0010\b¨\u0006 "}, d2 = {"Lkotlin/collections/AbstractList;", "E", "Lkotlin/collections/AbstractCollection;", "", "()V", "size", "", "getSize", "()I", "equals", "", "other", "", "get", FirebaseAnalytics.Param.INDEX, "(I)Ljava/lang/Object;", "hashCode", "indexOf", "element", "(Ljava/lang/Object;)I", "iterator", "", "lastIndexOf", "listIterator", "", "subList", "fromIndex", "toIndex", "Companion", "IteratorImpl", "ListIteratorImpl", "SubList", "kotlin-stdlib"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
||||
@SourceDebugExtension({"SMAP\nAbstractList.kt\nKotlin\n*S Kotlin\n*F\n+ 1 AbstractList.kt\nkotlin/collections/AbstractList\n+ 2 _Collections.kt\nkotlin/collections/CollectionsKt___CollectionsKt\n*L\n1#1,170:1\n350#2,7:171\n378#2,7:178\n*S KotlinDebug\n*F\n+ 1 AbstractList.kt\nkotlin/collections/AbstractList\n*L\n27#1:171,7\n29#1:178,7\n*E\n"})
|
||||
/* loaded from: classes3.dex */
|
||||
public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E>, KMappedMarker {
|
||||
|
||||
/* renamed from: Companion, reason: from kotlin metadata */
|
||||
public static final Companion INSTANCE = new Companion(null);
|
||||
private static final int maxArraySize = 2147483639;
|
||||
|
||||
@Metadata(d1 = {"\u0000(\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\b\n\u0000\n\u0002\u0010\u0002\n\u0002\b\u0012\n\u0002\u0010\u000b\n\u0000\n\u0002\u0010\u001e\n\u0002\b\u0005\b\u0080\u0003\u0018\u00002\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002J%\u0010\u0005\u001a\u00020\u00062\u0006\u0010\u0007\u001a\u00020\u00042\u0006\u0010\b\u001a\u00020\u00042\u0006\u0010\t\u001a\u00020\u0004H\u0000¢\u0006\u0002\b\nJ\u001d\u0010\u000b\u001a\u00020\u00062\u0006\u0010\f\u001a\u00020\u00042\u0006\u0010\t\u001a\u00020\u0004H\u0000¢\u0006\u0002\b\rJ\u001d\u0010\u000e\u001a\u00020\u00062\u0006\u0010\f\u001a\u00020\u00042\u0006\u0010\t\u001a\u00020\u0004H\u0000¢\u0006\u0002\b\u000fJ%\u0010\u0010\u001a\u00020\u00062\u0006\u0010\u0011\u001a\u00020\u00042\u0006\u0010\u0012\u001a\u00020\u00042\u0006\u0010\t\u001a\u00020\u0004H\u0000¢\u0006\u0002\b\u0013J\u001d\u0010\u0014\u001a\u00020\u00042\u0006\u0010\u0015\u001a\u00020\u00042\u0006\u0010\u0016\u001a\u00020\u0004H\u0000¢\u0006\u0002\b\u0017J%\u0010\u0018\u001a\u00020\u00192\n\u0010\u001a\u001a\u0006\u0012\u0002\b\u00030\u001b2\n\u0010\u001c\u001a\u0006\u0012\u0002\b\u00030\u001bH\u0000¢\u0006\u0002\b\u001dJ\u0019\u0010\u001e\u001a\u00020\u00042\n\u0010\u001a\u001a\u0006\u0012\u0002\b\u00030\u001bH\u0000¢\u0006\u0002\b\u001fR\u000e\u0010\u0003\u001a\u00020\u0004X\u0082T¢\u0006\u0002\n\u0000¨\u0006 "}, d2 = {"Lkotlin/collections/AbstractList$Companion;", "", "()V", "maxArraySize", "", "checkBoundsIndexes", "", "startIndex", "endIndex", "size", "checkBoundsIndexes$kotlin_stdlib", "checkElementIndex", FirebaseAnalytics.Param.INDEX, "checkElementIndex$kotlin_stdlib", "checkPositionIndex", "checkPositionIndex$kotlin_stdlib", "checkRangeIndexes", "fromIndex", "toIndex", "checkRangeIndexes$kotlin_stdlib", "newCapacity", "oldCapacity", "minCapacity", "newCapacity$kotlin_stdlib", "orderedEquals", "", "c", "", "other", "orderedEquals$kotlin_stdlib", "orderedHashCode", "orderedHashCode$kotlin_stdlib", "kotlin-stdlib"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class Companion {
|
||||
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
|
||||
this();
|
||||
}
|
||||
|
||||
public final void checkBoundsIndexes$kotlin_stdlib(int startIndex, int endIndex, int size) {
|
||||
if (startIndex >= 0 && endIndex <= size) {
|
||||
if (startIndex > endIndex) {
|
||||
throw new IllegalArgumentException(w.k("startIndex: ", startIndex, endIndex, " > endIndex: "));
|
||||
}
|
||||
return;
|
||||
}
|
||||
throw new IndexOutOfBoundsException("startIndex: " + startIndex + ", endIndex: " + endIndex + ", size: " + size);
|
||||
}
|
||||
|
||||
public final void checkElementIndex$kotlin_stdlib(int index, int size) {
|
||||
if (index < 0 || index >= size) {
|
||||
throw new IndexOutOfBoundsException(w.k("index: ", index, size, ", size: "));
|
||||
}
|
||||
}
|
||||
|
||||
public final void checkPositionIndex$kotlin_stdlib(int index, int size) {
|
||||
if (index < 0 || index > size) {
|
||||
throw new IndexOutOfBoundsException(w.k("index: ", index, size, ", size: "));
|
||||
}
|
||||
}
|
||||
|
||||
public final void checkRangeIndexes$kotlin_stdlib(int fromIndex, int toIndex, int size) {
|
||||
if (fromIndex >= 0 && toIndex <= size) {
|
||||
if (fromIndex > toIndex) {
|
||||
throw new IllegalArgumentException(w.k("fromIndex: ", fromIndex, toIndex, " > toIndex: "));
|
||||
}
|
||||
return;
|
||||
}
|
||||
throw new IndexOutOfBoundsException("fromIndex: " + fromIndex + ", toIndex: " + toIndex + ", size: " + size);
|
||||
}
|
||||
|
||||
public final int newCapacity$kotlin_stdlib(int oldCapacity, int minCapacity) {
|
||||
int i = oldCapacity + (oldCapacity >> 1);
|
||||
if (i - minCapacity < 0) {
|
||||
i = minCapacity;
|
||||
}
|
||||
if (i - AbstractList.maxArraySize <= 0) {
|
||||
return i;
|
||||
}
|
||||
if (minCapacity > AbstractList.maxArraySize) {
|
||||
return Integer.MAX_VALUE;
|
||||
}
|
||||
return AbstractList.maxArraySize;
|
||||
}
|
||||
|
||||
public final boolean orderedEquals$kotlin_stdlib(Collection<?> c4, Collection<?> other) {
|
||||
Intrinsics.checkNotNullParameter(c4, "c");
|
||||
Intrinsics.checkNotNullParameter(other, "other");
|
||||
if (c4.size() != other.size()) {
|
||||
return false;
|
||||
}
|
||||
Iterator<?> it = other.iterator();
|
||||
Iterator<?> it2 = c4.iterator();
|
||||
while (it2.hasNext()) {
|
||||
if (!Intrinsics.areEqual(it2.next(), it.next())) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public final int orderedHashCode$kotlin_stdlib(Collection<?> c4) {
|
||||
Intrinsics.checkNotNullParameter(c4, "c");
|
||||
Iterator<?> it = c4.iterator();
|
||||
int i = 1;
|
||||
while (it.hasNext()) {
|
||||
Object next = it.next();
|
||||
i = (i * 31) + (next != null ? next.hashCode() : 0);
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
private Companion() {
|
||||
}
|
||||
}
|
||||
|
||||
@Metadata(d1 = {"\u0000\u001c\n\u0002\u0018\u0002\n\u0002\u0010(\n\u0002\b\u0002\n\u0002\u0010\b\n\u0002\b\u0005\n\u0002\u0010\u000b\n\u0002\b\u0003\b\u0092\u0004\u0018\u00002\b\u0012\u0004\u0012\u00028\u00000\u0001B\u0005¢\u0006\u0002\u0010\u0002J\t\u0010\t\u001a\u00020\nH\u0096\u0002J\u000e\u0010\u000b\u001a\u00028\u0000H\u0096\u0002¢\u0006\u0002\u0010\fR\u001a\u0010\u0003\u001a\u00020\u0004X\u0084\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\u0005\u0010\u0006\"\u0004\b\u0007\u0010\b¨\u0006\r"}, d2 = {"Lkotlin/collections/AbstractList$IteratorImpl;", "", "(Lkotlin/collections/AbstractList;)V", FirebaseAnalytics.Param.INDEX, "", "getIndex", "()I", "setIndex", "(I)V", "hasNext", "", "next", "()Ljava/lang/Object;", "kotlin-stdlib"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
||||
/* loaded from: classes3.dex */
|
||||
public class IteratorImpl implements Iterator<E>, KMappedMarker {
|
||||
private int index;
|
||||
|
||||
public IteratorImpl() {
|
||||
}
|
||||
|
||||
public final int getIndex() {
|
||||
return this.index;
|
||||
}
|
||||
|
||||
@Override // java.util.Iterator
|
||||
public boolean hasNext() {
|
||||
return this.index < AbstractList.this.size();
|
||||
}
|
||||
|
||||
@Override // java.util.Iterator
|
||||
public E next() {
|
||||
if (!hasNext()) {
|
||||
throw new NoSuchElementException();
|
||||
}
|
||||
AbstractList<E> abstractList = AbstractList.this;
|
||||
int i = this.index;
|
||||
this.index = i + 1;
|
||||
return abstractList.get(i);
|
||||
}
|
||||
|
||||
@Override // java.util.Iterator
|
||||
public void remove() {
|
||||
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
|
||||
}
|
||||
|
||||
public final void setIndex(int i) {
|
||||
this.index = i;
|
||||
}
|
||||
}
|
||||
|
||||
@Metadata(d1 = {"\u0000\"\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0010*\n\u0000\n\u0002\u0010\b\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0002\b\u0005\b\u0092\u0004\u0018\u00002\f0\u0001R\b\u0012\u0004\u0012\u00028\u00000\u00022\b\u0012\u0004\u0012\u00028\u00000\u0003B\r\u0012\u0006\u0010\u0004\u001a\u00020\u0005¢\u0006\u0002\u0010\u0006J\b\u0010\u0007\u001a\u00020\bH\u0016J\b\u0010\t\u001a\u00020\u0005H\u0016J\r\u0010\n\u001a\u00028\u0000H\u0016¢\u0006\u0002\u0010\u000bJ\b\u0010\f\u001a\u00020\u0005H\u0016¨\u0006\r"}, d2 = {"Lkotlin/collections/AbstractList$ListIteratorImpl;", "Lkotlin/collections/AbstractList$IteratorImpl;", "Lkotlin/collections/AbstractList;", "", FirebaseAnalytics.Param.INDEX, "", "(Lkotlin/collections/AbstractList;I)V", "hasPrevious", "", "nextIndex", "previous", "()Ljava/lang/Object;", "previousIndex", "kotlin-stdlib"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
||||
/* loaded from: classes3.dex */
|
||||
public class ListIteratorImpl extends AbstractList<E>.IteratorImpl implements ListIterator<E>, KMappedMarker {
|
||||
public ListIteratorImpl(int i) {
|
||||
super();
|
||||
AbstractList.INSTANCE.checkPositionIndex$kotlin_stdlib(i, AbstractList.this.size());
|
||||
setIndex(i);
|
||||
}
|
||||
|
||||
@Override // java.util.ListIterator
|
||||
public void add(E e4) {
|
||||
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
|
||||
}
|
||||
|
||||
@Override // java.util.ListIterator
|
||||
public boolean hasPrevious() {
|
||||
return getIndex() > 0;
|
||||
}
|
||||
|
||||
@Override // java.util.ListIterator
|
||||
public int nextIndex() {
|
||||
return getIndex();
|
||||
}
|
||||
|
||||
@Override // java.util.ListIterator
|
||||
public E previous() {
|
||||
if (!hasPrevious()) {
|
||||
throw new NoSuchElementException();
|
||||
}
|
||||
AbstractList<E> abstractList = AbstractList.this;
|
||||
setIndex(getIndex() - 1);
|
||||
return abstractList.get(getIndex());
|
||||
}
|
||||
|
||||
@Override // java.util.ListIterator
|
||||
public int previousIndex() {
|
||||
return getIndex() - 1;
|
||||
}
|
||||
|
||||
@Override // java.util.ListIterator
|
||||
public void set(E e4) {
|
||||
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
|
||||
}
|
||||
}
|
||||
|
||||
@Metadata(d1 = {"\u0000\u001e\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\b\n\u0002\b\n\b\u0002\u0018\u0000*\u0006\b\u0001\u0010\u0001 \u00012\b\u0012\u0004\u0012\u0002H\u00010\u00022\u00060\u0003j\u0002`\u0004B#\u0012\f\u0010\u0005\u001a\b\u0012\u0004\u0012\u00028\u00010\u0002\u0012\u0006\u0010\u0006\u001a\u00020\u0007\u0012\u0006\u0010\b\u001a\u00020\u0007¢\u0006\u0002\u0010\tJ\u0016\u0010\u000e\u001a\u00028\u00012\u0006\u0010\u000f\u001a\u00020\u0007H\u0096\u0002¢\u0006\u0002\u0010\u0010R\u000e\u0010\n\u001a\u00020\u0007X\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\u0006\u001a\u00020\u0007X\u0082\u0004¢\u0006\u0002\n\u0000R\u0014\u0010\u0005\u001a\b\u0012\u0004\u0012\u00028\u00010\u0002X\u0082\u0004¢\u0006\u0002\n\u0000R\u0014\u0010\u000b\u001a\u00020\u00078VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\f\u0010\r¨\u0006\u0011"}, d2 = {"Lkotlin/collections/AbstractList$SubList;", "E", "Lkotlin/collections/AbstractList;", "Ljava/util/RandomAccess;", "Lkotlin/collections/RandomAccess;", "list", "fromIndex", "", "toIndex", "(Lkotlin/collections/AbstractList;II)V", "_size", "size", "getSize", "()I", "get", FirebaseAnalytics.Param.INDEX, "(I)Ljava/lang/Object;", "kotlin-stdlib"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class SubList<E> extends AbstractList<E> implements RandomAccess {
|
||||
private int _size;
|
||||
private final int fromIndex;
|
||||
private final AbstractList<E> list;
|
||||
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
public SubList(AbstractList<? extends E> list, int i, int i4) {
|
||||
Intrinsics.checkNotNullParameter(list, "list");
|
||||
this.list = list;
|
||||
this.fromIndex = i;
|
||||
AbstractList.INSTANCE.checkRangeIndexes$kotlin_stdlib(i, i4, list.size());
|
||||
this._size = i4 - i;
|
||||
}
|
||||
|
||||
@Override // kotlin.collections.AbstractList, java.util.List
|
||||
public E get(int index) {
|
||||
AbstractList.INSTANCE.checkElementIndex$kotlin_stdlib(index, this._size);
|
||||
return this.list.get(this.fromIndex + index);
|
||||
}
|
||||
|
||||
@Override // kotlin.collections.AbstractList, kotlin.collections.AbstractCollection
|
||||
/* renamed from: getSize, reason: from getter */
|
||||
public int get_size() {
|
||||
return this._size;
|
||||
}
|
||||
}
|
||||
|
||||
@Override // java.util.List
|
||||
public void add(int i, E e4) {
|
||||
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
|
||||
}
|
||||
|
||||
@Override // java.util.List
|
||||
public boolean addAll(int i, Collection<? extends E> collection) {
|
||||
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
|
||||
}
|
||||
|
||||
@Override // java.util.Collection, java.util.List
|
||||
public boolean equals(Object other) {
|
||||
if (other == this) {
|
||||
return true;
|
||||
}
|
||||
if (other instanceof List) {
|
||||
return INSTANCE.orderedEquals$kotlin_stdlib(this, (Collection) other);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // java.util.List
|
||||
public abstract E get(int index);
|
||||
|
||||
@Override // kotlin.collections.AbstractCollection
|
||||
/* renamed from: getSize */
|
||||
public abstract int get_size();
|
||||
|
||||
@Override // java.util.Collection, java.util.List
|
||||
public int hashCode() {
|
||||
return INSTANCE.orderedHashCode$kotlin_stdlib(this);
|
||||
}
|
||||
|
||||
@Override // java.util.List
|
||||
public int indexOf(E element) {
|
||||
Iterator<E> it = iterator();
|
||||
int i = 0;
|
||||
while (it.hasNext()) {
|
||||
if (Intrinsics.areEqual(it.next(), element)) {
|
||||
return i;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override // kotlin.collections.AbstractCollection, java.util.Collection, java.lang.Iterable
|
||||
public Iterator<E> iterator() {
|
||||
return new IteratorImpl();
|
||||
}
|
||||
|
||||
@Override // java.util.List
|
||||
public int lastIndexOf(E element) {
|
||||
ListIterator<E> listIterator = listIterator(size());
|
||||
while (listIterator.hasPrevious()) {
|
||||
if (Intrinsics.areEqual(listIterator.previous(), element)) {
|
||||
return listIterator.nextIndex();
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override // java.util.List
|
||||
public ListIterator<E> listIterator() {
|
||||
return new ListIteratorImpl(0);
|
||||
}
|
||||
|
||||
@Override // java.util.List
|
||||
public E remove(int i) {
|
||||
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
|
||||
}
|
||||
|
||||
@Override // java.util.List
|
||||
public E set(int i, E e4) {
|
||||
throw new UnsupportedOperationException("Operation is not supported for read-only collection");
|
||||
}
|
||||
|
||||
@Override // java.util.List
|
||||
public List<E> subList(int fromIndex, int toIndex) {
|
||||
return new SubList(this, fromIndex, toIndex);
|
||||
}
|
||||
|
||||
@Override // java.util.List
|
||||
public ListIterator<E> listIterator(int index) {
|
||||
return new ListIteratorImpl(index);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user