1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-03-09 15:40:03 +00:00
This commit is contained in:
suyuan 2024-06-18 10:24:42 +08:00 committed by GitHub
commit a5fa67aa45
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 327 additions and 72 deletions

View file

@ -1003,8 +1003,8 @@ function wizard_add()
ucic:set("xray","omrout","s_vless_reality_user_security","chacha20-poly1305")
ucic:set("xray","omrout","s_trojan_user_security","chacha20-poly1305")
ucic:set("xray","omrout","s_socks_user_security","chacha20-poly1305")
ucic:set("xray","omrout","s_shadowsocks_method","2022-blake3-chacha20-poly1305")
--ucic:set("xray","omrout","s_shadowsocks_method","2022-blake3-aes-256-gcm")
--ucic:set("xray","omrout","s_shadowsocks_method","2022-blake3-chacha20-poly1305")
ucic:set("xray","omrout","s_shadowsocks_method","2022-blake3-aes-256-gcm")
--ucic:set("shadowsocks-rust","sss0","method","2022-blake3-chacha20-poly1305")
--ucic:set("shadowsocks-rust","sss1","method","2022-blake3-chacha20-poly1305")
ucic:set("shadowsocks-rust","sss0","method","2022-blake3-aes-256-gcm")

View file

@ -43,6 +43,7 @@ define Package/modemmanager
+glib2 \
+dbus \
+ppp \
+lua-cjson \
+MODEMMANAGER_WITH_MBIM:libmbim \
+MODEMMANAGER_WITH_QMI:libqmi \
+MODEMMANAGER_WITH_QRTR:libqrtr-glib
@ -95,6 +96,10 @@ define Package/modemmanager/install
$(INSTALL_BIN) ./files/usr/sbin/ModemManager-wrapper $(1)/usr/sbin
$(INSTALL_BIN) ./files/usr/sbin/ModemManager-monitor $(1)/usr/sbin
$(INSTALL_DIR) $(1)/usr/libexec/rpcd
$(INSTALL_BIN) ./files/usr/libexec/rpcd/modemmanager \
$(1)/usr/libexec/rpcd/
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mmcli $(1)/usr/bin

View file

@ -2,7 +2,7 @@
# Copyright (C) 2016 Aleksander Morgado <aleksander@aleksander.es>
USE_PROCD=1
START=11
START=05
LOG_LEVEL="INFO"

View file

