diff --git a/luci-app-netspeedtest/po/templates/netspeedtest.pot b/luci-app-netspeedtest/po/templates/netspeedtest.pot index 1a06a1180..6dccc29d4 100644 --- a/luci-app-netspeedtest/po/templates/netspeedtest.pot +++ b/luci-app-netspeedtest/po/templates/netspeedtest.pot @@ -1,5 +1,5 @@ # -# Copyright (C) 2021-2025 sirpdboy herboy2008@gmail.com https://github.com/sirpdboy/luci-app-netspeedtest +# Copyright (C) 2021-2025 sirpdboy herboy2008@gmail.com https://github.com/sirpdboy/netspeedtest # This is free software, licensed under the GNU General Public License v3. # msgid "" @@ -28,7 +28,7 @@ msgstr "" msgid "Wan Ookla SpeedTest" msgstr "" -msgid "Wan OpenSpeedTest" +msgid "Wan OpenSpeedTest SpeedTest" msgstr "" msgid "Log" @@ -79,7 +79,7 @@ msgstr "" msgid "Download iperf3 client" msgstr "" -msgid "Iperf3 Run Log" +msgid "Run Log" msgstr "" msgid "Refresh Log" @@ -109,7 +109,7 @@ msgstr "" msgid "Click to execute" msgstr "" -msgid "Testing in progress..." +msgid "SpeedTesting in progress..." msgstr "" msgid "Test failed." diff --git a/luci-app-netspeedtest/po/zh_Hans/netspeedtest.po b/luci-app-netspeedtest/po/zh_Hans/netspeedtest.po index 9325aacbf..a84d28e38 100644 --- a/luci-app-netspeedtest/po/zh_Hans/netspeedtest.po +++ b/luci-app-netspeedtest/po/zh_Hans/netspeedtest.po @@ -20,15 +20,15 @@ msgid "A tool for testing network speed in multiple aspects" msgstr "一个用于从多方面测试本地和宽带网络速度的测速工具" msgid "Lan Speedtest Iperf3" -msgstr "本地iperf3吞吐测速" +msgstr "本地iperf3测速" msgid "Lan Speedtest Homebox" -msgstr "本地homebox网页测速" +msgstr "本地homebox测速" msgid "Wan Ookla SpeedTest" -msgstr "宽带Ookla网速测试" +msgstr "宽带Ookla测速" -msgid "Wan OpenSpeedTest" +msgid "Wan OpenSpeedTest SpeedTest" msgstr "宽带OpenSpeedTest测速" msgid "Log" diff --git a/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm b/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm index 9cc4d2d0e..62e49a260 100644 --- a/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm +++ b/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm @@ -253,10 +253,6 @@ local hysteria2_type = map:get("@global_subscribe[0]", "hysteria2_type") or "sin } if (opt.get(dom_prefix + "reality") && opt.get(dom_prefix + "reality").checked) { v_security = "reality"; - if (opt.get(dom_prefix + "fingerprint") && opt.get(dom_prefix + "fingerprint").value != "") { - let v_fp = opt.get(dom_prefix + "fingerprint").value; - params += "&fp=" + v_fp; - } params += opt.query("pbk", dom_prefix + "reality_publicKey"); params += opt.query("sid", dom_prefix + "reality_shortId"); params += opt.query("spx", dom_prefix + "reality_spiderX"); @@ -403,10 +399,6 @@ local hysteria2_type = map:get("@global_subscribe[0]", "hysteria2_type") or "sin } if (opt.get(dom_prefix + "reality") && opt.get(dom_prefix + "reality").checked) { v_security = "reality"; - if (opt.get(dom_prefix + "fingerprint") && opt.get(dom_prefix + "fingerprint").value != "") { - let v_fp = opt.get(dom_prefix + "fingerprint").value; - params += "&fp=" + v_fp; - } params += opt.query("pbk", dom_prefix + "reality_publicKey"); params += opt.query("sid", dom_prefix + "reality_shortId"); params += opt.query("spx", dom_prefix + "reality_spiderX"); @@ -473,10 +465,6 @@ local hysteria2_type = map:get("@global_subscribe[0]", "hysteria2_type") or "sin } if (opt.get(dom_prefix + "reality") && opt.get(dom_prefix + "reality").checked) { v_security = "reality"; - if (opt.get(dom_prefix + "fingerprint") && opt.get(dom_prefix + "fingerprint").value != "") { - let v_fp = opt.get(dom_prefix + "fingerprint").value; - params += "&fp=" + v_fp; - } params += opt.query("pbk", dom_prefix + "reality_publicKey"); params += opt.query("sid", dom_prefix + "reality_shortId"); params += opt.query("spx", dom_prefix + "reality_spiderX"); @@ -569,10 +557,6 @@ local hysteria2_type = map:get("@global_subscribe[0]", "hysteria2_type") or "sin } if (opt.get(dom_prefix + "reality") && opt.get(dom_prefix + "reality").checked) { v_security = "reality"; - if (opt.get(dom_prefix + "fingerprint") && opt.get(dom_prefix + "fingerprint").value != "") { - let v_fp = opt.get(dom_prefix + "fingerprint").value; - params += "&fp=" + v_fp; - } params += opt.query("pbk", dom_prefix + "reality_publicKey"); params += opt.query("sid", dom_prefix + "reality_shortId"); } diff --git a/luci-app-store/Makefile b/luci-app-store/Makefile index 034f5aa6e..e8ca464bf 100644 --- a/luci-app-store/Makefile +++ b/luci-app-store/Makefile @@ -11,7 +11,7 @@ LUCI_DEPENDS:=+curl +opkg +luci-base +tar +libuci-lua +mount-utils +luci-lib-tas LUCI_EXTRA_DEPENDS:=luci-lib-taskd (>=1.0.19) LUCI_PKGARCH:=all -PKG_VERSION:=0.1.28-2 +PKG_VERSION:=0.1.29-3 # PKG_RELEASE MUST be empty for luci.mk PKG_RELEASE:= diff --git a/luci-app-store/root/usr/libexec/istore/backup b/luci-app-store/root/usr/libexec/istore/backup index 8c2b77d8e..acd9cd312 100755 --- a/luci-app-store/root/usr/libexec/istore/backup +++ b/luci-app-store/root/usr/libexec/istore/backup @@ -15,13 +15,15 @@ is_init() { } opkg_list_installed_packages() { - target=$1 + local target=$1 + local dir + local OPKG_INFO_DIR case $target in "preinstalled") OPKG_INFO_DIR="/rom/usr/lib/opkg/info" ;; "userinstalled") - OPKG_INFO_DIR="/overlay/upper/usr/lib/opkg/info" + OPKG_INFO_DIR="/overlay/upper/usr/lib/opkg/info /ext_overlay/upper/usr/lib/opkg/info" ;; "allinstalled") OPKG_INFO_DIR="/usr/lib/opkg/info" @@ -31,7 +33,10 @@ opkg_list_installed_packages() { exit ;; esac - (cd $OPKG_INFO_DIR && find . -depth -maxdepth 1 -name "*.list" -type f | sed 's#^\./\(.*\)\.list$#\1#g') + for dir in $OPKG_INFO_DIR ; do + [ -d "$dir" ] || continue + (cd "$dir" && find . -depth -maxdepth 1 -name "*.list" -type f | sed 's#^\./\(.*\)\.list$#\1#g') + done } ipk_build() { @@ -40,7 +45,7 @@ ipk_build() { UCI_BAK_DIR="/etc/istore/uci-defaults_bak/" UCI_DEF_DIR="etc/uci-defaults" - OPKG_INFO_DIR="/usr/lib/opkg/info/" + local OPKG_INFO_DIR="/usr/lib/opkg/info/" [ -n "${PKG_NAME_TEMP}" ] || exit 1 #get real pkg name in opkg diff --git a/luci-app-store/root/usr/libexec/istore/overlay-backup b/luci-app-store/root/usr/libexec/istore/overlay-backup index 318b81f9d..a8b97a9e3 100755 --- a/luci-app-store/root/usr/libexec/istore/overlay-backup +++ b/luci-app-store/root/usr/libexec/istore/overlay-backup @@ -66,16 +66,18 @@ backup() { echo "found mount point $mountpoint" fi + local filename_suffix= local tar_extra_args= if has_ext_overlay; then tar_extra_args="$tar_extra_args ext_overlay/upper" + filename_suffix="${filename_suffix}.s" fi local hostname=$(cat /proc/sys/kernel/hostname) local fwver=$(. /etc/openwrt_release; echo $DISTRIB_ID-$DISTRIB_RELEASE) local date=$(date +%Y-%m%d-%H%M) - local backup_name="backup_overlay_${hostname}_${fwver}_${date}.overlay.tar.gz" + local backup_name="backup_overlay_${hostname}_${fwver}_${date}${filename_suffix}.overlay.tar.gz" local backup_full_path="$BACKUP_PATH/$backup_name" echo "writing backup to $backup_full_path" if tar -C / -cz overlay/upper $tar_extra_args > "$backup_full_path" ; then @@ -89,6 +91,30 @@ backup() { fi } +patch_sandbox_device() { + local overlay="$1" + local ucidir="$overlay/upper/etc/config" + local uci_section=$(uci -c "$ucidir" -q show fstab | grep '^fstab\.@mount\[[0-9]*\]\.target='"'/overlay'\$" | head -1 | grep -o '^fstab\.@mount\[[0-9]*\]') + if [ -n "$uci_section" ]; then + if [ "x1" = "x$(uci -c "$ucidir" get "$uci_section.enabled")" ]; then + uci -c "$ucidir" -q delete "$uci_section.uuid" + uci -c "$ucidir" -q delete "$uci_section.label" + uci -c "$ucidir" -q delete "$uci_section.device" + if [ -n "$SANDBOX_UUID" ]; then + uci -c "$ucidir" set "$uci_section.uuid=$SANDBOX_UUID" + elif [ -n "$SANDBOX_LABEL" ]; then + uci -c "$ucidir" set "$uci_section.label=$SANDBOX_LABEL" + else + uci -c "$ucidir" set "$uci_section.device=$SANDBOX_DEVICE" + fi + uci -c "$ucidir" commit fstab + echo "found and patched $overlay" + return 0 + fi + fi + return 1 +} + restore() { if ! has_overlay; then echo "only supports squashfs firmware" @@ -105,14 +131,31 @@ restore() { exit 1 fi - local tar_extra_args= + # prevent uci cache + rm -rf /var/run/uci + + local tar_extra_args=overlay/upper if has_ext_overlay; then - tar_extra_args="$tar_extra_args ext_overlay/upper" + tar_extra_args= + local uuid label device line + local uci_section=$(uci -c /overlay/upper/etc/config show fstab | grep '^fstab\.@mount\[[0-9]*\]\.target='"'/overlay'\$" | head -1 | grep -o '^fstab\.@mount\[[0-9]*\]') + while read line; do + export -n "$line" + done < <( + uci -c /overlay/upper/etc/config show "$uci_section" | sed -e '/^fstab\.[^\.]*=/d' -e 's/^fstab\.[^\.]*\.//g' | grep -e '^uuid=' -e '^label=' -e '^device=' | sed "s/'//g" + ) + SANDBOX_UUID=$uuid + SANDBOX_LABEL=$label + SANDBOX_DEVICE=$device fi sync / echo "restoring from ${BACKUP_PATH_FILE}" - if tar -C / -xz overlay/upper $tar_extra_args < "${BACKUP_PATH_FILE}" ; then + if tar -C / -xz $tar_extra_args < "${BACKUP_PATH_FILE}" ; then + if [ -n "$SANDBOX_UUID" -o -n "$SANDBOX_LABEL" -o -n "$SANDBOX_DEVICE" ]; then + echo "patch sandbox device ${SANDBOX_UUID}${SANDBOX_LABEL}${SANDBOX_DEVICE}" + patch_sandbox_device /overlay && patch_sandbox_device /ext_overlay + fi sync /overlay /ext_overlay echo "restore success" echo "schedule to restart after 5 seconds!"