🍉 Sync 2026-03-25 20:27:28

This commit is contained in:
github-actions[bot] committed 2026-03-25 20:27:28 +08:00
1 parent 0fc177db09
commit f9454edb7a
14 files changed
+145 -21

No files matched your search

+2 -2
View File
@@ -16,8 +16,8 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-amlogic PKG_NAME:=luci-app-amlogic
PKG_VERSION:=3.1.287 PKG_VERSION:=3.1.288
PKG_RELEASE:=2 PKG_RELEASE:=3
PKG_LICENSE:=GPL-2.0 License PKG_LICENSE:=GPL-2.0 License
PKG_MAINTAINER:=ophub <https://github.com/ophub/luci-app-amlogic> PKG_MAINTAINER:=ophub <https://github.com/ophub/luci-app-amlogic>
@@ -282,8 +282,8 @@ while [ $p -ge 1 ]; do
done done
# you can change ROOT size(MB) >= 320 # you can change ROOT size(MB) >= 320
ROOT1="2048" ROOT1="1280"
ROOT2="2048" ROOT2="1280"
if [[ "${AMLOGIC_SOC}" == "s912" ]] && [[ "${boxtype}" == "213" || "${boxtype}" == "2e" ]]; then if [[ "${AMLOGIC_SOC}" == "s912" ]] && [[ "${boxtype}" == "213" || "${boxtype}" == "2e" ]]; then
BOOT="512" BOOT="512"
BLANK1="700" BLANK1="700"
@@ -37,6 +37,7 @@ o:value("http", "HTTP")
o:value("socks", "Socks") o:value("socks", "Socks")
o:value("shadowsocks", "Shadowsocks") o:value("shadowsocks", "Shadowsocks")
o:value("trojan", "Trojan") o:value("trojan", "Trojan")
o:value("hysteria2", translate("Hysteria2"))
o:value("dokodemo-door", "dokodemo-door") o:value("dokodemo-door", "dokodemo-door")
o:depends({ [_n("custom")] = false }) o:depends({ [_n("custom")] = false })
@@ -122,6 +123,30 @@ o:value("", translate("Disable"))
o:value("xtls-rprx-vision") o:value("xtls-rprx-vision")
o:depends({ [_n("protocol")] = "vless" }) o:depends({ [_n("protocol")] = "vless" })
---- [[ hysteria2 ]]
o = s:option(Value, _n("hysteria2_auth_password"), translate("Auth Password"))
o.password = true
o:depends({ [_n("protocol")] = "hysteria2"})
o = s:option(Flag, _n("hysteria2_ignore_client_bandwidth"), translate("Client BBR Flow Control"))
o.default = 0
o:depends({ [_n("protocol")] = "hysteria2" })
o = s:option(Value, _n("hysteria2_up_mbps"), translate("Max upload Mbps"))
o:depends({ [_n("protocol")] = "hysteria2", [_n("hysteria2_ignore_client_bandwidth")] = false })
o = s:option(Value, _n("hysteria2_down_mbps"), translate("Max download Mbps"))
o:depends({ [_n("protocol")] = "hysteria2", [_n("hysteria2_ignore_client_bandwidth")] = false })
o = s:option(ListValue, _n("hysteria2_obfs_type"), translate("Obfs Type"))
o:value("", translate("Disable"))
o:value("salamander")
o:depends({ [_n("protocol")] = "hysteria2" })
o = s:option(Value, _n("hysteria2_obfs_password"), translate("Obfs Password"))
o:depends({ [_n("hysteria2_obfs_type")] = "salamander" })
---- [[ TLS ]]
o = s:option(Flag, _n("tls"), translate("TLS")) o = s:option(Flag, _n("tls"), translate("TLS"))
o.default = 0 o.default = 0
o.validate = function(self, value, t) o.validate = function(self, value, t)
@@ -190,6 +215,7 @@ o:value("http/1.1")
o:value("h2,http/1.1") o:value("h2,http/1.1")
o:value("h3,h2,http/1.1") o:value("h3,h2,http/1.1")
o:depends({ [_n("tls")] = true, [_n("reality")] = false }) o:depends({ [_n("tls")] = true, [_n("reality")] = false })
o:depends({ [_n("protocol")] = "hysteria2"})
o = s:option(Flag, _n("use_mldsa65Seed"), translate("ML-DSA-65")) o = s:option(Flag, _n("use_mldsa65Seed"), translate("ML-DSA-65"))
o.default = "0" o.default = "0"
@@ -215,6 +241,7 @@ o = s:option(FileUpload, _n("tls_certificateFile"), translate("Public key absolu
o.default = m:get(s.section, "tls_certificateFile") or "/etc/config/ssl/" .. arg[1] .. ".pem" o.default = m:get(s.section, "tls_certificateFile") or "/etc/config/ssl/" .. arg[1] .. ".pem"
if o and o:formvalue(arg[1]) then o.default = o:formvalue(arg[1]) end if o and o:formvalue(arg[1]) then o.default = o:formvalue(arg[1]) end
o:depends({ [_n("tls")] = true, [_n("reality")] = false }) o:depends({ [_n("tls")] = true, [_n("reality")] = false })
o:depends({ [_n("protocol")] = "hysteria2"})
o.validate = function(self, value, t) o.validate = function(self, value, t)
if value and value ~= "" then if value and value ~= "" then
if not fs.access(value) then if not fs.access(value) then
@@ -230,6 +257,7 @@ o = s:option(FileUpload, _n("tls_keyFile"), translate("Private key absolute path
o.default = m:get(s.section, "tls_keyFile") or "/etc/config/ssl/" .. arg[1] .. ".key" o.default = m:get(s.section, "tls_keyFile") or "/etc/config/ssl/" .. arg[1] .. ".key"
if o and o:formvalue(arg[1]) then o.default = o:formvalue(arg[1]) end if o and o:formvalue(arg[1]) then o.default = o:formvalue(arg[1]) end
o:depends({ [_n("tls")] = true, [_n("reality")] = false }) o:depends({ [_n("tls")] = true, [_n("reality")] = false })
o:depends({ [_n("protocol")] = "hysteria2"})
o.validate = function(self, value, t) o.validate = function(self, value, t)
if value and value ~= "" then if value and value ~= "" then
if not fs.access(value) then if not fs.access(value) then
@@ -398,7 +426,10 @@ o:depends({ [_n("custom")] = false })
--[[Fast Open]] --[[Fast Open]]
o = s:option(Flag, _n("tcp_fast_open"), "TCP " .. translate("Fast Open")) o = s:option(Flag, _n("tcp_fast_open"), "TCP " .. translate("Fast Open"))
o.default = "0" o.default = "0"
o:depends({ [_n("custom")] = false }) o:depends({ [_n("protocol")] = "vmess", [_n("custom")] = false })
o:depends({ [_n("protocol")] = "vless", [_n("custom")] = false })
o:depends({ [_n("protocol")] = "shadowsocks", [_n("custom")] = false })
o:depends({ [_n("protocol")] = "trojan", [_n("custom")] = false })
-- [[ Fallback部分 ]]-- -- [[ Fallback部分 ]]--
o = s:option(Flag, _n("fallback"), translate("Fallback")) o = s:option(Flag, _n("fallback"), translate("Fallback"))
@@ -154,7 +154,11 @@ if singbox_tags:find("with_quic") then
end end
if singbox_tags:find("with_quic") then if singbox_tags:find("with_quic") then
o = s:option(Flag, _n("hysteria2_ignore_client_bandwidth"), translate("Commands the client to use the BBR flow control algorithm")) o = s:option(Value, _n("hysteria2_auth_password"), translate("Auth Password"))
o.password = true
o:depends({ [_n("protocol")] = "hysteria2"})
o = s:option(Flag, _n("hysteria2_ignore_client_bandwidth"), translate("Client BBR Flow Control"), translate("Commands the client to use the BBR flow control algorithm"))
o.default = 0 o.default = 0
o:depends({ [_n("protocol")] = "hysteria2" }) o:depends({ [_n("protocol")] = "hysteria2" })
@@ -171,10 +175,6 @@ if singbox_tags:find("with_quic") then
o = s:option(Value, _n("hysteria2_obfs_password"), translate("Obfs Password")) o = s:option(Value, _n("hysteria2_obfs_password"), translate("Obfs Password"))
o:depends({ [_n("hysteria2_obfs_type")] = "salamander" }) o:depends({ [_n("hysteria2_obfs_type")] = "salamander" })
o = s:option(Value, _n("hysteria2_auth_password"), translate("Auth Password"))
o.password = true
o:depends({ [_n("protocol")] = "hysteria2"})
end end
o = s:option(ListValue, _n("d_protocol"), translate("Destination protocol")) o = s:option(ListValue, _n("d_protocol"), translate("Destination protocol"))
@@ -456,6 +456,13 @@ function gen_config_server(node)
clients = clients clients = clients
} }
end end
elseif node.protocol == "hysteria2" then
settings = {
version = 2,
clients = node.hysteria2_auth_password and {
{ auth = node.hysteria2_auth_password }
}
}
elseif node.protocol == "dokodemo-door" then elseif node.protocol == "dokodemo-door" then
settings = { settings = {
network = node.d_protocol, network = node.d_protocol,
@@ -533,6 +540,12 @@ function gen_config_server(node)
end end
end end
if node.protocol == "hysteria2" then
node.protocol = "hysteria"
node.transport = "hysteria"
node.tls = "1"
end
local config = { local config = {
log = { log = {
-- error = "/tmp/etc/passwall_server/log/" .. user[".name"] .. ".log", -- error = "/tmp/etc/passwall_server/log/" .. user[".name"] .. ".log",
@@ -601,8 +614,11 @@ function gen_config_server(node)
maxUploadSize = node.xhttp_maxuploadsize, maxUploadSize = node.xhttp_maxuploadsize,
maxConcurrentUploads = node.xhttp_maxconcurrentuploads maxConcurrentUploads = node.xhttp_maxconcurrentuploads
} or nil, } or nil,
hysteriaSettings = (node.transport == "hysteria") and {
version = 2
} or nil,
finalmask = (function() finalmask = (function()
local finalmask local finalmask = {}
if node.transport == "mkcp" then if node.transport == "mkcp" then
local map = {none = "none", srtp = "header-srtp", utp = "header-utp", ["wechat-video"] = "header-wechat", local map = {none = "none", srtp = "header-srtp", utp = "header-utp", ["wechat-video"] = "header-wechat",
dtls = "header-dtls", wireguard = "header-wireguard", dns = "header-dns"} dtls = "header-dtls", wireguard = "header-wireguard", dns = "header-dns"}
@@ -619,7 +635,24 @@ function gen_config_server(node)
c.settings = { password = node.mkcp_seed } c.settings = { password = node.mkcp_seed }
end end
udp[#udp+1] = c udp[#udp+1] = c
finalmask = { udp = udp } finalmask.udp = udp
elseif node.transport == "hysteria" then
if node.hysteria2_obfs_type and node.hysteria2_obfs_type ~= "" then
finalmask.udp = {{
type = node.hysteria2_obfs_type,
settings = node.hysteria2_obfs_password and {
password = node.hysteria2_obfs_password
} or nil
}}
end
local ignore = tonumber(node.hysteria2_ignore_client_bandwidth) == 1
local up = (not ignore) and tonumber(node.hysteria2_up_mbps) or 0
local down = (not ignore) and tonumber(node.hysteria2_down_mbps) or 0
finalmask.quicParams = {
congestion = (up <= 0 and down <= 0) and "bbr" or "brutal",
brutalUp = up > 0 and (up .. "mbps") or nil,
brutalDown = down > 0 and (down .. "mbps") or nil
}
end end
if node.finalmask and node.finalmask ~= "" then if node.finalmask and node.finalmask ~= "" then
local ok, fm = pcall(jsonc.parse, api.base64Decode(node.finalmask)) local ok, fm = pcall(jsonc.parse, api.base64Decode(node.finalmask))
+3
View File
@@ -679,6 +679,9 @@ msgstr "认证类型"
msgid "Auth Password" msgid "Auth Password"
msgstr "认证密码" msgstr "认证密码"
msgid "Client BBR Control"
msgstr "客户端 BBR 流控"
msgid "Commands the client to use the BBR flow control algorithm" msgid "Commands the client to use the BBR flow control algorithm"
msgstr "命令客户端使用 BBR 流量控制算法" msgstr "命令客户端使用 BBR 流量控制算法"
+2 -2
View File
@@ -7,10 +7,10 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
LUCI_TITLE:=Argon Theme LUCI_TITLE:=Argon Theme
LUCI_DEPENDS:=+wget +jsonfilter LUCI_DEPENDS:=+@wget-any +jsonfilter
PKG_VERSION:=2.4.3 PKG_VERSION:=2.4.3
PKG_RELEASE:=1 PKG_RELEASE:=2
LUCI_MINIFY_CSS:=0 LUCI_MINIFY_CSS:=0
+1 -1
View File
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=modeminfo PKG_NAME:=modeminfo
PKG_VERSION:=0.4.5 PKG_VERSION:=0.4.5
PKG_RELEASE:=1 PKG_RELEASE:=2
PKG_MAINTAINER:=Konstantine Shevlakov <shevlakov@132lan.ru> PKG_MAINTAINER:=Konstantine Shevlakov <shevlakov@132lan.ru>
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
@@ -51,13 +51,12 @@ function modem_data(){
ENBID=$(printf %d 0x$ENBx) ENBID=$(printf %d 0x$ENBx)
LTE_CA=$(echo "$O" | awk '/\^CELLINFO: / {print $0}' | wc -l) LTE_CA=$(echo "$O" | awk '/\^CELLINFO: / {print $0}' | wc -l)
if [ $LTE_CA -gt 0 ]; then if [ $LTE_CA -gt 0 ]; then
OIFS="$IFS"; IFS="|"
LTE_CA=1; OIFS="$IFS"; IFS="|" LTE_CA=1; OIFS="$IFS"; IFS="|"
set -- $(echo "$O" | awk -v bwdl=${BWC:-0} -F [,]' set -- $(echo "$O" | awk -v bwdl=${BWC:-0} -F [,] '
/^\^CELLINFO: "SCC"/{bands = bands "+" $7; sum+=$6/5; bwca=sum+bedl} /CELLINFO: "SCC"/{bands = bands "+" $7; sum+=$6/5; bwca=sum+bwdl}
END{print bands "|" bwca} END{print bands "|" bwca}
') ')
BWCA=${1}; SCC=${2} BWCA=${2}; SCC=${1}
IFS="$OIFS"; unset OIFS BWC IFS="$OIFS"; unset OIFS BWC
fi fi
;; ;;
+37
View File
@@ -0,0 +1,37 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=qmbimat
PKG_VERSION:=0.0.1
PKG_RELEASE:=1
PKG_MAINTAINER:=Konstantine Shevlakov <shevlakov@132lan.ru>
PKG_LICENSE:=LICENSE
PKG_LICENSE_FILES:=COPYING
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/quectel-official/QMbimAT.git
PKG_SOURCE_VERSION:=7c665521a732acbe7722ed19c91011163649f899
PKG_SOURCE_SUBDIR:=$(PKG_NAME)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
SECTION:=utils
CATEGORY:=Network
TITLE:=Tool for send AT-command via MBIM interface
URL:=https://github.com/quectel-official/QMbimAT
endef
define Package/$(PKG_NAME)/description
Tool for send AT-command via MBIM interface
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/usr/bin/
endef
$(eval $(call BuildPackage,$(PKG_NAME)))
+20
View File
@@ -0,0 +1,20 @@
--- a/Makefile
+++ b/Makefile
@@ -16,14 +16,14 @@ OBJS = $(SOURCES:%.c=%.o)
all: $(PROG)
$(PROG): $(OBJS) $(MYLIBS)
- g++ $(LDFLAGS) $(OBJS) $(LIBS) -o $(PROG)
+ $(CXX) $(LDFLAGS) $(OBJS) $(LIBS) -o $(PROG)
rm -rf ./src/*.o
%.o:%.c
- gcc $(CFLAGS) -c -o $@ $<
+ $(CC) $(CFLAGS) -c -o $@ $<
%.a:
- make -C $(dir $@)
+ $(MAKE) -C $(dir $@)
clean:
# make clean -C $(SUBDIR)
+1 -1
View File
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=telegrambot PKG_NAME:=telegrambot
PKG_VERSION:=0.0.4 PKG_VERSION:=0.0.4
PKG_RELEASE:=1 PKG_RELEASE:=2
PKG_MAINTAINER:=Konstantine Shevlakov <shevlakov@132lan.ru> PKG_MAINTAINER:=Konstantine Shevlakov <shevlakov@132lan.ru>
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
@@ -1,3 +1,3 @@
#ip r | awk '/default/{print "interface "$5": "$9}' #ip r | awk '/default/{print "interface "$5": "$9}'
IP=$(nslookup myip.opendns.com resolver1.opendns.com | awk '/^Address( 1)?: / { print $3 }') IP=$(nslookup myip.opendns.com resolver1.opendns.com | awk '/^[[:space:]]*Address( 1)?: / { print $2 }')
echo -en "[$IP](https://whois.ru/$IP)" echo -en "[$IP](https://whois.ru/$IP)"
@@ -159,6 +159,7 @@ do
} || { } || {
RETURN_TEXT="Command not accepted! Uptime ${UPTIME} sec is smaller 180s" RETURN_TEXT="Command not accepted! Uptime ${UPTIME} sec is smaller 180s"
reply_to_msg $msg_id $origin "\${RETURN_TEXT}" reply_to_msg $msg_id $origin "\${RETURN_TEXT}"
}
;; ;;
("/wol") ("/wol")
(echo "Call $cmd [$parms]" | logger -t "telegram_bot" -p daemon.info)& (echo "Call $cmd [$parms]" | logger -t "telegram_bot" -p daemon.info)&