CrackMe.apk
Download file
package okhttp3.internal.platform.android;
import android.util.Log;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.CopyOnWriteArraySet;
import java.util.logging.Level;
import java.util.logging.Logger;
import kotlin.Metadata;
import kotlin.collections.MapsKt;
import kotlin.jvm.internal.Intrinsics;
import kotlin.text.StringsKt;
import okhttp3.OkHttpClient;
import okhttp3.internal.concurrent.TaskRunner;
import okhttp3.internal.http2.Http2;
@Metadata(bv = {1, 0, 3}, d1 = {"\u00006\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\b\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010$\n\u0002\u0010\u000e\n\u0000\n\u0002\u0010\u0002\n\u0002\b\u0004\n\u0002\u0010\u0003\n\u0002\b\u0007\bÇ\u0002\u0018\u00002\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002J/\u0010\u000b\u001a\u00020\f2\u0006\u0010\r\u001a\u00020\n2\u0006\u0010\u000e\u001a\u00020\u00042\u0006\u0010\u000f\u001a\u00020\n2\b\u0010\u0010\u001a\u0004\u0018\u00010\u0011H\u0000¢\u0006\u0002\b\u0012J\u0006\u0010\u0013\u001a\u00020\fJ\u0018\u0010\u0014\u001a\u00020\f2\u0006\u0010\u0015\u001a\u00020\n2\u0006\u0010\u0016\u001a\u00020\nH\u0002J\u0010\u0010\u0017\u001a\u00020\n2\u0006\u0010\r\u001a\u00020\nH\u0002R\u000e\u0010\u0003\u001a\u00020\u0004XT¢\u0006\u0002\n\u0000R\u0014\u0010\u0005\u001a\b\u0012\u0004\u0012\u00020\u00070\u0006X\u0004¢\u0006\u0002\n\u0000R\u001a\u0010\b\u001a\u000e\u0012\u0004\u0012\u00020\n\u0012\u0004\u0012\u00020\n0\tX\u0004¢\u0006\u0002\n\u0000¨\u0006\u0018"}, d2 = {"Lokhttp3/internal/platform/android/AndroidLog;", "", "()V", "MAX_LOG_LENGTH", "", "configuredLoggers", "Ljava/util/concurrent/CopyOnWriteArraySet;", "Ljava/util/logging/Logger;", "knownLoggers", "", "", "androidLog", "", "loggerName", "logLevel", "message", "t", "", "androidLog$okhttp", "enable", "enableLogging", "logger", "tag", "loggerTag", "okhttp"}, k = 1, mv = {1, 4, 0})
/* compiled from: AndroidLog.kt */
public final class AndroidLog {
public static final AndroidLog INSTANCE = new AndroidLog();
private static final int MAX_LOG_LENGTH = 4000;
private static final CopyOnWriteArraySet<Logger> configuredLoggers = new CopyOnWriteArraySet<>();
private static final Map<String, String> knownLoggers;
static {
LinkedHashMap linkedHashMap = new LinkedHashMap();
Package packageR = OkHttpClient.class.getPackage();
String name = packageR != null ? packageR.getName() : null;
if (name != null) {
linkedHashMap.put(name, "OkHttp");
}
Map map = linkedHashMap;
String name2 = OkHttpClient.class.getName();
Intrinsics.checkNotNullExpressionValue(name2, "OkHttpClient::class.java.name");
map.put(name2, "okhttp.OkHttpClient");
String name3 = Http2.class.getName();
Intrinsics.checkNotNullExpressionValue(name3, "Http2::class.java.name");
map.put(name3, "okhttp.Http2");
String name4 = TaskRunner.class.getName();
Intrinsics.checkNotNullExpressionValue(name4, "TaskRunner::class.java.name");
map.put(name4, "okhttp.TaskRunner");
map.put("okhttp3.mockwebserver.MockWebServer", "okhttp.MockWebServer");
knownLoggers = MapsKt.toMap(map);
}
private AndroidLog() {
}
public final void androidLog$okhttp(String str, int i, String str2, Throwable th) {
int min;
Intrinsics.checkNotNullParameter(str, "loggerName");
Intrinsics.checkNotNullParameter(str2, "message");
String loggerTag = loggerTag(str);
if (Log.isLoggable(loggerTag, i)) {
if (th != null) {
str2 = str2 + "\n" + Log.getStackTraceString(th);
}
int i2 = 0;
int length = str2.length();
while (i2 < length) {
int indexOf$default = StringsKt.indexOf$default((CharSequence) str2, 10, i2, false, 4, (Object) null);
if (indexOf$default == -1) {
indexOf$default = length;
}
while (true) {
min = Math.min(indexOf$default, i2 + MAX_LOG_LENGTH);
Objects.requireNonNull(str2, "null cannot be cast to non-null type java.lang.String");
String substring = str2.substring(i2, min);
Intrinsics.checkNotNullExpressionValue(substring, "(this as java.lang.Strin…ing(startIndex, endIndex)");
Log.println(i, loggerTag, substring);
if (min >= indexOf$default) {
break;
}
i2 = min;
}
i2 = min + 1;
}
}
}
private final String loggerTag(String str) {
String str2 = knownLoggers.get(str);
return str2 != null ? str2 : StringsKt.take(str, 23);
}
public final void enable() {
for (Map.Entry next : knownLoggers.entrySet()) {
enableLogging((String) next.getKey(), (String) next.getValue());
}
}
private final void enableLogging(String str, String str2) {
Level level;
Logger logger = Logger.getLogger(str);
if (configuredLoggers.add(logger)) {
Intrinsics.checkNotNullExpressionValue(logger, "logger");
logger.setUseParentHandlers(false);
if (Log.isLoggable(str2, 3)) {
level = Level.FINE;
} else if (Log.isLoggable(str2, 4)) {
level = Level.INFO;
} else {
level = Level.WARNING;
}
logger.setLevel(level);
logger.addHandler(AndroidLogHandler.INSTANCE);
}
}
}
Download file