redpill-tool-chain/serialnumbergen.sh
2022-04-08 00:54:45 +08:00

138 lines
4.1 KiB
Bash
Executable File

#!/bin/bash
# form https://github.com/pocopico/tinycore-redpill/blob/main/serialnumbergen.sh
function beginArray() {
case $1 in
DS3615xs)
permanent="LWN"
serialstart="1130 1230 1330 1430"
;;
DS3617xs)
permanent="ODN"
serialstart="1130 1230 1330 1430"
;;
DS916+)
permanent="NZN"
serialstart="1130 1230 1330 1430"
;;
DS918+)
permanent="PDN"
serialstart="1780 1790 1860 1980"
;;
DS920+)
permanent="SBR"
serialstart="2030 2040 20C0 2150"
;;
DS3622xs+)
permanent="SQR"
serialstart="2030 2040 20C0 2150"
;;
FS6400)
permanent="PSN"
serialstart="1960"
;;
DVA3219)
permanent="RFR"
serialstart="1930 1940"
;;
DVA3221)
permanent="SJR"
serialstart="2030 2040 20C0 2150"
;;
esac
}
function random() {
printf "%06d" $(($RANDOM %30000 +1 ))
}
function randomhex() {
val=$(( $RANDOM %255 +1))
echo "obase=16; $val" | bc
}
function generateRandomLetter() {
for i in a b c d e f g h j k l m n p q r s t v w x y z
do echo $i
done | sort -R|tail -1
}
function generateRandomValue() {
for i in 0 1 2 3 4 5 6 7 8 9 a b c d e f g h j k l m n p q r s t v w x y z
do echo $i
done | sort -R|tail -1
}
function toupper() {
echo $1 | tr 'a-z' 'A-Z'
}
function generateMacAddress() {
#toupper "Mac Address: 00:11:32:$(randomhex):$(randomhex):$(randomhex)"
printf '00:11:32:%02X:%02X:%02X' $[RANDOM%256] $[RANDOM%256] $[RANDOM%256]
}
function generateSerial(){
beginArray $1
case $1 in
DS3615xs)
serialnum="`echo "$serialstart" | tr ' ' '\n' | sort -R | tail -1`$permanent"$(random)
;;
DS3617xs)
serialnum="`echo "$serialstart" | tr ' ' '\n' | sort -R | tail -1`$permanent"$(random)
;;
DS916+)
serialnum="`echo "$serialstart" | tr ' ' '\n' | sort -R | tail -1`$permanent"$(random)
;;
DS918+)
serialnum="`echo "$serialstart" | tr ' ' '\n' | sort -R | tail -1`$permanent"$(random)
;;
FS6400)
serialnum="`echo "$serialstart" | tr ' ' '\n' | sort -R | tail -1`$permanent"$(random)
;;
DS920+)
serialnum=$(toupper "`echo "$serialstart" | tr ' ' '\n' | sort -R | tail -1`$permanent"$(generateRandomLetter)$(generateRandomValue)$(generateRandomValue)$(generateRandomValue)$(generateRandomValue)$(generateRandomLetter))
;;
DS3622xs+)
serialnum=$(toupper "`echo "$serialstart" | tr ' ' '\n' | sort -R | tail -1`$permanent"$(generateRandomLetter)$(generateRandomValue)$(generateRandomValue)$(generateRandomValue)$(generateRandomValue)$(generateRandomLetter))
;;
DVA3219)
serialnum=$(toupper "`echo "$serialstart" | tr ' ' '\n' | sort -R | tail -1`$permanent"$(generateRandomLetter)$(generateRandomValue)$(generateRandomValue)$(generateRandomValue)$(generateRandomValue)$(generateRandomLetter))
;;
DVA3221)
serialnum=$(toupper "`echo "$serialstart" | tr ' ' '\n' | sort -R | tail -1`$permanent"$(generateRandomLetter)$(generateRandomValue)$(generateRandomValue)$(generateRandomValue)$(generateRandomValue)$(generateRandomLetter))
;;
esac
echo $serialnum
}
function showhelp() {
cat << EOF
$(basename ${0})
----------------------------------------------------------------------------------------
Usage: ${0} <platform>
Available platforms :
----------------------------------------------------------------------------------------
DS3615xs DS3617xs DS916+ DS918+ DS920+ DS3622xs+ FS6400 DVA3219 DVA3221
e.g. $(basename ${0}) DS3615xs
----------------------------------------------------------------------------------------
EOF
}
if [ -z "$1" ] ; then
showhelp
else
if [ "$1" = "DS3615xs" ] || [ "$1" = "DS3617xs" ] || [ "$1" = "DS916+" ] || [ "$1" = "DS918+" ] || [ "$1" = "DS920+" ] || [ "$1" = "DS3622xs+" ] || [ "$1" = "FS6400" ] || [ "$1" = "DVA3219" ] || [ "$1" = "DVA3221" ]; then
echo -e "Model:\t\t\t$1"
echo -e "Mac Address:\t\t$(generateMacAddress)"
echo -e "Serial Number:\t\t$(generateSerial $1)"
else
echo "Error : $1 is not an available model for serial number generation. "
echo "Available Models : DS3615xs DS3617xs DS916+ DS918+ DS920+ DS3622xs+ DVA3219 DVA3221"
exit 1
fi
fi