Automatic random SN

This commit is contained in:
Ing 2023-06-08 23:31:28 +08:00
parent b4b67f0627
commit 569b3f4eb5
4 changed files with 492 additions and 526 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -123,7 +123,7 @@ function modelMenu() {
writeConfigKey "model" "${MODEL}" "${USER_CONFIG_FILE}" writeConfigKey "model" "${MODEL}" "${USER_CONFIG_FILE}"
BUILD="" BUILD=""
writeConfigKey "build" "${BUILD}" "${USER_CONFIG_FILE}" writeConfigKey "build" "${BUILD}" "${USER_CONFIG_FILE}"
SN="" SN=`generateSerial "${MODEL}"`
writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}" writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
# Delete old files # Delete old files
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}" rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}"
@ -188,44 +188,6 @@ function buildMenu() {
fi fi
} }
###############################################################################
# Shows menu to user type one or generate randomly
function serialMenu() {
while true; do
dialog --clear --backtitle "`backtitle`" \
--menu "$(TEXT "Choose a option")" 0 0 0 \
a "$(TEXT "Generate a random serial number")" \
m "$(TEXT "Enter a serial number")" \
2>${TMP_PATH}/resp
[ $? -ne 0 ] && return
resp=$(<${TMP_PATH}/resp)
[ -z "${resp}" ] && return
if [ "${resp}" = "m" ]; then
while true; do
dialog --backtitle "`backtitle`" \
--inputbox "$(TEXT "Please enter a serial number ")" 0 0 "" \
2>${TMP_PATH}/resp
[ $? -ne 0 ] && return
SERIAL=`cat ${TMP_PATH}/resp`
if [ -z "${SERIAL}" ]; then
return
elif [ `validateSerial ${MODEL} ${SERIAL}` -eq 1 ]; then
break
fi
dialog --backtitle "`backtitle`" --title "$(TEXT "Alert")" \
--yesno "$(TEXT "Invalid serial, continue?")" 0 0
[ $? -eq 0 ] && break
done
break
elif [ "${resp}" = "a" ]; then
SERIAL=`generateSerial "${MODEL}"`
break
fi
done
SN="${SERIAL}"
writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
}
############################################################################### ###############################################################################
# Manage addons # Manage addons
function addonMenu() { function addonMenu() {
@ -485,9 +447,12 @@ function cmdlineMenu() {
done < <(readConfigMap "cmdline" "${USER_CONFIG_FILE}") done < <(readConfigMap "cmdline" "${USER_CONFIG_FILE}")
echo "a \"$(TEXT "Add/edit a cmdline item")\"" > "${TMP_PATH}/menu" echo "a \"$(TEXT "Add/edit a cmdline item")\"" > "${TMP_PATH}/menu"
echo "d \"$(TEXT "Delete cmdline item(s)")\"" >> "${TMP_PATH}/menu" echo "d \"$(TEXT "Delete cmdline item(s)")\"" >> "${TMP_PATH}/menu"
if [ -n "${MODEL}" ]; then
echo "s \"$(TEXT "Define a serial number")\"" >> "${TMP_PATH}/menu"
fi
echo "c \"$(TEXT "Define a custom MAC")\"" >> "${TMP_PATH}/menu" echo "c \"$(TEXT "Define a custom MAC")\"" >> "${TMP_PATH}/menu"
echo "s \"$(TEXT "Show user cmdline")\"" >> "${TMP_PATH}/menu" echo "v \"$(TEXT "Show user added cmdline")\"" >> "${TMP_PATH}/menu"
echo "m \"$(TEXT "Show model/build cmdline")\"" >> "${TMP_PATH}/menu" echo "m \"$(TEXT "Show model inherent cmdline")\"" >> "${TMP_PATH}/menu"
echo "e \"$(TEXT "Exit")\"" >> "${TMP_PATH}/menu" echo "e \"$(TEXT "Exit")\"" >> "${TMP_PATH}/menu"
# Loop menu # Loop menu
while true; do while true; do
@ -530,6 +495,25 @@ function cmdlineMenu() {
deleteConfigKey "cmdline.${I}" "${USER_CONFIG_FILE}" deleteConfigKey "cmdline.${I}" "${USER_CONFIG_FILE}"
done done
;; ;;
s)
while true; do
dialog --backtitle "`backtitle`" --title "$(TEXT "User cmdline")" \
--inputbox "$(TEXT "Please enter a serial number ")" 0 0 "" \
2>${TMP_PATH}/resp
[ $? -ne 0 ] && break 2
SERIAL=`cat ${TMP_PATH}/resp`
if [ -z "${SERIAL}" ]; then
return
elif [ `validateSerial ${MODEL} ${SERIAL}` -eq 1 ]; then
break
fi
dialog --backtitle "`backtitle`" --title "$(TEXT "Alert")" \
--yesno "$(TEXT "Invalid serial, continue?")" 0 0
[ $? -eq 0 ] && break
done
SN="${SERIAL}"
writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
;;
c) c)
ETHX=(`ls /sys/class/net/ | grep eth`) # real network cards list ETHX=(`ls /sys/class/net/ | grep eth`) # real network cards list
for N in `seq 1 8`; do # Currently, only up to 8 are supported. (<==> boot.sh L96, <==> lkm: MAX_NET_IFACES) for N in `seq 1 8`; do # Currently, only up to 8 are supported. (<==> boot.sh L96, <==> lkm: MAX_NET_IFACES)
@ -567,7 +551,7 @@ function cmdlineMenu() {
fi fi
done done
;; ;;
s) v)
ITEMS="" ITEMS=""
for KEY in ${!CMDLINE[@]}; do for KEY in ${!CMDLINE[@]}; do
ITEMS+="${KEY}: ${CMDLINE[$KEY]}\n" ITEMS+="${KEY}: ${CMDLINE[$KEY]}\n"
@ -1600,7 +1584,6 @@ while true; do
echo "m \"$(TEXT "Choose a model")\"" > "${TMP_PATH}/menu" echo "m \"$(TEXT "Choose a model")\"" > "${TMP_PATH}/menu"
if [ -n "${MODEL}" ]; then if [ -n "${MODEL}" ]; then
echo "n \"$(TEXT "Choose a Build Number")\"" >> "${TMP_PATH}/menu" echo "n \"$(TEXT "Choose a Build Number")\"" >> "${TMP_PATH}/menu"
echo "s \"$(TEXT "Choose a serial number")\"" >> "${TMP_PATH}/menu"
if [ -n "${BUILD}" ]; then if [ -n "${BUILD}" ]; then
echo "a \"$(TEXT "Addons")\"" >> "${TMP_PATH}/menu" echo "a \"$(TEXT "Addons")\"" >> "${TMP_PATH}/menu"
echo "o \"$(TEXT "Modules")\"" >> "${TMP_PATH}/menu" echo "o \"$(TEXT "Modules")\"" >> "${TMP_PATH}/menu"
@ -1631,8 +1614,7 @@ while true; do
[ $? -ne 0 ] && break [ $? -ne 0 ] && break
case `<"${TMP_PATH}/resp"` in case `<"${TMP_PATH}/resp"` in
m) modelMenu; NEXT="n" ;; m) modelMenu; NEXT="n" ;;
n) buildMenu; NEXT="s" ;; n) buildMenu; NEXT="a" ;;
s) serialMenu; NEXT="a" ;;
a) addonMenu; NEXT="o" ;; a) addonMenu; NEXT="o" ;;
o) moduleMenu; NEXT="x" ;; o) moduleMenu; NEXT="x" ;;
x) cmdlineMenu; NEXT="i" ;; x) cmdlineMenu; NEXT="i" ;;