mirror of
https://github.com/kenzok8/openwrt-packages.git
synced 2025-11-01 08:18:52 +08:00
update 2022-05-29 20:15:51
This commit is contained in:
@ -16,7 +16,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-amlogic
|
||||
PKG_VERSION:=3.1.100
|
||||
PKG_VERSION:=3.1.102
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_LICENSE:=GPL-2.0 License
|
||||
|
||||
@ -76,17 +76,12 @@ else
|
||||
end
|
||||
|
||||
--Device identification
|
||||
mydevice_logs = luci.sys.exec("cat /proc/device-tree/model | tr -d \'\\000\' > /tmp/amlogic/amlogic_mydevice_name.log && sync")
|
||||
mydevice_name = luci.sys.exec("cat /proc/device-tree/model | tr -d \'\\000\'") or "Unknown device"
|
||||
if string.find(mydevice_name, "Chainedbox L1 Pro") ~= nil then
|
||||
device_platfrom = trim(luci.sys.exec("cat /etc/flippy-openwrt-release 2>/dev/null | grep PLATFORM | awk -F'=' '{print $2}' | grep -oE '(amlogic|rockchip|allwinner)'")) or "Unknown PLATFORM"
|
||||
if (device_platfrom == "rockchip") then
|
||||
device_install_script = ""
|
||||
device_update_script = "openwrt-update-rockchip"
|
||||
device_kernel_script = "openwrt-kernel"
|
||||
elseif string.find(mydevice_name, "BeikeYun") ~= nil then
|
||||
device_install_script = ""
|
||||
device_update_script = "openwrt-update-rockchip"
|
||||
device_kernel_script = "openwrt-kernel"
|
||||
elseif string.find(mydevice_name, "V-Plus Cloud") ~= nil then
|
||||
elseif (device_platfrom == "allwinner") then
|
||||
device_install_script = ""
|
||||
device_update_script = "openwrt-update-allwinner"
|
||||
device_kernel_script = "openwrt-kernel"
|
||||
|
||||
@ -24,7 +24,9 @@ o.anonymouse = true
|
||||
--1.Set OpenWrt Firmware Repository
|
||||
mydevice = o:option(DummyValue, "mydevice", translate("Current Device:"))
|
||||
mydevice.description = translate("If the current device shows (Unknown device), please report to github.")
|
||||
mydevice.default = luci.sys.exec("cat /proc/device-tree/model | tr -d \'\\000\'") or "Unknown device"
|
||||
mydevice_platfrom = trim(luci.sys.exec("cat /etc/flippy-openwrt-release 2>/dev/null | grep PLATFORM | awk -F'=' '{print $2}' | grep -oE '(amlogic|rockchip|allwinner)'")) or "Unknown PLATFORM"
|
||||
mydevice_name = trim(luci.sys.exec("cat /proc/device-tree/model | tr -d \'\\000\'")) or "Unknown device"
|
||||
mydevice.default = mydevice_name .. " (" .. mydevice_platfrom .. ")"
|
||||
mydevice.rmempty = false
|
||||
|
||||
--2.Set OpenWrt Firmware Repository
|
||||
|
||||
@ -21,7 +21,8 @@ START_LOG="${TMP_CHECK_DIR}/amlogic_check_firmware.log"
|
||||
RUNNING_LOG="${TMP_CHECK_DIR}/amlogic_running_script.log"
|
||||
LOG_FILE="${TMP_CHECK_DIR}/amlogic.log"
|
||||
github_api_openwrt="${TMP_CHECK_DIR}/github_api_openwrt"
|
||||
LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
|
||||
MYDEVICE_NAME="$(cat /proc/device-tree/model | tr -d '\000')"
|
||||
LOGTIME="$(date "+%Y-%m-%d %H:%M:%S")"
|
||||
[[ -d ${TMP_CHECK_DIR} ]] || mkdir -p ${TMP_CHECK_DIR}
|
||||
|
||||
# Clean the running log
|
||||
@ -39,7 +40,7 @@ tolog() {
|
||||
# Check running scripts, prohibit running concurrently
|
||||
this_running_log="3@OpenWrt update in progress, try again later!"
|
||||
running_script="$(cat ${RUNNING_LOG} 2>/dev/null | xargs)"
|
||||
if [ -n "${running_script}" ]; then
|
||||
if [[ -n "${running_script}" ]]; then
|
||||
run_num=$(echo "${running_script}" | awk -F "@" '{print $1}')
|
||||
run_log=$(echo "${running_script}" | awk -F "@" '{print $2}')
|
||||
fi
|
||||
@ -50,20 +51,20 @@ else
|
||||
fi
|
||||
|
||||
# Find the partition where root is located
|
||||
ROOT_PTNAME=$(df / | tail -n1 | awk '{print $1}' | awk -F '/' '{print $3}')
|
||||
if [ "${ROOT_PTNAME}" == "" ]; then
|
||||
ROOT_PTNAME="$(df / | tail -n1 | awk '{print $1}' | awk -F '/' '{print $3}')"
|
||||
if [[ -z "${ROOT_PTNAME}" ]]; then
|
||||
tolog "Cannot find the partition corresponding to the root file system!" "1"
|
||||
fi
|
||||
|
||||
# Find the disk where the partition is located, only supports mmcblk?p? sd?? hd?? vd?? and other formats
|
||||
case ${ROOT_PTNAME} in
|
||||
case "${ROOT_PTNAME}" in
|
||||
mmcblk?p[1-4])
|
||||
EMMC_NAME=$(echo ${ROOT_PTNAME} | awk '{print substr($1, 1, length($1)-2)}')
|
||||
EMMC_NAME="$(echo ${ROOT_PTNAME} | awk '{print substr($1, 1, length($1)-2)}')"
|
||||
PARTITION_NAME="p"
|
||||
LB_PRE="EMMC_"
|
||||
;;
|
||||
[hsv]d[a-z][1-4])
|
||||
EMMC_NAME=$(echo ${ROOT_PTNAME} | awk '{print substr($1, 1, length($1)-1)}')
|
||||
EMMC_NAME="$(echo ${ROOT_PTNAME} | awk '{print substr($1, 1, length($1)-1)}')"
|
||||
PARTITION_NAME=""
|
||||
LB_PRE=""
|
||||
;;
|
||||
@ -76,45 +77,33 @@ esac
|
||||
FIRMWARE_DOWNLOAD_PATH="/mnt/${EMMC_NAME}${PARTITION_NAME}4"
|
||||
[ -d "${FIRMWARE_DOWNLOAD_PATH}/.luci-app-amlogic" ] || mkdir -p "${FIRMWARE_DOWNLOAD_PATH}/.luci-app-amlogic"
|
||||
|
||||
# Current device model
|
||||
MYDEVICE_NAME=$(cat /proc/device-tree/model | tr -d '\000')
|
||||
if [[ -z "${MYDEVICE_NAME}" ]]; then
|
||||
tolog "The device name is empty and cannot be recognized." "1"
|
||||
elif [[ "$(echo ${MYDEVICE_NAME} | grep "Chainedbox L1 Pro")" != "" ]]; then
|
||||
MYDTB_FILE="rockchip"
|
||||
SOC="l1pro"
|
||||
elif [[ "$(echo ${MYDEVICE_NAME} | grep "BeikeYun")" != "" ]]; then
|
||||
MYDTB_FILE="rockchip"
|
||||
SOC="beikeyun"
|
||||
elif [[ "$(echo ${MYDEVICE_NAME} | grep "V-Plus Cloud")" != "" ]]; then
|
||||
MYDTB_FILE="allwinner"
|
||||
SOC="vplus"
|
||||
elif [[ -f "${AMLOGIC_SOC_FILE}" ]]; then
|
||||
MYDTB_FILE="amlogic"
|
||||
source ${AMLOGIC_SOC_FILE} 2>/dev/null
|
||||
# Check release file
|
||||
if [[ -s "${AMLOGIC_SOC_FILE}" ]]; then
|
||||
source "${AMLOGIC_SOC_FILE}" 2>/dev/null
|
||||
PLATFORM="${PLATFORM}"
|
||||
SOC="${SOC}"
|
||||
else
|
||||
tolog "Unknown device: [ ${MYDEVICE_NAME} ], Not supported." "1"
|
||||
tolog "${AMLOGIC_SOC_FILE} file is missing!" "1"
|
||||
fi
|
||||
[[ ! -z "${SOC}" ]] || tolog "The custom firmware soc is invalid." "1"
|
||||
[[ -n "${PLATFORM}" && -n "${SOC}" ]] || tolog "The custom firmware soc is invalid." "1"
|
||||
tolog "Device: ${MYDEVICE_NAME} [ ${SOC} ], Use in [ ${EMMC_NAME} ]"
|
||||
sleep 2
|
||||
|
||||
# 01. Query local version information
|
||||
tolog "01. Query version information."
|
||||
# 01.01 Query the current version
|
||||
current_kernel_v=$(ls /lib/modules/ 2>/dev/null | grep -oE '^[1-9].[0-9]{1,3}.[0-9]+')
|
||||
current_kernel_v="$(ls /lib/modules/ 2>/dev/null | grep -oE '^[1-9].[0-9]{1,3}.[0-9]+')"
|
||||
tolog "01.01 current version: ${current_kernel_v}"
|
||||
sleep 2
|
||||
|
||||
# 01.01 Version comparison
|
||||
main_line_ver=$(echo "${current_kernel_v}" | cut -d '.' -f1)
|
||||
main_line_maj=$(echo "${current_kernel_v}" | cut -d '.' -f2)
|
||||
main_line_ver="$(echo "${current_kernel_v}" | cut -d '.' -f1)"
|
||||
main_line_maj="$(echo "${current_kernel_v}" | cut -d '.' -f2)"
|
||||
main_line_version="${main_line_ver}.${main_line_maj}"
|
||||
|
||||
# 01.02. Query the selected branch in the settings
|
||||
server_kernel_branch=$(uci get amlogic.config.amlogic_kernel_branch 2>/dev/null | grep -oE '^[1-9].[0-9]{1,3}')
|
||||
if [ -z "${server_kernel_branch}" ]; then
|
||||
server_kernel_branch="$(uci get amlogic.config.amlogic_kernel_branch 2>/dev/null | grep -oE '^[1-9].[0-9]{1,3}')"
|
||||
if [[ -z "${server_kernel_branch}" ]]; then
|
||||
server_kernel_branch="${main_line_version}"
|
||||
uci set amlogic.config.amlogic_kernel_branch="${main_line_version}" 2>/dev/null
|
||||
uci commit amlogic 2>/dev/null
|
||||
@ -136,15 +125,12 @@ firmware_suffix=$(uci get amlogic.config.amlogic_firmware_suffix 2>/dev/null)
|
||||
# Supported format:
|
||||
# server_firmware_url="https://github.com/ophub/amlogic-s9xxx-openwrt"
|
||||
# server_firmware_url="ophub/amlogic-s9xxx-openwrt"
|
||||
if [[ ${server_firmware_url} == http* ]]; then
|
||||
server_firmware_url=${server_firmware_url#*com\/}
|
||||
if [[ "${server_firmware_url}" == http* ]]; then
|
||||
server_firmware_url="${server_firmware_url#*com\/}"
|
||||
fi
|
||||
|
||||
# Delete other residual firmware files
|
||||
rm -f ${FIRMWARE_DOWNLOAD_PATH}/*${firmware_suffix} 2>/dev/null && sync
|
||||
rm -f ${FIRMWARE_DOWNLOAD_PATH}/*.img 2>/dev/null && sync
|
||||
|
||||
firmware_download_url="https:.*${releases_tag_keywords}.*${SOC}.*${main_line_version}.*${firmware_suffix}"
|
||||
firmware_download_url="https:.*${releases_tag_keywords}.*_${SOC}_.*${main_line_version}.*${firmware_suffix}"
|
||||
firmware_sha256sums_download_url="https:.*${releases_tag_keywords}.*sha256sums"
|
||||
|
||||
# 02. Check Updated
|
||||
check_updated() {
|
||||
@ -153,7 +139,7 @@ check_updated() {
|
||||
sleep 1
|
||||
|
||||
# Get the openwrt firmware updated_at
|
||||
api_down_line_array=$(cat ${github_api_openwrt} | grep -n "${firmware_download_url}" | awk -F ":" '{print $1}' | tr "\n" " " | echo $(xargs))
|
||||
api_down_line_array="$(cat ${github_api_openwrt} | grep -n "${firmware_download_url}" | awk -F ":" '{print $1}' | tr "\n" " " | echo $(xargs))"
|
||||
# return: 123 233 312
|
||||
|
||||
i=1
|
||||
@ -165,15 +151,15 @@ check_updated() {
|
||||
let i++
|
||||
done
|
||||
# return: api_updated_at: 2021-10-21T17:52:56Z 2021-10-21T11:22:39Z 2021-10-22T17:52:56Z
|
||||
latest_updated_at=$(echo ${api_updated_at[*]} | tr ' ' '\n' | sort -r | head -n 1)
|
||||
latest_updated_at_format=$(echo ${latest_updated_at} | tr 'T' '(' | tr 'Z' ')')
|
||||
latest_updated_at="$(echo ${api_updated_at[*]} | tr ' ' '\n' | sort -r | head -n 1)"
|
||||
latest_updated_at_format="$(echo ${latest_updated_at} | tr 'T' '(' | tr 'Z' ')')"
|
||||
# return: latest_updated_at: 2021-10-22T17:52:56Z
|
||||
api_op_down_line=$(echo ${api_updated_merge[*]} | tr ' ' '\n' | grep ${latest_updated_at} | cut -d '@' -f1)
|
||||
api_op_down_line="$(echo ${api_updated_merge[*]} | tr ' ' '\n' | grep ${latest_updated_at} | cut -d '@' -f1)"
|
||||
# return: api_openwrt_download_line: 123
|
||||
|
||||
# Check the firmware update code
|
||||
op_release_code="${FIRMWARE_DOWNLOAD_PATH}/.luci-app-amlogic/op_release_code"
|
||||
if [ -f "${op_release_code}" ]; then
|
||||
if [[ -f "${op_release_code}" ]]; then
|
||||
update_check_code="$(cat ${op_release_code} | xargs)"
|
||||
if [[ -n "${update_check_code}" && "${update_check_code}" == "${latest_updated_at}" ]]; then
|
||||
tolog "02.01 Already the latest version, no need to update." "1"
|
||||
@ -195,27 +181,55 @@ download_firmware() {
|
||||
tolog "03. Download Openwrt firmware ..."
|
||||
|
||||
# Get the openwrt firmware download path
|
||||
if [[ ${download_version} == download* ]]; then
|
||||
download_firmware_line=$(echo "${download_version}" | cut -d '_' -f2)
|
||||
download_latest_updated=$(echo "${download_version}" | cut -d '_' -f3)
|
||||
if [[ "${download_version}" == download* ]]; then
|
||||
download_firmware_line="$(echo "${download_version}" | cut -d '_' -f2)"
|
||||
download_latest_updated="$(echo "${download_version}" | cut -d '_' -f3)"
|
||||
tolog "03.01 Start downloading..."
|
||||
else
|
||||
tolog "03.02 Invalid parameter" "1"
|
||||
fi
|
||||
|
||||
firmware_releases_path=$(cat ${github_api_openwrt} | sed -n "${download_firmware_line}p" | grep "browser_download_url" | grep -o "${firmware_download_url}" | head -n 1)
|
||||
# Delete other residual firmware files
|
||||
rm -f ${FIRMWARE_DOWNLOAD_PATH}/*${firmware_suffix} 2>/dev/null && sync
|
||||
rm -f ${FIRMWARE_DOWNLOAD_PATH}/*.img 2>/dev/null && sync
|
||||
rm -f ${FIRMWARE_DOWNLOAD_PATH}/sha256sums && sync
|
||||
|
||||
firmware_releases_path="$(cat ${github_api_openwrt} | sed -n "${download_firmware_line}p" | grep "browser_download_url" | grep -o "${firmware_download_url}" | head -n 1)"
|
||||
# Download to local rename
|
||||
firmware_download_name="openwrt_${SOC}_k${main_line_version}_github${firmware_suffix}"
|
||||
wget -c "${firmware_releases_path}" -O "${FIRMWARE_DOWNLOAD_PATH}/${firmware_download_name}" >/dev/null 2>&1 && sync
|
||||
# The name in the github.com releases
|
||||
firmware_download_oldname="${firmware_releases_path##*/}"
|
||||
firmware_download_oldname="${firmware_download_oldname//%2B/+}"
|
||||
# Download firmware
|
||||
wget "${firmware_releases_path}" -O "${FIRMWARE_DOWNLOAD_PATH}/${firmware_download_name}" >/dev/null 2>&1 && sync
|
||||
if [[ "$?" -eq "0" && -s "${FIRMWARE_DOWNLOAD_PATH}/${firmware_download_name}" ]]; then
|
||||
tolog "03.01 OpenWrt firmware download complete, you can update."
|
||||
tolog "03.01 Firmware download complete."
|
||||
else
|
||||
tolog "03.02 Invalid firmware download." "1"
|
||||
tolog "03.02 Firmware download failed." "1"
|
||||
fi
|
||||
sleep 2
|
||||
|
||||
sha256sums_check="1"
|
||||
[[ -n "$(which sha256sum)" ]] || sha256sums_check="0"
|
||||
firmware_sha256sums_path="$(cat ${github_api_openwrt} | grep "browser_download_url" | grep -o "${firmware_sha256sums_download_url}" | head -n 1)"
|
||||
if [[ -n "${firmware_sha256sums_path}" && "${sha256sums_check}" -eq "1" ]]; then
|
||||
wget "${firmware_sha256sums_path}" -O "${FIRMWARE_DOWNLOAD_PATH}/sha256sums" >/dev/null 2>&1 && sync
|
||||
if [[ "$?" -eq "0" && -s "${FIRMWARE_DOWNLOAD_PATH}/sha256sums" ]]; then
|
||||
tolog "03.03 Sha256sums download complete."
|
||||
releases_firmware_sha256sums="$(cat sha256sums | grep ${firmware_download_oldname} | awk '{print $1}')"
|
||||
download_firmware_sha256sums="$(sha256sum ${firmware_download_name} | awk '{print $1}')"
|
||||
[[ -n "${releases_firmware_sha256sums}" && "${releases_firmware_sha256sums}" != "${download_firmware_sha256sums}" ]] && tolog "03.04 sha256sum verification failed." "1"
|
||||
else
|
||||
tolog "03.05 Sha256sums download failed." "1"
|
||||
fi
|
||||
sleep 2
|
||||
fi
|
||||
|
||||
# Delete temporary files
|
||||
rm -f ${github_api_openwrt} 2>/dev/null && sync
|
||||
|
||||
tolog "You can update."
|
||||
|
||||
#echo '<a href="javascript:;" onclick="return amlogic_update(this, '"'${firmware_download_name}'"')">Update</a>' >$START_LOG
|
||||
tolog '<input type="button" class="cbi-button cbi-button-reload" value="Update" onclick="return amlogic_update(this, '"'${firmware_download_name}@${download_latest_updated}@${FIRMWARE_DOWNLOAD_PATH}'"')"/>' "1"
|
||||
|
||||
@ -223,7 +237,7 @@ download_firmware() {
|
||||
}
|
||||
|
||||
getopts 'cd' opts
|
||||
case $opts in
|
||||
case "${opts}" in
|
||||
c | check)
|
||||
check_updated
|
||||
;;
|
||||
|
||||
@ -24,7 +24,7 @@ github_api_kernel_library="${TMP_CHECK_DIR}/github_api_kernel_library"
|
||||
github_api_kernel_file="${TMP_CHECK_DIR}/github_api_kernel_file"
|
||||
support_platform=("allwinner" "rockchip" "amlogic")
|
||||
MYDEVICE_NAME="$(cat /proc/device-tree/model | tr -d '\000')"
|
||||
LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
|
||||
LOGTIME="$(date "+%Y-%m-%d %H:%M:%S")"
|
||||
[[ -d ${TMP_CHECK_DIR} ]] || mkdir -p ${TMP_CHECK_DIR}
|
||||
|
||||
# Clean the running log
|
||||
@ -79,11 +79,11 @@ KERNEL_DOWNLOAD_PATH="/mnt/${EMMC_NAME}${PARTITION_NAME}4"
|
||||
if [[ -s "${AMLOGIC_SOC_FILE}" ]]; then
|
||||
source "${AMLOGIC_SOC_FILE}" 2>/dev/null
|
||||
PLATFORM="${PLATFORM}"
|
||||
SOC="${SOC}"
|
||||
else
|
||||
tolog "${AMLOGIC_SOC_FILE} file is missing!" "1"
|
||||
fi
|
||||
|
||||
if [[ -z "${PLATFORM}" || -z "$(echo "${support_platform[@]}" | grep -w "${PLATFORM}")" ]]; then
|
||||
if [[ -z "${PLATFORM}" || -z "$(echo "${support_platform[@]}" | grep -w "${PLATFORM}")" || -z "${SOC}" ]]; then
|
||||
tolog "Missing [ PLATFORM ] value in ${AMLOGIC_SOC_FILE} file." "1"
|
||||
fi
|
||||
|
||||
@ -109,7 +109,7 @@ server_kernel_path="$(uci get amlogic.config.amlogic_kernel_path 2>/dev/null)"
|
||||
# server_kernel_path="amlogic-s9xxx/amlogic-kernel"
|
||||
#
|
||||
if [[ "${server_firmware_url}" == http* ]]; then
|
||||
server_firmware_url=${server_firmware_url#*com\/}
|
||||
server_firmware_url="${server_firmware_url#*com\/}"
|
||||
fi
|
||||
|
||||
if [[ "${server_kernel_path}" == http* && -n "$(echo ${server_kernel_path} | grep "tree")" ]]; then
|
||||
@ -210,11 +210,11 @@ download_kernel() {
|
||||
fi
|
||||
boot_file_name="${server_kernel_boot##*/}"
|
||||
server_kernel_boot_name="${boot_file_name//%2B/+}"
|
||||
wget -c "${server_kernel_boot}" -O "${KERNEL_DOWNLOAD_PATH}/${server_kernel_boot_name}" >/dev/null 2>&1 && sync
|
||||
wget "${server_kernel_boot}" -O "${KERNEL_DOWNLOAD_PATH}/${server_kernel_boot_name}" >/dev/null 2>&1 && sync
|
||||
if [[ "$?" -eq "0" && -s "${KERNEL_DOWNLOAD_PATH}/${server_kernel_boot_name}" ]]; then
|
||||
tolog "03.03 The boot file complete."
|
||||
tolog "03.03 The boot file download complete."
|
||||
else
|
||||
tolog "03.04 The boot file failed to download." "1"
|
||||
tolog "03.04 The boot file download failed." "1"
|
||||
fi
|
||||
sleep 2
|
||||
|
||||
@ -226,11 +226,11 @@ download_kernel() {
|
||||
fi
|
||||
dtb_file_name="${server_kernel_dtb##*/}"
|
||||
server_kernel_dtb_name="${dtb_file_name//%2B/+}"
|
||||
wget -c "${server_kernel_dtb}" -O "${KERNEL_DOWNLOAD_PATH}/${server_kernel_dtb_name}" >/dev/null 2>&1 && sync
|
||||
wget "${server_kernel_dtb}" -O "${KERNEL_DOWNLOAD_PATH}/${server_kernel_dtb_name}" >/dev/null 2>&1 && sync
|
||||
if [[ "$?" -eq "0" && -s "${KERNEL_DOWNLOAD_PATH}/${server_kernel_dtb_name}" ]]; then
|
||||
tolog "03.05 The dtb file complete."
|
||||
tolog "03.05 The dtb file download complete."
|
||||
else
|
||||
tolog "03.06 The dtb file failed to download." "1"
|
||||
tolog "03.06 The dtb file download failed." "1"
|
||||
fi
|
||||
sleep 2
|
||||
|
||||
@ -242,11 +242,11 @@ download_kernel() {
|
||||
fi
|
||||
modules_file_name="${server_kernel_modules##*/}"
|
||||
server_kernel_modules_name="${modules_file_name//%2B/+}"
|
||||
wget -c "${server_kernel_modules}" -O "${KERNEL_DOWNLOAD_PATH}/${server_kernel_modules_name}" >/dev/null 2>&1 && sync
|
||||
wget "${server_kernel_modules}" -O "${KERNEL_DOWNLOAD_PATH}/${server_kernel_modules_name}" >/dev/null 2>&1 && sync
|
||||
if [[ "$?" -eq "0" && -s "${KERNEL_DOWNLOAD_PATH}/${server_kernel_modules_name}" ]]; then
|
||||
tolog "03.07 The modules file complete."
|
||||
tolog "03.07 The modules file download complete."
|
||||
else
|
||||
tolog "03.08 The modules file failed to download." "1"
|
||||
tolog "03.08 The modules file download failed." "1"
|
||||
fi
|
||||
sleep 2
|
||||
|
||||
@ -258,11 +258,11 @@ download_kernel() {
|
||||
fi
|
||||
if [[ -n "${server_kernel_sha256sums}" ]]; then
|
||||
server_kernel_sha256sums_name="sha256sums"
|
||||
wget -c "${server_kernel_sha256sums}" -O "${KERNEL_DOWNLOAD_PATH}/${server_kernel_sha256sums_name}" >/dev/null 2>&1 && sync
|
||||
wget "${server_kernel_sha256sums}" -O "${KERNEL_DOWNLOAD_PATH}/${server_kernel_sha256sums_name}" >/dev/null 2>&1 && sync
|
||||
if [[ "$?" -eq "0" && -s "${KERNEL_DOWNLOAD_PATH}/${server_kernel_sha256sums_name}" ]]; then
|
||||
tolog "03.09 The sha256sums file complete."
|
||||
tolog "03.09 The sha256sums file download complete."
|
||||
else
|
||||
tolog "03.10 The sha256sums file failed to download." "1"
|
||||
tolog "03.10 The sha256sums file download failed." "1"
|
||||
fi
|
||||
sleep 2
|
||||
fi
|
||||
|
||||
@ -19,7 +19,8 @@ START_LOG="${TMP_CHECK_DIR}/amlogic_check_plugin.log"
|
||||
RUNNING_LOG="${TMP_CHECK_DIR}/amlogic_running_script.log"
|
||||
LOG_FILE="${TMP_CHECK_DIR}/amlogic.log"
|
||||
github_api_plugin="${TMP_CHECK_DIR}/github_api_plugin"
|
||||
LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
|
||||
MYDEVICE_NAME="$(cat /proc/device-tree/model | tr -d '\000')"
|
||||
LOGTIME="$(date "+%Y-%m-%d %H:%M:%S")"
|
||||
[[ -d ${TMP_CHECK_DIR} ]] || mkdir -p ${TMP_CHECK_DIR}
|
||||
rm -f ${TMP_CHECK_DIR}/*.ipk 2>/dev/null && sync
|
||||
|
||||
@ -38,7 +39,7 @@ tolog() {
|
||||
# Check running scripts, prohibit running concurrently
|
||||
this_running_log="1@Plugin update in progress, try again later!"
|
||||
running_script="$(cat ${RUNNING_LOG} 2>/dev/null | xargs)"
|
||||
if [ -n "${running_script}" ]; then
|
||||
if [[ -n "${running_script}" ]]; then
|
||||
run_num=$(echo "${running_script}" | awk -F "@" '{print $1}')
|
||||
run_log=$(echo "${running_script}" | awk -F "@" '{print $2}')
|
||||
fi
|
||||
@ -49,20 +50,20 @@ else
|
||||
fi
|
||||
|
||||
# Find the partition where root is located
|
||||
ROOT_PTNAME=$(df / | tail -n1 | awk '{print $1}' | awk -F '/' '{print $3}')
|
||||
if [ "${ROOT_PTNAME}" == "" ]; then
|
||||
ROOT_PTNAME="$(df / | tail -n1 | awk '{print $1}' | awk -F '/' '{print $3}')"
|
||||
if [[ -z "${ROOT_PTNAME}" ]]; then
|
||||
tolog "Cannot find the partition corresponding to the root file system!" "1"
|
||||
fi
|
||||
|
||||
# Find the disk where the partition is located, only supports mmcblk?p? sd?? hd?? vd?? and other formats
|
||||
case ${ROOT_PTNAME} in
|
||||
case "${ROOT_PTNAME}" in
|
||||
mmcblk?p[1-4])
|
||||
EMMC_NAME=$(echo ${ROOT_PTNAME} | awk '{print substr($1, 1, length($1)-2)}')
|
||||
EMMC_NAME="$(echo ${ROOT_PTNAME} | awk '{print substr($1, 1, length($1)-2)}')"
|
||||
PARTITION_NAME="p"
|
||||
LB_PRE="EMMC_"
|
||||
;;
|
||||
[hsv]d[a-z][1-4])
|
||||
EMMC_NAME=$(echo ${ROOT_PTNAME} | awk '{print substr($1, 1, length($1)-1)}')
|
||||
EMMC_NAME="$(echo ${ROOT_PTNAME} | awk '{print substr($1, 1, length($1)-1)}')"
|
||||
PARTITION_NAME=""
|
||||
LB_PRE=""
|
||||
;;
|
||||
@ -71,30 +72,16 @@ mmcblk?p[1-4])
|
||||
;;
|
||||
esac
|
||||
|
||||
# Current device model
|
||||
MYDEVICE_NAME=$(cat /proc/device-tree/model | tr -d '\000')
|
||||
if [[ -z "${MYDEVICE_NAME}" ]]; then
|
||||
tolog "Unknown device" "1"
|
||||
#elif [ "${MYDEVICE_NAME}" == "Phicomm N1" ]; then
|
||||
# tolog "Test current device: ${MYDEVICE_NAME}" "1"
|
||||
elif [[ "$(echo ${MYDEVICE_NAME} | grep "Chainedbox L1 Pro")" != "" ]]; then
|
||||
MYDTB_FILE="rockchip"
|
||||
SOC="l1pro"
|
||||
elif [[ "$(echo ${MYDEVICE_NAME} | grep "BeikeYun")" != "" ]]; then
|
||||
MYDTB_FILE="rockchip"
|
||||
SOC="beikeyun"
|
||||
elif [[ "$(echo ${MYDEVICE_NAME} | grep "V-Plus Cloud")" != "" ]]; then
|
||||
MYDTB_FILE="allwinner"
|
||||
SOC="vplus"
|
||||
elif [[ -f "${AMLOGIC_SOC_FILE}" ]]; then
|
||||
MYDTB_FILE="amlogic"
|
||||
source ${AMLOGIC_SOC_FILE} 2>/dev/null
|
||||
# Check release file
|
||||
if [[ -s "${AMLOGIC_SOC_FILE}" ]]; then
|
||||
source "${AMLOGIC_SOC_FILE}" 2>/dev/null
|
||||
PLATFORM="${PLATFORM}"
|
||||
SOC="${SOC}"
|
||||
else
|
||||
tolog "Unknown device: [ ${MYDEVICE_NAME} ], Not supported." "1"
|
||||
tolog "${AMLOGIC_SOC_FILE} file is missing!" "1"
|
||||
fi
|
||||
[[ ! -z "${SOC}" ]] || tolog "The custom firmware soc is invalid." "1"
|
||||
tolog "Device: ${MYDEVICE_NAME} [ ${SOC} ], Use in [ ${EMMC_NAME} ]"
|
||||
[[ -n "${PLATFORM}" && -n "${SOC}" ]] || tolog "The custom firmware soc is invalid." "1"
|
||||
tolog "Device: ${MYDEVICE_NAME} [ ${PLATFORM} ], Use in [ ${EMMC_NAME} ]"
|
||||
sleep 2
|
||||
|
||||
# 01. Query local version information
|
||||
@ -109,8 +96,8 @@ tolog "02. Query server version information."
|
||||
curl -s "https://api.github.com/repos/ophub/luci-app-amlogic/releases" >${github_api_plugin} && sync
|
||||
sleep 1
|
||||
|
||||
server_plugin_version=$(cat ${github_api_plugin} | grep "tag_name" | awk -F '"' '{print $4}' | tr " " "\n" | sort -rV | head -n 1)
|
||||
[ -n "${server_plugin_version}" ] || tolog "02.01 Failed to get the version on the server." "1"
|
||||
server_plugin_version="$(cat ${github_api_plugin} | grep "tag_name" | awk -F '"' '{print $4}' | tr " " "\n" | sort -rV | head -n 1)"
|
||||
[[ -n "${server_plugin_version}" ]] || tolog "02.01 Failed to get the version on the server." "1"
|
||||
tolog "02.01 current version: ${current_plugin_v}, Latest version: ${server_plugin_version}"
|
||||
sleep 2
|
||||
|
||||
@ -130,7 +117,7 @@ else
|
||||
fi
|
||||
|
||||
# Download plugin ipk file
|
||||
wget -c "${server_plugin_url}/${server_plugin_version}/${server_plugin_file_ipk}" -O "${TMP_CHECK_DIR}/${server_plugin_file_ipk}" >/dev/null 2>&1 && sync
|
||||
wget "${server_plugin_url}/${server_plugin_version}/${server_plugin_file_ipk}" -O "${TMP_CHECK_DIR}/${server_plugin_file_ipk}" >/dev/null 2>&1 && sync
|
||||
if [[ "$?" -eq "0" && -s "${TMP_CHECK_DIR}/${server_plugin_file_ipk}" ]]; then
|
||||
tolog "02.05 ${server_plugin_file_ipk} complete."
|
||||
else
|
||||
@ -139,7 +126,7 @@ else
|
||||
sleep 2
|
||||
|
||||
# Download plugin i18n file
|
||||
wget -c "${server_plugin_url}/${server_plugin_version}/${server_plugin_file_i18n}" -O "${TMP_CHECK_DIR}/${server_plugin_file_i18n}" >/dev/null 2>&1 && sync
|
||||
wget "${server_plugin_url}/${server_plugin_version}/${server_plugin_file_i18n}" -O "${TMP_CHECK_DIR}/${server_plugin_file_i18n}" >/dev/null 2>&1 && sync
|
||||
if [[ "$?" -eq "0" && -s "${TMP_CHECK_DIR}/${server_plugin_file_i18n}" ]]; then
|
||||
tolog "02.06 ${server_plugin_file_i18n} complete."
|
||||
else
|
||||
|
||||
@ -478,9 +478,9 @@ o = s:taboption("meta", Value, "geoip_custom_url")
|
||||
o.title = translate("Custom GeoIP Dat URL")
|
||||
o.rmempty = true
|
||||
o.description = translate("Custom GeoIP Dat URL, Click Button Below To Refresh After Edit")
|
||||
o:value("https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geoip.dat", translate("Loyalsoldier-Version")..translate("(Default)"))
|
||||
o:value("https://fastly.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geoip.dat", translate("Loyalsoldier-Version")..translate("(Default)"))
|
||||
o:value("https://mirrors.tuna.tsinghua.edu.cn/osdn/storage/g/v/v2/v2raya/dists/v2ray-rules-dat/geoip.dat", translate("Tuna-Version")..translate("(Default)"))
|
||||
o.default = "https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geoip.dat"
|
||||
o.default = "https://fastly.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geoip.dat"
|
||||
o:depends("geoip_auto_update", "1")
|
||||
|
||||
o = s:taboption("meta", Button, translate("GEOIP Dat Update"))
|
||||
@ -522,9 +522,9 @@ o = s:taboption("meta", Value, "geosite_custom_url")
|
||||
o.title = translate("Custom GeoSite URL")
|
||||
o.rmempty = true
|
||||
o.description = translate("Custom GeoSite Data URL, Click Button Below To Refresh After Edit")
|
||||
o:value("https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geosite.dat", translate("Loyalsoldier-Version")..translate("(Default)"))
|
||||
o:value("https://fastly.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geosite.dat", translate("Loyalsoldier-Version")..translate("(Default)"))
|
||||
o:value("https://mirrors.tuna.tsinghua.edu.cn/osdn/storage/g/v/v2/v2raya/dists/v2ray-rules-dat/geosite.dat", translate("Tuna-Version")..translate("(Default)"))
|
||||
o.default = "https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geosite.dat"
|
||||
o.default = "https://fastly.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geosite.dat"
|
||||
o:depends("geosite_auto_update", "1")
|
||||
|
||||
o = s:taboption("meta", Button, translate("GEOSITE Update"))
|
||||
@ -1043,9 +1043,9 @@ o = s:taboption("geo_update", Value, "geo_custom_url")
|
||||
o.title = translate("Custom GEOIP URL")
|
||||
o.rmempty = true
|
||||
o.description = translate("Custom GEOIP Data URL, Click Button Below To Refresh After Edit")
|
||||
o:value("https://cdn.jsdelivr.net/gh/alecthw/mmdb_china_ip_list@release/lite/Country.mmdb", translate("Alecthw-lite-Version")..translate("(Default mmdb)"))
|
||||
o:value("https://cdn.jsdelivr.net/gh/alecthw/mmdb_china_ip_list@release/Country.mmdb", translate("Alecthw-Version")..translate("(All Info mmdb)"))
|
||||
o:value("https://cdn.jsdelivr.net/gh/Hackl0us/GeoIP2-CN@release/Country.mmdb", translate("Hackl0us-Version")..translate("(Only CN)"))
|
||||
o:value("https://fastly.jsdelivr.net/gh/alecthw/mmdb_china_ip_list@release/lite/Country.mmdb", translate("Alecthw-lite-Version")..translate("(Default mmdb)"))
|
||||
o:value("https://fastly.jsdelivr.net/gh/alecthw/mmdb_china_ip_list@release/Country.mmdb", translate("Alecthw-Version")..translate("(All Info mmdb)"))
|
||||
o:value("https://fastly.jsdelivr.net/gh/Hackl0us/GeoIP2-CN@release/Country.mmdb", translate("Hackl0us-Version")..translate("(Only CN)"))
|
||||
o:value("https://geolite.clash.dev/Country.mmdb", translate("Geolite.clash.dev"))
|
||||
o.default = "http://www.ideame.top/mmdb/Country.mmdb"
|
||||
o:depends("enable_geoip_dat", 0)
|
||||
@ -1089,7 +1089,7 @@ o.rmempty = false
|
||||
o.description = translate("Custom Chnroute Lists URL, Click Button Below To Refresh After Edit")
|
||||
o:value("https://ispip.clang.cn/all_cn.txt", translate("Clang-CN")..translate("(Default)"))
|
||||
o:value("https://ispip.clang.cn/all_cn_cidr.txt", translate("Clang-CN-CIDR"))
|
||||
o:value("https://cdn.jsdelivr.net/gh/Hackl0us/GeoIP2-CN@release/CN-ip-cidr.txt", translate("Hackl0us-CN-CIDR")..translate("(Large Size)"))
|
||||
o:value("https://fastly.jsdelivr.net/gh/Hackl0us/GeoIP2-CN@release/CN-ip-cidr.txt", translate("Hackl0us-CN-CIDR")..translate("(Large Size)"))
|
||||
o.default = "https://ispip.clang.cn/all_cn.txt"
|
||||
|
||||
o = s:taboption("chnr_update", Value, "chnr6_custom_url")
|
||||
|
||||
@ -42,7 +42,7 @@ local v_ss_encrypt_method_list = {
|
||||
}
|
||||
|
||||
local x_ss_encrypt_method_list = {
|
||||
"aes-128-gcm", "aes-256-gcm", "chacha20-poly1305", "xchacha20-poly1305"
|
||||
"aes-128-gcm", "aes-256-gcm", "chacha20-poly1305", "xchacha20-poly1305", "2022-blake3-aes-128-gcm", "2022-blake3-aes-256-gcm", "2022-blake3-chacha20-poly1305"
|
||||
}
|
||||
|
||||
local security_list = {"none", "auto", "aes-128-gcm", "chacha20-poly1305", "zero"}
|
||||
|
||||
@ -33,7 +33,7 @@ local v_ss_encrypt_method_list = {
|
||||
}
|
||||
|
||||
local x_ss_encrypt_method_list = {
|
||||
"aes-128-gcm", "aes-256-gcm", "chacha20-poly1305", "xchacha20-poly1305"
|
||||
"aes-128-gcm", "aes-256-gcm", "chacha20-poly1305", "xchacha20-poly1305", "2022-blake3-aes-128-gcm", "2022-blake3-aes-256-gcm", "2022-blake3-chacha20-poly1305"
|
||||
}
|
||||
|
||||
local header_type_list = {
|
||||
|
||||
Reference in New Issue
Block a user