正在查看: 万能钥匙 v1.1.23 应用的 FinFileResourceUtil.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: 万能钥匙 v1.1.23 应用的 FinFileResourceUtil.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.finogeeks.lib.applet.utils;
import android.content.Context;
import android.net.Uri;
import android.webkit.WebResourceResponse;
import com.finogeeks.lib.applet.appletdir.AppletTempDirProvider;
import com.finogeeks.lib.applet.config.AppConfig;
import com.finogeeks.lib.applet.main.host.Host;
import com.finogeeks.lib.applet.modules.log.FLog;
import com.finogeeks.mop.plugins.externallibs.brotli.dec.BrotliInputStream;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.lang.reflect.Constructor;
import java.nio.charset.Charset;
import java.util.HashMap;
import kotlin.Metadata;
import kotlin.Pair;
@Metadata(d1 = {"\u0000b\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000e\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\u0011\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0006\n\u0002\u0018\u0002\n\u0002\b\u000b\n\u0002\u0018\u0002\n\u0002\b\u0007\bÆ\u0002\u0018\u00002\u00020\u0001B\t\b\u0002¢\u0006\u0004\b\u0002\u0010\u0003J#\u0010\t\u001a\u0004\u0018\u00010\b2\u0006\u0010\u0005\u001a\u00020\u00042\b\u0010\u0007\u001a\u0004\u0018\u00010\u0006H\u0007¢\u0006\u0004\b\t\u0010\nJ!\u0010\u000b\u001a\u0004\u0018\u00010\b2\u0006\u0010\u0005\u001a\u00020\u00042\u0006\u0010\u0007\u001a\u00020\u0006H\u0002¢\u0006\u0004\b\u000b\u0010\nJ\u0017\u0010\u000e\u001a\u00020\r2\u0006\u0010\f\u001a\u00020\bH\u0002¢\u0006\u0004\b\u000e\u0010\u000fJ'\u0010\u0016\u001a\u00020\u00152\u0006\u0010\u0011\u001a\u00020\u00102\u0006\u0010\u0013\u001a\u00020\u00122\u0006\u0010\u0014\u001a\u00020\u0006H\u0007¢\u0006\u0004\b\u0016\u0010\u0017JC\u0010\u001c\u001a\u00020\u00062\u0006\u0010\u0018\u001a\u00020\u00152*\u0010\u001b\u001a\u0016\u0012\u0012\b\u0001\u0012\u000e\u0012\u0004\u0012\u00020\u0006\u0012\u0004\u0012\u00020\u00060\u001a0\u0019\"\u000e\u0012\u0004\u0012\u00020\u0006\u0012\u0004\u0012\u00020\u00060\u001aH\u0007¢\u0006\u0004\b\u001c\u0010\u001dJ!\u0010 \u001a\u0004\u0018\u00010\b2\u0006\u0010\u0005\u001a\u00020\u00042\u0006\u0010\u001f\u001a\u00020\u001eH\u0002¢\u0006\u0004\b \u0010!J!\u0010\"\u001a\u0004\u0018\u00010\b2\u0006\u0010\u0005\u001a\u00020\u00042\u0006\u0010\u001f\u001a\u00020\u001eH\u0002¢\u0006\u0004\b\"\u0010!J!\u0010#\u001a\u0004\u0018\u00010\b2\u0006\u0010\u0005\u001a\u00020\u00042\u0006\u0010\u001f\u001a\u00020\u001eH\u0002¢\u0006\u0004\b#\u0010!J\u0017\u0010&\u001a\u0004\u0018\u00010%2\u0006\u0010$\u001a\u00020\u0006¢\u0006\u0004\b&\u0010'R\u0014\u0010(\u001a\u00020\u00068\u0002X\u0082T¢\u0006\u0006\n\u0004\b(\u0010)R\u0014\u0010*\u001a\u00020\u00068\u0006X\u0086T¢\u0006\u0006\n\u0004\b*\u0010)R\u0014\u0010+\u001a\u00020\u00068\u0006X\u0086T¢\u0006\u0006\n\u0004\b+\u0010)R\u0014\u0010,\u001a\u00020\u00068\u0006X\u0086T¢\u0006\u0006\n\u0004\b,\u0010)R\u0014\u0010-\u001a\u00020\u00068\u0006X\u0086T¢\u0006\u0006\n\u0004\b-\u0010)R\u0014\u0010.\u001a\u00020\u00068\u0006X\u0086T¢\u0006\u0006\n\u0004\b.\u0010)R\u0014\u0010/\u001a\u00020\u00068\u0006X\u0086T¢\u0006\u0006\n\u0004\b/\u0010)R\u0014\u00100\u001a\u00020\u00068\u0006X\u0086T¢\u0006\u0006\n\u0004\b0\u0010)R-\u00107\u001a\u0014\u0012\u000e\b\u0001\u0012\n 2*\u0004\u0018\u00010\u00010\u0001\u0018\u0001018BX\u0082\u0084\u0002¢\u0006\f\n\u0004\b3\u00104\u001a\u0004\b5\u00106¨\u00068"}, d2 = {"Lcom/finogeeks/lib/applet/utils/FinFileResourceUtil;", "", "<init>", "()V", "Lcom/finogeeks/lib/applet/main/host/Host;", "host", "", "url", "Landroid/webkit/WebResourceResponse;", "getFinFileResource", "(Lcom/finogeeks/lib/applet/main/host/Host;Ljava/lang/String;)Landroid/webkit/WebResourceResponse;", "readZipEntry", "webResourceResponse", "Llg0/e0;", "addOriginAccess", "(Landroid/webkit/WebResourceResponse;)V", "Landroid/content/Context;", "context", "Lcom/finogeeks/lib/applet/config/AppConfig;", "appConfig", "fix", "Ljava/io/File;", "getTempFinFile", "(Landroid/content/Context;Lcom/finogeeks/lib/applet/config/AppConfig;Ljava/lang/String;)Ljava/io/File;", "file", "", "Lkotlin/Pair;", "params", "createTempUrl", "(Ljava/io/File;[Lkotlin/Pair;)Ljava/lang/String;", "Landroid/net/Uri;", "uri", "cameraFrameListenerStart", "(Lcom/finogeeks/lib/applet/main/host/Host;Landroid/net/Uri;)Landroid/webkit/WebResourceResponse;", "onFrameRecorded", "readCompressedFile", "encoding", "Ljava/nio/charset/Charset;", "getCharset", "(Ljava/lang/String;)Ljava/nio/charset/Charset;", "TAG", "Ljava/lang/String;", "SCHEME", "FAKE_SCHEME", "KEY_IDENTIFY_TYPE", "VALUE_IDENTIFY_TYPE", "KEY_EVENT", "TEMP_FILE_CAMERA_FIX", "TEMP_FILE_AUDIO_FIX", "Ljava/lang/reflect/Constructor;", "kotlin.jvm.PlatformType", "brotliInputStreamConstructor$delegate", "Llg0/h;", "getBrotliInputStreamConstructor", "()Ljava/lang/reflect/Constructor;", "brotliInputStreamConstructor", "finapplet_release"}, k = 1, mv = {1, 4, 0})
public final class FinFileResourceUtil {
public static final String FAKE_SCHEME = "https://";
public static final String KEY_EVENT = "event";
public static final String KEY_IDENTIFY_TYPE = "_type";
public static final String SCHEME = "finfile://";
private static final String TAG = "FinFileResourceUtil";
public static final String TEMP_FILE_AUDIO_FIX = "audioframe.tmp";
public static final String TEMP_FILE_CAMERA_FIX = "cameraframe.tmp";
public static final String VALUE_IDENTIFY_TYPE = "finfile";
static final hh0.l[] $$delegatedProperties = {kotlin.jvm.internal.g0.j(new kotlin.jvm.internal.y(kotlin.jvm.internal.g0.b(FinFileResourceUtil.class), "brotliInputStreamConstructor", "getBrotliInputStreamConstructor()Ljava/lang/reflect/Constructor;"))};
public static final FinFileResourceUtil INSTANCE = new FinFileResourceUtil();
private static final lg0.h brotliInputStreamConstructor = lg0.i.a(a.a);
public static final class a extends kotlin.jvm.internal.p implements ah0.a<Constructor<? extends Object>> {
public static final a a = new a();
public a() {
super(0);
}
public final Constructor<? extends Object> invoke() {
try {
int i = BrotliInputStream.e;
return BrotliInputStream.class.getDeclaredConstructor(InputStream.class);
} catch (ClassNotFoundException unused) {
FLog.w$default(FinFileResourceUtil.TAG, "读取br文件需要集成扩展SDK", null, 4, null);
return null;
}
}
}
private FinFileResourceUtil() {
}
private final void addOriginAccess(WebResourceResponse webResourceResponse) {
HashMap hashMap = new HashMap();
hashMap.put("Access-Control-Allow-Origin", "*");
hashMap.put("Access-Control-Allow-Headers", "Content-Type");
webResourceResponse.setResponseHeaders(hashMap);
}
private final WebResourceResponse cameraFrameListenerStart(Host host, Uri uri) {
String queryParameter;
Long o;
Integer m;
File file = new File(host.getAppConfig().getLocalFileAbsolutePath(host.getK(), "finfile://temp/" + uri.getHost()));
if (file.exists() && (queryParameter = uri.getQueryParameter("skip")) != null && (o = tj0.s.o(queryParameter)) != null) {
long longValue = o.longValue();
String queryParameter2 = uri.getQueryParameter("length");
if (queryParameter2 != null && (m = tj0.s.m(queryParameter2)) != null) {
int intValue = m.intValue();
FileInputStream fileInputStream = new FileInputStream(file);
byte[] bArr = new byte[intValue];
fileInputStream.skip(longValue);
fileInputStream.read(bArr);
fileInputStream.close();
WebResourceResponse webResourceResponse = new WebResourceResponse("application/octet-stream", "binary", new ByteArrayInputStream(bArr));
addOriginAccess(webResourceResponse);
return webResourceResponse;
}
}
return null;
}
public static final String createTempUrl(File file, Pair<String, String>... params) {
kotlin.jvm.internal.n.j(file, "file");
kotlin.jvm.internal.n.j(params, "params");
StringBuilder sb = new StringBuilder();
sb.append(FAKE_SCHEME);
sb.append(file.getName());
sb.append("?_type=finfile");
for (Pair<String, String> pair : params) {
sb.append('&' + ((String) pair.c()) + '=' + ((String) pair.d()));
}
String sb2 = sb.toString();
kotlin.jvm.internal.n.e(sb2, "resultUrl.toString()");
return sb2;
}
private final Constructor<? extends Object> getBrotliInputStreamConstructor() {
lg0.h hVar = brotliInputStreamConstructor;
hh0.l lVar = $$delegatedProperties[0];
return (Constructor) hVar.getValue();
}
public static final WebResourceResponse getFinFileResource(Host host, String url) {
String queryParameter;
kotlin.jvm.internal.n.j(host, "host");
if (url != null) {
try {
if (url.length() != 0) {
Uri parse = Uri.parse(url);
kotlin.jvm.internal.n.e(parse, "uri");
if (!parse.isOpaque() && kotlin.jvm.internal.n.d(parse.getQueryParameter(KEY_IDENTIFY_TYPE), VALUE_IDENTIFY_TYPE) && (queryParameter = parse.getQueryParameter(KEY_EVENT)) != null) {
int hashCode = queryParameter.hashCode();
if (hashCode != -1600367225) {
if (hashCode != -1179205722) {
if (hashCode != 1204228051) {
if (hashCode == 1770184094 && queryParameter.equals("onFrameRecorded")) {
return INSTANCE.onFrameRecorded(host, parse);
}
} else if (queryParameter.equals("readCompressedFile") && kotlin.jvm.internal.n.d(parse.getQueryParameter("compressionAlgorithm"), "br")) {
FinFileResourceUtil finFileResourceUtil = INSTANCE;
if (finFileResourceUtil.getBrotliInputStreamConstructor() != null) {
return finFileResourceUtil.readCompressedFile(host, parse);
}
}
} else if (queryParameter.equals("cameraFrameListenerStart")) {
return INSTANCE.cameraFrameListenerStart(host, parse);
}
} else if (queryParameter.equals("readZipEntry")) {
return INSTANCE.readZipEntry(host, url);
}
}
return null;
}
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
public static final File getTempFinFile(Context context, AppConfig appConfig, String fix) {
kotlin.jvm.internal.n.j(context, "context");
kotlin.jvm.internal.n.j(appConfig, "appConfig");
kotlin.jvm.internal.n.j(fix, "fix");
return new File(AppletTempDirProvider.INSTANCE.createByAppConfig(context, appConfig).getDirForWrite(), fix);
}
private final WebResourceResponse onFrameRecorded(Host host, Uri uri) {
String queryParameter;
Long o;
Integer m;
File file = new File(host.getAppConfig().getLocalFileAbsolutePath(host.getK(), "finfile://temp/" + uri.getHost()));
if (file.exists() && (queryParameter = uri.getQueryParameter("offset")) != null && (o = tj0.s.o(queryParameter)) != null) {
long longValue = o.longValue();
String queryParameter2 = uri.getQueryParameter("frameSize");
if (queryParameter2 != null && (m = tj0.s.m(queryParameter2)) != null) {
int intValue = m.intValue();
FileInputStream fileInputStream = new FileInputStream(file);
byte[] bArr = new byte[intValue];
fileInputStream.skip(longValue);
fileInputStream.read(bArr);
fileInputStream.close();
WebResourceResponse webResourceResponse = new WebResourceResponse("application/octet-stream", "binary", new ByteArrayInputStream(bArr));
addOriginAccess(webResourceResponse);
return webResourceResponse;
}
}
return null;
}
private final WebResourceResponse readCompressedFile(Host host, Uri uri) {
String str = uri.getHost() + uri.getPath();
if (tj0.t.L(str, "finfile//", false, 2, (Object) null)) {
str = tj0.t.H(str, "finfile//", SCHEME, false, 4, (Object) null);
}
File file = new File(host.getAppConfig().getLocalFileAbsolutePath(host.getK(), str));
if (file.exists()) {
Constructor<? extends Object> brotliInputStreamConstructor2 = getBrotliInputStreamConstructor();
WebResourceResponse webResourceResponse = new WebResourceResponse("application/octet-stream", "binary", (InputStream) (brotliInputStreamConstructor2 != null ? brotliInputStreamConstructor2.newInstance(new FileInputStream(file)) : null));
addOriginAccess(webResourceResponse);
return webResourceResponse;
}
FLog.e$default(TAG, "readCompressedFile file not exists! path:" + str, null, 4, null);
return null;
}
private final android.webkit.WebResourceResponse readZipEntry(com.finogeeks.lib.applet.main.host.Host r11, java.lang.String r12) {
throw new UnsupportedOperationException("Method not decompiled: com.finogeeks.lib.applet.utils.FinFileResourceUtil.readZipEntry(com.finogeeks.lib.applet.main.host.Host, java.lang.String):android.webkit.WebResourceResponse");
}
public final Charset getCharset(String encoding) {
kotlin.jvm.internal.n.j(encoding, "encoding");
switch (encoding.hashCode()) {
case -1109877331:
if (!encoding.equals("latin1")) {
return null;
}
break;
case -119555963:
if (!encoding.equals("utf16le")) {
return null;
}
return tj0.c.e;
case 3584301:
if (!encoding.equals("ucs2")) {
return null;
}
return tj0.c.e;
case 3600241:
if (!encoding.equals("utf8")) {
return null;
}
break;
case 93106001:
if (!encoding.equals("ascii")) {
return null;
}
break;
case 111113226:
if (!encoding.equals("ucs-2")) {
return null;
}
return tj0.c.e;
case 111607186:
if (!encoding.equals("utf-8")) {
return null;
}
break;
case 584837828:
if (!encoding.equals("utf-16le")) {
return null;
}
return tj0.c.e;
default:
return null;
}
return Charset.forName(encoding);
}
}