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:
83
apk_decompiled/sources/i0/AbstractC0383d.java
Normal file
83
apk_decompiled/sources/i0/AbstractC0383d.java
Normal file
@@ -0,0 +1,83 @@
|
||||
package i0;
|
||||
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.util.Log;
|
||||
import androidx.fragment.app.AbstractC0158l0;
|
||||
import androidx.fragment.app.K;
|
||||
import java.util.Set;
|
||||
import kotlin.collections.CollectionsKt;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
|
||||
/* renamed from: i0.d, reason: case insensitive filesystem */
|
||||
/* loaded from: classes.dex */
|
||||
public abstract class AbstractC0383d {
|
||||
|
||||
/* renamed from: a, reason: collision with root package name */
|
||||
public static final C0382c f6811a = C0382c.f6808c;
|
||||
|
||||
public static C0382c a(K k4) {
|
||||
while (k4 != null) {
|
||||
if (k4.isAdded()) {
|
||||
AbstractC0158l0 parentFragmentManager = k4.getParentFragmentManager();
|
||||
Intrinsics.checkNotNullExpressionValue(parentFragmentManager, "declaringFragment.parentFragmentManager");
|
||||
parentFragmentManager.getClass();
|
||||
}
|
||||
k4 = k4.getParentFragment();
|
||||
}
|
||||
return f6811a;
|
||||
}
|
||||
|
||||
public static void b(C0382c c0382c, AbstractC0392m abstractC0392m) {
|
||||
K k4 = abstractC0392m.f6812a;
|
||||
String name = k4.getClass().getName();
|
||||
EnumC0381b enumC0381b = EnumC0381b.f6800a;
|
||||
Set set = c0382c.f6809a;
|
||||
if (set.contains(enumC0381b)) {
|
||||
Log.d("FragmentStrictMode", "Policy violation in ".concat(name), abstractC0392m);
|
||||
}
|
||||
if (set.contains(EnumC0381b.f6801b)) {
|
||||
F.n nVar = new F.n(8, name, abstractC0392m);
|
||||
if (!k4.isAdded()) {
|
||||
nVar.run();
|
||||
throw null;
|
||||
}
|
||||
Handler handler = k4.getParentFragmentManager().f3177w.f3076c;
|
||||
if (Intrinsics.areEqual(handler.getLooper(), Looper.myLooper())) {
|
||||
nVar.run();
|
||||
throw null;
|
||||
}
|
||||
handler.post(nVar);
|
||||
}
|
||||
}
|
||||
|
||||
public static void c(AbstractC0392m abstractC0392m) {
|
||||
if (AbstractC0158l0.M(3)) {
|
||||
Log.d("FragmentManager", "StrictMode violation in ".concat(abstractC0392m.f6812a.getClass().getName()), abstractC0392m);
|
||||
}
|
||||
}
|
||||
|
||||
public static final void d(K fragment, String previousFragmentId) {
|
||||
Intrinsics.checkNotNullParameter(fragment, "fragment");
|
||||
Intrinsics.checkNotNullParameter(previousFragmentId, "previousFragmentId");
|
||||
Intrinsics.checkNotNullParameter(fragment, "fragment");
|
||||
Intrinsics.checkNotNullParameter(previousFragmentId, "previousFragmentId");
|
||||
AbstractC0392m abstractC0392m = new AbstractC0392m(fragment, "Attempting to reuse fragment " + fragment + " with previous ID " + previousFragmentId);
|
||||
c(abstractC0392m);
|
||||
C0382c a2 = a(fragment);
|
||||
if (a2.f6809a.contains(EnumC0381b.f6802c) && e(a2, fragment.getClass(), C0380a.class)) {
|
||||
b(a2, abstractC0392m);
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean e(C0382c c0382c, Class cls, Class cls2) {
|
||||
Set set = (Set) c0382c.f6810b.get(cls.getName());
|
||||
if (set == null) {
|
||||
return true;
|
||||
}
|
||||
if (Intrinsics.areEqual(cls2.getSuperclass(), AbstractC0392m.class) || !CollectionsKt.contains(set, cls2.getSuperclass())) {
|
||||
return !set.contains(cls2);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
6
apk_decompiled/sources/i0/AbstractC0388i.java
Normal file
6
apk_decompiled/sources/i0/AbstractC0388i.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package i0;
|
||||
|
||||
/* renamed from: i0.i, reason: case insensitive filesystem */
|
||||
/* loaded from: classes.dex */
|
||||
public abstract class AbstractC0388i extends AbstractC0392m {
|
||||
}
|
||||
19
apk_decompiled/sources/i0/AbstractC0392m.java
Normal file
19
apk_decompiled/sources/i0/AbstractC0392m.java
Normal file
@@ -0,0 +1,19 @@
|
||||
package i0;
|
||||
|
||||
import androidx.fragment.app.K;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
|
||||
/* renamed from: i0.m, reason: case insensitive filesystem */
|
||||
/* loaded from: classes.dex */
|
||||
public abstract class AbstractC0392m extends RuntimeException {
|
||||
|
||||
/* renamed from: a, reason: collision with root package name */
|
||||
public final K f6812a;
|
||||
|
||||
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
|
||||
public AbstractC0392m(K fragment, String str) {
|
||||
super(str);
|
||||
Intrinsics.checkNotNullParameter(fragment, "fragment");
|
||||
this.f6812a = fragment;
|
||||
}
|
||||
}
|
||||
6
apk_decompiled/sources/i0/C0380a.java
Normal file
6
apk_decompiled/sources/i0/C0380a.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package i0;
|
||||
|
||||
/* renamed from: i0.a, reason: case insensitive filesystem */
|
||||
/* loaded from: classes.dex */
|
||||
public final class C0380a extends AbstractC0392m {
|
||||
}
|
||||
33
apk_decompiled/sources/i0/C0382c.java
Normal file
33
apk_decompiled/sources/i0/C0382c.java
Normal file
@@ -0,0 +1,33 @@
|
||||
package i0;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import kotlin.collections.MapsKt;
|
||||
import kotlin.collections.SetsKt;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
|
||||
/* renamed from: i0.c, reason: case insensitive filesystem */
|
||||
/* loaded from: classes.dex */
|
||||
public final class C0382c {
|
||||
|
||||
/* renamed from: c, reason: collision with root package name */
|
||||
public static final C0382c f6808c = new C0382c(SetsKt.emptySet(), MapsKt.emptyMap());
|
||||
|
||||
/* renamed from: a, reason: collision with root package name */
|
||||
public final Set f6809a;
|
||||
|
||||
/* renamed from: b, reason: collision with root package name */
|
||||
public final LinkedHashMap f6810b;
|
||||
|
||||
public C0382c(Set flags, Map allowedViolations) {
|
||||
Intrinsics.checkNotNullParameter(flags, "flags");
|
||||
Intrinsics.checkNotNullParameter(allowedViolations, "allowedViolations");
|
||||
this.f6809a = flags;
|
||||
LinkedHashMap linkedHashMap = new LinkedHashMap();
|
||||
for (Map.Entry entry : allowedViolations.entrySet()) {
|
||||
linkedHashMap.put((String) entry.getKey(), (Set) entry.getValue());
|
||||
}
|
||||
this.f6810b = linkedHashMap;
|
||||
}
|
||||
}
|
||||
6
apk_decompiled/sources/i0/C0384e.java
Normal file
6
apk_decompiled/sources/i0/C0384e.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package i0;
|
||||
|
||||
/* renamed from: i0.e, reason: case insensitive filesystem */
|
||||
/* loaded from: classes.dex */
|
||||
public final class C0384e extends AbstractC0392m {
|
||||
}
|
||||
6
apk_decompiled/sources/i0/C0385f.java
Normal file
6
apk_decompiled/sources/i0/C0385f.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package i0;
|
||||
|
||||
/* renamed from: i0.f, reason: case insensitive filesystem */
|
||||
/* loaded from: classes.dex */
|
||||
public final class C0385f extends AbstractC0388i {
|
||||
}
|
||||
6
apk_decompiled/sources/i0/C0386g.java
Normal file
6
apk_decompiled/sources/i0/C0386g.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package i0;
|
||||
|
||||
/* renamed from: i0.g, reason: case insensitive filesystem */
|
||||
/* loaded from: classes.dex */
|
||||
public final class C0386g extends AbstractC0388i {
|
||||
}
|
||||
6
apk_decompiled/sources/i0/C0387h.java
Normal file
6
apk_decompiled/sources/i0/C0387h.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package i0;
|
||||
|
||||
/* renamed from: i0.h, reason: case insensitive filesystem */
|
||||
/* loaded from: classes.dex */
|
||||
public final class C0387h extends AbstractC0388i {
|
||||
}
|
||||
6
apk_decompiled/sources/i0/C0389j.java
Normal file
6
apk_decompiled/sources/i0/C0389j.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package i0;
|
||||
|
||||
/* renamed from: i0.j, reason: case insensitive filesystem */
|
||||
/* loaded from: classes.dex */
|
||||
public final class C0389j extends AbstractC0388i {
|
||||
}
|
||||
6
apk_decompiled/sources/i0/C0390k.java
Normal file
6
apk_decompiled/sources/i0/C0390k.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package i0;
|
||||
|
||||
/* renamed from: i0.k, reason: case insensitive filesystem */
|
||||
/* loaded from: classes.dex */
|
||||
public final class C0390k extends AbstractC0388i {
|
||||
}
|
||||
6
apk_decompiled/sources/i0/C0391l.java
Normal file
6
apk_decompiled/sources/i0/C0391l.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package i0;
|
||||
|
||||
/* renamed from: i0.l, reason: case insensitive filesystem */
|
||||
/* loaded from: classes.dex */
|
||||
public final class C0391l extends AbstractC0392m {
|
||||
}
|
||||
6
apk_decompiled/sources/i0/C0393n.java
Normal file
6
apk_decompiled/sources/i0/C0393n.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package i0;
|
||||
|
||||
/* renamed from: i0.n, reason: case insensitive filesystem */
|
||||
/* loaded from: classes.dex */
|
||||
public final class C0393n extends AbstractC0392m {
|
||||
}
|
||||
6
apk_decompiled/sources/i0/C0394o.java
Normal file
6
apk_decompiled/sources/i0/C0394o.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package i0;
|
||||
|
||||
/* renamed from: i0.o, reason: case insensitive filesystem */
|
||||
/* loaded from: classes.dex */
|
||||
public final class C0394o extends AbstractC0392m {
|
||||
}
|
||||
73
apk_decompiled/sources/i0/EnumC0381b.java
Normal file
73
apk_decompiled/sources/i0/EnumC0381b.java
Normal file
@@ -0,0 +1,73 @@
|
||||
package i0;
|
||||
|
||||
/* JADX WARN: Failed to restore enum class, 'enum' modifier and super class removed */
|
||||
/* JADX WARN: Unknown enum class pattern. Please report as an issue! */
|
||||
/* renamed from: i0.b, reason: case insensitive filesystem */
|
||||
/* loaded from: classes.dex */
|
||||
public final class EnumC0381b {
|
||||
|
||||
/* renamed from: a, reason: collision with root package name */
|
||||
public static final EnumC0381b f6800a;
|
||||
|
||||
/* renamed from: b, reason: collision with root package name */
|
||||
public static final EnumC0381b f6801b;
|
||||
|
||||
/* renamed from: c, reason: collision with root package name */
|
||||
public static final EnumC0381b f6802c;
|
||||
|
||||
/* renamed from: d, reason: collision with root package name */
|
||||
public static final EnumC0381b f6803d;
|
||||
|
||||
/* renamed from: e, reason: collision with root package name */
|
||||
public static final EnumC0381b f6804e;
|
||||
|
||||
/* renamed from: f, reason: collision with root package name */
|
||||
public static final EnumC0381b f6805f;
|
||||
|
||||
/* renamed from: g, reason: collision with root package name */
|
||||
public static final EnumC0381b f6806g;
|
||||
public static final EnumC0381b h;
|
||||
public static final EnumC0381b i;
|
||||
|
||||
/* renamed from: j, reason: collision with root package name */
|
||||
public static final /* synthetic */ EnumC0381b[] f6807j;
|
||||
|
||||
/* JADX WARN: Type inference failed for: r0v0, types: [java.lang.Enum, i0.b] */
|
||||
/* JADX WARN: Type inference failed for: r1v1, types: [java.lang.Enum, i0.b] */
|
||||
/* JADX WARN: Type inference failed for: r2v2, types: [java.lang.Enum, i0.b] */
|
||||
/* JADX WARN: Type inference failed for: r3v2, types: [java.lang.Enum, i0.b] */
|
||||
/* JADX WARN: Type inference failed for: r4v2, types: [java.lang.Enum, i0.b] */
|
||||
/* JADX WARN: Type inference failed for: r5v2, types: [java.lang.Enum, i0.b] */
|
||||
/* JADX WARN: Type inference failed for: r6v2, types: [java.lang.Enum, i0.b] */
|
||||
/* JADX WARN: Type inference failed for: r7v2, types: [java.lang.Enum, i0.b] */
|
||||
/* JADX WARN: Type inference failed for: r8v2, types: [java.lang.Enum, i0.b] */
|
||||
static {
|
||||
?? r02 = new Enum("PENALTY_LOG", 0);
|
||||
f6800a = r02;
|
||||
?? r12 = new Enum("PENALTY_DEATH", 1);
|
||||
f6801b = r12;
|
||||
?? r22 = new Enum("DETECT_FRAGMENT_REUSE", 2);
|
||||
f6802c = r22;
|
||||
?? r32 = new Enum("DETECT_FRAGMENT_TAG_USAGE", 3);
|
||||
f6803d = r32;
|
||||
?? r4 = new Enum("DETECT_WRONG_NESTED_HIERARCHY", 4);
|
||||
f6804e = r4;
|
||||
?? r5 = new Enum("DETECT_RETAIN_INSTANCE_USAGE", 5);
|
||||
f6805f = r5;
|
||||
?? r6 = new Enum("DETECT_SET_USER_VISIBLE_HINT", 6);
|
||||
f6806g = r6;
|
||||
?? r7 = new Enum("DETECT_TARGET_FRAGMENT_USAGE", 7);
|
||||
h = r7;
|
||||
?? r8 = new Enum("DETECT_WRONG_FRAGMENT_CONTAINER", 8);
|
||||
i = r8;
|
||||
f6807j = new EnumC0381b[]{r02, r12, r22, r32, r4, r5, r6, r7, r8};
|
||||
}
|
||||
|
||||
public static EnumC0381b valueOf(String str) {
|
||||
return (EnumC0381b) Enum.valueOf(EnumC0381b.class, str);
|
||||
}
|
||||
|
||||
public static EnumC0381b[] values() {
|
||||
return (EnumC0381b[]) f6807j.clone();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user