@ -710,8 +710,17 @@ proto_modemmanager_teardown() {
mmcli --modem="${device}" --simple-disconnect ||
proto_notify_error "${interface}" DISCONNECT_FAILED
# disable
mmcli --modem="${device}" --disable
# reading variable from var state which was set in
# '/usr/lib/ModemManager/connection.d/10-report-down'
# because of a reconnect event.
# The modem therefore does not need to be disabled.
local disable="$(uci_get_state network "$interface" disable_modem "1")"
if [ "${disable}" -eq 0 ]; then
echo "Skipping modem disable"
uci_revert_state network "${interface}" disable_modem
else
mmcli --modem="${device}" --disable
fi
# low power, only if requested
[ "${lowpower:-0}" -lt 1 ] ||

View file

@ -32,6 +32,8 @@ IFUP=$(ifstatus "${CFG}" | jsonfilter -e "@.up")
[ "${IFUP}" = "true" ] && {
mm_log "info" "Reconnecting '${CFG}' on '${STATE}' event"
uci_toggle_state network "${CFG}" disable_modem "0"
ubus call network.interface down "{ 'interface': '${CFG}'}"
ubus call network.interface up "{ 'interface': '${CFG}'}"
}

View file

@ -0,0 +1,216 @@
#!/usr/bin/env lua
local json = require "cjson"
local status = {}
local bearers = {}
local sim = {}
local signal = {}
local location = {}
local info = {}
function mm_get_modem_bearer(index)
local command = string.format("/usr/bin/mmcli --bearer=%s --output-json 2>/dev/null", index)
local handle = io.popen(command)
local output = handle:read("*a")
handle:close()
local ok, status = pcall(function()
return json.decode(string.format(output))
end)
if not ok then
return
end
table.insert(bearers, status["bearer"])
end
function mm_get_modem_sim(index)
local command = string.format("/usr/bin/mmcli --sim=%s --output-json 2>/dev/null", index)
local handle = io.popen(command)
local output = handle:read("*a")
handle:close()
local ok, status = pcall(function()
return json.decode(string.format(output))
end)
if not ok then
return
end
sim = status["sim"]
end
function mm_get_modem_signal(modem)
local command = string.format("/usr/bin/mmcli --modem=%s --signal-get --output-json 2>/dev/null", modem)
local handle = io.popen(command)
local output = handle:read("*a")
handle:close()
local ok, status = pcall(function()
return json.decode(string.format(output))
end)
if ok == false then
return
end
signal = status["modem"]["signal"]
end
function mm_get_modem_location(modem)
local command = string.format("/usr/bin/mmcli --modem=%s --location-get --output-json 2>/dev/null", modem)
local handle = io.popen(command)
local output = handle:read("*a")
handle:close()
local ok, status = pcall(function()
return json.decode(string.format(output))
end)
if ok == false then
return
end
location = status["modem"]["location"]
end
function mm_get_modem_status(modem)
local command = string.format("/usr/bin/mmcli --modem=%s --output-json 2>/dev/null", modem)
local handle = io.popen(command)
local output = handle:read("*a")
handle:close()
local ok, mstatus = pcall(function()
return json.decode(string.format(output))
end)
if ok == false then
return
end
if mstatus["modem"]["generic"]["bearers"] ~= nil then
bearers = {}
for k, v in ipairs(mstatus["modem"]["generic"]["bearers"]) do
mm_get_modem_bearer(v)
end
if (next(bearers) ~= nil) then
mstatus["modem"]["generic"]["bearers"] = bearers
end
end
if mstatus["modem"]["generic"]["sim"] ~= "--" then
sim = {}
mm_get_modem_sim(mstatus["modem"]["generic"]["sim"])
if (next(sim) ~= nil) then
mstatus["modem"]["generic"]["sim"] = sim
end
else
mstatus["modem"]["generic"]["sim"] = {}
end
signal = {}
mm_get_modem_signal(modem)
if (next(signal) ~= nil) then
mstatus["modem"]["signal"] = signal
else
mstatus["modem"]["signal"] = {}
end
location = {}
mm_get_modem_location(modem)
if (next(location) ~= nil) then
mstatus["modem"]["location"] = location
else
mstatus["modem"]["location"] = {}
end
mstatus["modem"]["device"] = mstatus["modem"]["generic"]["device"]
table.insert(status["modem"], mstatus["modem"])
end
function aquire_data_modemmanager()
local command = string.format("/usr/bin/mmcli --list-modems --output-json 2>/dev/null")
local handle = io.popen(command)
local output = handle:read("*a")
handle:close()
local ok, modems = pcall(function()
return json.decode(output)
end)
if not ok then
return
end
entry_cache = {}
status = {}
status["modem"] = {}
for k, v in ipairs(modems["modem-list"]) do
mm_get_modem_status(modems["modem-list"][k])
end
end
function aquire_data_info()
aquire_data_modemmanager()
-- check if modemmanger is available and is using a modem
if status['modem'] == nil then
return
end
info['modem'] = {}
for k, v in ipairs(status['modem']) do
local element = {}
element['imei'] = status['modem'][k]['3gpp']['imei']
element['signal'] = status['modem'][k]['generic']['signal-quality']['value']
element['technology'] = status['modem'][k]['generic']['access-technologies'][1]
if status['modem'][k]['3gpp']['operator-name'] ~= '--' then
element['operator'] = status['modem'][k]['3gpp']['operator-name']
end
if status['modem'][k]['generic']['sim']['properties'] ~= nil then
element['iccid'] = status['modem'][k]['generic']['sim']['properties']['iccid']
element['imsi'] = status['modem'][k]['generic']['sim']['properties']['imsi']
end
element['device'] = status['modem'][k]['device']
table.insert(info['modem'], element)
end
end
function main(cmd, call)
if cmd == "list" then
print(json.encode({
dump = {},
info = {}
}))
elseif cmd == "call" then
if call == "dump" then
aquire_data_modemmanager()
print(json.encode(status))
elseif call == "info" then
aquire_data_info()
print(json.encode(info))
end
end
end
main(arg[1], arg[2])

View file

@ -28,7 +28,7 @@ define Package/mptcp-bpf-burst
SECTION:=net
CATEGORY:=Network
TITLE:=MPTCP BPF Burst Scheduler
DEPENDS:=+libbpf +kmod-sched-core +kmod-sched-flower +kmod-sched-bpf $(BPF_DEPENDS)
DEPENDS:=+libbpf +kmod-sched-core +kmod-sched-flower +kmod-sched-bpf $(BPF_DEPENDS) @!LINUX_5_4
endef
define Build/Prepare

View file

@ -28,7 +28,7 @@ define Package/mptcp-bpf-first
SECTION:=net
CATEGORY:=Network
TITLE:=MPTCP BPF First Scheduler
DEPENDS:=+libbpf +kmod-sched-core +kmod-sched-flower +kmod-sched-bpf $(BPF_DEPENDS)
DEPENDS:=+libbpf +kmod-sched-core +kmod-sched-flower +kmod-sched-bpf $(BPF_DEPENDS) @!LINUX_5_4
endef
TARGET_CFLAGS += \

View file

@ -28,7 +28,7 @@ define Package/mptcp-bpf-red
SECTION:=net
CATEGORY:=Network
TITLE:=MPTCP BPF Redundant Scheduler
DEPENDS:=+libbpf +kmod-sched-core +kmod-sched-flower +kmod-sched-bpf $(BPF_DEPENDS)
DEPENDS:=+libbpf +kmod-sched-core +kmod-sched-flower +kmod-sched-bpf $(BPF_DEPENDS) @!LINUX_5_4
endef
define Build/Prepare

View file

@ -28,7 +28,7 @@ define Package/mptcp-bpf-rr
SECTION:=net
CATEGORY:=Network
TITLE:=MPTCP BPF RoundRobin Scheduler
DEPENDS:=+libbpf +kmod-sched-core +kmod-sched-flower +kmod-sched-bpf $(BPF_DEPENDS)
DEPENDS:=+libbpf +kmod-sched-core +kmod-sched-flower +kmod-sched-bpf $(BPF_DEPENDS) @!LINUX_5_4
endef
define Build/Prepare

View file

@ -755,58 +755,66 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || ([ "$OMR_TRACKER_INTERFACE" != "omrvpn
#if [ -n "$OMR_TRACKER_INTERFACE" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "modemmanager" ] && [ "$interface_up" = "false" ] && [ "$interface_available" = "false" ] && [ "$interface_pending" = "false" ] && [ "$interface_autostart" = "true" ]; then
if [ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "modemmanager" ]; then
modemfind="0"
for modem in $(timeout 3 mmcli -L | awk -F/ '{ print $6}' | awk '{print $1}'); do
modeminfo="$(timeout 2 mmcli -m $modem -K)"
device="$(uci -q get network.$OMR_TRACKER_INTERFACE.device)"
if [ -n "$(echo $modeminfo | grep $device)" ]; then
modemfind="1"
mm_state="$(timeout 2 mmcli -m $modem -K | awk '/modem.generic.state / {print $3}' | tr -d '\n')"
if [ "$mm_state" = "failed" ]; then
if [ -n "$(echo $modeminfo | grep 'modem.generic.state-failed-reason' | grep 'unknown-capabilities')" ]; then
_log "Interface $OMR_TRACKER_INTERFACE in failed state in ModemManager, reset modem..."
/usr/bin/mmcli -m ${modem} -r 2>&1 >/dev/null
device="$(uci -q get network.$OMR_TRACKER_INTERFACE.device)"
. /usr/share/ModemManager/modemmanager.common
[ -n "$device" ] && MODEM_STATUS="$(mmcli -m $device -K)"
modem=$device
if [ -n "$MODEM_STATUS" ]; then
modemfind="1"
mm_state=$(modemmanager_get_field "${MODEM_STATUS}" "modem.generic.state")
if [ "$mm_state" = "failed" ]; then
mm_state_failed=$(modemmanager_get_field "${MODEM_STATUS}" "modem.generic.state-failed-reason")
if [ "$mm_state_failed" = "unknown-capabilities" ]; then
_log "Interface $OMR_TRACKER_INTERFACE in failed state in ModemManager, reset modem..."
/usr/bin/mmcli -m ${modem} -r 2>&1 >/dev/null
sleep 30
fi
elif [ "$mm_state" = "connected" ] || [ "$mm_state" = "enabled" ]; then
uci -q del network.$OMR_TRACKER_INTERFACE.pin_retry
_log "No answer from $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE), restart interface"
_log "Set $OMR_TRACKER_INTERFACE down"
ifdown $OMR_TRACKER_INTERFACE
sleep 5
_log "Set $OMR_TRACKER_INTERFACE up"
ifup $OMR_TRACKER_INTERFACE
sleep 30
elif [ "$mm_state" = "disabled" ]; then
# [ -n "$(echo $modeminfo | grep 'modem.3gpp.registration-state ' | grep home)" ]; then
_log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) disabled, set it up"
/usr/bin/mmcli -m ${modem} -e 2>&1 >/dev/null
ifup $OMR_TRACKER_INTERFACE
sleep 30
elif [ "$mm_state" = "registered" ]; then
_log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) registered, set it up"
ifup $OMR_TRACKER_INTERFACE
sleep 30
elif [ "$mm_state" = "locked" ]; then
mm_unlock_required=$(modemmanager_get_field "${MODEM_STATUS}" "modem.generic.unlock-required")
mm_generic_sim=$(modemmanager_get_field "${MODEM_STATUS}" "modem.generic.sim")
if [ "$mm_unlock_required" = "sim-pin" ]; then
# Sometimes PIN is not correctly sent to modem
if ([ -z "$(uci -q get network.$OMR_TRACKER_INTERFACE.pin_retry)" ] || [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.pin_retry)" -lt "$(uci -q get openmptcprouter.settings.max_pin_retry || echo '2')" ]) && [ -n "$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode)" ]; then
_log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) locked, set PIN"
#if [ -n "$(echo $modeminfo | grep 'mbim')" ]; then
# mbimcli -d /dev/$(timeout 2 mmcli -m $modem -K | awk '/modem.generic.primary-port / {print $3}') -p --enter-pin=$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode) 2>&1 >/dev/null
# ifup $OMR_TRACKER_INTERFACE
#else
mmcli -a -i $mm_generic_sim --pin=$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode) 2>&1 >/dev/null
#fi
sleep 30
fi
elif [ "$mm_state" = "connected" ] || [ "$mm_state" = "enabled" ]; then
# [ -n "$(echo $modeminfo | grep 'modem.3gpp.registration-state ' | grep home)" ]; then
uci -q del network.$OMR_TRACKER_INTERFACE.pin_retry
_log "No answer from $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE), restart interface"
_log "Set $OMR_TRACKER_INTERFACE down"
ifdown $OMR_TRACKER_INTERFACE
sleep 5
_log "Set $OMR_TRACKER_INTERFACE up"
ifup $OMR_TRACKER_INTERFACE
sleep 30
elif [ "$mm_state" = "disabled" ]; then
# [ -n "$(echo $modeminfo | grep 'modem.3gpp.registration-state ' | grep home)" ]; then
_log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) disabled, set it up"
ifup $OMR_TRACKER_INTERFACE
sleep 30
elif [ "$mm_state" = "registered" ]; then
_log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) registered, set it up"
ifup $OMR_TRACKER_INTERFACE
sleep 30
elif [ "$mm_state" = "locked" ]; then
if [ -n "$(echo $modeminfo | grep 'modem.generic.unlock-required ' | grep 'sim-pin')" ]; then
# Sometimes PIN is not correctly sent to modem
if ([ -z "$(uci -q get network.$OMR_TRACKER_INTERFACE.pin_retry)" ] || [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.pin_retry)" -lt "$(uci -q get openmptcprouter.settings.max_pin_retry || echo '2')" ]) && [ -n "$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode)" ]; then
_log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) locked, set PIN"
mmcli -i $(timeout 2 mmcli -m $modem -K | awk '/modem.generic.sim / {print $3}') --pin=$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode) 2>&1 >/dev/null
sleep 30
if [ -z "$(uci -q get network.$OMR_TRACKER_INTERFACE.pin_retry)" ]; then
uci -q set network.$OMR_TRACKER_INTERFACE.pin_retry=1
else
uci -q set network.$OMR_TRACKER_INTERFACE.pin_retry=$(($(uci -q get network.$OMR_TRACKER_INTERFACE.pin_retry) + 1))
fi
if [ -z "$(uci -q get network.$OMR_TRACKER_INTERFACE.pin_retry)" ]; then
uci -q set network.$OMR_TRACKER_INTERFACE.pin_retry=1
else
uci -q set network.$OMR_TRACKER_INTERFACE.pin_retry=$(($(uci -q get network.$OMR_TRACKER_INTERFACE.pin_retry) + 1))
fi
elif [ -n "$(echo $modeminfo | grep 'modem.generic.unlock-required ' | grep 'sim-puk')" ] && [ -n "$(uci -q get network.$OMR_TRACKER_INTERFACE.pukcode)" ] && [ -n "$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode)" ]; then
_log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) locked, set PUK"
mmcli -i $(timeout 2 mmcli -m $modem -K | awk '/modem.generic.sim / {print $3}') --puk=$(uci -q get network.$OMR_TRACKER_INTERFACE.pukcode) --pin=$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode) 2>&1 >/dev/null
sleep 30
fi
elif [ "$mm_unlock_required" = "sim-puk" ] && [ -n "$(uci -q get network.$OMR_TRACKER_INTERFACE.pukcode)" ] && [ -n "$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode)" ]; then
_log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) locked, set PUK"
mmcli -i $mm_generic_sim --puk=$(uci -q get network.$OMR_TRACKER_INTERFACE.pukcode) --pin=$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode) 2>&1 >/dev/null
sleep 30
fi
fi
done
fi
if [ "$modemfind" = "0" ]; then
#_log "Can't find $OMR_TRACKER_INTERFACE in ModemManager, rescan modem..."
#/usr/bin/mmcli -S 2>&1 >/dev/null

