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:
223
apk_decompiled/sources/kotlin/text/CharsKt__CharJVMKt.java
Normal file
223
apk_decompiled/sources/kotlin/text/CharsKt__CharJVMKt.java
Normal 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\b¨\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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user