Fast Orange v3.5.3版本的 MD5 值为:33b91aba50c566533dfd683a85f79158

以下内容为反编译后的 ShadowsocksFmtKt.java 源代码,内容仅作参考


package com.github.shadowsocks.fmt.shadowsocks;

import androidx.autofill.HintConstants;
import com.free.vpn.proxy.hotspot.br1;
import com.free.vpn.proxy.hotspot.jf2;
import com.free.vpn.proxy.hotspot.pl0;
import com.free.vpn.proxy.hotspot.wp1;
import com.free.vpn.proxy.hotspot.x74;
import com.free.vpn.proxy.hotspot.zs4;
import com.github.shadowsocks.Key;
import com.github.shadowsocks.database.DataStore;
import com.github.shadowsocks.ktx.FormatsKt;
import com.github.shadowsocks.ktx.NetsKt;
import com.github.shadowsocks.ktx.UtilsKt;
import com.github.shadowsocks.plugin.PluginConfiguration;
import com.github.shadowsocks.plugin.PluginContract;
import com.github.shadowsocks.plugin.PluginManager;
import com.github.shadowsocks.plugin.PluginOptions;
import java.util.Map;
import kotlin.Metadata;
import libcore.Libcore;
import libcore.URL;

@Metadata(d1 = {"\u0000*\n\u0002\u0018\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0010\u000e\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\u0010\b\n\u0002\b\u0002\n\u0002\u0010\u0011\n\u0002\b\u0005\u001a\n\u0010\u0002\u001a\u00020\u0001*\u00020\u0000\u001a\n\u0010\u0002\u001a\u00020\u0001*\u00020\u0003\u001a\u000e\u0010\u0006\u001a\u00020\u00032\u0006\u0010\u0005\u001a\u00020\u0004\u001a\n\u0010\u0007\u001a\u00020\u0004*\u00020\u0003\u001a\n\u0010\u0006\u001a\u00020\u0003*\u00020\b\u001a\u0012\u0010\u000b\u001a\u00020\u0004*\u00020\u00032\u0006\u0010\n\u001a\u00020\t\"\u001d\u0010\r\u001a\b\u0012\u0004\u0012\u00020\u00040\f8\u0006¢\u0006\f\n\u0004\b\r\u0010\u000e\u001a\u0004\b\u000f\u0010\u0010¨\u0006\u0011"}, d2 = {"Lcom/github/shadowsocks/plugin/PluginConfiguration;", "", "fixInvalidParams", "Lcom/github/shadowsocks/fmt/shadowsocks/ShadowsocksBean;", "", "url", "parseShadowsocks", "toUri", "Lcom/free/vpn/proxy/hotspot/br1;", "", "port", "buildShadowsocksConfig", "", "methodsSing", "[Ljava/lang/String;", "getMethodsSing", "()[Ljava/lang/String;", "shadowsocks_release"}, k = 2, mv = {1, 8, 0})
public final class ShadowsocksFmtKt {
    private static final String[] methodsSing = {"2022-blake3-aes-128-gcm", "2022-blake3-aes-256-gcm", "2022-blake3-chacha20-poly1305"};

    public static final String buildShadowsocksConfig(ShadowsocksBean shadowsocksBean, int i) {
        boolean z;
        zs4.o(shadowsocksBean, "<this>");
        br1 br1Var = new br1();
        br1Var.m(shadowsocksBean.finalAddress, "server");
        br1Var.m(Integer.valueOf(shadowsocksBean.finalPort), "server_port");
        br1Var.m(shadowsocksBean.getMethod(), "method");
        br1Var.m(shadowsocksBean.getPassword(), HintConstants.AUTOFILL_HINT_PASSWORD);
        br1Var.m("127.0.0.1", "local_address");
        br1Var.m(Integer.valueOf(i), "local_port");
        br1Var.m("127.0.0.1", "local_udp_address");
        br1Var.m(Integer.valueOf(i), "local_udp_port");
        br1Var.m("tcp_and_udp", PluginContract.COLUMN_MODE);
        DataStore dataStore = DataStore.INSTANCE;
        if (dataStore.getIpv6Mode() >= 2) {
            z = true;
        } else {
            z = false;
        }
        br1Var.m(Boolean.valueOf(z), "ipv6_first");
        br1Var.m(Integer.valueOf(dataStore.getTcpKeepAliveInterval()), "keep_alive");
        if (!x74.a1(shadowsocksBean.getPlugin())) {
            String plugin = shadowsocksBean.getPlugin();
            if (plugin == null) {
                plugin = "";
            }
            PluginManager.InitResult init = PluginManager.INSTANCE.init(new PluginConfiguration(plugin));
            if (init != null) {
                String path = init.getPath();
                PluginOptions options = init.getOptions();
                br1Var.m(path, PluginContract.SCHEME);
                br1Var.m(String.valueOf(options), "plugin_opts");
            }
        }
        String c = pl0.c(br1Var, 4);
        zs4.n(c, "proxyConfig.toStringPretty()");
        return c;
    }

