Add conditional process routing and routing strings
This commit is contained in:
1 parent
04ac6cb2d7
commit
fd57019e73
9 files changed
+91
-15
No files matched your search
@@ -2,6 +2,7 @@ package com.v2ray.ang.handler
|
||||
|
||||
import android.content.Context
|
||||
import android.content.res.AssetManager
|
||||
import android.os.Build
|
||||
import android.text.TextUtils
|
||||
import com.v2ray.ang.util.LogUtil
|
||||
import androidx.appcompat.app.AppCompatDelegate
|
||||
@@ -472,6 +473,28 @@ object SettingsManager {
|
||||
return mode == null || mode == VPN
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if process routing can be used.
|
||||
*/
|
||||
fun canUseProcessRouting(): Boolean {
|
||||
// Android 10+
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
|
||||
return false
|
||||
}
|
||||
|
||||
// Must xray tun
|
||||
if (isUsingHevTun()) {
|
||||
return false
|
||||
}
|
||||
|
||||
// Must have route only enabled
|
||||
if (MmkvManager.decodeSettingsBool(AppConfig.PREF_ROUTE_ONLY_ENABLED, false) == false) {
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensure default settings are present in MMKV.
|
||||
*/
|
||||
|
||||
@@ -498,12 +498,16 @@ object V2rayConfigManager {
|
||||
rule.ip = updatedIpList
|
||||
}
|
||||
|
||||
// Convert process package names to UIDs
|
||||
rule.process?.let { processList ->
|
||||
if (processList.isNotEmpty()) {
|
||||
val uids = PackageUidResolver.packageNamesToUids(context, processList)
|
||||
rule.process = uids.ifEmpty { null }
|
||||
if (SettingsManager.canUseProcessRouting()) {
|
||||
// Convert process package names to UIDs
|
||||
rule.process?.let { processList ->
|
||||
if (processList.isNotEmpty()) {
|
||||
val uids = PackageUidResolver.packageNamesToUids(context, processList)
|
||||
rule.process = uids.ifEmpty { null }
|
||||
}
|
||||
}
|
||||
} else {
|
||||
rule.process = null
|
||||
}
|
||||
|
||||
v2rayConfig.routing.rules.add(rule)
|
||||
|
||||
@@ -35,6 +35,10 @@ class RoutingEditActivity : BaseActivity() {
|
||||
} else {
|
||||
clearServer()
|
||||
}
|
||||
|
||||
SettingsManager.canUseProcessRouting().let { canUse ->
|
||||
binding.etProcess.isEnabled = canUse
|
||||
}
|
||||
}
|
||||
|
||||
private fun bindingServer(rulesetItem: RulesetItem): Boolean {
|
||||
|
||||
@@ -331,6 +331,15 @@
|
||||
<string name="routing_settings_import_rulesets_from_qrcode">استيراد مجموعة قواعد من رمز الاستجابة السريعة</string>
|
||||
<string name="routing_settings_export_rulesets_to_clipboard">Export ruleset to clipboard</string>
|
||||
<string name="routing_settings_locked">Locked, keep this rule when import presets</string>
|
||||
<string name="routing_settings_domain">domain</string>
|
||||
<string name="routing_settings_ip">ip</string>
|
||||
<string name="routing_settings_process">process (Package Name — only supported when using Xray TUN, routeOnly enabled, and Android 10+)</string>
|
||||
<string name="routing_settings_port">port</string>
|
||||
<string name="routing_settings_protocol">protocol</string>
|
||||
<string name="routing_settings_protocol_tip">[http,tls,bittorrent]</string>
|
||||
<string name="routing_settings_network">network</string>
|
||||
<string name="routing_settings_network_tip">[udp|tcp]</string>
|
||||
<string name="routing_settings_outbound_tag">outboundTag</string>
|
||||
|
||||
<string name="connection_test_pending">التحقق من الاتصال</string>
|
||||
<string name="connection_test_testing">يجري الاختبار…</string>
|
||||
|
||||
@@ -330,6 +330,15 @@
|
||||
<string name="routing_settings_import_rulesets_from_qrcode">QRcode থেকে রুলসেট আমদানি করুন</string>
|
||||
<string name="routing_settings_export_rulesets_to_clipboard">Export ruleset to clipboard</string>
|
||||
<string name="routing_settings_locked">Locked, keep this rule when import presets</string>
|
||||
<string name="routing_settings_domain">domain</string>
|
||||
<string name="routing_settings_ip">ip</string>
|
||||
<string name="routing_settings_process">process (Package Name — only supported when using Xray TUN, routeOnly enabled, and Android 10+)</string>
|
||||
<string name="routing_settings_port">port</string>
|
||||
<string name="routing_settings_protocol">protocol</string>
|
||||
<string name="routing_settings_protocol_tip">[http,tls,bittorrent]</string>
|
||||
<string name="routing_settings_network">network</string>
|
||||
<string name="routing_settings_network_tip">[udp|tcp]</string>
|
||||
<string name="routing_settings_outbound_tag">outboundTag</string>
|
||||
|
||||
<string name="connection_test_pending">সংযোগ পরীক্ষা করুন</string>
|
||||
<string name="connection_test_testing">পরীক্ষা চলছে…</string>
|
||||
|
||||
@@ -331,6 +331,15 @@
|
||||
<string name="routing_settings_import_rulesets_from_qrcode">Nhập bộ quy tắc từ QRcode</string>
|
||||
<string name="routing_settings_export_rulesets_to_clipboard">Export ruleset to clipboard</string>
|
||||
<string name="routing_settings_locked">Locked, keep this rule when import presets</string>
|
||||
<string name="routing_settings_domain">domain</string>
|
||||
<string name="routing_settings_ip">ip</string>
|
||||
<string name="routing_settings_process">process (Package Name — only supported when using Xray TUN, routeOnly enabled, and Android 10+)</string>
|
||||
<string name="routing_settings_port">port</string>
|
||||
<string name="routing_settings_protocol">protocol</string>
|
||||
<string name="routing_settings_protocol_tip">[http,tls,bittorrent]</string>
|
||||
<string name="routing_settings_network">network</string>
|
||||
<string name="routing_settings_network_tip">[udp|tcp]</string>
|
||||
<string name="routing_settings_outbound_tag">outboundTag</string>
|
||||
|
||||
<string name="connection_test_pending">Kiểm tra kết nối</string>
|
||||
<string name="connection_test_testing">Đang kiểm tra kết nối mạng...</string>
|
||||
|
||||
@@ -329,6 +329,15 @@
|
||||
<string name="routing_settings_import_rulesets_from_qrcode">从 QRcode 导入规则集</string>
|
||||
<string name="routing_settings_export_rulesets_to_clipboard">导出规则集至剪贴板</string>
|
||||
<string name="routing_settings_locked">锁定中,导入预设时不删除此规则</string>
|
||||
<string name="routing_settings_domain">domain</string>
|
||||
<string name="routing_settings_ip">ip</string>
|
||||
<string name="routing_settings_process">process (包名 — 仅在使用 Xray 的 TUN、开启 routeOnly 且 Android 10+ 时可用)</string>
|
||||
<string name="routing_settings_port">port</string>
|
||||
<string name="routing_settings_protocol">protocol</string>
|
||||
<string name="routing_settings_protocol_tip">[http,tls,bittorrent]</string>
|
||||
<string name="routing_settings_network">network</string>
|
||||
<string name="routing_settings_network_tip">[udp|tcp]</string>
|
||||
<string name="routing_settings_outbound_tag">outboundTag</string>
|
||||
|
||||
<string name="connection_test_pending">"检查网络连接"</string>
|
||||
<string name="connection_test_testing">"测试中…"</string>
|
||||
|
||||
@@ -329,6 +329,15 @@
|
||||
<string name="routing_settings_import_rulesets_from_qrcode">從二維碼匯入規則集</string>
|
||||
<string name="routing_settings_export_rulesets_to_clipboard">匯出規則集至剪貼簿</string>
|
||||
<string name="routing_settings_locked">鎖定中,匯入預設時不刪除此規則</string>
|
||||
<string name="routing_settings_domain">domain</string>
|
||||
<string name="routing_settings_ip">ip</string>
|
||||
<string name="routing_settings_process">process (套件名稱 — 僅在使用 Xray 的 TUN、開啟 routeOnly 且 Android 10+ 時可用)</string>
|
||||
<string name="routing_settings_port">port</string>
|
||||
<string name="routing_settings_protocol">protocol</string>
|
||||
<string name="routing_settings_protocol_tip">[http,tls,bittorrent]</string>
|
||||
<string name="routing_settings_network">network</string>
|
||||
<string name="routing_settings_network_tip">[udp|tcp]</string>
|
||||
<string name="routing_settings_outbound_tag">outboundTag</string>
|
||||
|
||||
<string name="connection_test_pending">"測試連線能力"</string>
|
||||
<string name="connection_test_testing">"測試中……"</string>
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
<string name="server_lab_path_kcp">kcp seed</string>
|
||||
<string name="server_lab_path_grpc">gRPC serviceName</string>
|
||||
<string name="server_lab_stream_security">TLS</string>
|
||||
<string name="server_lab_stream_fingerprint" translatable="false">Fingerprint</string>
|
||||
<string name="server_lab_stream_fingerprint">Fingerprint</string>
|
||||
<string name="server_lab_stream_alpn">Alpn</string>
|
||||
<string name="server_lab_allow_insecure">allowInsecure</string>
|
||||
<string name="server_lab_sni">SNI</string>
|
||||
@@ -334,15 +334,15 @@
|
||||
<string name="routing_settings_import_rulesets_from_qrcode">Import ruleset from QRcode</string>
|
||||
<string name="routing_settings_export_rulesets_to_clipboard">Export ruleset to clipboard</string>
|
||||
<string name="routing_settings_locked">Locked, keep this rule when import presets</string>
|
||||
<string name="routing_settings_domain" translatable="false">domain</string>
|
||||
<string name="routing_settings_ip" translatable="false">ip</string>
|
||||
<string name="routing_settings_process" translatable="false">process (Package Name, Only supports xray tun)</string>
|
||||
<string name="routing_settings_port" translatable="false">port</string>
|
||||
<string name="routing_settings_protocol" translatable="false">protocol</string>
|
||||
<string name="routing_settings_protocol_tip" translatable="false">[http,tls,bittorrent]</string>
|
||||
<string name="routing_settings_network" translatable="false">network</string>
|
||||
<string name="routing_settings_network_tip" translatable="false">[udp|tcp]</string>
|
||||
<string name="routing_settings_outbound_tag" translatable="false">outboundTag</string>
|
||||
<string name="routing_settings_domain">domain</string>
|
||||
<string name="routing_settings_ip">ip</string>
|
||||
<string name="routing_settings_process">process (Package Name — only supported when using Xray TUN, routeOnly enabled, and Android 10+)</string>
|
||||
<string name="routing_settings_port">port</string>
|
||||
<string name="routing_settings_protocol">protocol</string>
|
||||
<string name="routing_settings_protocol_tip">[http,tls,bittorrent]</string>
|
||||
<string name="routing_settings_network">network</string>
|
||||
<string name="routing_settings_network_tip">[udp|tcp]</string>
|
||||
<string name="routing_settings_outbound_tag">outboundTag</string>
|
||||
|
||||
<string name="connection_test_pending">Check Connectivity</string>
|
||||
<string name="connection_test_testing">Testing…</string>
|
||||
|
||||
Reference in new issue
Block a user