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,449 @@
package m;
import a.AbstractC0106b;
import android.R;
import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.graphics.PorterDuff;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.Parcelable;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.widget.ListAdapter;
import android.widget.Spinner;
import android.widget.SpinnerAdapter;
import android.widget.ThemedSpinnerAdapter;
import androidx.recyclerview.widget.C0207b;
import l.ViewTreeObserverOnGlobalLayoutListenerC0426d;
/* loaded from: classes.dex */
public final class N extends Spinner {
public static final int[] i = {R.attr.spinnerMode};
/* renamed from: a, reason: collision with root package name */
public final C0207b f7590a;
/* renamed from: b, reason: collision with root package name */
public final Context f7591b;
/* renamed from: c, reason: collision with root package name */
public final C0447F f7592c;
/* renamed from: d, reason: collision with root package name */
public SpinnerAdapter f7593d;
/* renamed from: e, reason: collision with root package name */
public final boolean f7594e;
/* renamed from: f, reason: collision with root package name */
public final M f7595f;
/* renamed from: g, reason: collision with root package name */
public int f7596g;
public final Rect h;
/* JADX WARN: Code restructure failed: missing block: B:29:0x0060, code lost:
if (r7 == null) goto L24;
*/
/* JADX WARN: Removed duplicated region for block: B:34:0x00d7 */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public N(android.content.Context r13, android.util.AttributeSet r14) {
/*
r12 = this;
r0 = 2130904166(0x7f030466, float:1.741517E38)
r12.<init>(r13, r14, r0)
android.graphics.Rect r1 = new android.graphics.Rect
r1.<init>()
r12.h = r1
android.content.Context r1 = r12.getContext()
m.K0.a(r12, r1)
int[] r1 = f.AbstractC0336a.f6439u
R0.h r2 = R0.h.l(r13, r14, r1, r0)
androidx.recyclerview.widget.b r3 = new androidx.recyclerview.widget.b
r3.<init>(r12)
r12.f7590a = r3
java.lang.Object r3 = r2.f1414b
android.content.res.TypedArray r3 = (android.content.res.TypedArray) r3
r4 = 4
r5 = 0
int r4 = r3.getResourceId(r4, r5)
if (r4 == 0) goto L35
k.d r6 = new k.d
r6.<init>(r13, r4)
r12.f7591b = r6
goto L37
L35:
r12.f7591b = r13
L37:
r4 = -1
r6 = 0
int[] r7 = m.N.i // Catch: java.lang.Throwable -> L54 java.lang.Exception -> L57
android.content.res.TypedArray r7 = r13.obtainStyledAttributes(r14, r7, r0, r5) // Catch: java.lang.Throwable -> L54 java.lang.Exception -> L57
boolean r8 = r7.hasValue(r5) // Catch: java.lang.Throwable -> L4a java.lang.Exception -> L4e
if (r8 == 0) goto L50
int r4 = r7.getInt(r5, r5) // Catch: java.lang.Throwable -> L4a java.lang.Exception -> L4e
goto L50
L4a:
r12 = move-exception
r6 = r7
goto Ld5
L4e:
r8 = move-exception
goto L59
L50:
r7.recycle()
goto L63
L54:
r12 = move-exception
goto Ld5
L57:
r8 = move-exception
r7 = r6
L59:
java.lang.String r9 = "AppCompatSpinner"
java.lang.String r10 = "Could not read android:spinnerMode"
android.util.Log.i(r9, r10, r8) // Catch: java.lang.Throwable -> L4a
if (r7 == 0) goto L63
goto L50
L63:
r7 = 2
r8 = 1
if (r4 == 0) goto L9d
if (r4 == r8) goto L6a
goto Laa
L6a:
m.K r4 = new m.K
android.content.Context r9 = r12.f7591b
r4.<init>(r12, r9, r14)
android.content.Context r9 = r12.f7591b
R0.h r1 = R0.h.l(r9, r14, r1, r0)
r9 = 3
r10 = -2
java.lang.Object r11 = r1.f1414b
android.content.res.TypedArray r11 = (android.content.res.TypedArray) r11
int r9 = r11.getLayoutDimension(r9, r10)
r12.f7596g = r9
android.graphics.drawable.Drawable r9 = r1.f(r8)
r4.h(r9)
java.lang.String r7 = r3.getString(r7)
r4.f7576A = r7
r1.n()
r12.f7595f = r4
m.F r1 = new m.F
r1.<init>(r12, r12, r4)
r12.f7592c = r1
goto Laa
L9d:
m.H r1 = new m.H
r1.<init>(r12)
r12.f7595f = r1
java.lang.String r4 = r3.getString(r7)
r1.f7529c = r4
Laa:
java.lang.CharSequence[] r1 = r3.getTextArray(r5)
if (r1 == 0) goto Lc1
android.widget.ArrayAdapter r3 = new android.widget.ArrayAdapter
r4 = 17367048(0x1090008, float:2.5162948E-38)
r3.<init>(r13, r4, r1)
r13 = 2131493046(0x7f0c00b6, float:1.8609561E38)
r3.setDropDownViewResource(r13)
r12.setAdapter(r3)
Lc1:
r2.n()
r12.f7594e = r8
android.widget.SpinnerAdapter r13 = r12.f7593d
if (r13 == 0) goto Lcf
r12.setAdapter(r13)
r12.f7593d = r6
Lcf:
androidx.recyclerview.widget.b r12 = r12.f7590a
r12.k(r14, r0)
return
Ld5:
if (r6 == 0) goto Lda
r6.recycle()
Lda:
throw r12
*/
throw new UnsupportedOperationException("Method not decompiled: m.N.<init>(android.content.Context, android.util.AttributeSet):void");
}
public final int a(SpinnerAdapter spinnerAdapter, Drawable drawable) {
int i4 = 0;
if (spinnerAdapter == null) {
return 0;
}
int makeMeasureSpec = View.MeasureSpec.makeMeasureSpec(getMeasuredWidth(), 0);
int makeMeasureSpec2 = View.MeasureSpec.makeMeasureSpec(getMeasuredHeight(), 0);
int max = Math.max(0, getSelectedItemPosition());
int min = Math.min(spinnerAdapter.getCount(), max + 15);
View view = null;
int i5 = 0;
for (int max2 = Math.max(0, max - (15 - (min - max))); max2 < min; max2++) {
int itemViewType = spinnerAdapter.getItemViewType(max2);
if (itemViewType != i4) {
view = null;
i4 = itemViewType;
}
view = spinnerAdapter.getView(max2, view, this);
if (view.getLayoutParams() == null) {
view.setLayoutParams(new ViewGroup.LayoutParams(-2, -2));
}
view.measure(makeMeasureSpec, makeMeasureSpec2);
i5 = Math.max(i5, view.getMeasuredWidth());
}
if (drawable == null) {
return i5;
}
Rect rect = this.h;
drawable.getPadding(rect);
return rect.left + rect.right + i5;
}
@Override // android.view.ViewGroup, android.view.View
public final void drawableStateChanged() {
super.drawableStateChanged();
C0207b c0207b = this.f7590a;
if (c0207b != null) {
c0207b.a();
}
}
@Override // android.widget.Spinner
public int getDropDownHorizontalOffset() {
M m4 = this.f7595f;
return m4 != null ? m4.b() : super.getDropDownHorizontalOffset();
}
@Override // android.widget.Spinner
public int getDropDownVerticalOffset() {
M m4 = this.f7595f;
return m4 != null ? m4.n() : super.getDropDownVerticalOffset();
}
@Override // android.widget.Spinner
public int getDropDownWidth() {
return this.f7595f != null ? this.f7596g : super.getDropDownWidth();
}
public final M getInternalPopup() {
return this.f7595f;
}
@Override // android.widget.Spinner
public Drawable getPopupBackground() {
M m4 = this.f7595f;
return m4 != null ? m4.d() : super.getPopupBackground();
}
@Override // android.widget.Spinner
public Context getPopupContext() {
return this.f7591b;
}
@Override // android.widget.Spinner
public CharSequence getPrompt() {
M m4 = this.f7595f;
return m4 != null ? m4.o() : super.getPrompt();
}
public ColorStateList getSupportBackgroundTintList() {
C0207b c0207b = this.f7590a;
if (c0207b != null) {
return c0207b.h();
}
return null;
}
public PorterDuff.Mode getSupportBackgroundTintMode() {
C0207b c0207b = this.f7590a;
if (c0207b != null) {
return c0207b.i();
}
return null;
}
@Override // android.widget.Spinner, android.widget.AdapterView, android.view.ViewGroup, android.view.View
public final void onDetachedFromWindow() {
super.onDetachedFromWindow();
M m4 = this.f7595f;
if (m4 == null || !m4.a()) {
return;
}
m4.dismiss();
}
@Override // android.widget.Spinner, android.widget.AbsSpinner, android.view.View
public final void onMeasure(int i4, int i5) {
super.onMeasure(i4, i5);
if (this.f7595f == null || View.MeasureSpec.getMode(i4) != Integer.MIN_VALUE) {
return;
}
setMeasuredDimension(Math.min(Math.max(getMeasuredWidth(), a(getAdapter(), getBackground())), View.MeasureSpec.getSize(i4)), getMeasuredHeight());
}
@Override // android.widget.Spinner, android.widget.AbsSpinner, android.view.View
public final void onRestoreInstanceState(Parcelable parcelable) {
ViewTreeObserver viewTreeObserver;
L l4 = (L) parcelable;
super.onRestoreInstanceState(l4.getSuperState());
if (!l4.f7588a || (viewTreeObserver = getViewTreeObserver()) == null) {
return;
}
viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserverOnGlobalLayoutListenerC0426d(this, 2));
}
/* JADX WARN: Type inference failed for: r0v0, types: [android.view.View$BaseSavedState, android.os.Parcelable, m.L] */
@Override // android.widget.Spinner, android.widget.AbsSpinner, android.view.View
public final Parcelable onSaveInstanceState() {
?? baseSavedState = new View.BaseSavedState(super.onSaveInstanceState());
M m4 = this.f7595f;
baseSavedState.f7588a = m4 != null && m4.a();
return baseSavedState;
}
@Override // android.widget.Spinner, android.view.View
public final boolean onTouchEvent(MotionEvent motionEvent) {
C0447F c0447f = this.f7592c;
if (c0447f == null || !c0447f.onTouch(this, motionEvent)) {
return super.onTouchEvent(motionEvent);
}
return true;
}
@Override // android.widget.Spinner, android.view.View
public final boolean performClick() {
M m4 = this.f7595f;
if (m4 == null) {
return super.performClick();
}
if (m4.a()) {
return true;
}
this.f7595f.l(getTextDirection(), getTextAlignment());
return true;
}
@Override // android.view.View
public void setBackgroundDrawable(Drawable drawable) {
super.setBackgroundDrawable(drawable);
C0207b c0207b = this.f7590a;
if (c0207b != null) {
c0207b.m();
}
}
@Override // android.view.View
public void setBackgroundResource(int i4) {
super.setBackgroundResource(i4);
C0207b c0207b = this.f7590a;
if (c0207b != null) {
c0207b.n(i4);
}
}
@Override // android.widget.Spinner
public void setDropDownHorizontalOffset(int i4) {
M m4 = this.f7595f;
if (m4 == null) {
super.setDropDownHorizontalOffset(i4);
} else {
m4.j(i4);
m4.k(i4);
}
}
@Override // android.widget.Spinner
public void setDropDownVerticalOffset(int i4) {
M m4 = this.f7595f;
if (m4 != null) {
m4.i(i4);
} else {
super.setDropDownVerticalOffset(i4);
}
}
@Override // android.widget.Spinner
public void setDropDownWidth(int i4) {
if (this.f7595f != null) {
this.f7596g = i4;
} else {
super.setDropDownWidth(i4);
}
}
@Override // android.widget.Spinner
public void setPopupBackgroundDrawable(Drawable drawable) {
M m4 = this.f7595f;
if (m4 != null) {
m4.h(drawable);
} else {
super.setPopupBackgroundDrawable(drawable);
}
}
@Override // android.widget.Spinner
public void setPopupBackgroundResource(int i4) {
setPopupBackgroundDrawable(AbstractC0106b.m(getPopupContext(), i4));
}
@Override // android.widget.Spinner
public void setPrompt(CharSequence charSequence) {
M m4 = this.f7595f;
if (m4 != null) {
m4.g(charSequence);
} else {
super.setPrompt(charSequence);
}
}
public void setSupportBackgroundTintList(ColorStateList colorStateList) {
C0207b c0207b = this.f7590a;
if (c0207b != null) {
c0207b.s(colorStateList);
}
}
public void setSupportBackgroundTintMode(PorterDuff.Mode mode) {
C0207b c0207b = this.f7590a;
if (c0207b != null) {
c0207b.t(mode);
}
}
/* JADX WARN: Multi-variable type inference failed */
/* JADX WARN: Type inference failed for: r3v1, types: [android.widget.ListAdapter, m.I, java.lang.Object] */
@Override // android.widget.AdapterView
public void setAdapter(SpinnerAdapter spinnerAdapter) {
if (!this.f7594e) {
this.f7593d = spinnerAdapter;
return;
}
super.setAdapter(spinnerAdapter);
M m4 = this.f7595f;
if (m4 != 0) {
Context context = this.f7591b;
if (context == null) {
context = getContext();
}
Resources.Theme theme = context.getTheme();
?? obj = new Object();
obj.f7531a = spinnerAdapter;
if (spinnerAdapter instanceof ListAdapter) {
obj.f7532b = (ListAdapter) spinnerAdapter;
}
if (theme != null && (spinnerAdapter instanceof ThemedSpinnerAdapter)) {
AbstractC0448G.a((ThemedSpinnerAdapter) spinnerAdapter, theme);
}
m4.p(obj);
}
}
}