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,223 @@
package kotlin.text;
import C.w;
import java.util.Locale;
import kotlin.Deprecated;
import kotlin.DeprecatedSinceKotlin;
import kotlin.ExperimentalStdlibApi;
import kotlin.Metadata;
import kotlin.PublishedApi;
import kotlin.ReplaceWith;
import kotlin.SinceKotlin;
import kotlin.WasExperimental;
import kotlin.internal.InlineOnly;
import kotlin.jvm.internal.Intrinsics;
import kotlin.ranges.IntRange;
/* JADX INFO: Access modifiers changed from: package-private */
@Metadata(d1 = {"\u00004\n\u0000\n\u0002\u0018\u0002\n\u0002\u0010\f\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\b\n\u0002\b\u0004\n\u0002\u0010\u000b\n\u0002\b\u000e\n\u0002\u0010\u000e\n\u0000\n\u0002\u0018\u0002\n\u0002\b\t\u001a\u0010\u0010\t\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\nH\u0001\u001a\u0018\u0010\f\u001a\u00020\n2\u0006\u0010\r\u001a\u00020\u00022\u0006\u0010\u000b\u001a\u00020\nH\u0000\u001a\r\u0010\u000e\u001a\u00020\u000f*\u00020\u0002H\u0087\b\u001a\r\u0010\u0010\u001a\u00020\u000f*\u00020\u0002H\u0087\b\u001a\r\u0010\u0011\u001a\u00020\u000f*\u00020\u0002H\u0087\b\u001a\r\u0010\u0012\u001a\u00020\u000f*\u00020\u0002H\u0087\b\u001a\r\u0010\u0013\u001a\u00020\u000f*\u00020\u0002H\u0087\b\u001a\r\u0010\u0014\u001a\u00020\u000f*\u00020\u0002H\u0087\b\u001a\r\u0010\u0015\u001a\u00020\u000f*\u00020\u0002H\u0087\b\u001a\r\u0010\u0016\u001a\u00020\u000f*\u00020\u0002H\u0087\b\u001a\r\u0010\u0017\u001a\u00020\u000f*\u00020\u0002H\u0087\b\u001a\r\u0010\u0018\u001a\u00020\u000f*\u00020\u0002H\u0087\b\u001a\r\u0010\u0019\u001a\u00020\u000f*\u00020\u0002H\u0087\b\u001a\r\u0010\u001a\u001a\u00020\u000f*\u00020\u0002H\u0087\b\u001a\r\u0010\u001b\u001a\u00020\u000f*\u00020\u0002H\u0087\b\u001a\n\u0010\u001c\u001a\u00020\u000f*\u00020\u0002\u001a\r\u0010\u001d\u001a\u00020\u001e*\u00020\u0002H\u0087\b\u001a\u0014\u0010\u001d\u001a\u00020\u001e*\u00020\u00022\u0006\u0010\u001f\u001a\u00020 H\u0007\u001a\r\u0010!\u001a\u00020\u0002*\u00020\u0002H\u0087\b\u001a\u0014\u0010\"\u001a\u00020\u001e*\u00020\u00022\u0006\u0010\u001f\u001a\u00020 H\u0007\u001a\r\u0010#\u001a\u00020\u0002*\u00020\u0002H\u0087\b\u001a\r\u0010$\u001a\u00020\u0002*\u00020\u0002H\u0087\b\u001a\r\u0010%\u001a\u00020\u0002*\u00020\u0002H\u0087\b\u001a\r\u0010&\u001a\u00020\u0002*\u00020\u0002H\u0087\b\u001a\r\u0010'\u001a\u00020\u001e*\u00020\u0002H\u0087\b\u001a\u0014\u0010'\u001a\u00020\u001e*\u00020\u00022\u0006\u0010\u001f\u001a\u00020 H\u0007\u001a\r\u0010(\u001a\u00020\u0002*\u00020\u0002H\u0087\b\"\u0015\u0010\u0000\u001a\u00020\u0001*\u00020\u00028F¢\u0006\u0006\u001a\u0004\b\u0003\u0010\u0004\"\u0015\u0010\u0005\u001a\u00020\u0006*\u00020\u00028F¢\u0006\u0006\u001a\u0004\b\u0007\u0010\\u0006)"}, d2 = {"category", "Lkotlin/text/CharCategory;", "", "getCategory", "(C)Lkotlin/text/CharCategory;", "directionality", "Lkotlin/text/CharDirectionality;", "getDirectionality", "(C)Lkotlin/text/CharDirectionality;", "checkRadix", "", "radix", "digitOf", "char", "isDefined", "", "isDigit", "isHighSurrogate", "isISOControl", "isIdentifierIgnorable", "isJavaIdentifierPart", "isJavaIdentifierStart", "isLetter", "isLetterOrDigit", "isLowSurrogate", "isLowerCase", "isTitleCase", "isUpperCase", "isWhitespace", "lowercase", "", "locale", "Ljava/util/Locale;", "lowercaseChar", "titlecase", "titlecaseChar", "toLowerCase", "toTitleCase", "toUpperCase", "uppercase", "uppercaseChar", "kotlin-stdlib"}, k = 5, mv = {1, 9, 0}, xi = 49, xs = "kotlin/text/CharsKt")
/* loaded from: classes3.dex */
public class CharsKt__CharJVMKt {
@PublishedApi
public static int checkRadix(int i) {
if (new IntRange(2, 36).contains(i)) {
return i;
}
StringBuilder t2 = w.t(i, "radix ", " was not in valid range ");
t2.append(new IntRange(2, 36));
throw new IllegalArgumentException(t2.toString());
}
public static final int digitOf(char c4, int i) {
return Character.digit((int) c4, i);
}
public static final CharCategory getCategory(char c4) {
return CharCategory.INSTANCE.valueOf(Character.getType(c4));
}
public static final CharDirectionality getDirectionality(char c4) {
return CharDirectionality.INSTANCE.valueOf(Character.getDirectionality(c4));
}
@InlineOnly
private static final boolean isDefined(char c4) {
return Character.isDefined(c4);
}
@InlineOnly
private static final boolean isDigit(char c4) {
return Character.isDigit(c4);
}
@InlineOnly
private static final boolean isHighSurrogate(char c4) {
return Character.isHighSurrogate(c4);
}
@InlineOnly
private static final boolean isISOControl(char c4) {
return Character.isISOControl(c4);
}
@InlineOnly
private static final boolean isIdentifierIgnorable(char c4) {
return Character.isIdentifierIgnorable(c4);
}
@InlineOnly
private static final boolean isJavaIdentifierPart(char c4) {
return Character.isJavaIdentifierPart(c4);
}
@InlineOnly
private static final boolean isJavaIdentifierStart(char c4) {
return Character.isJavaIdentifierStart(c4);
}
@InlineOnly
private static final boolean isLetter(char c4) {
return Character.isLetter(c4);
}
@InlineOnly
private static final boolean isLetterOrDigit(char c4) {
return Character.isLetterOrDigit(c4);
}
@InlineOnly
private static final boolean isLowSurrogate(char c4) {
return Character.isLowSurrogate(c4);
}
@InlineOnly
private static final boolean isLowerCase(char c4) {
return Character.isLowerCase(c4);
}
@InlineOnly
private static final boolean isTitleCase(char c4) {
return Character.isTitleCase(c4);
}
@InlineOnly
private static final boolean isUpperCase(char c4) {
return Character.isUpperCase(c4);
}
public static boolean isWhitespace(char c4) {
return Character.isWhitespace(c4) || Character.isSpaceChar(c4);
}
@SinceKotlin(version = "1.5")
@WasExperimental(markerClass = {ExperimentalStdlibApi.class})
@InlineOnly
private static final String lowercase(char c4) {
String valueOf = String.valueOf(c4);
Intrinsics.checkNotNull(valueOf, "null cannot be cast to non-null type java.lang.String");
String lowerCase = valueOf.toLowerCase(Locale.ROOT);
Intrinsics.checkNotNullExpressionValue(lowerCase, "toLowerCase(...)");
return lowerCase;
}
@SinceKotlin(version = "1.5")
@WasExperimental(markerClass = {ExperimentalStdlibApi.class})
@InlineOnly
private static final char lowercaseChar(char c4) {
return Character.toLowerCase(c4);
}
@SinceKotlin(version = "1.5")
@WasExperimental(markerClass = {ExperimentalStdlibApi.class})
public static final String titlecase(char c4, Locale locale) {
Intrinsics.checkNotNullParameter(locale, "locale");
String uppercase = uppercase(c4, locale);
if (uppercase.length() <= 1) {
String valueOf = String.valueOf(c4);
Intrinsics.checkNotNull(valueOf, "null cannot be cast to non-null type java.lang.String");
String upperCase = valueOf.toUpperCase(Locale.ROOT);
Intrinsics.checkNotNullExpressionValue(upperCase, "toUpperCase(...)");
if (Intrinsics.areEqual(uppercase, upperCase)) {
return String.valueOf(Character.toTitleCase(c4));
}
} else if (c4 != 329) {
char charAt = uppercase.charAt(0);
Intrinsics.checkNotNull(uppercase, "null cannot be cast to non-null type java.lang.String");
String substring = uppercase.substring(1);
Intrinsics.checkNotNullExpressionValue(substring, "substring(...)");
Intrinsics.checkNotNull(substring, "null cannot be cast to non-null type java.lang.String");
String lowerCase = substring.toLowerCase(Locale.ROOT);
Intrinsics.checkNotNullExpressionValue(lowerCase, "toLowerCase(...)");
return charAt + lowerCase;
}
return uppercase;
}
@SinceKotlin(version = "1.5")
@WasExperimental(markerClass = {ExperimentalStdlibApi.class})
@InlineOnly
private static final char titlecaseChar(char c4) {
return Character.toTitleCase(c4);
}
@Deprecated(message = "Use lowercaseChar() instead.", replaceWith = @ReplaceWith(expression = "lowercaseChar()", imports = {}))
@DeprecatedSinceKotlin(warningSince = "1.5")
@InlineOnly
private static final char toLowerCase(char c4) {
return Character.toLowerCase(c4);
}
@Deprecated(message = "Use titlecaseChar() instead.", replaceWith = @ReplaceWith(expression = "titlecaseChar()", imports = {}))
@DeprecatedSinceKotlin(warningSince = "1.5")
@InlineOnly
private static final char toTitleCase(char c4) {
return Character.toTitleCase(c4);
}
@Deprecated(message = "Use uppercaseChar() instead.", replaceWith = @ReplaceWith(expression = "uppercaseChar()", imports = {}))
@DeprecatedSinceKotlin(warningSince = "1.5")
@InlineOnly
private static final char toUpperCase(char c4) {
return Character.toUpperCase(c4);
}
@SinceKotlin(version = "1.5")
@WasExperimental(markerClass = {ExperimentalStdlibApi.class})
@InlineOnly
private static final String uppercase(char c4) {
String valueOf = String.valueOf(c4);
Intrinsics.checkNotNull(valueOf, "null cannot be cast to non-null type java.lang.String");
String upperCase = valueOf.toUpperCase(Locale.ROOT);
Intrinsics.checkNotNullExpressionValue(upperCase, "toUpperCase(...)");
return upperCase;
}
@SinceKotlin(version = "1.5")
@WasExperimental(markerClass = {ExperimentalStdlibApi.class})
@InlineOnly
private static final char uppercaseChar(char c4) {
return Character.toUpperCase(c4);
}
@SinceKotlin(version = "1.5")
@WasExperimental(markerClass = {ExperimentalStdlibApi.class})
public static final String lowercase(char c4, Locale locale) {
Intrinsics.checkNotNullParameter(locale, "locale");
String valueOf = String.valueOf(c4);
Intrinsics.checkNotNull(valueOf, "null cannot be cast to non-null type java.lang.String");
String lowerCase = valueOf.toLowerCase(locale);
Intrinsics.checkNotNullExpressionValue(lowerCase, "toLowerCase(...)");
return lowerCase;
}
@SinceKotlin(version = "1.5")
@WasExperimental(markerClass = {ExperimentalStdlibApi.class})
public static final String uppercase(char c4, Locale locale) {
Intrinsics.checkNotNullParameter(locale, "locale");
String valueOf = String.valueOf(c4);
Intrinsics.checkNotNull(valueOf, "null cannot be cast to non-null type java.lang.String");
String upperCase = valueOf.toUpperCase(locale);
Intrinsics.checkNotNullExpressionValue(upperCase, "toUpperCase(...)");
return upperCase;
}
}