Compare commits

...

5 Commits

Author SHA1 Message Date
2dust
277894215d up 1.9.30 2025-01-02 10:11:57 +08:00
alphax-hue3682
684e08a3a1 Update Persian translate (#4214)
* Update Persian translate

* Update strings.xml

* Update strings.xml

* Update strings.xml

* Update strings.xml

* Update strings.xml

* Update strings.xml

* Update strings.xml

* Update strings.xml

* Update strings.xml

* Update strings.xml

* Update strings.xml

* Update strings.xml

* Update strings.xml

* Update strings.xml

* Update strings.xml
2025-01-02 09:37:24 +08:00
2dust
19dbc2f9b9 up 1.9.29 2025-01-01 16:45:08 +08:00
2dust
833a1e06f0 Add VPN bypass LAN option
https://github.com/2dust/v2rayNG/pull/4208
2025-01-01 16:43:48 +08:00
2dust
daca0831a4 Remove the last rule from the Whitelist 2024-12-31 21:19:15 +08:00
18 changed files with 96 additions and 15 deletions

View File

@@ -12,8 +12,8 @@ android {
applicationId = "com.v2ray.ang"
minSdk = 21
targetSdk = 35
versionCode = 624
versionName = "1.9.28"
versionCode = 626
versionName = "1.9.30"
multiDexEnabled = true
val abiFilterList = (properties["ABI_FILTERS"] as? String)?.split(';')

View File

@@ -99,10 +99,5 @@
"domain": [
"geosite:cn"
]
},
{
"remarks": "最终代理",
"port": "0-65535",
"outboundTag": "proxy"
}
]

View File

@@ -40,10 +40,5 @@
"ip": [
"geoip:ir"
]
},
{
"remarks": "Final Agent",
"port": "0-65535",
"outboundTag": "proxy"
}
]

View File

