From 7b7ee554e3a5bc47f1a82bfa36f88c191e8a5257 Mon Sep 17 00:00:00 2001 From: Kr328 Date: Sat, 2 Jul 2022 10:59:56 +0800 Subject: [PATCH] Feature: add option to enable sni sniff --- core/src/main/golang/native/config/process.go | 3 ++- core/src/main/golang/native/config/process_open.go | 4 ---- core/src/main/golang/native/config/process_premium.go | 6 ------ .../kr328/clash/core/model/ConfigurationOverride.kt | 9 +++++++++ .../github/kr328/clash/design/OverrideSettingsDesign.kt | 9 +++++++++ design/src/main/res/values-zh/strings.xml | 1 + design/src/main/res/values/strings.xml | 1 + 7 files changed, 22 insertions(+), 11 deletions(-) diff --git a/core/src/main/golang/native/config/process.go b/core/src/main/golang/native/config/process.go index 90d0b37..4344f8d 100644 --- a/core/src/main/golang/native/config/process.go +++ b/core/src/main/golang/native/config/process.go @@ -23,7 +23,6 @@ var processors = []processor{ patchDns, patchProviders, patchTun, - patchSniff, validConfig, } @@ -106,5 +105,7 @@ func process(cfg *config.RawConfig, profileDir string) error { } } + log.Debugln("sni-tls: %t", cfg.Experimental.SniffTLSSNI) + return nil } diff --git a/core/src/main/golang/native/config/process_open.go b/core/src/main/golang/native/config/process_open.go index c9808ff..bde4a3a 100644 --- a/core/src/main/golang/native/config/process_open.go +++ b/core/src/main/golang/native/config/process_open.go @@ -7,7 +7,3 @@ import "github.com/Dreamacro/clash/config" func patchTun(cfg *config.RawConfig, _ string) error { return nil } - -func patchSniff(cfg *config.RawConfig, _ string) error { - return nil -} diff --git a/core/src/main/golang/native/config/process_premium.go b/core/src/main/golang/native/config/process_premium.go index 71d3c1d..570b4ec 100644 --- a/core/src/main/golang/native/config/process_premium.go +++ b/core/src/main/golang/native/config/process_premium.go @@ -9,9 +9,3 @@ func patchTun(cfg *config.RawConfig, _ string) error { return nil } - -func patchSniff(cfg *config.RawConfig, _ string) error { - cfg.Experimental.SniffTLSSNI = true - - return nil -} \ No newline at end of file diff --git a/core/src/main/java/com/github/kr328/clash/core/model/ConfigurationOverride.kt b/core/src/main/java/com/github/kr328/clash/core/model/ConfigurationOverride.kt index 43a4ab2..43dbdb8 100644 --- a/core/src/main/java/com/github/kr328/clash/core/model/ConfigurationOverride.kt +++ b/core/src/main/java/com/github/kr328/clash/core/model/ConfigurationOverride.kt @@ -49,6 +49,9 @@ data class ConfigurationOverride( @SerialName("clash-for-android") val app: App = App(), + + @SerialName("experimental") + val experimental: Experimental = Experimental() ) : Parcelable { @Serializable data class Dns( @@ -107,6 +110,12 @@ data class ConfigurationOverride( var appendSystemDns: Boolean? = null ) + @Serializable + data class Experimental( + @SerialName("sniff-tls-sni") + var sniffTLSSNI: Boolean? = null, + ) + @Serializable enum class DnsEnhancedMode { @SerialName("normal") diff --git a/design/src/main/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt b/design/src/main/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt index ba91d6b..2147913 100644 --- a/design/src/main/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt +++ b/design/src/main/java/com/github/kr328/clash/design/OverrideSettingsDesign.kt @@ -223,6 +223,15 @@ class OverrideSettingsDesign( ) } + if (BuildConfig.PREMIUM) { + selectableList( + value = configuration.experimental::sniffTLSSNI, + values = booleanValues, + valuesText = booleanValuesText, + title = R.string.sniff_tls_sni, + ) + } + selectableList( value = configuration::logLevel, values = arrayOf( diff --git a/design/src/main/res/values-zh/strings.xml b/design/src/main/res/values-zh/strings.xml index 3233e56..0892352 100644 --- a/design/src/main/res/values-zh/strings.xml +++ b/design/src/main/res/values-zh/strings.xml @@ -216,4 +216,5 @@ GeoIP Fallback 区域代码 允许应用绕过 允许其他应用绕过 VPN + 嗅探 TLS 的 SNI \ No newline at end of file diff --git a/design/src/main/res/values/strings.xml b/design/src/main/res/values/strings.xml index 5f44ad2..4086bbb 100644 --- a/design/src/main/res/values/strings.xml +++ b/design/src/main/res/values/strings.xml @@ -145,6 +145,7 @@ Bind Address Mode Log Level + Sniff TLS SNI IPv6 Hosts Sideload GEOIP