functions: make hwid unique

Signed-off-by: AuxXxilium <info@auxxxilium.tech>
This commit is contained in:
AuxXxilium 2024-11-11 21:26:44 +01:00
parent d890c54a1b
commit 1bde43ca66
2 changed files with 84 additions and 57 deletions

View File

@ -692,14 +692,23 @@ function sequentialIOMenu() {
# Shows backup menu to user # Shows backup menu to user
function backupMenu() { function backupMenu() {
NEXT="1" NEXT="1"
USERID="$(readConfigKey "arc.userid" "${USER_CONFIG_FILE}")"
while true; do while true; do
dialog --backtitle "$(backtitle)" --title "Backup" --cancel-label "Exit" --menu "Choose an Option" 0 0 0 \ if [ -n "${USERID}" ]; then
1 "Restore Arc Config from DSM" \ dialog --backtitle "$(backtitle)" --title "Backup" --cancel-label "Exit" --menu "Choose an Option" 0 0 0 \
2 "Restore Arc Config online" \ 1 "Restore Arc Config from DSM" \
3 "Backup Arc Config online" \ 2 "Restore HW Encryption Key from DSM" \
4 "Restore HW Encryption Key from DSM" \ 3 "Backup HW Encryption Key to DSM" \
5 "Backup HW Encryption Key to DSM" \ 4 "Restore Arc Config from Online" \
2>"${TMP_PATH}/resp" 5 "Backup Arc Config to Online" \
2>"${TMP_PATH}/resp"
else
dialog --backtitle "$(backtitle)" --title "Backup" --cancel-label "Exit" --menu "Choose an Option" 0 0 0 \
1 "Restore Arc Config from DSM" \
2 "Restore HW Encryption Key from DSM" \
3 "Backup HW Encryption Key to DSM" \
2>"${TMP_PATH}/resp"
fi
[ $? -ne 0 ] && break [ $? -ne 0 ] && break
case "$(cat ${TMP_PATH}/resp)" in case "$(cat ${TMP_PATH}/resp)" in
1) 1)
@ -757,30 +766,6 @@ function backupMenu() {
exec init.sh exec init.sh
;; ;;
2) 2)
[ -f "${USER_CONFIG_FILE}" ] && mv -f "${USER_CONFIG_FILE}" "${USER_CONFIG_FILE}.bak"
HWID="$(genHWID)"
USERID="$(readConfigKey "arc.userid" "${USER_CONFIG_FILE}")"
if curl -skL "https://arc.auxxxilium.tech?cdown=${HWID}" -o "${USER_CONFIG_FILE}" 2>/dev/null; then
dialog --backtitle "$(backtitle)" --title "Online Restore" --msgbox "Online Restore successful!" 5 40
else
dialog --backtitle "$(backtitle)" --title "Online Restore" --msgbox "Online Restore failed!" 5 40
mv -f "${USER_CONFIG_FILE}.bak" "${USER_CONFIG_FILE}"
fi
;;
3)
if [ -f "${USER_CONFIG_FILE}" ]; then
HWID="$(genHWID)"
USERID="$(readConfigKey "arc.userid" "${USER_CONFIG_FILE}")"
if curl -sk -X POST -F "file=@${USER_CONFIG_FILE}" "https://arc.auxxxilium.tech?cup=${HWID}&userid=${USERID}"; then
dialog --backtitle "$(backtitle)" --title "Online Backup" --msgbox "Online Backup successful!" 5 40
else
dialog --backtitle "$(backtitle)" --title "Online Backup" --msgbox "Online Backup failed!" 5 40
fi
else
dialog --backtitle "$(backtitle)" --title "Online Backup" --msgbox "No User Config found!" 5 40
fi
;;
4)
DSMROOTS="$(findDSMRoot)" DSMROOTS="$(findDSMRoot)"
if [ -z "${DSMROOTS}" ]; then if [ -z "${DSMROOTS}" ]; then
dialog --backtitle "$(backtitle)" --title "Restore Encryption Key" \ dialog --backtitle "$(backtitle)" --title "Restore Encryption Key" \
@ -805,7 +790,7 @@ function backupMenu() {
--msgbox "No Encryption Key found!" 0 0 --msgbox "No Encryption Key found!" 0 0
fi fi
;; ;;
5) 3)
BACKUPKEY="false" BACKUPKEY="false"
DSMROOTS="$(findDSMRoot)" DSMROOTS="$(findDSMRoot)"
if [ -z "${DSMROOTS}" ]; then if [ -z "${DSMROOTS}" ]; then
@ -836,6 +821,28 @@ function backupMenu() {
--msgbox "No Encryption Key found!" 0 0 --msgbox "No Encryption Key found!" 0 0
fi fi
;; ;;
4)
[ -f "${USER_CONFIG_FILE}" ] && mv -f "${USER_CONFIG_FILE}" "${USER_CONFIG_FILE}.bak"
HWID="$(genHWID)"
if curl -skL "https://arc.auxxxilium.tech?cdown=${HWID}" -o "${USER_CONFIG_FILE}" 2>/dev/null; then
dialog --backtitle "$(backtitle)" --title "Online Restore" --msgbox "Online Restore successful!" 5 40
else
dialog --backtitle "$(backtitle)" --title "Online Restore" --msgbox "Online Restore failed!" 5 40
mv -f "${USER_CONFIG_FILE}.bak" "${USER_CONFIG_FILE}"
fi
;;
5)
if [ -f "${USER_CONFIG_FILE}" ]; then
HWID="$(genHWID)"
if curl -sk -X POST -F "file=@${USER_CONFIG_FILE}" "https://arc.auxxxilium.tech?cup=${HWID}&userid=${USERID}"; then
dialog --backtitle "$(backtitle)" --title "Online Backup" --msgbox "Online Backup successful!" 5 40
else
dialog --backtitle "$(backtitle)" --title "Online Backup" --msgbox "Online Backup failed!" 5 40
fi
else
dialog --backtitle "$(backtitle)" --title "Online Backup" --msgbox "No User Config found!" 5 40
fi
;;
esac esac
done done
} }
@ -936,6 +943,7 @@ function networkMenu() {
function sysinfo() { function sysinfo() {
# Get System Informations # Get System Informations
[ -d /sys/firmware/efi ] && BOOTSYS="UEFI" || BOOTSYS="BIOS" [ -d /sys/firmware/efi ] && BOOTSYS="UEFI" || BOOTSYS="BIOS"
USERID="$(readConfigKey "arc.userid" "${USER_CONFIG_FILE}")"
CPU="$(cat /proc/cpuinfo 2>/dev/null | grep 'model name' | uniq | awk -F':' '{print $2}')" CPU="$(cat /proc/cpuinfo 2>/dev/null | grep 'model name' | uniq | awk -F':' '{print $2}')"
SECURE=$(dmesg 2>/dev/null | grep -i "Secure Boot" | awk -F'] ' '{print $2}') SECURE=$(dmesg 2>/dev/null | grep -i "Secure Boot" | awk -F'] ' '{print $2}')
VENDOR=$(dmesg 2>/dev/null | grep -i "DMI:" | head -1 | sed 's/\[.*\] DMI: //i') VENDOR=$(dmesg 2>/dev/null | grep -i "DMI:" | head -1 | sed 's/\[.*\] DMI: //i')
@ -1160,29 +1168,49 @@ function sysinfo() {
NUMPORTS=$((${NUMPORTS} + ${PORTNUM})) NUMPORTS=$((${NUMPORTS} + ${PORTNUM}))
fi fi
TEXT+="\n Total Disks: \Zb${NUMPORTS}\Zn" TEXT+="\n Total Disks: \Zb${NUMPORTS}\Zn"
[ -f "${TMP_PATH}/diag" ] && rm -f "${TMP_PATH}/diag" >/dev/null if [ -n "${USERID}" ]; then
echo -e "${TEXT}" >"${TMP_PATH}/sysinfo.yml" echo -e "${TEXT}" >"${TMP_PATH}/sysinfo.yml"
while true; do while true; do
dialog --backtitle "$(backtitle)" --colors --ok-label "Exit" --help-button --help-label "Show Cmdline" \ dialog --backtitle "$(backtitle)" --colors --ok-label "Exit" --help-button --help-label "Show Cmdline" \
--extra-button --extra-label "Upload" --title "Sysinfo" --msgbox "${TEXT}" 0 0 --extra-button --extra-label "Upload" --title "Sysinfo" --msgbox "${TEXT}" 0 0
RET=$? RET=$?
case ${RET} in case ${RET} in
0) # ok-button 0) # ok-button
return 0 return 0
break break
;; ;;
2) # help-button 2) # help-button
getCMDline getCMDline
;; ;;
3) # extra-button 3) # extra-button
uploadDiag uploadDiag
;; ;;
255) # ESC-button 255) # ESC-button
return 0 return 0
break break
;; ;;
esac esac
done done
else
while true; do
dialog --backtitle "$(backtitle)" --colors --ok-label "Exit" --help-button --help-label "Show Cmdline" \
--title "Sysinfo" --msgbox "${TEXT}" 0 0
RET=$?
case ${RET} in
0) # ok-button
return 0
break
;;
2) # help-button
getCMDline
;;
255) # ESC-button
return 0
break
;;
esac
done
fi
return return
} }
@ -1199,7 +1227,6 @@ function getCMDline () {
function uploadDiag () { function uploadDiag () {
if [ -f "${TMP_PATH}/sysinfo.yml" ]; then if [ -f "${TMP_PATH}/sysinfo.yml" ]; then
HWID="$(genHWID)" HWID="$(genHWID)"
USERID="$(readConfigKey "arc.userid" "${USER_CONFIG_FILE}")"
if curl -sk -X POST -F "file=@${TMP_PATH}/sysinfo.yml" "https://arc.auxxxilium.tech?sysinfo=${HWID}&userid=${USERID}"; then if curl -sk -X POST -F "file=@${TMP_PATH}/sysinfo.yml" "https://arc.auxxxilium.tech?sysinfo=${HWID}&userid=${USERID}"; then
dialog --backtitle "$(backtitle)" --title "Sysinfo Upload" --msgbox "Your Code: ${HWID}" 5 40 dialog --backtitle "$(backtitle)" --title "Sysinfo Upload" --msgbox "Your Code: ${HWID}" 5 40
else else

View File

@ -565,6 +565,6 @@ function systemCheck () {
############################################################################### ###############################################################################
# Generate HardwareID # Generate HardwareID
function genHWID () { function genHWID () {
HWID="$(echo $(ifconfig | grep eth0 | awk '{print $NF}' | sed 's/://g') $(cat /proc/cpuinfo | grep "model name" | cut -d':' -f2 | head -1) | sha256sum | awk '{print $1}' | cut -c1-16)" 2>/dev/null HWID="$(echo $(dmidecode -t 4 | grep ID | sed 's/.*ID://;s/ //g' | head -1) $(ifconfig | grep eth1 | awk '{print $NF}' | sed 's/://g') | sha256sum | awk '{print $1}' | cut -c1-16)" 2>/dev/null
echo "${HWID}" echo "${HWID}"
} }