From 6be1fd0d6fe0921cd8a3e7f22713b95be0b2d02c Mon Sep 17 00:00:00 2001
From: armv9 <48624112+arm64v8a@users.noreply.github.com>
Date: Wed, 9 Oct 2024 13:21:53 +0900
Subject: [PATCH] update settings
---
.../nekohasekai/sagernet/database/DataStore.kt | 2 +-
.../io/nekohasekai/sagernet/fmt/ConfigBuilder.kt | 15 ++++-----------
.../sagernet/fmt/v2ray/StandardV2RayBean.java | 2 +-
.../nekohasekai/sagernet/fmt/v2ray/V2RayFmt.kt | 6 ------
.../io/nekohasekai/sagernet/group/RawUpdater.kt | 16 ++++++++++++++++
.../io/nekohasekai/sagernet/ui/LogcatFragment.kt | 6 +++---
.../java/moe/matsuri/nb4a/SingBoxOptionsUtil.kt | 10 +++++-----
app/src/main/res/values/arrays.xml | 2 +-
app/src/main/res/xml/global_preferences.xml | 2 +-
9 files changed, 32 insertions(+), 29 deletions(-)
diff --git a/app/src/main/java/io/nekohasekai/sagernet/database/DataStore.kt b/app/src/main/java/io/nekohasekai/sagernet/database/DataStore.kt
index 20cf811..e746cfb 100644
--- a/app/src/main/java/io/nekohasekai/sagernet/database/DataStore.kt
+++ b/app/src/main/java/io/nekohasekai/sagernet/database/DataStore.kt
@@ -98,7 +98,7 @@ object DataStore : OnPreferenceDataStoreChangeListener {
var showGroupInNotification by configurationStore.boolean("showGroupInNotification")
var remoteDns by configurationStore.string(Key.REMOTE_DNS) { "https://dns.google/dns-query" }
- var directDns by configurationStore.string(Key.DIRECT_DNS) { "local" }
+ var directDns by configurationStore.string(Key.DIRECT_DNS) { "https://120.53.53.53/dns-query" }
var enableDnsRouting by configurationStore.boolean(Key.ENABLE_DNS_ROUTING) { true }
var enableFakeDns by configurationStore.boolean(Key.ENABLE_FAKEDNS)
diff --git a/app/src/main/java/io/nekohasekai/sagernet/fmt/ConfigBuilder.kt b/app/src/main/java/io/nekohasekai/sagernet/fmt/ConfigBuilder.kt
index d7b3d97..8137c6d 100644
--- a/app/src/main/java/io/nekohasekai/sagernet/fmt/ConfigBuilder.kt
+++ b/app/src/main/java/io/nekohasekai/sagernet/fmt/ConfigBuilder.kt
@@ -48,7 +48,6 @@ const val TAG_DNS_IN = "dns-in"
const val TAG_DNS_OUT = "dns-out"
const val LOCALHOST = "127.0.0.1"
-const val LOCAL_DNS_SERVER = "local"
class ConfigBuildResult(
var config: String,
@@ -697,7 +696,7 @@ fun buildConfig(
})
}
dns.servers.add(DNSServerOptions().apply {
- address = LOCAL_DNS_SERVER
+ address = "local"
tag = "dns-local"
detour = TAG_DIRECT
})
@@ -714,14 +713,8 @@ fun buildConfig(
}
if (forTest) {
- // Always use system DNS for urlTest
- dns.servers = listOf(
- DNSServerOptions().apply {
- address = LOCAL_DNS_SERVER
- tag = "dns-local"
- detour = TAG_DIRECT
- }
- )
+ // Always use direct DNS for urlTest
+ dns.servers.removeAt(0)
dns.rules = listOf()
} else {
// built-in DNS rules
@@ -732,7 +725,7 @@ fun buildConfig(
route.rules.add(0, Rule_DefaultOptions().apply {
port = listOf(53)
outbound = TAG_DNS_OUT
- }) // TODO new mode use system dns?
+ })
if (DataStore.bypassLanInCore) {
route.rules.add(Rule_DefaultOptions().apply {
outbound = TAG_BYPASS
diff --git a/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/StandardV2RayBean.java b/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/StandardV2RayBean.java
index 932c385..bdd82c7 100644
--- a/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/StandardV2RayBean.java
+++ b/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/StandardV2RayBean.java
@@ -14,7 +14,7 @@ public abstract class StandardV2RayBean extends AbstractBean {
//////// End of VMess & VLESS ////////
- // "V2Ray Transport" tcp/http/ws/quic/grpc/httpUpgrade
+ // "V2Ray Transport" tcp/http/ws/quic/grpc/httpupgrade
public String type;
public String host;
diff --git a/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/V2RayFmt.kt b/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/V2RayFmt.kt
index f253698..1007258 100644
--- a/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/V2RayFmt.kt
+++ b/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/V2RayFmt.kt
@@ -593,12 +593,6 @@ fun buildSingBoxOutboundStreamSettings(bean: StandardV2RayBean): V2RayTransportO
}
}
-// if (needKeepAliveInterval) {
-// sockopt = StreamSettingsObject.SockoptObject().apply {
-// tcpKeepAliveInterval = keepAliveInterval
-// }
-// }
-
return null
}
diff --git a/app/src/main/java/io/nekohasekai/sagernet/group/RawUpdater.kt b/app/src/main/java/io/nekohasekai/sagernet/group/RawUpdater.kt
index 2178ac3..c1a034a 100644
--- a/app/src/main/java/io/nekohasekai/sagernet/group/RawUpdater.kt
+++ b/app/src/main/java/io/nekohasekai/sagernet/group/RawUpdater.kt
@@ -286,6 +286,7 @@ object RawUpdater : GroupUpdater() {
}
"vmess", "vless" -> {
+ var isHttpUpgrade = false
val isVLESS = proxy["type"].toString() == "vless"
val bean = VMessBean().apply {
if (isVLESS) {
@@ -366,6 +367,10 @@ object RawUpdater : GroupUpdater() {
"early-data-header-name" -> {
bean.earlyDataHeaderName = wsOpt.value.toString()
}
+
+ "v2ray-http-upgrade" -> {
+ isHttpUpgrade = true
+ }
}
}
@@ -411,10 +416,14 @@ object RawUpdater : GroupUpdater() {
}
}
}
+ if (isHttpUpgrade) {
+ bean.type = "httpupgrade"
+ }
proxies.add(bean)
}
"trojan" -> {
+ var isHttpUpgrade = false
val bean = TrojanBean()
bean.security = "tls"
for (opt in proxy) {
@@ -451,6 +460,10 @@ object RawUpdater : GroupUpdater() {
"path" -> {
bean.path = wsOpt.value.toString()
}
+
+ "v2ray-http-upgrade" -> {
+ isHttpUpgrade = true
+ }
}
}
@@ -462,6 +475,9 @@ object RawUpdater : GroupUpdater() {
}
}
}
+ if (isHttpUpgrade) {
+ bean.type = "httpupgrade"
+ }
proxies.add(bean)
}
diff --git a/app/src/main/java/io/nekohasekai/sagernet/ui/LogcatFragment.kt b/app/src/main/java/io/nekohasekai/sagernet/ui/LogcatFragment.kt
index d2fd8a9..c362672 100644
--- a/app/src/main/java/io/nekohasekai/sagernet/ui/LogcatFragment.kt
+++ b/app/src/main/java/io/nekohasekai/sagernet/ui/LogcatFragment.kt
@@ -43,13 +43,13 @@ class LogcatFragment : ToolbarFragment(R.layout.layout_logcat),
private fun getColorForLine(line: String): ForegroundColorSpan {
var color = ForegroundColorSpan(Color.GRAY)
when {
- line.contains(" INFO[") || line.contains(" [Info]") -> {
+ line.contains("INFO[") || line.contains(" [Info]") -> {
color = ForegroundColorSpan((0xFF86C166).toInt())
}
- line.contains(" ERROR[") || line.contains(" [Error]") -> {
+ line.contains("ERROR[") || line.contains(" [Error]") -> {
color = ForegroundColorSpan(Color.RED)
}
- line.contains(" WARN[") || line.contains(" [Warning]") -> {
+ line.contains("WARN[") || line.contains(" [Warning]") -> {
color = ForegroundColorSpan(Color.RED)
}
}
diff --git a/app/src/main/java/moe/matsuri/nb4a/SingBoxOptionsUtil.kt b/app/src/main/java/moe/matsuri/nb4a/SingBoxOptionsUtil.kt
index 7bfd41e..97fb814 100644
--- a/app/src/main/java/moe/matsuri/nb4a/SingBoxOptionsUtil.kt
+++ b/app/src/main/java/moe/matsuri/nb4a/SingBoxOptionsUtil.kt
@@ -8,21 +8,21 @@ import moe.matsuri.nb4a.SingBoxOptions.RuleSet
object SingBoxOptionsUtil {
fun domainStrategy(tag: String): String {
- fun auto2AsIs(key: String): String {
- return (DataStore.configurationStore.getString(key) ?: "").replace("auto", "")
+ fun auto2(key: String, newS: String): String {
+ return (DataStore.configurationStore.getString(key) ?: "").replace("auto", newS)
}
return when (tag) {
"dns-remote" -> {
- auto2AsIs("domain_strategy_for_remote")
+ auto2("domain_strategy_for_remote", "")
}
"dns-direct" -> {
- auto2AsIs("domain_strategy_for_direct")
+ auto2("domain_strategy_for_direct", "")
}
// server
else -> {
- auto2AsIs("domain_strategy_for_server")
+ auto2("domain_strategy_for_server", "prefer_ipv4")
}
}
}
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 36ccd88..a5da08b 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -263,7 +263,7 @@
- http
- quic
- grpc
-
+ - httpupgrade
diff --git a/app/src/main/res/xml/global_preferences.xml b/app/src/main/res/xml/global_preferences.xml
index 7ed6e7e..d1f443e 100644
--- a/app/src/main/res/xml/global_preferences.xml
+++ b/app/src/main/res/xml/global_preferences.xml
@@ -177,7 +177,7 @@
app:title="@string/domain_strategy_for_remote"
app:useSimpleSummaryProvider="true" />