mirror of
https://github.com/RROrg/rr.git
synced 2025-06-21 05:51:05 +08:00
重构配置处理逻辑,优化读取和写入 synoinfo 配置的函数
This commit is contained in:
parent
1c59a654ef
commit
0f332893c1
@ -183,33 +183,35 @@ function validateSerial() {
|
|||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Get values in .conf K=V file
|
# Get values in .conf K=V file
|
||||||
# 1 - key
|
# 1 - file
|
||||||
# 2 - file
|
# 2 - key
|
||||||
function _get_conf_kv() {
|
function _get_conf_kv() {
|
||||||
grep "^${1}=" "${2}" 2>/dev/null | cut -d'=' -f2- | sed 's/^"//;s/"$//' 2>/dev/null
|
grep "^${2}=" "${1}" 2>/dev/null | cut -d'=' -f2- | sed 's/^"//;s/"$//' 2>/dev/null
|
||||||
|
return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Replace/remove/add values in .conf K=V file
|
# Replace/remove/add values in .conf K=V file
|
||||||
# 1 - name
|
# 1 - file
|
||||||
# 2 - new_val
|
# 2 - key
|
||||||
# 3 - path
|
# 3 - value
|
||||||
function _set_conf_kv() {
|
function _set_conf_kv() {
|
||||||
# Delete
|
# Delete
|
||||||
if [ -z "${2}" ]; then
|
if [ -z "${3}" ]; then
|
||||||
sed -i "/^${1}=/d" "${3}" 2>/dev/null
|
sed -i "/^${2}=/d" "${1}" 2>/dev/null
|
||||||
return $?
|
return $?
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Replace
|
# Replace
|
||||||
if grep -q "^${1}=" "${3}"; then
|
if grep -q "^${2}=" "${1}" 2>/dev/null; then
|
||||||
sed -i "s#^${1}=.*#${1}=\"${2}\"#" "${3}" 2>/dev/null
|
sed -i "s#^${2}=.*#${2}=\"${3}\"#" "${1}" 2>/dev/null
|
||||||
return $?
|
return $?
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Add if doesn't exist
|
# Add if doesn't exist
|
||||||
echo "${1}=\"${2}\"" >>"${3}"
|
mkdir -p "$(dirname "${1}" 2>/dev/null)" 2>/dev/null
|
||||||
return 0
|
echo "${2}=\"${3}\"" >>"${1}" 2>/dev/null
|
||||||
|
return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
@ -428,12 +428,12 @@ function setConfigFromDSM() {
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PLATFORMTMP="$(_get_conf_kv "PLATFORM" "${DSM_ROOT}/GRUB_VER")"
|
PLATFORMTMP="$(_get_conf_kv "${DSM_ROOT}/GRUB_VER" "PLATFORM")"
|
||||||
MODELTMP="$(_get_conf_kv "MODEL" "${DSM_ROOT}/GRUB_VER")"
|
MODELTMP="$(_get_conf_kv "${DSM_ROOT}/GRUB_VER" "MODEL")"
|
||||||
majorversion="$(_get_conf_kv "majorversion" "${DSM_ROOT}/VERSION")"
|
majorversion="$(_get_conf_kv "${DSM_ROOT}/VERSION" "majorversion")"
|
||||||
minorversion="$(_get_conf_kv "minorversion" "${DSM_ROOT}/VERSION")"
|
minorversion="$(_get_conf_kv "${DSM_ROOT}/VERSION" "minorversion")"
|
||||||
buildnumber="$(_get_conf_kv "buildnumber" "${DSM_ROOT}/VERSION")"
|
buildnumber="$(_get_conf_kv "${DSM_ROOT}/VERSION" "buildnumber")"
|
||||||
smallfixnumber="$(_get_conf_kv "smallfixnumber" "${DSM_ROOT}/VERSION")"
|
smallfixnumber="$(_get_conf_kv "${DSM_ROOT}/VERSION" "smallfixnumber")"
|
||||||
if [ -z "${PLATFORMTMP}" ] || [ -z "${MODELTMP}" ] || [ -z "${majorversion}" ] || [ -z "${minorversion}" ]; then
|
if [ -z "${PLATFORMTMP}" ] || [ -z "${MODELTMP}" ] || [ -z "${majorversion}" ] || [ -z "${minorversion}" ]; then
|
||||||
echo -e "$(TEXT "DSM Invalid, try again!")" >"${LOG_FILE}"
|
echo -e "$(TEXT "DSM Invalid, try again!")" >"${LOG_FILE}"
|
||||||
return 1
|
return 1
|
||||||
@ -2315,7 +2315,7 @@ function tryRecoveryDSM() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f "${TMP_PATH}/mdX/etc.defaults/synoinfo.conf" ]; then
|
if [ -f "${TMP_PATH}/mdX/etc.defaults/synoinfo.conf" ]; then
|
||||||
R_SN="$(_get_conf_kv SN "${TMP_PATH}/mdX/etc.defaults/synoinfo.conf")"
|
R_SN="$(_get_conf_kv "${TMP_PATH}/mdX/etc.defaults/synoinfo.conf" "SN")"
|
||||||
[ -n "${R_SN}" ] && SN=${R_SN} && writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
|
[ -n "${R_SN}" ] && SN=${R_SN} && writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -1,39 +0,0 @@
|
|||||||
#!/usr/bin/env sh
|
|
||||||
|
|
||||||
#
|
|
||||||
# WARNING: this file is also embedded in the post-init patcher, so don't go to crazy with the syntax/tools as it must
|
|
||||||
# be able to execute in the initramfs/preboot environment (so no bashism etc)
|
|
||||||
# All comments will be stripped, functions here should NOT start with brp_ as they're not part of the builder
|
|
||||||
|
|
||||||
if [ -z "${SED_PATH+x}" ]; then
|
|
||||||
echo "Your SED_PATH variable is not set/is empty!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
##$1 from, $2 to, $3 file to path
|
|
||||||
_replace_in_file() {
|
|
||||||
if grep -q "${1}" "${3}"; then
|
|
||||||
"${SED_PATH}" -i "s#${1}#${2}#" "${3}" 2>/dev/null
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Replace/remove/add values in .conf K=V file
|
|
||||||
#
|
|
||||||
# Args: $1 name, $2 new_val, $3 path
|
|
||||||
_set_conf_kv() {
|
|
||||||
# Delete
|
|
||||||
if [ -z "${2}" ]; then
|
|
||||||
"${SED_PATH}" -i "/^${1}=/d" "${3}" 2>/dev/null
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Replace
|
|
||||||
if grep -q "^${1}=" "${3}"; then
|
|
||||||
"${SED_PATH}" -i "s#^${1}=.*#${1}=\"${2}\"#" "${3}" 2>/dev/null
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add if doesn't exist
|
|
||||||
echo "${1}=\"${2}\"" >>"${3}"
|
|
||||||
return 0
|
|
||||||
}
|
|
@ -1,11 +0,0 @@
|
|||||||
--- a/usr/syno/web/webman/get_state.cgi
|
|
||||||
+++ b/usr/syno/web/webman/get_state.cgi
|
|
||||||
@@ -1,7 +1,7 @@
|
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
PATH="$PATH:/bin:/sbin:/usr/bin:/usr/sbin"
|
|
||||||
-DisabledPortDisks=`/usr/syno/bin/synodiskport -portthawlist`
|
|
||||||
+DisabledPortDisks=""
|
|
||||||
partition=`/usr/syno/bin/synodiskport -installable_disk_list`
|
|
||||||
|
|
||||||
product=`/bin/get_key_value /etc.defaults/synoinfo.conf product`
|
|
@ -1,11 +0,0 @@
|
|||||||
--- a/usr/syno/web/webman/get_state.cgi
|
|
||||||
+++ b/usr/syno/web/webman/get_state.cgi
|
|
||||||
@@ -1,7 +1,7 @@
|
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
PATH="$PATH:/bin:/sbin:/usr/bin:/usr/sbin"
|
|
||||||
-DisabledPortDisks="$(/usr/syno/bin/synodiskport -portthawlist)"
|
|
||||||
+DisabledPortDisks=""
|
|
||||||
partition="$(/usr/syno/bin/synodiskport -installable_disk_list)"
|
|
||||||
|
|
||||||
upnpmodelname="$(/bin/get_key_value /etc.defaults/synoinfo.conf upnpmodelname)"
|
|
@ -1,8 +0,0 @@
|
|||||||
--- a/etc/passwd
|
|
||||||
+++ b/etc/passwd
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-root:x:0:0::/root:/bin/ash
|
|
||||||
+root::0:0::/root:/bin/ash
|
|
||||||
system:x:1:1::/usr/syno/synoman:/usr/bin/nologin
|
|
||||||
daemon:x:2:2::/:/bin/sh
|
|
||||||
lp:x:7:7::/var/spool/lpd:/bin/sh
|
|
@ -1,8 +0,0 @@
|
|||||||
--- a/etc/passwd
|
|
||||||
+++ b/etc/passwd
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-root:x:0:0::/root:/bin/ash
|
|
||||||
+root::0:0::/root:/bin/ash
|
|
||||||
system:x:1:1::/usr/syno/synoman:/usr/bin/nologin
|
|
||||||
daemon:x:2:2::/:/bin/sh
|
|
||||||
SYSTEM_ADMIN:x:3:101::/nonexist:/usr/bin/nologin
|
|
@ -1,8 +0,0 @@
|
|||||||
--- /etc/hosts
|
|
||||||
+++ /etc/hosts
|
|
||||||
@@ -2,3 +2,5 @@
|
|
||||||
# that require network functionality will fail.
|
|
||||||
127.0.0.1 localhost
|
|
||||||
::1 localhost
|
|
||||||
+127.0.0.1 update7.synology.com
|
|
||||||
+127.0.0.1 dataupdate7.synology.com
|
|
@ -1,32 +0,0 @@
|
|||||||
--- a/usr/sbin/init.post
|
|
||||||
+++ b/usr/sbin/init.post
|
|
||||||
@@ -18,6 +18,29 @@ if [ "$UniqueRD" = "nextkvmx64" ]; then
|
|
||||||
fi
|
|
||||||
Mount "$RootDevice" /tmpRoot -o barrier=1
|
|
||||||
|
|
||||||
+############################################################################################
|
|
||||||
+SED_PATH='/tmpRoot/usr/bin/sed'
|
|
||||||
+
|
|
||||||
+@@@CONFIG-MANIPULATORS-TOOLS@@@
|
|
||||||
+
|
|
||||||
+@@@CONFIG-GENERATED@@@
|
|
||||||
+
|
|
||||||
+UPSTART="/tmpRoot/usr/share/init"
|
|
||||||
+
|
|
||||||
+if ! echo; then
|
|
||||||
+ _replace_in_file '^start on' '#start on' $UPSTART/tty.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/syno_poweroff_task.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/burnin_loader.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/udevtrigger.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/bs-poweroff.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/udevd.conf
|
|
||||||
+else
|
|
||||||
+ _replace_in_file '^#start on' 'start on' $UPSTART/tty.conf
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
+/addons/addons.sh late
|
|
||||||
+############################################################################################
|
|
||||||
+
|
|
||||||
Mkdir -p /tmpRoot/initrd
|
|
||||||
|
|
||||||
Umount /proc >/dev/null 2>&1
|
|
@ -1,31 +1,10 @@
|
|||||||
--- a/usr/sbin/init.post
|
--- a/usr/sbin/init.post
|
||||||
+++ b/usr/sbin/init.post
|
+++ b/usr/sbin/init.post
|
||||||
@@ -18,6 +18,29 @@
|
@@ -18,6 +18,8 @@
|
||||||
fi
|
fi
|
||||||
mount $RootDevice /tmpRoot -o barrier=1
|
mount $RootDevice /tmpRoot -o barrier=1
|
||||||
|
|
||||||
+############################################################################################
|
|
||||||
+SED_PATH='/tmpRoot/usr/bin/sed'
|
|
||||||
+
|
|
||||||
+@@@CONFIG-MANIPULATORS-TOOLS@@@
|
|
||||||
+
|
|
||||||
+@@@CONFIG-GENERATED@@@
|
|
||||||
+
|
|
||||||
+UPSTART="/tmpRoot/usr/share/init"
|
|
||||||
+
|
|
||||||
+if ! echo; then
|
|
||||||
+ _replace_in_file '^start on' '#start on' $UPSTART/tty.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/syno_poweroff_task.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/burnin_loader.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/udevtrigger.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/bs-poweroff.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/udevd.conf
|
|
||||||
+else
|
|
||||||
+ _replace_in_file '^#start on' 'start on' $UPSTART/tty.conf
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
+/addons/addons.sh late
|
+/addons/addons.sh late
|
||||||
+############################################################################################
|
|
||||||
+
|
+
|
||||||
mkdir -p /tmpRoot/initrd
|
mkdir -p /tmpRoot/initrd
|
||||||
|
|
||||||
|
@ -0,0 +1,11 @@
|
|||||||
|
--- a/usr/sbin/init.post
|
||||||
|
+++ b/usr/sbin/init.post
|
||||||
|
@@ -18,6 +18,8 @@
|
||||||
|
fi
|
||||||
|
Mount "$RootDevice" /tmpRoot -o barrier=1
|
||||||
|
|
||||||
|
+/addons/addons.sh late
|
||||||
|
+
|
||||||
|
Mkdir -p /tmpRoot/initrd
|
||||||
|
|
||||||
|
Umount /proc >/dev/null 2>&1
|
@ -1,31 +1,11 @@
|
|||||||
--- a/usr/sbin/init.post
|
--- a/usr/sbin/init.post
|
||||||
+++ b/usr/sbin/init.post
|
+++ b/usr/sbin/init.post
|
||||||
@@ -31,7 +31,28 @@
|
@@ -32,6 +32,8 @@
|
||||||
OptPrjQuota="$(GetPQMountOpt "${RootMountPath}")"
|
|
||||||
# shellcheck disable=SC2046
|
# shellcheck disable=SC2046
|
||||||
Mount "${RootMountPath}" /tmpRoot -o barrier=1 ${OptPrjQuota}
|
Mount "${RootMountPath}" /tmpRoot -o barrier=1 ${OptPrjQuota}
|
||||||
+############################################################################################
|
|
||||||
+SED_PATH='/tmpRoot/usr/bin/sed'
|
|
||||||
|
|
||||||
+@@@CONFIG-MANIPULATORS-TOOLS@@@
|
|
||||||
+
|
|
||||||
+@@@CONFIG-GENERATED@@@
|
|
||||||
+
|
|
||||||
+UPSTART="/tmpRoot/usr/share/init"
|
|
||||||
+
|
|
||||||
+if ! echo; then
|
|
||||||
+ _replace_in_file '^start on' '#start on' $UPSTART/tty.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/syno_poweroff_task.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/burnin_loader.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/udevtrigger.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/bs-poweroff.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/udevd.conf
|
|
||||||
+else
|
|
||||||
+ _replace_in_file '^#start on' 'start on' $UPSTART/tty.conf
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
+/addons/addons.sh late
|
+/addons/addons.sh late
|
||||||
+############################################################################################
|
+
|
||||||
Mkdir -p /tmpRoot/initrd
|
Mkdir -p /tmpRoot/initrd
|
||||||
|
|
||||||
Umount /proc >/dev/null 2>&1
|
Umount /proc >/dev/null 2>&1
|
||||||
|
@ -1,31 +1,11 @@
|
|||||||
--- a/usr/sbin/init.post
|
--- a/usr/sbin/init.post
|
||||||
+++ b/usr/sbin/init.post
|
+++ b/usr/sbin/init.post
|
||||||
@@ -31,7 +31,28 @@
|
@@ -32,6 +32,8 @@
|
||||||
OptPrjQuota="$(GetPQMountOpt "${RootMountPath}")"
|
|
||||||
# shellcheck disable=SC2046
|
# shellcheck disable=SC2046
|
||||||
Mount "${RootMountPath}" /tmpRoot -o barrier=1,noatime ${OptPrjQuota}
|
Mount "${RootMountPath}" /tmpRoot -o barrier=1,noatime ${OptPrjQuota}
|
||||||
+############################################################################################
|
|
||||||
+SED_PATH='/tmpRoot/usr/bin/sed'
|
|
||||||
|
|
||||||
+@@@CONFIG-MANIPULATORS-TOOLS@@@
|
|
||||||
+
|
|
||||||
+@@@CONFIG-GENERATED@@@
|
|
||||||
+
|
|
||||||
+UPSTART="/tmpRoot/usr/share/init"
|
|
||||||
+
|
|
||||||
+if ! echo; then
|
|
||||||
+ _replace_in_file '^start on' '#start on' $UPSTART/tty.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/syno_poweroff_task.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/burnin_loader.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/udevtrigger.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/bs-poweroff.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/udevd.conf
|
|
||||||
+else
|
|
||||||
+ _replace_in_file '^#start on' 'start on' $UPSTART/tty.conf
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
+/addons/addons.sh late
|
+/addons/addons.sh late
|
||||||
+############################################################################################
|
+
|
||||||
Mkdir -p /tmpRoot/initrd
|
Mkdir -p /tmpRoot/initrd
|
||||||
|
|
||||||
Umount /proc >/dev/null 2>&1
|
Umount /proc >/dev/null 2>&1
|
||||||
|
@ -1,31 +1,11 @@
|
|||||||
--- a/usr/sbin/init.post
|
--- a/usr/sbin/init.post
|
||||||
+++ b/usr/sbin/init.post
|
+++ b/usr/sbin/init.post
|
||||||
@@ -31,7 +31,28 @@
|
@@ -23,6 +23,8 @@
|
||||||
fi
|
|
||||||
|
|
||||||
Mount "$(GetRootMountOpt)" "$(GetRootMountPath)" /tmpRoot
|
Mount "$(GetRootMountOpt)" "$(GetRootMountPath)" /tmpRoot
|
||||||
+############################################################################################
|
|
||||||
+SED_PATH='/tmpRoot/usr/bin/sed'
|
|
||||||
|
|
||||||
+@@@CONFIG-MANIPULATORS-TOOLS@@@
|
|
||||||
+
|
|
||||||
+@@@CONFIG-GENERATED@@@
|
|
||||||
+
|
|
||||||
+UPSTART="/tmpRoot/usr/share/init"
|
|
||||||
+
|
|
||||||
+if ! echo; then
|
|
||||||
+ _replace_in_file '^start on' '#start on' $UPSTART/tty.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/syno_poweroff_task.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/burnin_loader.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/udevtrigger.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/bs-poweroff.conf
|
|
||||||
+ _replace_in_file "console output" "console none" $UPSTART/udevd.conf
|
|
||||||
+else
|
|
||||||
+ _replace_in_file '^#start on' 'start on' $UPSTART/tty.conf
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
+/addons/addons.sh late
|
+/addons/addons.sh late
|
||||||
+############################################################################################
|
+
|
||||||
Mkdir -p /tmpRoot/initrd
|
Mkdir -p /tmpRoot/initrd
|
||||||
|
|
||||||
Umount /proc >/dev/null 2>&1
|
Umount /proc >/dev/null 2>&1
|
||||||
|
@ -81,14 +81,11 @@ writeConfigKey "productver" "${PRODUCTVER}" "${USER_CONFIG_FILE}"
|
|||||||
writeConfigKey "buildnum" "${BUILDNUM}" "${USER_CONFIG_FILE}"
|
writeConfigKey "buildnum" "${BUILDNUM}" "${USER_CONFIG_FILE}"
|
||||||
writeConfigKey "smallnum" "${SMALLNUM}" "${USER_CONFIG_FILE}"
|
writeConfigKey "smallnum" "${SMALLNUM}" "${USER_CONFIG_FILE}"
|
||||||
|
|
||||||
declare -A SYNOINFO
|
|
||||||
declare -A ADDONS
|
declare -A ADDONS
|
||||||
declare -A MODULES
|
declare -A MODULES
|
||||||
|
declare -A SYNOINFO
|
||||||
|
|
||||||
# Read synoinfo and addons from config
|
# Read addons, modules and synoinfo from user config
|
||||||
while IFS=': ' read -r KEY VALUE; do
|
|
||||||
[ -n "${KEY}" ] && SYNOINFO["${KEY}"]="${VALUE}"
|
|
||||||
done <<<"$(readConfigMap "synoinfo" "${USER_CONFIG_FILE}")"
|
|
||||||
while IFS=': ' read -r KEY VALUE; do
|
while IFS=': ' read -r KEY VALUE; do
|
||||||
[ -n "${KEY}" ] && ADDONS["${KEY}"]="${VALUE}"
|
[ -n "${KEY}" ] && ADDONS["${KEY}"]="${VALUE}"
|
||||||
done <<<"$(readConfigMap "addons" "${USER_CONFIG_FILE}")"
|
done <<<"$(readConfigMap "addons" "${USER_CONFIG_FILE}")"
|
||||||
@ -98,13 +95,16 @@ while IFS=': ' read -r KEY VALUE; do
|
|||||||
[ -n "${KEY}" ] && MODULES["${KEY}"]="${VALUE}"
|
[ -n "${KEY}" ] && MODULES["${KEY}"]="${VALUE}"
|
||||||
done <<<"$(readConfigMap "modules" "${USER_CONFIG_FILE}")"
|
done <<<"$(readConfigMap "modules" "${USER_CONFIG_FILE}")"
|
||||||
|
|
||||||
|
SYNOINFO["SN"]="${SN}"
|
||||||
|
while IFS=': ' read -r KEY VALUE; do
|
||||||
|
[ -n "${KEY}" ] && SYNOINFO["${KEY}"]="${VALUE}"
|
||||||
|
done <<<"$(readConfigMap "synoinfo" "${USER_CONFIG_FILE}")"
|
||||||
|
|
||||||
# Patches (diff -Naru OLDFILE NEWFILE > xxx.patch)
|
# Patches (diff -Naru OLDFILE NEWFILE > xxx.patch)
|
||||||
PATCHS=(
|
PATCHS=(
|
||||||
"ramdisk-etc-rc-*.patch"
|
"ramdisk-etc-rc-*.patch"
|
||||||
"ramdisk-init-script-*.patch"
|
"ramdisk-init-script-*.patch"
|
||||||
"ramdisk-post-init-script-*.patch"
|
"ramdisk-post-init-script-*.patch"
|
||||||
"ramdisk-disable-root-pwd-*.patch"
|
|
||||||
"ramdisk-disable-disabled-ports-*.patch"
|
|
||||||
)
|
)
|
||||||
for PE in "${PATCHS[@]}"; do
|
for PE in "${PATCHS[@]}"; do
|
||||||
RET=1
|
RET=1
|
||||||
@ -121,50 +121,11 @@ for PE in "${PATCHS[@]}"; do
|
|||||||
[ ${RET} -ne 0 ] && exit 1
|
[ ${RET} -ne 0 ] && exit 1
|
||||||
done
|
done
|
||||||
|
|
||||||
# Patch /etc/synoinfo.conf /etc.defaults/synoinfo.conf
|
mkdir -p "${RAMDISK_PATH}/addons"
|
||||||
echo -n "."
|
|
||||||
# Add serial number to synoinfo.conf, to help to recovery a installed DSM
|
|
||||||
echo "Set synoinfo SN" >"${LOG_FILE}"
|
|
||||||
_set_conf_kv "SN" "${SN}" "${RAMDISK_PATH}/etc/synoinfo.conf" >>"${LOG_FILE}" 2>&1 || exit 1
|
|
||||||
_set_conf_kv "SN" "${SN}" "${RAMDISK_PATH}/etc.defaults/synoinfo.conf" >>"${LOG_FILE}" 2>&1 || exit 1
|
|
||||||
for KEY in "${!SYNOINFO[@]}"; do
|
|
||||||
echo "Set synoinfo ${KEY}" >>"${LOG_FILE}"
|
|
||||||
_set_conf_kv "${KEY}" "${SYNOINFO[${KEY}]}" "${RAMDISK_PATH}/etc/synoinfo.conf" >>"${LOG_FILE}" 2>&1 || exit 1
|
|
||||||
_set_conf_kv "${KEY}" "${SYNOINFO[${KEY}]}" "${RAMDISK_PATH}/etc.defaults/synoinfo.conf" >>"${LOG_FILE}" 2>&1 || exit 1
|
|
||||||
done
|
|
||||||
|
|
||||||
# Patch /sbin/init.post
|
|
||||||
# Apply config manipulators
|
|
||||||
grep -v -e '^[\t ]*#' -e '^$' "${WORK_PATH}/patch/config-manipulators.sh" >"${TMP_PATH}/rp.txt"
|
|
||||||
sed -e "/@@@CONFIG-MANIPULATORS-TOOLS@@@/ {" -e "r ${TMP_PATH}/rp.txt" -e 'd' -e '}' -i "${RAMDISK_PATH}/sbin/init.post"
|
|
||||||
rm -f "${TMP_PATH}/rp.txt"
|
|
||||||
|
|
||||||
# Generate synoinfo configurations
|
|
||||||
{
|
|
||||||
echo "_set_conf_kv 'SN' '${SN}' '/tmpRoot/etc/synoinfo.conf'"
|
|
||||||
echo "_set_conf_kv 'SN' '${SN}' '/tmpRoot/etc.defaults/synoinfo.conf'"
|
|
||||||
for KEY in "${!SYNOINFO[@]}"; do
|
|
||||||
echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc/synoinfo.conf'"
|
|
||||||
echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc.defaults/synoinfo.conf'"
|
|
||||||
done
|
|
||||||
} >"${TMP_PATH}/rp.txt"
|
|
||||||
|
|
||||||
sed -e "/@@@CONFIG-GENERATED@@@/ {" -e "r ${TMP_PATH}/rp.txt" -e 'd' -e '}' -i "${RAMDISK_PATH}/sbin/init.post"
|
|
||||||
rm -f "${TMP_PATH}/rp.txt"
|
|
||||||
|
|
||||||
# Extract ck modules to ramdisk
|
|
||||||
echo -n "."
|
|
||||||
installModules "${PLATFORM}" "${KPRE:+${KPRE}-}${KVER}" "${!MODULES[@]}" || exit 1
|
|
||||||
|
|
||||||
# Copying fake modprobe
|
|
||||||
[ "$(echo "${KVER:-4}" | cut -d'.' -f1)" -lt 5 ] && cp -f "${WORK_PATH}/patch/iosched-trampoline.sh" "${RAMDISK_PATH}/usr/sbin/modprobe"
|
|
||||||
# Copying LKM to /usr/lib/modules
|
|
||||||
gzip -dc "${LKMS_PATH}/rp-${PLATFORM}-${KPRE:+${KPRE}-}${KVER}-${LKM}.ko.gz" >"${RAMDISK_PATH}/usr/lib/modules/rp.ko" 2>"${LOG_FILE}" || exit 1
|
|
||||||
|
|
||||||
# Addons
|
# Addons
|
||||||
echo -n "."
|
echo -n "."
|
||||||
echo "Create addons.sh" >"${LOG_FILE}"
|
echo "Create addons.sh" >"${LOG_FILE}"
|
||||||
mkdir -p "${RAMDISK_PATH}/addons"
|
|
||||||
{
|
{
|
||||||
echo "#!/bin/sh"
|
echo "#!/bin/sh"
|
||||||
echo 'echo "addons.sh called with params ${@}"'
|
echo 'echo "addons.sh called with params ${@}"'
|
||||||
@ -200,8 +161,32 @@ for ADDON in "${!ADDONS[@]}"; do
|
|||||||
echo "/addons/${ADDON}.sh \${1} ${PARAMS}" >>"${RAMDISK_PATH}/addons/addons.sh" 2>>"${LOG_FILE}" || exit 1
|
echo "/addons/${ADDON}.sh \${1} ${PARAMS}" >>"${RAMDISK_PATH}/addons/addons.sh" 2>>"${LOG_FILE}" || exit 1
|
||||||
done
|
done
|
||||||
|
|
||||||
# Enable Telnet
|
# Extract ck modules to ramdisk
|
||||||
echo "inetd" >>"${RAMDISK_PATH}/addons/addons.sh"
|
echo -n "."
|
||||||
|
installModules "${PLATFORM}" "${KPRE:+${KPRE}-}${KVER}" "${!MODULES[@]}" || exit 1
|
||||||
|
|
||||||
|
# Copying fake modprobe
|
||||||
|
[ "$(echo "${KVER:-4}" | cut -d'.' -f1)" -lt 5 ] && cp -f "${WORK_PATH}/patch/iosched-trampoline.sh" "${RAMDISK_PATH}/usr/sbin/modprobe"
|
||||||
|
# Copying LKM to /usr/lib/modules
|
||||||
|
gzip -dc "${LKMS_PATH}/rp-${PLATFORM}-${KPRE:+${KPRE}-}${KVER}-${LKM}.ko.gz" >"${RAMDISK_PATH}/usr/lib/modules/rp.ko" 2>"${LOG_FILE}" || exit 1
|
||||||
|
|
||||||
|
# Patch synoinfo.conf
|
||||||
|
echo -n "."
|
||||||
|
echo -n "" >"${RAMDISK_PATH}/addons/synoinfo.conf"
|
||||||
|
for KEY in "${!SYNOINFO[@]}"; do
|
||||||
|
echo "Set synoinfo ${KEY}" >>"${LOG_FILE}"
|
||||||
|
echo "${KEY}=\"${SYNOINFO[${KEY}]}\"" >>"${RAMDISK_PATH}/addons/synoinfo.conf"
|
||||||
|
_set_conf_kv "${RAMDISK_PATH}/etc/synoinfo.conf" "${KEY}" "${SYNOINFO[${KEY}]}" || exit 1
|
||||||
|
_set_conf_kv "${RAMDISK_PATH}/etc.defaults/synoinfo.conf" "${KEY}" "${SYNOINFO[${KEY}]}" || exit 1
|
||||||
|
done
|
||||||
|
if [ ! -x "${RAMDISK_PATH}/usr/bin/get_key_value" ]; then
|
||||||
|
printf '#!/bin/sh\n%s\n_get_conf_kv "$@"' "$(declare -f _get_conf_kv)" >"${RAMDISK_PATH}/usr/bin/get_key_value"
|
||||||
|
chmod a+x "${RAMDISK_PATH}/usr/bin/get_key_value"
|
||||||
|
fi
|
||||||
|
if [ ! -x "${RAMDISK_PATH}/usr/bin/set_key_value" ]; then
|
||||||
|
printf '#!/bin/sh\n%s\n_set_conf_kv "$@"' "$(declare -f _set_conf_kv)" >"${RAMDISK_PATH}/usr/bin/set_key_value"
|
||||||
|
chmod a+x "${RAMDISK_PATH}/usr/bin/set_key_value"
|
||||||
|
fi
|
||||||
|
|
||||||
echo -n "."
|
echo -n "."
|
||||||
echo "Modify files" >"${LOG_FILE}"
|
echo "Modify files" >"${LOG_FILE}"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user