@@ -25,6 +25,7 @@ object AppConfig {
const val PREF_APPEND_HTTP_PROXY = "pref_append_http_proxy"
const val PREF_LOCAL_DNS_PORT = "pref_local_dns_port"
const val PREF_VPN_DNS = "pref_vpn_dns"
const val PREF_VPN_BYPASS_LAN = "pref_vpn_bypass_lan"
const val PREF_ROUTING_DOMAIN_STRATEGY = "pref_routing_domain_strategy"
const val PREF_ROUTING_RULESET = "pref_routing_ruleset"
const val PREF_MUX_ENABLED = "pref_mux_enabled"

View File

@@ -117,6 +117,14 @@ object SettingsManager {
}
fun routingRulesetsBypassLan(): Boolean {
val vpnBypassLan = MmkvManager.decodeSettingsString(AppConfig.PREF_VPN_BYPASS_LAN) ?: "0"
if (vpnBypassLan == "1") {
return true
} else if (vpnBypassLan == "2") {
return false
}
//Follow config
val guid = MmkvManager.getSelectServer() ?: return false
val config = MmkvManager.decodeServerConfig(guid) ?: return false
if (config.configType == EConfigType.CUSTOM) {
@@ -133,7 +141,7 @@ object SettingsManager {
it.domain?.contains(GEOSITE_PRIVATE) == true || it.ip?.contains(GEOIP_PRIVATE) == true
}
return exist == true
}
}
fun swapRoutingRuleset(fromPosition: Int, toPosition: Int) {
val rulesetList = MmkvManager.decodeRoutingRulesets()

View File

@@ -43,6 +43,7 @@ class SettingsActivity : BaseActivity() {
private val appendHttpProxy by lazy { findPreference<CheckBoxPreference>(AppConfig.PREF_APPEND_HTTP_PROXY) }
private val localDnsPort by lazy { findPreference<EditTextPreference>(AppConfig.PREF_LOCAL_DNS_PORT) }
private val vpnDns by lazy { findPreference<EditTextPreference>(AppConfig.PREF_VPN_DNS) }
private val vpnBypassLan by lazy { findPreference<ListPreference>(AppConfig.PREF_VPN_BYPASS_LAN) }
private val mux by lazy { findPreference<CheckBoxPreference>(AppConfig.PREF_MUX_ENABLED) }
private val muxConcurrency by lazy { findPreference<EditTextPreference>(AppConfig.PREF_MUX_CONCURRENCY) }
@@ -246,6 +247,7 @@ class SettingsActivity : BaseActivity() {
}
listOf(
AppConfig.PREF_VPN_BYPASS_LAN,
AppConfig.PREF_ROUTING_DOMAIN_STRATEGY,
AppConfig.PREF_MUX_XUDP_QUIC,
AppConfig.PREF_FRAGMENT_PACKETS,
@@ -269,6 +271,8 @@ class SettingsActivity : BaseActivity() {
appendHttpProxy?.isEnabled = vpn
localDnsPort?.isEnabled = vpn
vpnDns?.isEnabled = vpn
vpnBypassLan?.isEnabled = vpn
vpn
if (vpn) {
updateLocalDns(
MmkvManager.decodeSettingsBool(

View File

@@ -29,6 +29,7 @@ class SettingsViewModel(application: Application) : AndroidViewModel(application
when (key) {
AppConfig.PREF_MODE,
AppConfig.PREF_VPN_DNS,
AppConfig.PREF_VPN_BYPASS_LAN,
AppConfig.PREF_REMOTE_DNS,
AppConfig.PREF_DOMESTIC_DNS,
AppConfig.PREF_DNS_HOSTS,

View File

@@ -176,6 +176,7 @@
<string name="summary_pref_remote_dns">DNS</string>
<string name="title_pref_vpn_dns">VPN DNS (IPv4/v6 فقط)</string>
<string name="title_pref_vpn_bypass_lan">Does VPN bypass LAN</string>
<string name="title_pref_domestic_dns">DNS المحلي (اختياري)</string>
<string name="summary_pref_domestic_dns">DNS</string>
@@ -323,4 +324,10 @@
<item>داكن</item>
</string-array>
<string-array name="vpn_bypass_lan">
<item>Follow config</item>
<item>Bypass</item>
<item>Not Bypass</item>
</string-array>
</resources>

View File

@@ -176,6 +176,7 @@
<string name="summary_pref_remote_dns">DNS</string>
<string name="title_pref_vpn_dns">VPN DNS (শুধুমাত্র IPv4/v6)</string>
<string name="title_pref_vpn_bypass_lan">Does VPN bypass LAN</string>
<string name="title_pref_domestic_dns">ঘরোয়া DNS (ঐচ্ছিক)</string>
<string name="summary_pref_domestic_dns">DNS</string>
@@ -327,5 +328,10 @@
<item>ইরান হোয়াইটলিস্ট</item>
</string-array>
<string-array name="vpn_bypass_lan">
<item>Follow config</item>
<item>Bypass</item>
<item>Not Bypass</item>
</string-array>
</resources>

View File

@@ -176,6 +176,7 @@
<string name="summary_pref_remote_dns">DNS</string>
<string name="title_pref_vpn_dns">VPN DNS (تینا IPv4/v6)</string>
<string name="title_pref_vpn_bypass_lan">Does VPN bypass LAN</string>
<string name="title_pref_domestic_dns">DNS منی (اختیاری)</string>
<string name="summary_pref_domestic_dns">DNS</string>
@@ -338,4 +339,10 @@
<item>نومگه اسبؽڌ ایران</item>
</string-array>
<string-array name="vpn_bypass_lan">
<item>Follow config</item>
<item>Bypass</item>
<item>Not Bypass</item>
</string-array>
</resources>

View File

@@ -125,7 +125,7 @@
<string name="menu_item_search">جستجو</string>
<string name="menu_item_select_all">انتخاب همه</string>
<string name="msg_enter_keywords">کلیدواژه‌ ها را وارد کنید</string>
<string name="switch_bypass_apps_mode">حالت Bypass</string>
<string name="switch_bypass_apps_mode">حالت دور زدن</string>
<string name="menu_item_select_proxy_app">انتخاب خودکار پروکسی برنامه</string>
<string name="msg_downloading_content">در حال دانلود محتوا</string>
<string name="menu_item_export_proxy_app">خروجی گرفتن در کلیپ‌ بورد</string>
@@ -136,7 +136,7 @@
<string name="title_advanced">تنظیمات پیشرفته</string>
<string name="title_vpn_settings">تنظیمات VPN</string>
<string name="title_pref_per_app_proxy">پروکسی به تفکیک برنامه</string>
<string name="summary_pref_per_app_proxy">عمومی: برنامه بررسی شده پروکسی است، اتصال مستقیم بدون بررسی است. \nحالت bypass: برنامه بررسی شده مستقیما متصل است، پراکسی بررسی نشده است. \nگزینهای برای انتخاب خودکار پروکسی برنامه در منو است.</string>
<string name="summary_pref_per_app_proxy">عمومی: برنامه بررسی شده پروکسی است، اتصال مستقیم بدون بررسی است. \nحالت دور زدن: برنامه بررسی شده مستقیما متصل است، پراکسی بررسی نشده است. \nگزینهای برای انتخاب خودکار پروکسی برنامه در منو است.</string>
<string name="title_pref_is_booted">اتصال خودکار هنگام راه اندازی</string>
<string name="summary_pref_is_booted">هنگام راه اندازی به طور خودکار به سرور انتخابی متصل می شود که ممکن است ناموفق باشد.</string>
@@ -174,6 +174,7 @@
<string name="summary_pref_remote_dns">DNS</string>
<string name="title_pref_vpn_dns">VPN DNS (فقط IPv4/v6)</string>
<string name="title_pref_vpn_bypass_lan">آیا VPN از LAN ؟عبور کند</string>
<string name="title_pref_domestic_dns">DNS داخلی (اختیاری)</string>
<string name="summary_pref_domestic_dns">DNS</string>
@@ -336,4 +337,10 @@
<item>ایران</item>
</string-array>
<string-array name="vpn_bypass_lan">
<item>پیش فرض کانفیگ</item>
<item>دور زده شود</item>
<item>دور زده نشود</item>
</string-array>
</resources>

View File

@@ -175,6 +175,7 @@
<string name="summary_pref_remote_dns">DNS</string>
<string name="title_pref_vpn_dns">VPN DNS (только IPv4/v6)</string>
<string name="title_pref_vpn_bypass_lan">Does VPN bypass LAN</string>
<string name="title_pref_domestic_dns">Внутренняя DNS (необязательно)</string>
<string name="summary_pref_domestic_dns">DNS</string>
@@ -337,4 +338,10 @@
<item>Белый список Ирана</item>
</string-array>
<string-array name="vpn_bypass_lan">
<item>Follow config</item>
<item>Bypass</item>
<item>Not Bypass</item>
</string-array>
</resources>

View File

@@ -175,6 +175,7 @@
<string name="summary_pref_remote_dns">DNS</string>
<string name="title_pref_vpn_dns">VPN DNS (Chỉ IPv4 / IPv6)</string>
<string name="title_pref_vpn_bypass_lan">Does VPN bypass LAN</string>
<string name="title_pref_domestic_dns">DNS nội địa (Không bắt buộc)</string>
<string name="summary_pref_domestic_dns">DNS</string>
@@ -324,4 +325,10 @@
<string name="title_pref_fragment_interval">Fragment Interval (min-max)</string>
<string name="title_pref_fragment_enabled">Enable Fragment</string>
<string-array name="vpn_bypass_lan">
<item>Follow config</item>
<item>Bypass</item>
<item>Not Bypass</item>
</string-array>
</resources>

View File

@@ -172,6 +172,7 @@
<string name="summary_pref_remote_dns">DNS</string>
<string name="title_pref_vpn_dns">VPN DNS (仅支持 IPv4/v6)</string>
<string name="title_pref_vpn_bypass_lan">VPN是否绕过局域网</string>
<string name="title_pref_domestic_dns">境内DNS (可选)</string>
<string name="summary_pref_domestic_dns">DNS</string>
@@ -328,4 +329,10 @@
<item>伊朗(Iran)</item>
</string-array>
<string-array name="vpn_bypass_lan">
<item>跟随配置文件</item>
<item>绕过</item>
<item>不绕过</item>
</string-array>
</resources>

View File

@@ -174,6 +174,7 @@
<string name="summary_pref_remote_dns">DNS</string>
<string name="title_pref_vpn_dns">VPN DNS (僅支援 IPv4/v6)</string>
<string name="title_pref_vpn_bypass_lan">VPN是否繞過區域網</string>
<string name="title_pref_dns_hosts">DNS hosts (格式: 網域:位址,…)</string>
<string name="summary_pref_dns_hosts">domain:address,…</string>
@@ -327,4 +328,10 @@
<item>伊朗(Iran)</item>
</string-array>
<string-array name="vpn_bypass_lan">
<item>跟隨設定檔</item>
<item>繞過</item>
<item>不繞過</item>
</string-array>
</resources>

View File

@@ -211,4 +211,11 @@
<item>stream-up</item>
<item>stream-one</item>
</string-array>
<string-array name="vpn_bypass_lan_value" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
</resources>

View File

@@ -178,6 +178,7 @@
<string name="summary_pref_remote_dns">DNS</string>
<string name="title_pref_vpn_dns">VPN DNS (only IPv4/v6)</string>
<string name="title_pref_vpn_bypass_lan">Does VPN bypass LAN</string>
<string name="title_pref_domestic_dns">Domestic DNS (Optional)</string>
<string name="summary_pref_domestic_dns">DNS</string>
@@ -340,4 +341,10 @@
<item>Iran Whitelist</item>
</string-array>
<string-array name="vpn_bypass_lan">
<item>Follow config</item>
<item>Bypass</item>
<item>Not Bypass</item>
</string-array>
</resources>

View File

@@ -49,6 +49,14 @@
android:key="pref_vpn_dns"
android:summary="@string/summary_pref_remote_dns"
android:title="@string/title_pref_vpn_dns" />
<ListPreference
android:defaultValue="0"
android:entries="@array/vpn_bypass_lan"
android:entryValues="@array/vpn_bypass_lan_value"
android:key="pref_vpn_bypass_lan"
android:summary="%s"
android:title="@string/title_pref_vpn_bypass_lan" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/title_ui_settings">