mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-02 04:13:56 +08:00
🍕 Sync 2026-08-28 16:44:23
This commit is contained in:
1 parent
7630ce970c
commit
6490d09e15
22 files changed
+113
-31
No files matched your search
@@ -2,7 +2,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"POT-Creation-Date: \n"
|
"POT-Creation-Date: \n"
|
||||||
"PO-Revision-Date: 2026-04-04 03:09+0000\n"
|
"PO-Revision-Date: 2026-08-24 16:48+0000\n"
|
||||||
"Last-Translator: Franco Castillo <castillofrancodamian@gmail.com>\n"
|
"Last-Translator: Franco Castillo <castillofrancodamian@gmail.com>\n"
|
||||||
"Language-Team: Spanish <https://hosted.weblate.org/projects/openwrt/"
|
"Language-Team: Spanish <https://hosted.weblate.org/projects/openwrt/"
|
||||||
"luciapplicationsfrpc/es/>\n"
|
"luciapplicationsfrpc/es/>\n"
|
||||||
@@ -11,7 +11,7 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
"X-Generator: Weblate 5.17-dev\n"
|
"X-Generator: Weblate 2026.9.dev0\n"
|
||||||
|
|
||||||
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1454
|
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1454
|
||||||
msgid "Add new proxy or visitor..."
|
msgid "Add new proxy or visitor..."
|
||||||
@@ -119,7 +119,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1417
|
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1417
|
||||||
msgid "Collecting data ..."
|
msgid "Collecting data ..."
|
||||||
msgstr "Recopilando los datos..."
|
msgstr "Recopilando datos..."
|
||||||
|
|
||||||
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:317
|
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:317
|
||||||
msgid "Command arguments passed to token source exec."
|
msgid "Command arguments passed to token source exec."
|
||||||
@@ -412,7 +412,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1460
|
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1460
|
||||||
msgid "General Settings"
|
msgid "General Settings"
|
||||||
msgstr "Ajustes generales"
|
msgstr "Configuración general"
|
||||||
|
|
||||||
#: applications/luci-app-frpc/root/usr/share/rpcd/acl.d/luci-app-frpc.json:3
|
#: applications/luci-app-frpc/root/usr/share/rpcd/acl.d/luci-app-frpc.json:3
|
||||||
msgid "Grant access to LuCI app frpc"
|
msgid "Grant access to LuCI app frpc"
|
||||||
@@ -653,7 +653,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1390
|
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1390
|
||||||
msgid "NOT RUNNING"
|
msgid "NOT RUNNING"
|
||||||
msgstr "NO EN EJECUCIÓN"
|
msgstr "NO SE ESTÁ EJECUTANDO"
|
||||||
|
|
||||||
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:359
|
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:359
|
||||||
msgid "OIDC additional endpoint params"
|
msgid "OIDC additional endpoint params"
|
||||||
@@ -860,7 +860,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1390
|
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1390
|
||||||
msgid "RUNNING"
|
msgid "RUNNING"
|
||||||
msgstr "EN EJECUCIÓN"
|
msgstr "EJECUTÁNDOSE"
|
||||||
|
|
||||||
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:667
|
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:667
|
||||||
msgid "Remote port"
|
msgid "Remote port"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"PO-Revision-Date: 2026-02-20 00:35+0000\n"
|
"PO-Revision-Date: 2026-08-24 16:48+0000\n"
|
||||||
"Last-Translator: Matthaiks <kitynska@gmail.com>\n"
|
"Last-Translator: Matthaiks <kitynska@gmail.com>\n"
|
||||||
"Language-Team: Polish <https://hosted.weblate.org/projects/openwrt/"
|
"Language-Team: Polish <https://hosted.weblate.org/projects/openwrt/"
|
||||||
"luciapplicationsfrpc/pl/>\n"
|
"luciapplicationsfrpc/pl/>\n"
|
||||||
@@ -9,7 +9,7 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||||
"|| n%100>=20) ? 1 : 2);\n"
|
"|| n%100>=20) ? 1 : 2);\n"
|
||||||
"X-Generator: Weblate 5.16.1-dev\n"
|
"X-Generator: Weblate 2026.9.dev0\n"
|
||||||
|
|
||||||
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1454
|
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1454
|
||||||
msgid "Add new proxy or visitor..."
|
msgid "Add new proxy or visitor..."
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"POT-Creation-Date: \n"
|
"POT-Creation-Date: \n"
|
||||||
"PO-Revision-Date: 2026-03-30 03:54+0000\n"
|
"PO-Revision-Date: 2026-08-24 16:48+0000\n"
|
||||||
"Last-Translator: Franco Castillo <castillofrancodamian@gmail.com>\n"
|
"Last-Translator: Franco Castillo <castillofrancodamian@gmail.com>\n"
|
||||||
"Language-Team: Spanish <https://hosted.weblate.org/projects/openwrt/"
|
"Language-Team: Spanish <https://hosted.weblate.org/projects/openwrt/"
|
||||||
"luciapplicationsfrps/es/>\n"
|
"luciapplicationsfrps/es/>\n"
|
||||||
@@ -11,7 +11,7 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
"X-Generator: Weblate 5.17-dev\n"
|
"X-Generator: Weblate 2026.9.dev0\n"
|
||||||
|
|
||||||
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:982
|
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:982
|
||||||
msgid "Access Control"
|
msgid "Access Control"
|
||||||
@@ -79,7 +79,7 @@ msgstr "Puerto de enlace"
|
|||||||
|
|
||||||
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:969
|
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:969
|
||||||
msgid "Collecting data ..."
|
msgid "Collecting data ..."
|
||||||
msgstr "Recopilando los datos..."
|
msgstr "Recopilando datos..."
|
||||||
|
|
||||||
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:323
|
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:323
|
||||||
msgid "Command arguments passed to token source exec."
|
msgid "Command arguments passed to token source exec."
|
||||||
@@ -315,7 +315,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:942
|
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:942
|
||||||
msgid "NOT RUNNING"
|
msgid "NOT RUNNING"
|
||||||
msgstr "NO EN EJECUCIÓN"
|
msgstr "NO SE ESTÁ EJECUTANDO"
|
||||||
|
|
||||||
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:349
|
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:349
|
||||||
msgid "OIDC audience"
|
msgid "OIDC audience"
|
||||||
@@ -457,7 +457,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:942
|
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:942
|
||||||
msgid "RUNNING"
|
msgid "RUNNING"
|
||||||
msgstr "EN EJECUCIÓN"
|
msgstr "EJECUTÁNDOSE"
|
||||||
|
|
||||||
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:125
|
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:125
|
||||||
msgid "Respawn when crashed"
|
msgid "Respawn when crashed"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"PO-Revision-Date: 2026-02-20 00:33+0000\n"
|
"PO-Revision-Date: 2026-08-24 16:48+0000\n"
|
||||||
"Last-Translator: Matthaiks <kitynska@gmail.com>\n"
|
"Last-Translator: Matthaiks <kitynska@gmail.com>\n"
|
||||||
"Language-Team: Polish <https://hosted.weblate.org/projects/openwrt/"
|
"Language-Team: Polish <https://hosted.weblate.org/projects/openwrt/"
|
||||||
"luciapplicationsfrps/pl/>\n"
|
"luciapplicationsfrps/pl/>\n"
|
||||||
@@ -9,7 +9,7 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||||
"|| n%100>=20) ? 1 : 2);\n"
|
"|| n%100>=20) ? 1 : 2);\n"
|
||||||
"X-Generator: Weblate 5.16.1-dev\n"
|
"X-Generator: Weblate 2026.9.dev0\n"
|
||||||
|
|
||||||
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:982
|
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:982
|
||||||
msgid "Access Control"
|
msgid "Access Control"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
|
|||||||
|
|
||||||
PKG_NAME:=luci-app-passwall
|
PKG_NAME:=luci-app-passwall
|
||||||
PKG_VERSION:=26.8.26
|
PKG_VERSION:=26.8.26
|
||||||
PKG_RELEASE:=248
|
PKG_RELEASE:=249
|
||||||
PKG_PO_VERSION:=$(PKG_VERSION)
|
PKG_PO_VERSION:=$(PKG_VERSION)
|
||||||
|
|
||||||
PKG_CONFIG_DEPENDS:= \
|
PKG_CONFIG_DEPENDS:= \
|
||||||
|
|||||||
@@ -934,7 +934,8 @@ local backup_files = {
|
|||||||
"/usr/share/passwall/rules/direct_host",
|
"/usr/share/passwall/rules/direct_host",
|
||||||
"/usr/share/passwall/rules/direct_ip",
|
"/usr/share/passwall/rules/direct_ip",
|
||||||
"/usr/share/passwall/rules/proxy_host",
|
"/usr/share/passwall/rules/proxy_host",
|
||||||
"/usr/share/passwall/rules/proxy_ip"
|
"/usr/share/passwall/rules/proxy_ip",
|
||||||
|
"/usr/share/passwall/rules/domains_excluded"
|
||||||
}
|
}
|
||||||
|
|
||||||
function create_backup()
|
function create_backup()
|
||||||
|
|||||||
@@ -193,7 +193,7 @@ if has_xray then
|
|||||||
o.default = 0
|
o.default = 0
|
||||||
o.description = translate("Override the connection destination address with the sniffed domain.<br />Otherwise use sniffed domain for routing only.<br />If using shunt nodes, configure the domain shunt rules correctly.")
|
o.description = translate("Override the connection destination address with the sniffed domain.<br />Otherwise use sniffed domain for routing only.<br />If using shunt nodes, configure the domain shunt rules correctly.")
|
||||||
|
|
||||||
local domains_excluded = string.format("/usr/share/%s/domains_excluded", m.config)
|
local domains_excluded = string.format("/usr/share/%s/rules/domains_excluded", m.config)
|
||||||
o = s_xray:option(TextValue, "excluded_domains", translate("Excluded Domains"), translate("If the traffic sniffing result is in this list, the destination address will not be overridden."))
|
o = s_xray:option(TextValue, "excluded_domains", translate("Excluded Domains"), translate("If the traffic sniffing result is in this list, the destination address will not be overridden."))
|
||||||
o.rows = 15
|
o.rows = 15
|
||||||
o.wrap = "off"
|
o.wrap = "off"
|
||||||
|
|||||||
@@ -383,6 +383,10 @@ if singbox_tags:find("with_quic") then
|
|||||||
o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" }
|
o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" }
|
||||||
o:depends({ hysteria2_realms = "1" })
|
o:depends({ hysteria2_realms = "1" })
|
||||||
|
|
||||||
|
o = s:option(Flag, "hysteria2_realm_upnp", translate("Enable") .. " UPnP/NAT-PMP", translate("Enable UPnP/NAT-PMP port mapping on your gateway to improve hole punching success."))
|
||||||
|
o.default = "0"
|
||||||
|
o:depends({ hysteria2_realms = "1" })
|
||||||
|
|
||||||
o = s:option(Value, "hysteria2_auth_password", translate("Auth Password"))
|
o = s:option(Value, "hysteria2_auth_password", translate("Auth Password"))
|
||||||
o.password = true
|
o.password = true
|
||||||
o:depends({ protocol = "hysteria2"})
|
o:depends({ protocol = "hysteria2"})
|
||||||
|
|||||||
@@ -357,6 +357,10 @@ o = s:option(DynamicList, "hysteria2_realm_stun", translate("Realm STUN"))
|
|||||||
o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" }
|
o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" }
|
||||||
o:depends({ hysteria2_realms = "1" })
|
o:depends({ hysteria2_realms = "1" })
|
||||||
|
|
||||||
|
o = s:option(Flag, "hysteria2_realm_upnp", translate("Enable") .. " UPnP/NAT-PMP", translate("Enable UPnP/NAT-PMP port mapping on your gateway to improve hole punching success."))
|
||||||
|
o.default = "0"
|
||||||
|
o:depends({ hysteria2_realms = "1" })
|
||||||
|
|
||||||
o = s:option(Value, "hysteria2_auth_password", translate("Auth Password"))
|
o = s:option(Value, "hysteria2_auth_password", translate("Auth Password"))
|
||||||
o.password = true
|
o.password = true
|
||||||
o:depends({ protocol = "hysteria2"})
|
o:depends({ protocol = "hysteria2"})
|
||||||
|
|||||||
@@ -61,6 +61,11 @@ o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio
|
|||||||
o.rewrite_option = _n(o.option)
|
o.rewrite_option = _n(o.option)
|
||||||
o:depends({ realms = "1" })
|
o:depends({ realms = "1" })
|
||||||
|
|
||||||
|
o = s:option(Flag, "realm_upnp", translate("Enable") .. " UPnP/NAT-PMP", translate("Enable UPnP/NAT-PMP port mapping on your gateway to improve hole punching success."))
|
||||||
|
o.default = "0"
|
||||||
|
o.rewrite_option = _n(o.option)
|
||||||
|
o:depends({ realms = "1" })
|
||||||
|
|
||||||
o = s:option(Value, "auth_password", translate("Auth Password"))
|
o = s:option(Value, "auth_password", translate("Auth Password"))
|
||||||
o.password = true
|
o.password = true
|
||||||
o.rewrite_option = _n(o.option)
|
o.rewrite_option = _n(o.option)
|
||||||
@@ -124,6 +129,20 @@ o = s:option(Flag, "disable_mtu_discovery", translate("Disable MTU detection"))
|
|||||||
o.default = "0"
|
o.default = "0"
|
||||||
o.rewrite_option = _n(o.option)
|
o.rewrite_option = _n(o.option)
|
||||||
|
|
||||||
|
|
||||||
|
o = s:option(Flag, "ech", translate("ECH"))
|
||||||
|
o.default = "0"
|
||||||
|
o:depends({ realms = false })
|
||||||
|
|
||||||
|
o = s:option(TextValue, "ech_config", translate("ECH Config"))
|
||||||
|
o.default = ""
|
||||||
|
o.rows = 5
|
||||||
|
o.wrap = "soft"
|
||||||
|
o:depends({ ech = "1" })
|
||||||
|
o.validate = function(self, value)
|
||||||
|
return api.trim(value:gsub("[\r\n]", ""))
|
||||||
|
end
|
||||||
|
|
||||||
o = s:option(Flag, "lazy_start", translate("Lazy Start"))
|
o = s:option(Flag, "lazy_start", translate("Lazy Start"))
|
||||||
o.default = "0"
|
o.default = "0"
|
||||||
o.rewrite_option = _n(o.option)
|
o.rewrite_option = _n(o.option)
|
||||||
|
|||||||
@@ -183,6 +183,10 @@ if singbox_tags:find("with_quic") then
|
|||||||
o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" }
|
o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" }
|
||||||
o:depends({ hysteria2_realms = "1" })
|
o:depends({ hysteria2_realms = "1" })
|
||||||
|
|
||||||
|
o = s:option(Flag, "hysteria2_realm_upnp", translate("Enable") .. " UPnP/NAT-PMP", translate("Enable UPnP/NAT-PMP port mapping on your gateway to improve hole punching success."))
|
||||||
|
o.default = "0"
|
||||||
|
o:depends({ hysteria2_realms = "1" })
|
||||||
|
|
||||||
o = s:option(ListValue, "hysteria2_obfs_type", translate("Obfs Type"))
|
o = s:option(ListValue, "hysteria2_obfs_type", translate("Obfs Type"))
|
||||||
o:value("", translate("Disable"))
|
o:value("", translate("Disable"))
|
||||||
o:value("salamander")
|
o:value("salamander")
|
||||||
|
|||||||
@@ -149,6 +149,10 @@ o = s:option(DynamicList, "hysteria2_realm_stun", translate("Realm STUN"))
|
|||||||
o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" }
|
o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" }
|
||||||
o:depends({ hysteria2_realms = "1" })
|
o:depends({ hysteria2_realms = "1" })
|
||||||
|
|
||||||
|
o = s:option(Flag, "hysteria2_realm_upnp", translate("Enable") .. " UPnP/NAT-PMP", translate("Enable UPnP/NAT-PMP port mapping on your gateway to improve hole punching success."))
|
||||||
|
o.default = "0"
|
||||||
|
o:depends({ hysteria2_realms = "1" })
|
||||||
|
|
||||||
o = s:option(ListValue, "hysteria2_obfs_type", translate("Obfs Type"))
|
o = s:option(ListValue, "hysteria2_obfs_type", translate("Obfs Type"))
|
||||||
o:value("", translate("Disable"))
|
o:value("", translate("Disable"))
|
||||||
o:value("salamander")
|
o:value("salamander")
|
||||||
|
|||||||
@@ -73,6 +73,11 @@ o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio
|
|||||||
o.rewrite_option = _n(o.option)
|
o.rewrite_option = _n(o.option)
|
||||||
o:depends({ realms = "1" })
|
o:depends({ realms = "1" })
|
||||||
|
|
||||||
|
o = s:option(Flag, "realm_upnp", translate("Enable") .. " UPnP/NAT-PMP", translate("Enable UPnP/NAT-PMP port mapping on your gateway to improve hole punching success."))
|
||||||
|
o.default = "0"
|
||||||
|
o.rewrite_option = _n(o.option)
|
||||||
|
o:depends({ realms = "1" })
|
||||||
|
|
||||||
o = s:option(ListValue, "obfs_type", translate("Obfs Type"))
|
o = s:option(ListValue, "obfs_type", translate("Obfs Type"))
|
||||||
o:value("", translate("Disable"))
|
o:value("", translate("Disable"))
|
||||||
o:value("salamander")
|
o:value("salamander")
|
||||||
@@ -147,6 +152,19 @@ o.validate = function(self, value, t)
|
|||||||
end
|
end
|
||||||
o:depends({ custom = false })
|
o:depends({ custom = false })
|
||||||
|
|
||||||
|
o = s:option(FileUpload, "ech_keyFile", translate("ECH key absolute path"), translate("as:") .. "/etc/ssl/ech.pem")
|
||||||
|
o.validate = function(self, value, t)
|
||||||
|
if value and value ~= "" then
|
||||||
|
if not fs.access(value) then
|
||||||
|
return nil, translate("Can't find this file!")
|
||||||
|
else
|
||||||
|
return value
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
o:depends({ custom = false })
|
||||||
|
|
||||||
o = s:option(Flag, "firewall_allow", translate("Firewall Allow"))
|
o = s:option(Flag, "firewall_allow", translate("Firewall Allow"))
|
||||||
o.default = "0"
|
o.default = "0"
|
||||||
o:depends({ custom = false })
|
o:depends({ custom = false })
|
||||||
|
|||||||
@@ -48,8 +48,10 @@ function gen_config_server(node)
|
|||||||
ignoreClientBandwidth = (node.hysteria2_ignoreClientBandwidth == "1") and true or false,
|
ignoreClientBandwidth = (node.hysteria2_ignoreClientBandwidth == "1") and true or false,
|
||||||
disableUDP = (node.hysteria2_udp == "0") and true or false,
|
disableUDP = (node.hysteria2_udp == "0") and true or false,
|
||||||
realm = (node.hysteria2_realms and node.hysteria2_realm_stun) and {
|
realm = (node.hysteria2_realms and node.hysteria2_realm_stun) and {
|
||||||
stunServers = node.hysteria2_realm_stun
|
stunServers = node.hysteria2_realm_stun,
|
||||||
} or nil
|
portMapping = (node.hysteria2_realm_upnp == "1") and { enabled = true } or nil
|
||||||
|
} or nil,
|
||||||
|
ech = (node.ech_keyFile and node.ech_keyFile ~= "") and { keyPath = node.ech_keyFile } or nil
|
||||||
}
|
}
|
||||||
|
|
||||||
if config.obfs and config.obfs.gecko then
|
if config.obfs and config.obfs.gecko then
|
||||||
@@ -101,7 +103,8 @@ function gen_config(var)
|
|||||||
return server
|
return server
|
||||||
end)(),
|
end)(),
|
||||||
realm = (node.hysteria2_realms and node.hysteria2_realm_stun) and {
|
realm = (node.hysteria2_realms and node.hysteria2_realm_stun) and {
|
||||||
stunServers = node.hysteria2_realm_stun
|
stunServers = node.hysteria2_realm_stun,
|
||||||
|
portMapping = (node.hysteria2_realm_upnp == "1") and { enabled = true } or nil
|
||||||
} or nil,
|
} or nil,
|
||||||
transport = {
|
transport = {
|
||||||
type = "udp",
|
type = "udp",
|
||||||
@@ -138,6 +141,7 @@ function gen_config(var)
|
|||||||
sni = node.tls_serverName,
|
sni = node.tls_serverName,
|
||||||
insecure = (node.tls_allowInsecure == "1") and true or false,
|
insecure = (node.tls_allowInsecure == "1") and true or false,
|
||||||
pinSHA256 = (node.tls_pinSHA256) and node.tls_pinSHA256 or nil,
|
pinSHA256 = (node.tls_pinSHA256) and node.tls_pinSHA256 or nil,
|
||||||
|
ech = (node.ech == "1") and node.ech_config or nil
|
||||||
},
|
},
|
||||||
quic = {
|
quic = {
|
||||||
initStreamReceiveWindow = (node.hysteria2_recv_window) and tonumber(node.hysteria2_recv_window) or nil,
|
initStreamReceiveWindow = (node.hysteria2_recv_window) and tonumber(node.hysteria2_recv_window) or nil,
|
||||||
|
|||||||
@@ -596,6 +596,7 @@ function gen_outbound(flag, node, tag, proxy_table)
|
|||||||
realm.scheme = nil
|
realm.scheme = nil
|
||||||
realm.address = nil
|
realm.address = nil
|
||||||
realm.port = nil
|
realm.port = nil
|
||||||
|
realm.port_mapping = (node.hysteria2_realm_upnp == "1") and { enabled = true } or nil
|
||||||
return realm
|
return realm
|
||||||
end
|
end
|
||||||
return nil
|
return nil
|
||||||
@@ -951,6 +952,7 @@ function gen_config_server(node)
|
|||||||
realm.address = nil
|
realm.address = nil
|
||||||
realm.port = nil
|
realm.port = nil
|
||||||
realm.stun_domain_resolver = "direct"
|
realm.stun_domain_resolver = "direct"
|
||||||
|
realm.port_mapping = (node.hysteria2_realm_upnp == "1") and { enabled = true } or nil
|
||||||
return realm
|
return realm
|
||||||
end
|
end
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ local xray_version = api.get_app_version("xray")
|
|||||||
local xray_min_version = "26.3.27"
|
local xray_min_version = "26.3.27"
|
||||||
|
|
||||||
local function get_domain_excluded()
|
local function get_domain_excluded()
|
||||||
local path = "/usr/share/passwall/domains_excluded"
|
local path = string.format("/usr/share/%s/rules/domains_excluded", api.c_config)
|
||||||
local content = fs.readfile(path)
|
local content = fs.readfile(path)
|
||||||
if not content then return nil end
|
if not content then return nil end
|
||||||
local hosts = {}
|
local hosts = {}
|
||||||
@@ -308,7 +308,8 @@ function gen_outbound(flag, node, tag, proxy_table)
|
|||||||
type = "realm",
|
type = "realm",
|
||||||
settings = {
|
settings = {
|
||||||
url = url,
|
url = url,
|
||||||
stunServers = stun
|
stunServers = stun,
|
||||||
|
portMapping = (node.hysteria2_realm_upnp == "1") and { enabled = true } or nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
udp[#udp+1] = r
|
udp[#udp+1] = r
|
||||||
@@ -782,7 +783,8 @@ function gen_config_server(node)
|
|||||||
type = "realm",
|
type = "realm",
|
||||||
settings = {
|
settings = {
|
||||||
url = url,
|
url = url,
|
||||||
stunServers = stun
|
stunServers = stun,
|
||||||
|
portMapping = (node.hysteria2_realm_upnp == "1") and { enabled = true } or nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
udp[#udp+1] = r
|
udp[#udp+1] = r
|
||||||
|
|||||||
@@ -594,6 +594,7 @@ local current_node = map:get(section)
|
|||||||
params += opt.query("pinSHA256", dom_prefix + "tls_pinSHA256");
|
params += opt.query("pinSHA256", dom_prefix + "tls_pinSHA256");
|
||||||
params += opt.query("pcs", dom_prefix + "tls_pinSHA256");
|
params += opt.query("pcs", dom_prefix + "tls_pinSHA256");
|
||||||
params += opt.query("vcn", dom_prefix + "tls_CertByName");
|
params += opt.query("vcn", dom_prefix + "tls_CertByName");
|
||||||
|
params += opt.query("ech", dom_prefix + "ech_config");
|
||||||
|
|
||||||
var v_password = null;
|
var v_password = null;
|
||||||
|
|
||||||
@@ -628,7 +629,7 @@ local current_node = map:get(section)
|
|||||||
params = params.replace(/^&/, "");
|
params = params.replace(/^&/, "");
|
||||||
url =
|
url =
|
||||||
_address + ":" +
|
_address + ":" +
|
||||||
v_port.value + "?" +
|
(v_port.value || "443") + "?" +
|
||||||
params +
|
params +
|
||||||
"#" + encodeURI(v_alias.value);
|
"#" + encodeURI(v_alias.value);
|
||||||
if (v_password) {
|
if (v_password) {
|
||||||
@@ -1664,6 +1665,8 @@ local current_node = map:get(section)
|
|||||||
);
|
);
|
||||||
opt.set(dom_prefix + 'tls_pinSHA256', queryParam.pcs || queryParam.pinSHA256 || '');
|
opt.set(dom_prefix + 'tls_pinSHA256', queryParam.pcs || queryParam.pinSHA256 || '');
|
||||||
opt.set(dom_prefix + 'tls_CertByName', queryParam.vcn || '');
|
opt.set(dom_prefix + 'tls_CertByName', queryParam.vcn || '');
|
||||||
|
opt.set(dom_prefix + 'ech', !!queryParam.ech);
|
||||||
|
opt.set(dom_prefix + 'ech_config', queryParam.ech || '');
|
||||||
if (m.hash) {
|
if (m.hash) {
|
||||||
opt.set('remarks', decodeURIComponent(m.hash.substr(1)));
|
opt.set('remarks', decodeURIComponent(m.hash.substr(1)));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1646,6 +1646,9 @@ msgstr "公钥文件绝对路径"
|
|||||||
msgid "Private key absolute path"
|
msgid "Private key absolute path"
|
||||||
msgstr "私钥文件绝对路径"
|
msgstr "私钥文件绝对路径"
|
||||||
|
|
||||||
|
msgid "ECH key absolute path"
|
||||||
|
msgstr "ECH 密钥绝对路径"
|
||||||
|
|
||||||
msgid "Can't find this file!"
|
msgid "Can't find this file!"
|
||||||
msgstr "找不到这个文件!"
|
msgstr "找不到这个文件!"
|
||||||
|
|
||||||
@@ -2202,6 +2205,9 @@ msgstr "Gecko 包大小(最小)"
|
|||||||
msgid "Gecko Packet Size (max)"
|
msgid "Gecko Packet Size (max)"
|
||||||
msgstr "Gecko 包大小(最大)"
|
msgstr "Gecko 包大小(最大)"
|
||||||
|
|
||||||
|
msgid "Enable UPnP/NAT-PMP port mapping on your gateway to improve hole punching success."
|
||||||
|
msgstr "在网关上启用 UPnP/NAT-PMP 端口映射以提升打洞成功率。"
|
||||||
|
|
||||||
msgid "valid time (hh:mm)"
|
msgid "valid time (hh:mm)"
|
||||||
msgstr "有效时间(hh:mm)"
|
msgstr "有效时间(hh:mm)"
|
||||||
|
|
||||||
|
|||||||
@@ -1467,6 +1467,10 @@ local function processData(szType, content, add_mode, group, sub_cfg)
|
|||||||
result.hysteria2_up_mbps = params.upmbps or (sub_cfg and sub_hy_up_mbps or nil)
|
result.hysteria2_up_mbps = params.upmbps or (sub_cfg and sub_hy_up_mbps or nil)
|
||||||
result.hysteria2_down_mbps = params.downmbps or (sub_cfg and sub_hy_down_mbps or nil)
|
result.hysteria2_down_mbps = params.downmbps or (sub_cfg and sub_hy_down_mbps or nil)
|
||||||
result.hysteria2_hop = params.mport
|
result.hysteria2_hop = params.mport
|
||||||
|
if params.ech and params.ech ~= "" then
|
||||||
|
result.ech = "1"
|
||||||
|
result.ech_config = params.ech
|
||||||
|
end
|
||||||
if params["obfs-password"] or params["obfs_password"] then
|
if params["obfs-password"] or params["obfs_password"] then
|
||||||
result.hysteria2_obfs_type = params.obfs or "salamander"
|
result.hysteria2_obfs_type = params.obfs or "salamander"
|
||||||
result.hysteria2_obfs_password = params["obfs-password"] or params["obfs_password"]
|
result.hysteria2_obfs_password = params["obfs-password"] or params["obfs_password"]
|
||||||
|
|||||||
+2
-2
@@ -10,12 +10,12 @@ include $(INCLUDE_DIR)/kernel.mk
|
|||||||
|
|
||||||
PKG_NAME:=natflow
|
PKG_NAME:=natflow
|
||||||
PKG_VERSION:=20260531
|
PKG_VERSION:=20260531
|
||||||
PKG_RELEASE:=73
|
PKG_RELEASE:=74
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=$(PKG_VERSION).tar.xz
|
||||||
PKG_SOURCE_URL:=https://github.com/ptpt52/natflow.git
|
PKG_SOURCE_URL:=https://github.com/ptpt52/natflow.git
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_VERSION:=8fa0d6022ff4f25fb123dfe8b3fc7337fc38e3fa
|
PKG_SOURCE_VERSION:=5e3dc6435603076f0fd93ca3d4f2e3899fc87e20
|
||||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||||
PKG_MAINTAINER:=Chen Minqiang <ptpt52@gmail.com>
|
PKG_MAINTAINER:=Chen Minqiang <ptpt52@gmail.com>
|
||||||
PKG_LICENSE:=GPL-2.0
|
PKG_LICENSE:=GPL-2.0
|
||||||
|
|||||||
+2
-2
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
|||||||
|
|
||||||
PKG_NAME:=teleproxy
|
PKG_NAME:=teleproxy
|
||||||
PKG_VERSION:=4.16.1
|
PKG_VERSION:=4.16.1
|
||||||
PKG_RELEASE:=25
|
PKG_RELEASE:=26
|
||||||
|
|
||||||
PKG_MAINTAINER:=Kosntantine Shevlakov <shevlakov@132lan.ru>
|
PKG_MAINTAINER:=Kosntantine Shevlakov <shevlakov@132lan.ru>
|
||||||
PKG_LICENSE:=GPLv2
|
PKG_LICENSE:=GPLv2
|
||||||
@@ -10,7 +10,7 @@ PKG_LICENSE_FILES:=LICENSE
|
|||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://github.com/teleproxy/teleproxy.git
|
PKG_SOURCE_URL:=https://github.com/teleproxy/teleproxy.git
|
||||||
PKG_SOURCE_VERSION:=064e893a5cc8fbd9b99609c09bd000a1f3fbc09b
|
PKG_SOURCE_VERSION:=b7d980539cf2eded55ee159c4c36376af6831a3d
|
||||||
|
|
||||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)
|
PKG_SOURCE_SUBDIR:=$(PKG_NAME)
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
|
|||||||
+9
-2
@@ -43,11 +43,11 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=wwand
|
PKG_NAME:=wwand
|
||||||
PKG_RELEASE:=11
|
PKG_RELEASE:=12
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://github.com/ddimension/wwand.git
|
PKG_SOURCE_URL:=https://github.com/ddimension/wwand.git
|
||||||
PKG_SOURCE_VERSION:=fc013f140d423867b993c6026fd435ec750cbb91
|
PKG_SOURCE_VERSION:=2311728191b2b325de54946b0767000baa245366
|
||||||
PKG_SOURCE_DATE:=2026-08-27
|
PKG_SOURCE_DATE:=2026-08-27
|
||||||
PKG_MIRROR_HASH:=skip
|
PKG_MIRROR_HASH:=skip
|
||||||
|
|
||||||
@@ -328,6 +328,13 @@ define Package/wwand-mhi/description
|
|||||||
MHI bus/PCI/control/data drivers and installs the wwan-subsystem hotplug so
|
MHI bus/PCI/control/data drivers and installs the wwan-subsystem hotplug so
|
||||||
wwand binds these modems on boot. Install together with a control backend
|
wwand binds these modems on boot. Install together with a control backend
|
||||||
(wwand-qmi or wwand-mbim).
|
(wwand-qmi or wwand-mbim).
|
||||||
|
|
||||||
|
Adding wwand-mbim is worthwhile even on a QMI-driven MHI modem: many of them
|
||||||
|
expose no DUN channel and therefore no AT port at all, and wwand can then
|
||||||
|
carry AT over the modem's MBIM channel instead (Quectel QDU). Without that
|
||||||
|
package the capability is simply absent — vendor AT commands, the protocol
|
||||||
|
switch and AT telemetry are unavailable, which is a limitation rather than a
|
||||||
|
failure.
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/wwand-mhi/install
|
define Package/wwand-mhi/install
|
||||||
|
|||||||
Reference in new issue
Block a user