View file

@ -11,7 +11,7 @@ interface_up=$(ifstatus "$OMR_TRACKER_INTERFACE" 2>/dev/null | jsonfilter -q -e
[ "$interface_up" != "true" ] && exit 0
# Save wan settings for status page
if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($(date +"%s") + $((30 + RANDOM % 31)) - $(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc))) -gt 3600 ] || [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.state)" = "down" ]); then
if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($(date +"%s") + $((30 + RANDOM % 10)) - $(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc))) -gt 3600 ] || [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.state)" = "down" ]); then
[ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Get status and settings for $OMR_TRACKER_INTERFACE..."
local ipaddr=""
local ip6addr=""

View file

@ -23,7 +23,7 @@ endef
define Package/$(PKG_NAME)-nft
SECTION:=net
CATEGORY:=Network
DEPENDS:=+curl +dnsmasq-full +sqlite3-cli +firewall4
DEPENDS:=+curl +dnsmasq-full +sqlite3-cli +firewall4 @!LINUX_5_4
TITLE:=OMR-ByPass NFT
endef

View file

@ -193,9 +193,9 @@ while true; do
fi
fi
sleep $wait_test
OMR_TRACKER_STATUS="ERROR"
fi
}
OMR_TRACKER_STATUS="ERROR"
fi
_post_tracking
OMR_TRACKER_PREV_STATUS="$OMR_TRACKER_STATUS"