    public static final void fixInvalidParams(ShadowsocksBean shadowsocksBean) {
        zs4.o(shadowsocksBean, "<this>");
        if (zs4.h(shadowsocksBean.getMethod(), "plain")) {
            shadowsocksBean.setMethod("none");
        }
        PluginConfiguration pluginConfiguration = new PluginConfiguration(shadowsocksBean.getPlugin());
        fixInvalidParams(pluginConfiguration);
        shadowsocksBean.setPlugin(pluginConfiguration.toString());
    }

    public static final String[] getMethodsSing() {
        return methodsSing;
    }

    public static final ShadowsocksBean parseShadowsocks(br1 br1Var) {
        String str;
        zs4.o(br1Var, "<this>");
        ShadowsocksBean shadowsocksBean = new ShadowsocksBean();
        String k = br1Var.k(PluginContract.SCHEME);
        if (k == null || x74.a1(k)) {
            str = "";
        } else {
            zs4.n(k, "pId");
            str = new PluginOptions(k, br1Var.k("plugin_opts")).toString(false);
        }
        shadowsocksBean.serverAddress = br1Var.k("server");
        shadowsocksBean.serverPort = br1Var.i("server_port");
        String k2 = br1Var.k(HintConstants.AUTOFILL_HINT_PASSWORD);
        zs4.n(k2, "getStr(\"password\")");
        shadowsocksBean.setPassword(k2);
        String k3 = br1Var.k("method");
        zs4.n(k3, "getStr(\"method\")");
        shadowsocksBean.setMethod(k3);
        shadowsocksBean.setPlugin(str);
        shadowsocksBean.name = jf2.d(br1Var, "remarks", "");
        fixInvalidParams(shadowsocksBean);
        return shadowsocksBean;
    }

    public static final String toUri(ShadowsocksBean shadowsocksBean) {
        zs4.o(shadowsocksBean, "<this>");
        URL newURL = Libcore.newURL("ss");
        newURL.setHost(shadowsocksBean.serverAddress);
        Integer num = shadowsocksBean.serverPort;
        zs4.n(num, Key.SERVER_PORT);
        newURL.setPort(num.intValue());
        if (x74.r1(shadowsocksBean.getMethod(), "2022", false)) {
            newURL.setUsername(shadowsocksBean.getMethod());
            newURL.setPassword(shadowsocksBean.getPassword());
        } else {
            newURL.setUsername(wp1.l(shadowsocksBean.getMethod() + ":" + shadowsocksBean.getPassword()));
        }
        if (!x74.a1(shadowsocksBean.getPlugin())) {
            newURL.addQueryParameter(PluginContract.SCHEME, shadowsocksBean.getPlugin());
        }
        String str = shadowsocksBean.name;
        zs4.n(str, "it");
        if (!(!x74.a1(str))) {
            str = null;
        }
        if (str != null) {
            newURL.setRawFragment(UtilsKt.urlSafe(str));
        }
        if (shadowsocksBean.getUot()) {
            newURL.addQueryParameter("udp-over-tcp", "true");
        }
        if (shadowsocksBean.getEncryptedProtocolExtension()) {
            newURL.addQueryParameter("encrypted-protocol-extension", "true");
        }
        String string = newURL.getString();
        zs4.n(string, "builder.string");
        return string;
    }

    public static final void fixInvalidParams(PluginConfiguration pluginConfiguration) {
        zs4.o(pluginConfiguration, "<this>");
        if (x74.L0(pluginConfiguration.getSelected(), "v2ray", false) && !zs4.h(pluginConfiguration.getSelected(), "v2ray-plugin")) {
            Map<String, PluginOptions> pluginsOptions = pluginConfiguration.getPluginsOptions();
            PluginOptions options$default = PluginConfiguration.getOptions$default(pluginConfiguration, null, null, 3, null);
            options$default.setId("v2ray-plugin");
            pluginsOptions.put("v2ray-plugin", options$default);
            pluginConfiguration.getPluginsOptions().remove(pluginConfiguration.getSelected());
            pluginConfiguration.setSelected("v2ray-plugin");
        }
        if (!x74.L0(pluginConfiguration.getSelected(), "obfs", false) || zs4.h(pluginConfiguration.getSelected(), "obfs-local")) {
            return;
        }
        Map<String, PluginOptions> pluginsOptions2 = pluginConfiguration.getPluginsOptions();
        PluginOptions options$default2 = PluginConfiguration.getOptions$default(pluginConfiguration, null, null, 3, null);
        options$default2.setId("obfs-local");
        pluginsOptions2.put("obfs-local", options$default2);
        pluginConfiguration.getPluginsOptions().remove(pluginConfiguration.getSelected());
        pluginConfiguration.setSelected("obfs-local");
    }

