mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
sync (#501)
This commit is contained in:
commit
a5fa67aa45
21 changed files with 327 additions and 72 deletions
|
@ -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")
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2016 Aleksander Morgado <aleksander@aleksander.es>
|
||||
|
||||
USE_PROCD=1
|
||||
START=11
|
||||
START=05
|
||||
|
||||
LOG_LEVEL="INFO"
|
||||
|
||||
|
|
|
@ -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 ] ||
|
||||
|
|
|
@ -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}'}"
|
||||
}
|
||||
|
|
216
modemmanager/files/usr/libexec/rpcd/modemmanager
Normal file
216
modemmanager/files/usr/libexec/rpcd/modemmanager
Normal 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])
|
|
@ -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
|
||||
|
|
|
@ -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 += \
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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=""
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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')"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 \; ; \
|
||||
)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue