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,46 @@
package M;
/* loaded from: classes.dex */
public final class a {
/* renamed from: e, reason: collision with root package name */
public static final byte[] f1060e = new byte[1792];
/* renamed from: a, reason: collision with root package name */
public final CharSequence f1061a;
/* renamed from: b, reason: collision with root package name */
public final int f1062b;
/* renamed from: c, reason: collision with root package name */
public int f1063c;
/* renamed from: d, reason: collision with root package name */
public char f1064d;
static {
for (int i = 0; i < 1792; i++) {
f1060e[i] = Character.getDirectionality(i);
}
}
public a(CharSequence charSequence) {
this.f1061a = charSequence;
this.f1062b = charSequence.length();
}
public final byte a() {
int i = this.f1063c - 1;
CharSequence charSequence = this.f1061a;
char charAt = charSequence.charAt(i);
this.f1064d = charAt;
if (Character.isLowSurrogate(charAt)) {
int codePointBefore = Character.codePointBefore(charSequence, this.f1063c);
this.f1063c -= Character.charCount(codePointBefore);
return Character.getDirectionality(codePointBefore);
}
this.f1063c--;
char c4 = this.f1064d;
return c4 < 1792 ? f1060e[c4] : Character.getDirectionality(c4);
}
}

View File

@@ -0,0 +1,314 @@
package M;
import android.text.SpannableStringBuilder;
/* loaded from: classes.dex */
public final class b {
/* renamed from: b, reason: collision with root package name */
public static final String f1065b;
/* renamed from: c, reason: collision with root package name */
public static final String f1066c;
/* renamed from: d, reason: collision with root package name */
public static final b f1067d;
/* renamed from: e, reason: collision with root package name */
public static final b f1068e;
/* renamed from: a, reason: collision with root package name */
public final boolean f1069a;
static {
g gVar = h.f1079c;
f1065b = Character.toString((char) 8206);
f1066c = Character.toString((char) 8207);
f1067d = new b(false);
f1068e = new b(true);
}
public b(boolean z3) {
g gVar = h.f1077a;
this.f1069a = z3;
}
/* JADX WARN: Code restructure failed: missing block: B:33:0x0085, code lost:
return 1;
*/
/* JADX WARN: Code restructure failed: missing block: B:45:0x006e, code lost:
if (r1 != 0) goto L31;
*/
/* JADX WARN: Code restructure failed: missing block: B:46:0x0071, code lost:
if (r2 == 0) goto L33;
*/
/* JADX WARN: Code restructure failed: missing block: B:47:0x0073, code lost:
return r2;
*/
/* JADX WARN: Code restructure failed: missing block: B:49:0x0076, code lost:
if (r0.f1063c <= 0) goto L63;
*/
/* JADX WARN: Code restructure failed: missing block: B:51:0x007c, code lost:
switch(r0.a()) {
case 14: goto L66;
case 15: goto L66;
case 16: goto L65;
case 17: goto L65;
case 18: goto L64;
default: goto L70;
};
*/
/* JADX WARN: Code restructure failed: missing block: B:53:0x0080, code lost:
r3 = r3 + 1;
*/
/* JADX WARN: Code restructure failed: missing block: B:57:0x0083, code lost:
if (r1 != r3) goto L41;
*/
/* JADX WARN: Code restructure failed: missing block: B:58:0x0086, code lost:
r3 = r3 - 1;
*/
/* JADX WARN: Code restructure failed: missing block: B:62:0x0089, code lost:
if (r1 != r3) goto L41;
*/
/* JADX WARN: Code restructure failed: missing block: B:66:0x008c, code lost:
return 0;
*/
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public static int a(java.lang.CharSequence r9) {
/*
M.a r0 = new M.a
r0.<init>(r9)
r9 = 0
r0.f1063c = r9
r1 = r9
r2 = r1
r3 = r2
Lb:
int r4 = r0.f1063c
int r5 = r0.f1062b
r6 = 1
r7 = -1
if (r4 >= r5) goto L6e
if (r1 != 0) goto L6e
java.lang.CharSequence r5 = r0.f1061a
char r4 = r5.charAt(r4)
r0.f1064d = r4
boolean r4 = java.lang.Character.isHighSurrogate(r4)
if (r4 == 0) goto L37
int r4 = r0.f1063c
int r4 = java.lang.Character.codePointAt(r5, r4)
int r5 = r0.f1063c
int r8 = java.lang.Character.charCount(r4)
int r8 = r8 + r5
r0.f1063c = r8
byte r4 = java.lang.Character.getDirectionality(r4)
goto L4b
L37:
int r4 = r0.f1063c
int r4 = r4 + r6
r0.f1063c = r4
char r4 = r0.f1064d
r5 = 1792(0x700, float:2.511E-42)
if (r4 >= r5) goto L47
byte[] r5 = M.a.f1060e
r4 = r5[r4]
goto L4b
L47:
byte r4 = java.lang.Character.getDirectionality(r4)
L4b:
if (r4 == 0) goto L69
if (r4 == r6) goto L66
r5 = 2
if (r4 == r5) goto L66
r5 = 9
if (r4 == r5) goto Lb
switch(r4) {
case 14: goto L62;
case 15: goto L62;
case 16: goto L5e;
case 17: goto L5e;
case 18: goto L5a;
default: goto L59;
}
L59:
goto L6c
L5a:
int r3 = r3 + (-1)
r2 = r9
goto Lb
L5e:
int r3 = r3 + 1
r2 = r6
goto Lb
L62:
int r3 = r3 + 1
r2 = r7
goto Lb
L66:
if (r3 != 0) goto L6c
goto L85
L69:
if (r3 != 0) goto L6c
goto L8b
L6c:
r1 = r3
goto Lb
L6e:
if (r1 != 0) goto L71
goto L8c
L71:
if (r2 == 0) goto L74
return r2
L74:
int r2 = r0.f1063c
if (r2 <= 0) goto L8c
byte r2 = r0.a()
switch(r2) {
case 14: goto L89;
case 15: goto L89;
case 16: goto L83;
case 17: goto L83;
case 18: goto L80;
default: goto L7f;
}
L7f:
goto L74
L80:
int r3 = r3 + 1
goto L74
L83:
if (r1 != r3) goto L86
L85:
return r6
L86:
int r3 = r3 + (-1)
goto L74
L89:
if (r1 != r3) goto L86
L8b:
return r7
L8c:
return r9
*/
throw new UnsupportedOperationException("Method not decompiled: M.b.a(java.lang.CharSequence):int");
}
/* JADX WARN: Code restructure failed: missing block: B:28:0x0034, code lost:
return 1;
*/
/* JADX WARN: Failed to find 'out' block for switch in B:33:0x0020. Please report as an issue. */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public static int b(java.lang.CharSequence r6) {
/*
M.a r0 = new M.a
r0.<init>(r6)
int r6 = r0.f1062b
r0.f1063c = r6
r6 = 0
r1 = r6
Lb:
r2 = r1
Lc:
int r3 = r0.f1063c
if (r3 <= 0) goto L3f
byte r3 = r0.a()
if (r3 == 0) goto L38
r4 = 1
if (r3 == r4) goto L32
r5 = 2
if (r3 == r5) goto L32
r5 = 9
if (r3 == r5) goto Lc
switch(r3) {
case 14: goto L2f;
case 15: goto L2f;
case 16: goto L29;
case 17: goto L29;
case 18: goto L26;
default: goto L23;
}
L23:
if (r2 != 0) goto Lc
goto L3e
L26:
int r1 = r1 + 1
goto Lc
L29:
if (r2 != r1) goto L2c
goto L34
L2c:
int r1 = r1 + (-1)
goto Lc
L2f:
if (r2 != r1) goto L2c
goto L3a
L32:
if (r1 != 0) goto L35
L34:
return r4
L35:
if (r2 != 0) goto Lc
goto L3e
L38:
if (r1 != 0) goto L3c
L3a:
r6 = -1
return r6
L3c:
if (r2 != 0) goto Lc
L3e:
goto Lb
L3f:
return r6
*/
throw new UnsupportedOperationException("Method not decompiled: M.b.b(java.lang.CharSequence):int");
}
public final SpannableStringBuilder c(CharSequence charSequence) {
g gVar = h.f1079c;
if (charSequence == null) {
return null;
}
boolean d4 = gVar.d(charSequence, charSequence.length());
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder();
boolean d5 = (d4 ? h.f1078b : h.f1077a).d(charSequence, charSequence.length());
String str = "";
String str2 = f1066c;
String str3 = f1065b;
boolean z3 = this.f1069a;
spannableStringBuilder.append((CharSequence) ((z3 || !(d5 || a(charSequence) == 1)) ? (!z3 || (d5 && a(charSequence) != -1)) ? "" : str2 : str3));
if (d4 != z3) {
spannableStringBuilder.append(d4 ? (char) 8235 : (char) 8234);
spannableStringBuilder.append(charSequence);
spannableStringBuilder.append((char) 8236);
} else {
spannableStringBuilder.append(charSequence);
}
boolean d6 = (d4 ? h.f1078b : h.f1077a).d(charSequence, charSequence.length());
if (!z3 && (d6 || b(charSequence) == 1)) {
str = str3;
} else if (z3 && (!d6 || b(charSequence) == -1)) {
str = str2;
}
spannableStringBuilder.append((CharSequence) str);
return spannableStringBuilder;
}
}