    public static final ShadowsocksBean parseShadowsocks(String str) {
        zs4.o(str, "url");
        boolean z = false;
        if (x74.L0(str, "@", false)) {
            URL parseURL = Libcore.parseURL(str);
            String username = parseURL.getUsername();
            zs4.n(username, "link.username");
            if (x74.a1(username)) {
                parseURL = Libcore.parseURL("ss://" + FormatsKt.decodeBase64UrlSafe(x74.A1(x74.v1(str, "ss://", str), "#")));
                parseURL.setRawFragment(x74.v1(str, "#", str));
            }
            zs4.n(parseURL.getPassword(), "link.password");
            if (!x74.a1(r13)) {
                ShadowsocksBean shadowsocksBean = new ShadowsocksBean();
                shadowsocksBean.serverAddress = parseURL.getHost();
                shadowsocksBean.serverPort = Integer.valueOf(parseURL.getPort());
                String username2 = parseURL.getUsername();
                zs4.n(username2, "link.username");
                shadowsocksBean.setMethod(username2);
                String password = parseURL.getPassword();
                zs4.n(password, "link.password");
                shadowsocksBean.setPassword(password);
                String queryParameter = NetsKt.queryParameter(parseURL, PluginContract.SCHEME);
                shadowsocksBean.setPlugin(queryParameter != null ? queryParameter : "");
                shadowsocksBean.name = parseURL.getFragment();
                if (!zs4.h(NetsKt.queryParameter(parseURL, "udp-over-tcp"), "true")) {
                    String str2 = shadowsocksBean.name;
                    zs4.n(str2, "name");
                }
                z = true;
                shadowsocksBean.setUot(z);
                shadowsocksBean.setEncryptedProtocolExtension(zs4.h(NetsKt.queryParameter(parseURL, "encrypted-protocol-extension"), "true"));
                fixInvalidParams(shadowsocksBean);
                return shadowsocksBean;
            }
            String username3 = parseURL.getUsername();
            zs4.n(username3, "link.username");
            String decodeBase64UrlSafe = FormatsKt.decodeBase64UrlSafe(username3);
            ShadowsocksBean shadowsocksBean2 = new ShadowsocksBean();
            shadowsocksBean2.serverAddress = parseURL.getHost();
            shadowsocksBean2.serverPort = Integer.valueOf(parseURL.getPort());
            shadowsocksBean2.setMethod(x74.A1(decodeBase64UrlSafe, ":"));
            shadowsocksBean2.setPassword(x74.v1(decodeBase64UrlSafe, ":", decodeBase64UrlSafe));
            String queryParameter2 = NetsKt.queryParameter(parseURL, PluginContract.SCHEME);
            shadowsocksBean2.setPlugin(queryParameter2 != null ? queryParameter2 : "");
            shadowsocksBean2.name = parseURL.getFragment();
            if (!zs4.h(NetsKt.queryParameter(parseURL, "udp-over-tcp"), "true")) {
                String str3 = shadowsocksBean2.name;
                zs4.n(str3, "name");
            }
            z = true;
            shadowsocksBean2.setUot(z);
            shadowsocksBean2.setEncryptedProtocolExtension(zs4.h(NetsKt.queryParameter(parseURL, "encrypted-protocol-extension"), "true"));
            fixInvalidParams(shadowsocksBean2);
            return shadowsocksBean2;
        }
        String A1 = x74.L0(str, "#", false) ? x74.A1(str, "#") : str;
        URL parseURL2 = Libcore.parseURL("ss://" + FormatsKt.decodeBase64UrlSafe(x74.v1(A1, "ss://", A1)));
        ShadowsocksBean shadowsocksBean3 = new ShadowsocksBean();
        shadowsocksBean3.serverAddress = parseURL2.getHost();
        shadowsocksBean3.serverPort = Integer.valueOf(parseURL2.getPort());
        String username4 = parseURL2.getUsername();
        zs4.n(username4, "link.username");
        shadowsocksBean3.setMethod(username4);
        String password2 = parseURL2.getPassword();
        zs4.n(password2, "link.password");
        shadowsocksBean3.setPassword(password2);
        shadowsocksBean3.setPlugin("");
        if (x74.L0(str, "#", false)) {
            shadowsocksBean3.name = UtilsKt.unUrlSafe(x74.v1(str, "#", str));
        }
        fixInvalidParams(shadowsocksBean3);
        return shadowsocksBean3;
    }
}