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