From a03af4df3afadb42835b8021682a35f7610733d0 Mon Sep 17 00:00:00 2001 From: zarazaex69 Date: Tue, 7 Apr 2026 11:44:36 +0300 Subject: [PATCH] feat(V2rayConfig): add SOCKS authentication with password-based accounts --- V2rayNG/app/src/main/assets/v2ray_config.json | 10 ++++++++-- V2rayNG/app/src/main/assets/v2ray_config_with_tun.json | 10 ++++++++-- .../app/src/main/java/com/v2ray/ang/dto/V2rayConfig.kt | 10 ++++++++-- .../java/com/v2ray/ang/handler/V2rayConfigManager.kt | 9 +++++++++ 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/V2rayNG/app/src/main/assets/v2ray_config.json b/V2rayNG/app/src/main/assets/v2ray_config.json index 4f2d637b..31ed9960 100644 --- a/V2rayNG/app/src/main/assets/v2ray_config.json +++ b/V2rayNG/app/src/main/assets/v2ray_config.json @@ -22,8 +22,14 @@ "port": 10808, "protocol": "socks", "settings": { - "auth": "noauth", - "udp": true, + "auth": "password", + "accounts": [ + { + "user": "v2ray_local", + "pass": "CHANGE_ME_ON_RUNTIME" + } + ], + "udp": false, "userLevel": 8 }, "sniffing": { diff --git a/V2rayNG/app/src/main/assets/v2ray_config_with_tun.json b/V2rayNG/app/src/main/assets/v2ray_config_with_tun.json index 2b2de577..462bf266 100644 --- a/V2rayNG/app/src/main/assets/v2ray_config_with_tun.json +++ b/V2rayNG/app/src/main/assets/v2ray_config_with_tun.json @@ -22,8 +22,14 @@ "port": 10808, "protocol": "socks", "settings": { - "auth": "noauth", - "udp": true, + "auth": "password", + "accounts": [ + { + "user": "v2ray_local", + "pass": "CHANGE_ME_ON_RUNTIME" + } + ], + "udp": false, "userLevel": 8 }, "sniffing": { diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/dto/V2rayConfig.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/dto/V2rayConfig.kt index aa3fd0c7..46ca11bf 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/dto/V2rayConfig.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/dto/V2rayConfig.kt @@ -46,8 +46,14 @@ data class V2rayConfig( var userLevel: Int? = null, var name: String? = null, @SerializedName("MTU") - var mtu: Int? = null - ) + var mtu: Int? = null, + var accounts: List? = null + ) { + data class AccountBean( + var user: String, + var pass: String + ) + } data class SniffingBean( var enabled: Boolean, diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/handler/V2rayConfigManager.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/handler/V2rayConfigManager.kt index 1d93687e..c1db13c0 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/handler/V2rayConfigManager.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/handler/V2rayConfigManager.kt @@ -379,6 +379,15 @@ object V2rayConfigManager { inbound1.listen = AppConfig.LOOPBACK } inbound1.port = socksPort + + if (inbound1.settings?.auth == "password" && inbound1.settings?.accounts != null) { + val randomPass = java.util.UUID.randomUUID().toString() + inbound1.settings?.accounts = listOf( + V2rayConfig.InboundBean.InSettingsBean.AccountBean("v2ray_local", randomPass) + ) + inbound1.settings?.udp = false + } + val fakedns = MmkvManager.decodeSettingsBool(AppConfig.PREF_FAKE_DNS_ENABLED) == true val sniffAllTlsAndHttp = MmkvManager.decodeSettingsBool(AppConfig.PREF_SNIFFING_ENABLED, true) != false