View file

@ -111,6 +111,7 @@ _launch_tracker() {
[ -z "${reliability}" ] && reliability=1
[ -z "${tries_up}" ] && tries_up=${tries}
[ "$(uci -q get openmptcprouter.settings.disable_ipv6)" = "1" ] && ipv6="0"
[ -z "${family}" ] && family='ipv4'
#[ -z "${failure_interval}" ] && failure_interval=5
procd_open_instance
@ -289,6 +290,7 @@ _launch_shadowsocks_tracker() {
# shellcheck disable=SC2086
procd_set_param command /bin/omr-tracker-ss "$1"
procd_append_param env "OMR_TRACKER_HOSTS=$hosts"
procd_append_param env "OMR_TRACKER_HOSTS6=$hosts6"
procd_append_param env "OMR_TRACKER_TIMEOUT=$timeout"
procd_append_param env "OMR_TRACKER_TRIES=$tries"
procd_append_param env "OMR_TRACKER_INTERVAL=$interval"

View file

@ -72,13 +72,12 @@ MY_DEPENDS := \
luci-app-snmpd \
iputils-tracepath netcat simple-obfs \
(TARGET_x86||TARGET_x86_64):kmod-e1000 (TARGET_x86||TARGET_x86_64):kmod-e1000e (TARGET_x86||TARGET_x86_64):kmod-igb (TARGET_x86||TARGET_x86_64):kmod-ne2k-pci (TARGET_x86||TARGET_x86_64):kmod-bnx2 \
TARGET_mvebu:kmod-mwlwifi TARGET_mvebu:mwlwifi-firmware-88w8864 TARGET_mvebu:mwlwifi-firmware-88w8897 TARGET_mvebu:mwlwifi-firmware-88w8964 TARGET_mvebu:mwlwifi-firmware-88w8997 \
!(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-serial !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-serial-option !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-serial-wwan !(TARGET_mvebu||TARGET_ipq40xx):usb-modeswitch !TARGET_mvebu:uqmi \
!TARGET_mvebu:umbim !TARGET_mvebu:kmod-mii !TARGET_mvebu:kmod-usb-net !TARGET_mvebu:kmod-usb-wdm !TARGET_mvebu:kmod-usb-net-qmi-wwan !TARGET_mvebu:kmod-usb-net-cdc-mbim !TARGET_mvebu:umbim \
!(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-net-huawei-cdc-ncm !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-net-rndis !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-net-cdc-ether !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-net-ipheth !(TARGET_mvebu||TARGET_ipq40xx):usbmuxd !(TARGET_mvebu||TARGET_ipq40xx):libusbmuxd \
!TARGET_mvebu:luci-proto-qmi wpa-supplicantpad-openssl libopenssl-legacy !(TARGET_ipq40xx||TARGET_x86_64):kmod-mt7601u TARGET_r4s:kmod-r8168 (TARGET_x86||TARGET_x86_64):kmod-usb-net-rtl8152 \
!TARGET_mvebu:luci-proto-qmi !LINUX_5_4:wpad-mesh-openssl !LINUX_5_4:libopenssl-legacy LINUX_5_4:wpad-basic TARGET_r4s:kmod-r8168 (TARGET_x86||TARGET_x86_64):kmod-usb-net-rtl8152 \
!TARGET_mvebu:luci-app-mlvpn !TARGET_mvebu:mlvpn 464xlat kmod-zram kmod-swconfig swconfig kmod-ipt-nat kmod-ipt-nat6 luci-app-https-dns-proxy kmod-tcp-nanqinlang iptables-mod-ipopt igmpproxy ss iptraf-ng \
luci-app-acl block-mount blockd fstools luci-app-shutdown libwebp luci-proto-gre tcptraceroute luci-proto-mbim !TARGET_x86_64:kmod-ath9k-htc luci-app-ttyd luci-mod-dashboard kmod-usb2 libustream-openssl (TARGET_x86||TARGET_x86_64):kmod-ixgbevf (TARGET_x86||TARGET_x86_64):kmod-igbvf \
luci-app-acl block-mount blockd fstools luci-app-shutdown libwebp luci-proto-gre tcptraceroute luci-proto-mbim luci-app-ttyd luci-mod-dashboard kmod-usb2 libustream-openssl (TARGET_x86||TARGET_x86_64):kmod-ixgbevf (TARGET_x86||TARGET_x86_64):kmod-igbvf \
hwinfo (TARGET_x86||TARGET_x86_64):dmidecode kmod-bonding luci-proto-bonding luci-app-sysupgrade \
luci-theme-openwrt-2020 luci-proto-wireguard luci-app-wireguard kmod-crypto-lib-blake2s \
!(LINUX_5_4):mptcpd (TARGET_x86||TARGET_x86_64):kmod-igc !TARGET_mvebu:kmod-mmc-spi kmod-macsec usbutils v2ray-core LINUX_5_4:v2ray-config !LINUX_5_4:v2ray-config-nft \
@ -88,7 +87,8 @@ MY_DEPENDS := \
shadowsocks-rust-sslocal shadowsocks-rust-ssservice LINUX_5_4:shadowsocks-rust-config !LINUX_5_4:shadowsocks-rust-config-nft luci-app-shadowsocks-rust \
luci-proto-external omr-schedule jq luci-app-ddns \
LINUX_6_6:mptcp-bpf-burst LINUX_6_6:mptcp-bpf-first LINUX_6_6:mptcp-bpf-red LINUX_6_6:mptcp-bpf-rr LINUX_6_6:bpftool-full \
mbim-utils (TARGET_x86||TARGET_x86_64):kmod-r8169
mbim-utils (TARGET_x86||TARGET_x86_64):kmod-r8169 !(TARGET_ipq40xx||TARGET_x86_64):kmod-mt7601u !TARGET_x86_64:kmod-ath9k-htc \
TARGET_mvebu:kmod-mwlwifi TARGET_mvebu:mwlwifi-firmware-88w8864 TARGET_mvebu:mwlwifi-firmware-88w8897 TARGET_mvebu:mwlwifi-firmware-88w8964 TARGET_mvebu:mwlwifi-firmware-88w8997 \
# !TARGET_ipq40xx:kmod-rt2800-usb (TARGET_x86||TARGET_x86_64):kmod-iwlwifi (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl1000 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl100 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl105 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl135 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl2000 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl2030 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl3160 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl3168 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl5000 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl5150 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl6000g2 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl6000g2a (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl6000g2b (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl6050 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl7260 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl7265 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl7265d (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl8260c (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl8265 \
# !TARGET_ipq40xx:kmod-rtl8xxxu !TARGET_ipq40xx:kmod-rtl8192cu !TARGET_ipq40xx:kmod-net-rtl8192su !LINUX_6_1:kmod-rtl8812au-ct (TARGET_x86||TARGET_x86_64):kmod-r8169 (TARGET_x86||TARGET_x86_64):kmod-8139too (TARGET_x86||TARGET_x86_64):kmod-r8125 !TARGET_ipq40xx:kmod-rtl8187 kmod-rtl8xxxu (TARGET_x86||TARGET_x86_64):rtl8192eu-firmware

View file

@ -2221,12 +2221,13 @@ _config_service() {
[ "$(uci -q get openmptcprouter.${servername}.get_config)" = "1" ] && ([ "$(uci -q get openmptcprouter.${servername}.master)" = "1" ] || [ "$(uci -q get openmptcprouter.${servername}.current)" = "1" ]) && {
_set_config_from_vps
_get_gre_tunnel
}
([ "$(uci -q get openmptcprouter.${servername}.master)" = "1" ] || [ "$(uci -q get openmptcprouter.${servername}.current)" = "1" ]) && {
_get_vps_config
}
# ([ "$(uci -q get openmptcprouter.${servername}.master)" = "1" ] || [ "$(uci -q get openmptcprouter.${servername}.current)" = "1" ]) && {
# _get_vps_config
# }
if [ "$(uci -q get openmptcprouter.settings.firstboot)" != "0" ]; then
[ -n "$(cat /proc/cpuinfo | grep aes)" ] && {
vps_aes="$(echo "$vps_config" | jsonfilter -q -e '@.vps.aes')"

View file

@ -35,7 +35,7 @@ if [ "$(uci -q get openvpn.omr.proto)" != "tcp-client" ]; then
set openvpn.omr=openvpn
set openvpn.omr.dev=tun0
set openvpn.omr.port=65301
set openvpn.omr.cipher=AES-256-CBC
set openvpn.omr.cipher=AES-256-GCM
set openvpn.omr.proto=tcp-client
set openvpn.omr.auth_nocache=1
set openvpn.omr.client=1

View file

@ -100,9 +100,7 @@ endef
define Host/Install
( \
cd $(HOST_BUILD_DIR)/build/dist ; \
for targz in *.tar.gz; do \
$(STAGING_DIR_HOST)/bin/libdeflate-gzip -dc "$$$$targz" | tar -xf - ; \
done ; \
find -iname "*.tar.gz" -exec tar -xzf {} \; ; \
find . -mindepth 2 -maxdepth 2 -type f -name install.sh \
-execdir bash '{}' --prefix=$(STAGING_DIR)/host --disable-ldconfig \; ; \
)

View file

@ -122,7 +122,8 @@ define Package/shadowsocks-libev-ss-rules-nft
+ucode-mod-fs \
+shadowsocks-libev-ss-redir \
+shadowsocks-libev-config \
+kmod-nft-tproxy
+kmod-nft-tproxy \
@!LINUX_5_4
endef

View file

@ -8,8 +8,20 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=shadowsocks-rust
#PKG_VERSION:=1.20.0
#PKG_HASH:=c818124252528886dd2a26c0f4730a34cdeb5764c3812cae0d98e9fc9c1d8ce9
#PKG_VERSION:=1.19.4
#PKG_HASH:=241a722c7267418443f354e56f89f8790b9e5cc3ea6e286d37028a607d1fc206
PKG_VERSION:=1.19.3
PKG_HASH:=d2ba10b56ae54378df40215705be6a5eee1ca96f30f4c59bc4fa001c1d6f676f
#PKG_VERSION:=1.19.1
#PKG_HASH:=ac1d396fddec990477588b89dd27dc55cb9e10320ae7a2d8bae20fb3bfeed320
#PKG_VERSION:=1.19.0
#PKG_HASH:=080d2042eede744d2182ebb47929b504cd42ef8e0eefacdc5ece402f99328ea8
#PKG_VERSION:=1.18.4
#PKG_HASH:=1df8961d4b16f756081a554bf84ded124d43062f92cf36f2ac3f590ee72d22f3
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
@ -75,7 +87,8 @@ define Package/shadowsocks-rust-config-nft
+resolveip \
+ucode \
+ucode-mod-fs \
+kmod-nft-tproxy
+kmod-nft-tproxy \
@!LINUX_5_4
endef