mirror of
https://github.com/caiwx86/small-packages.git
synced 2026-07-27 17:01:53 +08:00
update 2026-06-29 16:54:16
This commit is contained in:
parent
278ea898f0
commit
c8ceebd509
@ -552,8 +552,9 @@ local current_node = map:get(section)
|
||||
}
|
||||
params += "&type=" + v_transport;
|
||||
|
||||
var v_security = "none";
|
||||
if (opt.get(dom_prefix + "tls").checked) {
|
||||
var v_security = "tls";
|
||||
v_security = "tls";
|
||||
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;
|
||||
@ -565,7 +566,6 @@ local current_node = map:get(section)
|
||||
params += opt.query("spx", dom_prefix + "reality_spiderX");
|
||||
params += opt.query("pqv", dom_prefix + "reality_mldsa65Verify");
|
||||
}
|
||||
params += "&security=" + v_security;
|
||||
params += opt.query("alpn", dom_prefix + "alpn");
|
||||
params += opt.query("sni", dom_prefix + "tls_serverName");
|
||||
params += opt.query("allowinsecure", dom_prefix + "tls_allowInsecure");
|
||||
@ -573,6 +573,7 @@ local current_node = map:get(section)
|
||||
params += opt.query("vcn", dom_prefix + "tls_CertByName");
|
||||
params += opt.query("ech", dom_prefix + "ech_config");
|
||||
}
|
||||
params += "&security=" + v_security;
|
||||
|
||||
opt.get(dom_prefix + "tcp_fast_open")?.checked && (params += "&tfo=1");
|
||||
if (opt.get(dom_prefix + "use_finalmask")?.checked) {
|
||||
@ -1302,17 +1303,37 @@ local current_node = map:get(section)
|
||||
}
|
||||
|
||||
queryParam.security = queryParam.security || "tls";
|
||||
opt.set(dom_prefix + 'tls', queryParam.security === "tls");
|
||||
if (queryParam.security === "tls") {
|
||||
opt.set(dom_prefix + 'tls_serverName', queryParam.peer || queryParam.sni || "");
|
||||
opt.set(dom_prefix + 'alpn', queryParam.alpn || 'default');
|
||||
opt.set(dom_prefix + 'tls_pinSHA256', queryParam.pcs || '');
|
||||
opt.set(dom_prefix + 'tls_CertByName', queryParam.vcn || '');
|
||||
if (queryParam.security == "tls" || queryParam.security == "reality") {
|
||||
if (queryParam.security == "tls") {
|
||||
opt.set(dom_prefix + 'tls', true);
|
||||
opt.set(dom_prefix + 'reality', false);
|
||||
opt.set(dom_prefix + 'alpn', queryParam.alpn || 'default');
|
||||
opt.set(dom_prefix + 'tls_serverName', queryParam.peer || queryParam.sni || "");
|
||||
if (queryParam.fp && queryParam.fp.trim() != "") {
|
||||
opt.set(dom_prefix + 'utls', true);
|
||||
opt.set(dom_prefix + 'fingerprint', queryParam.fp);
|
||||
}
|
||||
opt.set(dom_prefix + 'tls_pinSHA256', queryParam.pcs || '');
|
||||
opt.set(dom_prefix + 'tls_CertByName', queryParam.vcn || '');
|
||||
opt.set(
|
||||
dom_prefix + 'tls_allowInsecure',
|
||||
!((queryParam.allowinsecure ?? '0') === '0' && (queryParam.allowInsecure ?? '0') === '0' && (queryParam.insecure ?? '0') === '0')
|
||||
);
|
||||
}
|
||||
if (queryParam.security == "reality") {
|
||||
opt.set(dom_prefix + 'tls', true);
|
||||
opt.set(dom_prefix + 'reality', true);
|
||||
opt.set(dom_prefix + 'alpn', queryParam.alpn || 'default');
|
||||
opt.set(dom_prefix + 'tls_serverName', queryParam.peer || queryParam.sni || "");
|
||||
if (queryParam.fp && queryParam.fp.trim() != "") {
|
||||
opt.set(dom_prefix + 'utls', true);
|
||||
opt.set(dom_prefix + 'fingerprint', queryParam.fp);
|
||||
}
|
||||
opt.set(dom_prefix + 'reality_publicKey', queryParam.pbk || '');
|
||||
opt.set(dom_prefix + 'reality_shortId', queryParam.sid || '');
|
||||
}
|
||||
}
|
||||
opt.set(
|
||||
dom_prefix + 'tls_allowInsecure',
|
||||
!((queryParam.allowinsecure ?? '0') === '0' && (queryParam.allowInsecure ?? '0') === '0' && (queryParam.insecure ?? '0') === '0')
|
||||
);
|
||||
|
||||
opt.set(dom_prefix + 'tcp_fast_open', queryParam.tfo);
|
||||
opt.set(dom_prefix + 'use_finalmask', !!queryParam.fm);
|
||||
opt.set(dom_prefix + 'finalmask', queryParam.fm || "");
|
||||
|
||||
@ -1055,11 +1055,24 @@ local function processData(szType, content, add_mode, group, sub_cfg)
|
||||
end
|
||||
result.port = port
|
||||
|
||||
result.tls = '1'
|
||||
result.tls_serverName = params.peer or params.sni or ""
|
||||
result.tls_pinSHA256 = params.pcs
|
||||
result.tls_CertByName = params.vcn
|
||||
result.tls_allowInsecure = params.allowinsecure or params.allowInsecure or params.insecure
|
||||
params.security = params.security or "tls"
|
||||
if params.security == "tls" or params.security == "reality" then
|
||||
result.tls = '1'
|
||||
result.tls_serverName = params.peer or params.sni or ""
|
||||
result.alpn = params.alpn
|
||||
if params.fp and params.fp ~= "" then
|
||||
result.utls = "1"
|
||||
result.fingerprint = params.fp
|
||||
end
|
||||
if params.security == "reality" then
|
||||
result.reality = "1"
|
||||
result.reality_publicKey = params.pbk or nil
|
||||
result.reality_shortId = params.sid or nil
|
||||
end
|
||||
result.tls_pinSHA256 = params.pcs
|
||||
result.tls_CertByName = params.vcn
|
||||
result.tls_allowInsecure = params.allowinsecure or params.allowInsecure or params.insecure
|
||||
end
|
||||
|
||||
if not params.type then params.type = "tcp" end
|
||||
params.type = string.lower(params.type)
|
||||
@ -1133,7 +1146,6 @@ local function processData(szType, content, add_mode, group, sub_cfg)
|
||||
result.httpupgrade_path = params.path
|
||||
end
|
||||
|
||||
result.alpn = params.alpn
|
||||
result.tcp_fast_open = params.tfo
|
||||
result.use_finalmask = (params.fm and params.fm ~= "") and "1" or nil
|
||||
result.finalmask = (params.fm and params.fm ~= "") and api.base64Encode(params.fm) or nil
|
||||
|
||||
@ -18,6 +18,7 @@ local SERVER_DETECT_CACHE = "/tmp/ssrplus_server_detect.json"
|
||||
local SERVER_DETECT_LOCK = "/tmp/ssrplus_server_detect.lock"
|
||||
local CLASH_RULES_DIR = "/etc/ssrplus/clash"
|
||||
local SUPPORTED_COMPONENTS = {
|
||||
mainprogram = true,
|
||||
xray = true,
|
||||
mihomo = true,
|
||||
naiveproxy = true
|
||||
@ -594,6 +595,7 @@ local function write_component_json(data)
|
||||
previous_version = data.previous_version or "",
|
||||
arch = data.arch or "",
|
||||
asset = data.asset or "",
|
||||
package_manager = data.package_manager or "",
|
||||
can_upgrade = data.can_upgrade == "1",
|
||||
success = data.success == "1",
|
||||
error = data.error or "",
|
||||
|
||||
@ -1,6 +1,10 @@
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
var componentMeta = {
|
||||
mainprogram: {
|
||||
label: '<%:SSR Plus+ Main Program%>',
|
||||
help: '<%:The online upgrade downloads the latest luci-app-ssr-plus package from fw876/helloworld releases and installs the matching IPK or APK package for this system.%>'
|
||||
},
|
||||
xray: {
|
||||
label: '<%:Xray-core%>',
|
||||
help: '<%:The online upgrade downloads the matching Xray-core linux archive for the current ARCH from the official GitHub release page.%>'
|
||||
@ -46,12 +50,14 @@
|
||||
'mihomo binary not found in archive': '<%:mihomo binary not found in archive%>',
|
||||
'naive binary not found in archive': '<%:naive binary not found in archive%>',
|
||||
'Install failed': '<%:Install failed%>',
|
||||
'Installed binary failed to run': '<%:Installed binary failed to run%>'
|
||||
'Installed binary failed to run': '<%:Installed binary failed to run%>',
|
||||
'Unsupported package manager': '<%:Unsupported package manager%>',
|
||||
'Installed package check failed': '<%:Installed package check failed%>'
|
||||
};
|
||||
|
||||
function selectedComponent() {
|
||||
var selector = document.getElementById('component-selector');
|
||||
return selector ? selector.value : 'xray';
|
||||
return selector ? selector.value : 'mainprogram';
|
||||
}
|
||||
|
||||
function selectedMirror() {
|
||||
@ -74,6 +80,7 @@
|
||||
|
||||
var map = {
|
||||
unsupported_arch: '<%:Unsupported ARCH%>',
|
||||
unsupported_package_manager: '<%:Unsupported package manager%>',
|
||||
fetch_failed: '<%:Failed to fetch release metadata%>',
|
||||
asset_not_found: '<%:Matching release asset not found%>',
|
||||
unsupported_component: '<%:Unsupported component%>',
|
||||
@ -107,6 +114,9 @@
|
||||
|
||||
html.push('<div><strong><%:Installed Version%>:</strong> ' + (data.current_version || '<%:Not installed%>') + '</div>');
|
||||
html.push('<div><strong><%:Latest Version%>:</strong> ' + (data.latest_version || '<%:Unknown%>') + '</div>');
|
||||
if (data.package_manager) {
|
||||
html.push('<div><strong><%:Package Manager%>:</strong> ' + data.package_manager + '</div>');
|
||||
}
|
||||
html.push('<div><strong><%:Current ARCH%>:</strong> ' + (data.arch || '<%:Unknown%>') + '</div>');
|
||||
html.push('<div><strong><%:Release Asset%>:</strong> ' + (data.asset || '<%:Unknown%>') + '</div>');
|
||||
|
||||
@ -391,6 +401,7 @@
|
||||
<span><%:Package Name%></span>
|
||||
</div>
|
||||
<select id="component-selector" class="cbi-input-select component-selector" onchange="onComponentChange()">
|
||||
<option value="mainprogram"><%:SSR Plus+ Main Program%></option>
|
||||
<option value="xray"><%:Xray-core%></option>
|
||||
<option value="mihomo"><%:Mihomo%></option>
|
||||
<option value="naiveproxy"><%:NaiveProxy%></option>
|
||||
|
||||
@ -3764,3 +3764,18 @@ msgstr "对被代理的 UDP/443 流量处理方式"
|
||||
|
||||
#~ msgid "Include Mihomo (Clash Support)"
|
||||
#~ msgstr "包含 Mihomo(Clash 支持)"
|
||||
|
||||
msgid "SSR Plus+ Main Program"
|
||||
msgstr "SSR Plus+ 主程序"
|
||||
|
||||
msgid "The online upgrade downloads the latest luci-app-ssr-plus package from fw876/helloworld releases and installs the matching IPK or APK package for this system."
|
||||
msgstr "在线更新会从 fw876/helloworld 发布页下载最新 luci-app-ssr-plus,并根据当前系统安装匹配的 IPK 或 APK 包。"
|
||||
|
||||
msgid "Package Manager"
|
||||
msgstr "包管理器"
|
||||
|
||||
msgid "Unsupported package manager"
|
||||
msgstr "不支持的包管理器"
|
||||
|
||||
msgid "Installed package check failed"
|
||||
msgstr "安装后软件包检查失败"
|
||||
|
||||
@ -5,6 +5,7 @@ set -u
|
||||
XRAY_RELEASE_PAGE="https://github.com/XTLS/Xray-core/releases/latest"
|
||||
MIHOMO_RELEASE_PAGE="https://github.com/MetaCubeX/mihomo/releases/latest"
|
||||
NAIVEPROXY_RELEASE_API="https://api.github.com/repos/klzgrad/naiveproxy/releases/latest"
|
||||
HELLOWORLD_RELEASE_API="https://api.github.com/repos/fw876/helloworld/releases/latest"
|
||||
XRAY_BINARY="/usr/bin/xray"
|
||||
MIHOMO_BINARY="/usr/bin/mihomo"
|
||||
NAIVEPROXY_BINARY="/usr/bin/naive"
|
||||
@ -164,6 +165,20 @@ is_openwrt_env() {
|
||||
[ -r /etc/openwrt_release ] || command -v opkg >/dev/null 2>&1
|
||||
}
|
||||
|
||||
detect_package_manager() {
|
||||
if command -v apk >/dev/null 2>&1; then
|
||||
printf '%s' 'apk'
|
||||
return 0
|
||||
fi
|
||||
|
||||
if command -v opkg >/dev/null 2>&1; then
|
||||
printf '%s' 'opkg'
|
||||
return 0
|
||||
fi
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
find_mihomo_binary() {
|
||||
if command -v mihomo >/dev/null 2>&1; then
|
||||
command -v mihomo
|
||||
@ -831,6 +846,240 @@ get_naiveproxy_latest_info() {
|
||||
return 0
|
||||
}
|
||||
|
||||
get_mainprogram_current_version() {
|
||||
local pm="$1"
|
||||
local version
|
||||
|
||||
case "$pm" in
|
||||
apk)
|
||||
version="$(apk info -e luci-app-ssr-plus 2>/dev/null | sed -n 's/^luci-app-ssr-plus-\([0-9][^-[:space:]]*-[^[:space:]]*\).*$/\1/p' | sed -n '1p')"
|
||||
[ -n "$version" ] || version="$(apk list -I luci-app-ssr-plus 2>/dev/null | sed -n 's/^luci-app-ssr-plus-\([0-9][^-[:space:]]*-[^[:space:]]*\).*$/\1/p' | sed -n '1p')"
|
||||
;;
|
||||
opkg)
|
||||
version="$(opkg status luci-app-ssr-plus 2>/dev/null | sed -n 's/^Version:[[:space:]]*//p' | sed -n '1p')"
|
||||
;;
|
||||
esac
|
||||
|
||||
[ -n "$version" ] || return 1
|
||||
printf '%s' "$version"
|
||||
}
|
||||
|
||||
mainprogram_asset_suffix() {
|
||||
case "$1" in
|
||||
apk)
|
||||
printf '%s' '.apk'
|
||||
;;
|
||||
opkg)
|
||||
printf '%s' '.ipk'
|
||||
;;
|
||||
*)
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
select_mainprogram_asset() {
|
||||
local asset_list="$1"
|
||||
local pm="$2"
|
||||
local suffix candidate
|
||||
|
||||
suffix="$(mainprogram_asset_suffix "$pm")" || return 1
|
||||
candidate="$(printf '%s\n' "$asset_list" | grep -F "$suffix" | grep -E '^luci-app-ssr-plus[_-]' | sed -n '1p')"
|
||||
[ -n "$candidate" ] || return 1
|
||||
printf '%s' "$candidate"
|
||||
}
|
||||
|
||||
mainprogram_asset_version() {
|
||||
local asset="$1"
|
||||
local version
|
||||
|
||||
version="$(printf '%s' "$asset" | sed -n 's/^luci-app-ssr-plus_\([^_]*\)_.*\.ipk$/\1/p')"
|
||||
[ -n "$version" ] || version="$(printf '%s' "$asset" | sed -n 's/^luci-app-ssr-plus-\(.*\)\.apk$/\1/p')"
|
||||
[ -n "$version" ] || return 1
|
||||
printf '%s' "$version"
|
||||
}
|
||||
|
||||
get_mainprogram_latest_info() {
|
||||
local pm release_json tag version asset asset_list url
|
||||
|
||||
pm="$(detect_package_manager)" || return 2
|
||||
release_json="$(fetch_text "$HELLOWORLD_RELEASE_API")" || return 3
|
||||
tag="$(printf '%s\n' "$release_json" | sed -n 's/.*"tag_name":[[:space:]]*"\([^"]*\)".*/\1/p' | sed -n '1p')"
|
||||
[ -n "$tag" ] || return 3
|
||||
asset_list="$(printf '%s\n' "$release_json" | sed -n 's/.*"name":[[:space:]]*"\([^"]*\.\(ipk\|apk\)\)".*/\1/p')"
|
||||
asset="$(select_mainprogram_asset "$asset_list" "$pm")" || return 4
|
||||
version="$(mainprogram_asset_version "$asset" 2>/dev/null || trim_version "$tag")"
|
||||
url="$(mirror_wrap_url "https://github.com/fw876/helloworld/releases/download/$tag/$asset")"
|
||||
|
||||
log_kv package_manager "$pm"
|
||||
log_kv arch "$(get_openwrt_arch)"
|
||||
log_kv asset "$asset"
|
||||
log_kv latest_version "$version"
|
||||
log_kv download_url "$url"
|
||||
return 0
|
||||
}
|
||||
|
||||
mainprogram_info() {
|
||||
local pm current installed latest_output latest_rc latest_version arch asset can_upgrade
|
||||
|
||||
installed=0
|
||||
current=""
|
||||
pm="$(detect_package_manager 2>/dev/null || true)"
|
||||
arch="$(get_openwrt_arch)"
|
||||
if [ -n "$pm" ] && current="$(get_mainprogram_current_version "$pm")" && [ -n "$current" ]; then
|
||||
installed=1
|
||||
fi
|
||||
|
||||
latest_output="$(get_mainprogram_latest_info 2>/dev/null)"
|
||||
latest_rc=$?
|
||||
|
||||
log_kv component mainprogram
|
||||
log_kv installed "$installed"
|
||||
log_kv current_version "$current"
|
||||
log_kv package_manager "$pm"
|
||||
log_kv arch "$arch"
|
||||
log_kv asset ''
|
||||
|
||||
if [ $latest_rc -ne 0 ]; then
|
||||
log_kv can_upgrade 0
|
||||
case "$latest_rc" in
|
||||
2) log_kv error 'unsupported_package_manager' ;;
|
||||
3) log_kv error 'fetch_failed' ;;
|
||||
4) log_kv error 'asset_not_found' ;;
|
||||
*) log_kv error 'unknown_error' ;;
|
||||
esac
|
||||
return 0
|
||||
fi
|
||||
|
||||
latest_version="$(printf '%s\n' "$latest_output" | sed -n 's/^latest_version=//p' | sed -n '1p')"
|
||||
pm="$(printf '%s\n' "$latest_output" | sed -n 's/^package_manager=//p' | sed -n '1p')"
|
||||
arch="$(printf '%s\n' "$latest_output" | sed -n 's/^arch=//p' | sed -n '1p')"
|
||||
asset="$(printf '%s\n' "$latest_output" | sed -n 's/^asset=//p' | sed -n '1p')"
|
||||
can_upgrade=0
|
||||
if [ -z "$current" ] || version_gt "$latest_version" "$current"; then
|
||||
can_upgrade=1
|
||||
fi
|
||||
|
||||
printf '%s\n' "$latest_output" | sed '/^download_url=/d'
|
||||
log_kv can_upgrade "$can_upgrade"
|
||||
log_kv error ''
|
||||
}
|
||||
|
||||
mainprogram_local_info() {
|
||||
local pm current installed
|
||||
|
||||
installed=0
|
||||
current=""
|
||||
pm="$(detect_package_manager 2>/dev/null || true)"
|
||||
if [ -n "$pm" ] && current="$(get_mainprogram_current_version "$pm")" && [ -n "$current" ]; then
|
||||
installed=1
|
||||
fi
|
||||
|
||||
log_kv component mainprogram
|
||||
log_kv installed "$installed"
|
||||
log_kv current_version "$current"
|
||||
log_kv latest_version ''
|
||||
log_kv package_manager "$pm"
|
||||
log_kv arch "$(get_openwrt_arch)"
|
||||
log_kv asset ''
|
||||
log_kv can_upgrade 0
|
||||
log_kv error ''
|
||||
}
|
||||
|
||||
mainprogram_install_package() {
|
||||
local pm="$1"
|
||||
local package_file="$2"
|
||||
|
||||
case "$pm" in
|
||||
apk)
|
||||
apk add --allow-untrusted "$package_file" >/dev/null 2>&1
|
||||
;;
|
||||
opkg)
|
||||
opkg install "$package_file" >/dev/null 2>&1
|
||||
;;
|
||||
*)
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
mainprogram_upgrade() {
|
||||
local latest_output latest_rc latest_version download_url package_manager asset tmp_dir package_file current_before current_after
|
||||
|
||||
latest_output="$(get_mainprogram_latest_info 2>/dev/null)"
|
||||
latest_rc=$?
|
||||
if [ $latest_rc -ne 0 ]; then
|
||||
log_kv success 0
|
||||
case "$latest_rc" in
|
||||
2) log_kv message 'Unsupported package manager' ;;
|
||||
3) log_kv message 'Failed to fetch release metadata' ;;
|
||||
4) log_kv message 'Matching release asset not found' ;;
|
||||
*) log_kv message 'Unknown error' ;;
|
||||
esac
|
||||
return 0
|
||||
fi
|
||||
|
||||
latest_version="$(printf '%s\n' "$latest_output" | sed -n 's/^latest_version=//p' | sed -n '1p')"
|
||||
download_url="$(printf '%s\n' "$latest_output" | sed -n 's/^download_url=//p' | sed -n '1p')"
|
||||
package_manager="$(printf '%s\n' "$latest_output" | sed -n 's/^package_manager=//p' | sed -n '1p')"
|
||||
asset="$(printf '%s\n' "$latest_output" | sed -n 's/^asset=//p' | sed -n '1p')"
|
||||
current_before="$(get_mainprogram_current_version "$package_manager" 2>/dev/null || true)"
|
||||
|
||||
tmp_dir="$(mktemp -d /tmp/ssrplus-mainprogram.XXXXXX)"
|
||||
if [ -z "$tmp_dir" ] || [ ! -d "$tmp_dir" ]; then
|
||||
log_kv success 0
|
||||
log_kv message 'Failed to create temp directory'
|
||||
return 0
|
||||
fi
|
||||
|
||||
package_file="$tmp_dir/$asset"
|
||||
trap "rm -rf '$tmp_dir'" EXIT INT TERM
|
||||
|
||||
if ! download_file "$download_url" "$package_file"; then
|
||||
log_kv success 0
|
||||
log_kv message 'Download failed'
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ ! -s "$package_file" ]; then
|
||||
log_kv success 0
|
||||
log_kv message 'Download failed'
|
||||
return 0
|
||||
fi
|
||||
|
||||
if ! mainprogram_install_package "$package_manager" "$package_file"; then
|
||||
log_kv success 0
|
||||
log_kv message 'Install failed'
|
||||
return 0
|
||||
fi
|
||||
|
||||
current_after="$(get_mainprogram_current_version "$package_manager" 2>/dev/null || true)"
|
||||
if [ -z "$current_after" ]; then
|
||||
log_kv success 0
|
||||
log_kv message 'Installed package check failed'
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ -x /etc/init.d/rpcd ]; then
|
||||
/etc/init.d/rpcd restart >/dev/null 2>&1 || true
|
||||
fi
|
||||
if [ -x /etc/init.d/uhttpd ]; then
|
||||
/etc/init.d/uhttpd reload >/dev/null 2>&1 || true
|
||||
fi
|
||||
|
||||
log_kv component mainprogram
|
||||
log_kv success 1
|
||||
log_kv previous_version "$current_before"
|
||||
log_kv current_version "$current_after"
|
||||
log_kv latest_version "$latest_version"
|
||||
log_kv package_manager "$package_manager"
|
||||
log_kv arch "$(get_openwrt_arch)"
|
||||
log_kv asset "$asset"
|
||||
log_kv can_upgrade 0
|
||||
log_kv message 'Upgrade completed'
|
||||
return 0
|
||||
}
|
||||
|
||||
xray_info() {
|
||||
local current installed latest_output latest_rc latest_version arch asset can_upgrade
|
||||
|
||||
@ -1366,6 +1615,15 @@ naiveproxy_upgrade() {
|
||||
}
|
||||
|
||||
case "${1:-}" in
|
||||
mainprogram_info)
|
||||
mainprogram_info
|
||||
;;
|
||||
mainprogram_local_info)
|
||||
mainprogram_local_info
|
||||
;;
|
||||
mainprogram_upgrade)
|
||||
mainprogram_upgrade
|
||||
;;
|
||||
xray_info)
|
||||
xray_info
|
||||
;;
|
||||
@ -1422,7 +1680,7 @@ case "${1:-}" in
|
||||
;;
|
||||
*)
|
||||
log_kv success 0
|
||||
log_kv message 'Usage: update_components.sh xray_info|xray_local_info|xray_upgrade|mihomo_info|mihomo_local_info|mihomo_upgrade|naiveproxy_info|naiveproxy_local_info|naiveproxy_upgrade|country_mmdb_info|country_mmdb_local_info|country_mmdb_upgrade|geosite_info|geosite_local_info|geosite_upgrade|v2ray_geo_info|v2ray_geo_local_info|v2ray_geo_upgrade'
|
||||
log_kv message 'Usage: update_components.sh mainprogram_info|mainprogram_local_info|mainprogram_upgrade|xray_info|xray_local_info|xray_upgrade|mihomo_info|mihomo_local_info|mihomo_upgrade|naiveproxy_info|naiveproxy_local_info|naiveproxy_upgrade|country_mmdb_info|country_mmdb_local_info|country_mmdb_upgrade|geosite_info|geosite_local_info|geosite_upgrade|v2ray_geo_info|v2ray_geo_local_info|v2ray_geo_upgrade'
|
||||
return 1 2>/dev/null || exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
@ -556,7 +556,6 @@ case $action in
|
||||
;;
|
||||
"link_meta")
|
||||
[[ -d "$META_DIR/meta" ]] || mkdir -p "$META_DIR/meta"
|
||||
mkdir -p /tmp/run/istore
|
||||
ln -sf "$META_DIR" /tmp/run/istore-meta
|
||||
;;
|
||||
*)
|
||||
|
||||
@ -30,13 +30,13 @@ define Download/geosite
|
||||
HASH:=09678737c89b0ff663c07082ff1d9786515a8153ff82493cfe3d4c7fe62a6a3e
|
||||
endef
|
||||
|
||||
GEOSITE_IRAN_VER:=202606220211
|
||||
GEOSITE_IRAN_VER:=202606290159
|
||||
GEOSITE_IRAN_FILE:=iran.dat.$(GEOSITE_IRAN_VER)
|
||||
define Download/geosite-ir
|
||||
URL:=https://github.com/bootmortis/iran-hosted-domains/releases/download/$(GEOSITE_IRAN_VER)/
|
||||
URL_FILE:=iran.dat
|
||||
FILE:=$(GEOSITE_IRAN_FILE)
|
||||
HASH:=596b39400e76b76153bbf65e06a5b262c12484a86e3d79b3b03612bc7b4ae8d8
|
||||
HASH:=a6cc63b73db6decbc8990cfcb3f3a63e0c99378575458fd04df7517ce94a0479
|
||||
endef
|
||||
|
||||
define Package/v2ray-geodata/template
|
||||
|
||||
Loading…
Reference in New Issue
Block a user