View File

@@ -0,0 +1,19 @@
package M;
import android.icu.util.ULocale;
import java.util.Locale;
/* loaded from: classes.dex */
public abstract class c {
public static ULocale a(Object obj) {
return ULocale.addLikelySubtags((ULocale) obj);
}
public static ULocale b(Locale locale) {
return ULocale.forLocale(locale);
}
public static String c(Object obj) {
return ((ULocale) obj).getScript();
}
}

View File

@@ -0,0 +1,82 @@
package M;
import android.text.PrecomputedText;
import android.text.TextDirectionHeuristic;
import android.text.TextPaint;
import android.text.TextUtils;
import java.util.Objects;
/* loaded from: classes.dex */
public final class d {
/* renamed from: a, reason: collision with root package name */
public final TextPaint f1070a;
/* renamed from: b, reason: collision with root package name */
public final TextDirectionHeuristic f1071b;
/* renamed from: c, reason: collision with root package name */
public final int f1072c;
/* renamed from: d, reason: collision with root package name */
public final int f1073d;
public d(PrecomputedText.Params params) {
this.f1070a = params.getTextPaint();
this.f1071b = params.getTextDirection();
this.f1072c = params.getBreakStrategy();
this.f1073d = params.getHyphenationFrequency();
}
public final boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof d)) {
return false;
}
d dVar = (d) obj;
if (this.f1072c != dVar.f1072c || this.f1073d != dVar.f1073d) {
return false;
}
TextPaint textPaint = this.f1070a;
float textSize = textPaint.getTextSize();
TextPaint textPaint2 = dVar.f1070a;
if (textSize != textPaint2.getTextSize() || textPaint.getTextScaleX() != textPaint2.getTextScaleX() || textPaint.getTextSkewX() != textPaint2.getTextSkewX() || textPaint.getLetterSpacing() != textPaint2.getLetterSpacing() || !TextUtils.equals(textPaint.getFontFeatureSettings(), textPaint2.getFontFeatureSettings()) || textPaint.getFlags() != textPaint2.getFlags() || !textPaint.getTextLocales().equals(textPaint2.getTextLocales())) {
return false;
}
if (textPaint.getTypeface() == null) {
if (textPaint2.getTypeface() != null) {
return false;
}
} else if (!textPaint.getTypeface().equals(textPaint2.getTypeface())) {
return false;
}
return this.f1071b == dVar.f1071b;
}
public final int hashCode() {
TextPaint textPaint = this.f1070a;
return Objects.hash(Float.valueOf(textPaint.getTextSize()), Float.valueOf(textPaint.getTextScaleX()), Float.valueOf(textPaint.getTextSkewX()), Float.valueOf(textPaint.getLetterSpacing()), Integer.valueOf(textPaint.getFlags()), textPaint.getTextLocales(), textPaint.getTypeface(), Boolean.valueOf(textPaint.isElegantTextHeight()), this.f1071b, Integer.valueOf(this.f1072c), Integer.valueOf(this.f1073d));
}
public final String toString() {
StringBuilder sb = new StringBuilder("{");
StringBuilder sb2 = new StringBuilder("textSize=");
TextPaint textPaint = this.f1070a;
sb2.append(textPaint.getTextSize());
sb.append(sb2.toString());
sb.append(", textScaleX=" + textPaint.getTextScaleX());
sb.append(", textSkewX=" + textPaint.getTextSkewX());
sb.append(", letterSpacing=" + textPaint.getLetterSpacing());
sb.append(", elegantTextHeight=" + textPaint.isElegantTextHeight());
sb.append(", textLocale=" + textPaint.getTextLocales());
sb.append(", typeface=" + textPaint.getTypeface());
sb.append(", variationSettings=" + textPaint.getFontVariationSettings());
sb.append(", textDir=" + this.f1071b);
sb.append(", breakStrategy=" + this.f1072c);
sb.append(", hyphenationFrequency=" + this.f1073d);
sb.append("}");
return sb.toString();
}
}

View File

@@ -0,0 +1,7 @@
package M;
import android.text.Spannable;
/* loaded from: classes.dex */
public abstract class e implements Spannable {
}

View File

@@ -0,0 +1,8 @@
package M;
/* loaded from: classes.dex */
public final class f {
/* renamed from: a, reason: collision with root package name */
public static final f f1074a = new Object();
}

View File

@@ -0,0 +1,212 @@
package M;
import androidx.appcompat.widget.ActionMenuView;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
import g.N;
import l.m;
import l.x;
import m.C0462g;
import m.C0472l;
import x2.o;
/* loaded from: classes.dex */
public final class g implements x, o {
/* renamed from: a, reason: collision with root package name */
public boolean f1075a;
/* renamed from: b, reason: collision with root package name */
public final Object f1076b;
public /* synthetic */ g(Object obj) {
this.f1076b = obj;
}
public boolean a() {
return this.f1075a;
}
@Override // l.x
public void b(m mVar, boolean z3) {
C0472l c0472l;
if (this.f1075a) {
return;
}
this.f1075a = true;
N n4 = (N) this.f1076b;
ActionMenuView actionMenuView = n4.f6556a.f7624a.f2480a;
if (actionMenuView != null && (c0472l = actionMenuView.f2416t) != null) {
c0472l.c();
C0462g c0462g = c0472l.f7693u;
if (c0462g != null && c0462g.b()) {
c0462g.i.dismiss();
}
}
n4.f6557b.onPanelClosed(108, mVar);
this.f1075a = false;
}
/* JADX WARN: Removed duplicated region for block: B:32:0x007e */
/* JADX WARN: Removed duplicated region for block: B:35:0x008c */
@Override // x2.o
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public O.D0 c(android.view.View r11, O.D0 r12, x2.p r13) {
/*
r10 = this;
O.B0 r0 = r12.f1207a
r1 = 7
G.c r1 = r0.f(r1)
r2 = 32
G.c r0 = r0.f(r2)
int r2 = r1.f559b
java.lang.Object r3 = r10.f1076b
com.google.android.material.bottomsheet.BottomSheetBehavior r3 = (com.google.android.material.bottomsheet.BottomSheetBehavior) r3
r3.f5585w = r2
boolean r2 = x2.m.g(r11)
int r4 = r11.getPaddingBottom()
int r5 = r11.getPaddingLeft()
int r6 = r11.getPaddingRight()
boolean r7 = r3.f5578o
if (r7 == 0) goto L32
int r4 = r12.a()
r3.f5584v = r4
int r7 = r13.f8972d
int r4 = r4 + r7
L32:
boolean r7 = r3.p
int r8 = r1.f558a
if (r7 == 0) goto L40
if (r2 == 0) goto L3d
int r5 = r13.f8971c
goto L3f
L3d:
int r5 = r13.f8969a
L3f:
int r5 = r5 + r8
L40:
boolean r7 = r3.f5579q
int r9 = r1.f560c
if (r7 == 0) goto L4f
if (r2 == 0) goto L4b
int r13 = r13.f8969a
goto L4d
L4b:
int r13 = r13.f8971c
L4d:
int r6 = r13 + r9
L4f:
android.view.ViewGroup$LayoutParams r13 = r11.getLayoutParams()
android.view.ViewGroup$MarginLayoutParams r13 = (android.view.ViewGroup.MarginLayoutParams) r13
boolean r2 = r3.f5581s
r7 = 1
if (r2 == 0) goto L62
int r2 = r13.leftMargin
if (r2 == r8) goto L62
r13.leftMargin = r8
r2 = r7
goto L63
L62:
r2 = 0
L63:
boolean r8 = r3.f5582t
if (r8 == 0) goto L6e
int r8 = r13.rightMargin
if (r8 == r9) goto L6e
r13.rightMargin = r9
r2 = r7
L6e:
boolean r8 = r3.f5583u
if (r8 == 0) goto L7b
int r8 = r13.topMargin
int r1 = r1.f559b
if (r8 == r1) goto L7b
r13.topMargin = r1
goto L7c
L7b:
r7 = r2
L7c:
if (r7 == 0) goto L81
r11.setLayoutParams(r13)
L81:
int r13 = r11.getPaddingTop()
r11.setPadding(r5, r13, r6, r4)
boolean r10 = r10.f1075a
if (r10 == 0) goto L90
int r11 = r0.f561d
r3.f5576m = r11
L90:
boolean r11 = r3.f5578o
if (r11 != 0) goto L98
if (r10 == 0) goto L97
goto L98
L97:
return r12
L98:
r3.O()
return r12
*/
throw new UnsupportedOperationException("Method not decompiled: M.g.c(android.view.View, O.D0, x2.p):O.D0");
}
public boolean d(CharSequence charSequence, int i) {
if (charSequence == null || i < 0 || charSequence.length() - i < 0) {
throw new IllegalArgumentException();
}
if (((f) this.f1076b) == null) {
return a();
}
char c4 = 2;
for (int i4 = 0; i4 < i && c4 == 2; i4++) {
byte directionality = Character.getDirectionality(charSequence.charAt(i4));
g gVar = h.f1077a;
if (directionality != 0) {
if (directionality != 1 && directionality != 2) {
switch (directionality) {
case 14:
case 15:
break;
case 16:
case 17:
break;
default:
c4 = 2;
break;
}
}
c4 = 0;
}
c4 = 1;
}
if (c4 == 0) {
return true;
}
if (c4 != 1) {
return a();
}
return false;
}
@Override // l.x
public boolean f(m mVar) {
((N) this.f1076b).f6557b.onMenuOpened(108, mVar);
return true;
}
public g(f fVar, boolean z3) {
this(fVar);
this.f1075a = z3;
}
public g(boolean z3, String str) {
this.f1075a = z3;
this.f1076b = str;
}
public g(BottomSheetBehavior bottomSheetBehavior, boolean z3) {
this.f1076b = bottomSheetBehavior;
this.f1075a = z3;
}
}

View File

@@ -0,0 +1,23 @@
package M;
/* loaded from: classes.dex */
public abstract class h {
/* renamed from: a, reason: collision with root package name */
public static final g f1077a = new g((f) null, false);
/* renamed from: b, reason: collision with root package name */
public static final g f1078b = new g((f) null, true);
/* renamed from: c, reason: collision with root package name */
public static final g f1079c;
/* renamed from: d, reason: collision with root package name */
public static final g f1080d;
static {
f fVar = f.f1074a;
f1079c = new g(fVar, false);
f1080d = new g(fVar, true);
}
}