diff --git a/Archive/ch_cpuinfo_4.2.0/LANG.txt b/Archive/ch_cpuinfo_4.2.0/LANG.txt
new file mode 100644
index 0000000..5a56850
--- /dev/null
+++ b/Archive/ch_cpuinfo_4.2.0/LANG.txt
@@ -0,0 +1,40 @@
+## Do not Change variable!!!
+##
+## If you change to Y value of CUSTLANG,
+## You can do change messages contents to your language.
+##
+## Change the value of MSGECHO to use
+##
+CUSTLANG=N
+##
+##
+### Messages Contents
+MSGECHO01="warning!! Work directly on the original file without backup."
+MSGECHO02="Restore to Original Source and Continue."
+MSGECHO03="Delete Previos Version Backup Location."
+MSGECHO04="Auto Excute, If you select n, proceed interactively (Cancel : q) [y/n] :"
+MSGECHO05="Proceed with original file backup and preparation.. If you select n, Work directly on the original file. (Cancel : q) [y/n] :"
+MSGECHO06="CPU name, Core count and reflects it. If you select n, Resote original file (Cancel : q) [y/n] :"
+MSGECHO07="There is a history of running the same version. Please run again select 2) redo ."
+MSGECHO08="Do not restore to source when installing a higher version. Contiue..."
+MSGECHO09="You have verified and installed the previous version. Contiue..."
+MSGECHO10="Problem and exit. Please run again after checking."
+MSGECHO11="No execution history at this version. Please go back to the first run."
+MSGECHO12="The target file(location) does not exist. Please run again after checking."
+MSGECHO13="The operation is complete!! It takes about 1-2 minutes to apply, \n(Please refresh the DSM page with F5 or after logout/login and check the information.)"
+MSGECHO14="Only y / n / q can be input. Please proceed again."
+MSGECHO15="DSM CPU Information Change Tool ver."
+MSGECHO16="made by"
+MSGECHO17="Your version of DSM is"
+MSGECHO18="continue"
+MSGECHO19="DSM version less than 5 is not supported. End the process."
+MSGECHO20="1) First run 2) Redo 3) Restore - Select Number :"
+MSGECHO21="Do you want to proceed again? Restore to original file backup and proceed.(Cancel : q) [y/n] :"
+MSGECHO22="Do not proceed with the redo."
+MSGECHO23="Do you want to restore using the original backup file? (Cancel : q) [y/n] :"
+MSGECHO24="No restore was performed."
+MSGECHO25="Please select the correct number."
+## Add inforation 2021.09.30
+MSGECHO26="The CPU information to be applied is as follows."
+## Add inforation 2023.02.17
+MSGECHO27="If you use Surveillance Studio, it also applies to Surveillance Studio System Information."
\ No newline at end of file
diff --git a/Archive/ch_cpuinfo_4.2.0/ch_cpuinfo.sh b/Archive/ch_cpuinfo_4.2.0/ch_cpuinfo.sh
new file mode 100644
index 0000000..0456c97
--- /dev/null
+++ b/Archive/ch_cpuinfo_4.2.0/ch_cpuinfo.sh
@@ -0,0 +1,990 @@
+#!/bin/sh
+# Updated 2023.02.18 - By FOXBI
+# htttps://github.com/foxbi/ch_cpuinfo
+ver="4.2.0-r01"
+# ==============================================================================
+# Location Check
+# ==============================================================================
+if [ -f "LANG.txt" ]
+then
+ source ./LANG.txt
+ if [ "$CUSTLANG" == "Y" ]
+ then
+ LC_CHK="CUSTOMLANG"
+ else
+ LC_CHK=`cat /etc/synoinfo.conf | grep timezone | awk -F= '{print $2}' | sed 's/"//g'`
+ fi
+else
+ LC_CHK=`cat /etc/synoinfo.conf | grep timezone | awk -F= '{print $2}' | sed 's/"//g'`
+fi
+# ==============================================================================
+# Y or N Function
+# ==============================================================================
+READ_YN () { # $1:question $2:default
+ read -n1 -p "$1" Y_N
+ case "$Y_N" in
+ y) Y_N="y"
+ echo -e "\n" ;;
+ n) Y_N="n"
+ echo -e "\n" ;;
+ q) echo -e "\n"
+ exit 0 ;;
+ *) echo -e "\n" ;;
+ esac
+}
+# ==============================================================================
+# Color Function
+# ==============================================================================
+cecho() {
+ if [ -n "$3" ]
+ then
+ case "$3" in
+ black | bk) bgcolor="40";;
+ red | r) bgcolor="41";;
+ green | g) bgcolor="42";;
+ yellow | y) bgcolor="43";;
+ blue | b) bgcolor="44";;
+ purple | p) bgcolor="45";;
+ cyan | c) bgcolor="46";;
+ gray | gr) bgcolor="47";;
+ esac
+ else
+ bgcolor="0"
+ fi
+ code="\033["
+ case "$1" in
+ black | bk) color="${code}${bgcolor};30m";;
+ red | r) color="${code}${bgcolor};31m";;
+ green | g) color="${code}${bgcolor};32m";;
+ yellow | y) color="${code}${bgcolor};33m";;
+ blue | b) color="${code}${bgcolor};34m";;
+ purple | p) color="${code}${bgcolor};35m";;
+ cyan | c) color="${code}${bgcolor};36m";;
+ gray | gr) color="${code}${bgcolor};37m";;
+ esac
+
+ text="$color$2${code}0m"
+ echo -e "$text"
+}
+# ==============================================================================
+# Process Function
+# ==============================================================================
+PREPARE_FN () {
+ if [ -f "$WORK_DIR/admin_center.js" ] && [ -f "$MWORK_DIR/mobile.js" ]
+ then
+ if [ "$direct_job" == "y" ]
+ then
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ cecho r "$MSGECHO01\n"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ cecho r "경고!! 백업하지 않고 원본에 직접 작업합니다.\n"
+ else
+ cecho r "warning!! Work directly on the original file without backup.\n"
+ fi
+ else
+ cd $WORK_DIR
+ tar -cf $BKUP_DIR/$TIME/admin_center.tar admin_center.js*
+ cd $MWORK_DIR
+ tar -cf $BKUP_DIR/$TIME/mobile.tar mobile.js*
+ if [ -f "$SWORK_DIR/System.js" ]
+ then
+ cd $SWORK_DIR
+ tar -cf $BKUP_DIR/$TIME/System.tar System.js*
+ cp -Rf $SWORK_DIR/System.js $BKUP_DIR/
+ fi
+ fi
+ if [ "$MA_VER" -eq "6" ] && [ "$MI_VER" -ge "2" ]
+ then
+ mv $WORK_DIR/admin_center.js.gz $BKUP_DIR/
+ mv $MWORK_DIR/mobile.js.gz $BKUP_DIR/
+ cp -Rf $SWORK_DIR/System.js $BKUP_DIR/
+ cd $BKUP_DIR/
+ gzip -df $BKUP_DIR/admin_center.js.gz
+ gzip -df $BKUP_DIR/mobile.js.gz
+ else
+ cp -Rf $WORK_DIR/admin_center.js $BKUP_DIR/
+ cp -Rf $MWORK_DIR/mobile.js $BKUP_DIR/
+ cp -Rf $SWORK_DIR/System.js $BKUP_DIR/
+ fi
+ else
+ COMMENT08_FN
+ fi
+}
+
+GATHER_FN () {
+ cpu_vendor_chk=`cat /proc/cpuinfo | grep model | grep name | sort -u | sed "s/(.)//g" | sed "s/(..)//g" | sed "s/CPU//g" | grep AMD | wc -l`
+ if [ "$cpu_vendor_chk" -gt "0" ]
+ then
+ cpu_vendor="AMD"
+ else
+ cpu_vendor_chk=`cat /proc/cpuinfo | grep model | grep name | sort -u | sed "s/(.)//g" | sed "s/(..)//g" | sed "s/CPU//g" | grep Intel | wc -l`
+ if [ "$cpu_vendor_chk" -gt "0" ]
+ then
+ cpu_vendor="Intel"
+ else
+ cpu_vendor=`cat /proc/cpuinfo | grep Hardware | sort -u | awk '{print $3}' | head -1`
+ if [ -z "$cpu_vendor" ]
+ then
+ cpu_vendor=`cat /proc/cpuinfo grep model | grep name | sort -u | awk '{print $3}' | head -1`
+ fi
+ fi
+ fi
+ if [ "$cpu_vendor" == "AMD" ]
+ then
+ pro_cnt=`cat /proc/cpuinfo | grep model | grep name | sort -u | awk -F: '{print $2}' | sed "s/^\s*AMD//g" | sed "s/^\s//g" | head -1 | grep -wi "PRO" | wc -l`
+ if [ "$pro_cnt" -gt 0 ]
+ then
+ pro_chk="-wi PRO"
+ else
+ pro_chk="-v PRO"
+ fi
+ cpu_series=`cat /proc/cpuinfo | grep model | grep name | sort -u | awk -F: '{print $2}' | sed "s/^\s*AMD//g" | sed "s/^\s//g" | head -1 | awk '{ for(i = NF; i > 1; i--) if ($i ~ /^[0-9]/) { for(j=i;j<=NF;j++)printf("%s ", $j);print("\n");break; }}' | sed "s/ *$//g"`
+ if [ -z "$cpu_series" ]
+ then
+ cpu_series=`cat /proc/cpuinfo | grep model | grep name | sort -u | awk -F: '{print $2}' | sed "s/^\s*AMD//g" | sed "s/^\s//g" | head -1 | awk '{ for(i = NF; i >= 1; i--) if ($i ~ ".*-.*") { print $i }}' | sed "s/ *$//g"`
+ fi
+ cpu_family=`cat /proc/cpuinfo | grep model | grep name | sort -u | awk -F: '{print $2}' | sed "s/^\s*AMD//g" | sed "s/^\s//g" | head -1 | awk -F"$cpu_series" '{print $1}' | sed "s/ *$//g"`
+ elif [ "$cpu_vendor" == "Intel" ]
+ then
+ cpu_family=`cat /proc/cpuinfo | grep model | grep name | sort -u | awk '{ for(i = 1; i < NF; i++) if ($i ~ /^Intel/) { for(j=i;j<=NF;j++)printf("%s ", $j);printf("\n") }}' | awk -F@ '{ print $1 }' | sed "s/(.)//g" | sed "s/(..)//g" | sed "s/ CPU//g" | awk '{print $2}' | head -1 | sed "s/ *$//g"`
+ cpu_series=`cat /proc/cpuinfo | grep model | grep name | sort -u | awk '{ for(i = 1; i < NF; i++) if ($i ~ /^Intel/) { for(j=i;j<=NF;j++)printf("%s ", $j);printf("\n") }}' | awk -F@ '{ print $1 }' | sed "s/(.)//g" | sed "s/(..)//g" | sed "s/ CPU//g" | awk -F"$cpu_family " '{print $2}' | head -1 | sed "s/ *$//g"`
+ if [ -z "$cpu_series" ]
+ then
+ cpu_series="Unknown"
+ fi
+ if [ "$cpu_family" == "Pentium" ]
+ then
+ cpu_series_b="$cpu_series"
+ cpu_series="$cpu_family $cpu_series"
+ else
+ m_chk=`echo "$cpu_series" | grep -wi ".* M .*" | wc -l`
+ if [ "$m_chk" -gt 0 ]
+ then
+ cpu_series=`echo "$cpu_series" | sed "s/ M /-/g" | awk '{print $0"M"}'`
+ fi
+ fi
+ else
+ cpu_family=`cat /proc/cpuinfo | grep model | grep name | sort -u | awk -F: '{print $2}' | sed "s/^\s*$cpu_vendor//g" | sed "s/^\s//g" | head -1`
+ cpu_series=""
+ fi
+ if [ "$cpu_vendor" == "Intel" ]
+ then
+ if [ "$cpu_series" == "ES" ] || [ "$cpu_series" == "Unkown" ]
+ then
+ cpu_detail="find<\/a>"
+ else
+ cpu_search="https://ark.intel.com/content/www/us/en/ark/search.html?_charset_=UTF-8&q=$cpu_series"
+ temp_file="/tmp/cpu_info_temp_url.txt"
+ wget -q -O $temp_file "$cpu_search"
+ url_cnt=`cat $temp_file | grep "FormRedirectUrl" | grep "hidden" | wc -l`
+ if [ "$url_cnt" -gt 0 ]
+ then
+ gen_url=`cat $temp_file | grep "FormRedirectUrl" | grep "hidden" | awk -F"value" '{print $2}' | awk -F\" '{print $2}'`
+ else
+ gen_url=`cat $temp_file | grep -wi "$cpu_series" | grep "href" | awk -F"href" '{print $2}' | awk -F\" '{print $2}'`
+ if [ "$cpu_family" == "Pentium" ]
+ then
+ chg_series=`echo $cpu_series | awk '{print "\\\-"$1"\\\-"$2"\\\-"}'`
+ gen_url=`cat $temp_file | grep -i "$chg_series" | grep "href" | awk -F"href" '{print $2}' | awk -F\" '{print $2}' | head -1`
+ cpu_series="$cpu_series_b"
+ fi
+ if [ -z "$gen_url" ]
+ then
+ chg_series=`echo $cpu_series | awk '{print "\\\-"$1".*"$2"\\\-"}'`
+ gen_url=`cat $temp_file | grep -i "$chg_series" | grep "href" | awk -F"href" '{print $2}' | awk -F\" '{print $2}' | head -1`
+ fi
+ fi
+ cpu_gen=`curl --silent https://ark.intel.com$gen_url | grep "Products formerly" | awk -F"Products formerly " '{print $2}' | sed "s/<\/a>//g"`
+ gen_url=`echo $gen_url | sed "s/\//\\\\\\\\\//g"`
+ cpu_detail="($cpu_gen) detail<\/a>"
+ fi
+ elif [ "$cpu_vendor" == "AMD" ]
+ then
+ cpu_search=`echo "$cpu_series" | awk '{print $1" "$2}'`
+ gen_url=`curl --silent -H "user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36" http://stackoverflow.com/questions/28760694/how-to-use-curl-to-get-a-get-request-exactly-same-as-using-chrome \
+ https://www.amd.com/en/products/specifications/processors | grep -wi "$cpu_search" | grep $pro_chk | awk -F"views-field" '{print $1}' | awk -F"entity-" '{print $2}'`
+ if [ -z "$gen_url" ]
+ then
+ chg_series=`echo $cpu_series | awk '{print $1}'`
+ gen_url=`curl --silent -H "user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36" http://stackoverflow.com/questions/28760694/how-to-use-curl-to-get-a-get-request-exactly-same-as-using-chrome \
+ https://www.amd.com/en/products/specifications/processors | grep -wi "$chg_series" | grep $pro_chk | awk -F"views-field" '{print $1}' | awk -F"entity-" '{print $2}'`
+ fi
+ if [ -z "$gen_url" ]
+ then
+ cpu_series=`cat /proc/cpuinfo | grep model | grep name | sort -u | awk -F: '{print $2}' | sed "s/^\s*AMD//g" | sed "s/^\s//g" | head -1 | awk '{ for(i = NF; i >= 1; i--) if ($i ~ ".*-.*") { print $i }}' | sed "s/ *$//g"`
+ cpu_family=`cat /proc/cpuinfo | grep model | grep name | sort -u | awk -F: '{print $2}' | sed "s/^\s*AMD//g" | sed "s/^\s//g" | head -1 | awk -F"$cpu_series" '{print $1}' | sed "s/ *$//g"`
+ chg_series=`echo $cpu_series | awk '{print $1}'`
+ gen_url=`curl --silent -H "user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36" http://stackoverflow.com/questions/28760694/how-to-use-curl-to-get-a-get-request-exactly-same-as-using-chrome \
+ https://www.amd.com/en/products/specifications/processors | grep -wi "$chg_series" | grep $pro_chk | awk -F"views-field" '{print $1}' | awk -F"entity-" '{print $2}'`
+ fi
+ cpu_gen=`curl --silent -H "user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36" http://stackoverflow.com/questions/28760694/how-to-use-curl-to-get-a-get-request-exactly-same-as-using-chrome \
+ https://www.amd.com/en/product/$gen_url | egrep -A 2 -w ">Former Codename<|>Architecture<" | grep "field__item" | sed "s/"/\"/g" | awk -F\"\>\" '{print $2}' | awk -F\" '{print $1}' | tr "\n" "| " | awk -F\| '{if($2=="") {print $1} else {print $1" | " $2}}'`
+ cpu_detail="($cpu_gen) detail<\/a>"
+ else
+ cpu_detail=""
+ fi
+
+ PICNT=`cat /proc/cpuinfo | grep "^physical id" | sort -u | wc -l`
+ CICNT=`cat /proc/cpuinfo | grep "^core id" | sort -u | wc -l`
+ CCCNT=`cat /proc/cpuinfo | grep "^cpu cores" | sort -u | awk '{print $NF}'`
+ CSCNT=`cat /proc/cpuinfo | grep "^siblings" | sort -u | awk '{print $NF}'`
+ THCNT=`cat /proc/cpuinfo | grep "^processor" | wc -l`
+ ODCNT=`cat /proc/cpuinfo | grep "processor" | wc -l`
+ if [ "$THCNT" -gt "0" ] && [ "$PICNT" == "0" ] && [ "$CICNT" == "0" ] && [ "$CCCNT" == "" ] && [ "$CSCNT" == "" ]
+ then
+ PICNT="1"
+ CICNT="$THCNT"
+ CCCNT="$THCNT"
+ CSCNT="$THCNT"
+ fi
+ if [ "$PICNT" -gt "1" ]
+ then
+ TPCNT="$PICNT CPUs"
+ TCCNT=`expr $PICNT \* $CCCNT`
+ else
+ TPCNT="$PICNT CPU"
+ TCCNT="$CCCNT"
+ fi
+ if [ "$TCCNT" -gt "1" ]
+ then
+ TCCNT="$TCCNT Cores "
+ else
+ TCCNT="$TCCNT Core "
+ fi
+ if [ "$CCCNT" -gt "1" ]
+ then
+ PCCNT="\/$CCCNT Cores "
+ else
+ PCCNT=" "
+ fi
+ if [ "$THCNT" -gt "1" ]
+ then
+ TTCNT="$THCNT Threads"
+ else
+ TTCNT="$THCNT Thread"
+ fi
+ cpu_cores="$TCCNT($TPCNT$PCCNT| $TTCNT)"
+}
+
+PERFORM_FN () {
+ if [ -f "$BKUP_DIR/admin_center.js" ] && [ -f "$BKUP_DIR/mobile.js" ]
+ then
+ if [ "$MA_VER" -ge "6" ]
+ then
+ if [ "$MA_VER" -ge "7" ]
+ then
+ cpu_info=`echo "${dt}.cpu_vendor=\"${cpu_vendor}\",${dt}.cpu_family=\"${cpu_family}\",${dt}.cpu_series=\"${cpu_series}\",${dt}.cpu_cores=\"${cpu_cores}\",${dt}.cpu_detail=\"${cpu_detail}\","`
+ sed -i "s/Ext.isDefined(${dt}.cpu_vendor/${cpu_info}Ext.isDefined(${dt}.cpu_vendor/g" $BKUP_DIR/admin_center.js
+ if [ -f "$BKUP_DIR/System.js" ]
+ then
+ cpu_info_s=`echo ${cpu_info} | sed "s/${dt}.cpu/${st}.cpu/g"`
+ sed -i "s/Ext.isDefined(${st}.cpu_vendor/${cpu_info_s}Ext.isDefined(${st}.cpu_vendor/g" $BKUP_DIR/System.js
+ fi
+ else
+ cpu_info=`echo "${dt}.cpu_vendor=\"${cpu_vendor}\";${dt}.cpu_family=\"${cpu_family}\";${dt}.cpu_series=\"${cpu_series}\";${dt}.cpu_cores=\"${cpu_cores}\";${dt}.cpu_detail=\"${cpu_detail}\";"`
+ sed -i "s/if(Ext.isDefined(${dt}.cpu_vendor/${cpu_info}if(Ext.isDefined(${dt}.cpu_vendor/g" $BKUP_DIR/admin_center.js
+ fi
+ sed -i "s/${dt}.cpu_series)])/${dt}.cpu_series,${dt}.cpu_detail)])/g" $BKUP_DIR/admin_center.js
+ sed -i "s/{2}\",${dt}.cpu_vendor/{2} {3}\",${dt}.cpu_vendor/g" $BKUP_DIR/admin_center.js
+ if [ -f "$BKUP_DIR/System.js" ]
+ then
+ sed -i "s/${st}.cpu_series)])/${st}.cpu_series,${st}.cpu_detail)])/g" $BKUP_DIR/System.js
+ sed -i "s/{2}\",${st}.cpu_vendor/{2} {3}\",${st}.cpu_vendor/g" $BKUP_DIR/System.js
+ fi
+ cpu_info_m=`echo "{name: \"cpu_series\",renderer: function(value){var cpu_vendor=\"${cpu_vendor}\";var cpu_family=\"${cpu_family}\";var cpu_series=\"${cpu_series}\";var cpu_cores=\"${cpu_cores}\";return Ext.String.format('{0} {1} {2} [ {3} ]', cpu_vendor, cpu_family, cpu_series, cpu_cores);},label: _T(\"status\", \"cpu_model_name\")},"`
+ sed -i "s/\"ds_model\")},/\"ds_model\")},${cpu_info_m}/g" $BKUP_DIR/mobile.js
+ else
+ if [ "$MI_VER" -gt "0" ]
+ then
+ cpu_info=`echo "${dt}.cpu_vendor=\"${cpu_vendor}\";${dt}.cpu_family=\"${cpu_family}\";${dt}.cpu_series=\"${cpu_series}\";${dt}.cpu_cores=\"${cpu_cores}\";"`
+ else
+ cpu_info=`echo "${dt}.cpu_vendor=\"${cpu_vendor}\";${dt}.cpu_family=\"${cpu_family} ${cpu_series}\";${dt}.cpu_cores=\"${cpu_cores}\";"`
+ fi
+ sed -i "s/if(Ext.isDefined(${dt}.cpu_vendor/${cpu_info}if(Ext.isDefined(${dt}.cpu_vendor/g" $BKUP_DIR/admin_center.js
+ fi
+ else
+ COMMENT08_FN
+ fi
+}
+
+APPLY_FN () {
+ if [ -f "$BKUP_DIR/admin_center.js" ] && [ -f "$BKUP_DIR/mobile.js" ]
+ then
+ cp -Rf $BKUP_DIR/admin_center.js $WORK_DIR/
+ cp -Rf $BKUP_DIR/mobile.js $MWORK_DIR/
+ if [ -f "$BKUP_DIR/System.js" ]
+ then
+ cp -Rf $BKUP_DIR/System.js $SWORK_DIR/
+ rm -rf $BKUP_DIR/System.js
+ fi
+ if [ "$MA_VER" -eq "6" ] && [ "$MI_VER" -lt "2" ]
+ then
+ rm -rf $BKUP_DIR/admin_center.js
+ rm -rf $BKUP_DIR/mobile.js
+ else
+ gzip -f $BKUP_DIR/admin_center.js
+ gzip -f $BKUP_DIR/mobile.js
+ mv $BKUP_DIR/admin_center.js.gz $WORK_DIR/
+ mv $BKUP_DIR/mobile.js.gz $MWORK_DIR/
+ fi
+ else
+ COMMENT08_FN
+ fi
+}
+
+RECOVER_FN () {
+ if [ -d "$BKUP_DIR/$TIME" ]
+ then
+ cd $WORK_DIR
+ tar -xf $BKUP_DIR/$TIME/admin_center.tar
+ if [ -f "$BKUP_DIR/$TIME/mobile.tar" ]
+ then
+ cd $MWORK_DIR
+ tar -xf $BKUP_DIR/$TIME/mobile.tar
+ fi
+ if [ -f "$BKUP_DIR/$TIME/System.tar" ]
+ then
+ cd $SWORK_DIR
+ tar -xf $BKUP_DIR/$TIME/System.tar
+ fi
+ if [ "$re_check" == "y" ]
+ then
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO02\n"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "원본으로 복구후 계속 수행합니다.\n"
+ else
+ echo -e "Restore to Original Source and Continue.\n"
+ fi
+ else
+ COMMENT09_FN
+ fi
+ else
+ COMMENT08_FN
+ fi
+}
+
+RERUN_FN () {
+ if [ "$1" == "redo" ]
+ then
+ ls -l $BKUP_DIR/ | grep ^d | grep -v "$BL_CHK" | awk '{print "rm -rf '$BKUP_DIR'/"$9}' | sh
+ GATHER_FN
+ if [ -f "$WORK_DIR/admin_center.js" ] && [ -f "$MWORK_DIR/mobile.js" ]
+ then
+ if [ "$MA_VER" -ge "7" ]
+ then
+ info_cnt=`cat $WORK_DIR/admin_center.js | egrep "${dt}.model\]\),Ext.isDefined\(${dt}.cpu_vendor" | wc -l`
+ if [ -f "$BKUP_DIR/System.js" ]
+ then
+ info_cnt_s=`cat $WORK_DIR/admin_center.js | egrep "${st}.model\]\),Ext.isDefined\(${st}.cpu_vendor" | wc -l`
+ fi
+ else
+ info_cnt=`cat $WORK_DIR/admin_center.js | egrep ".model\]\);if\(Ext.isDefined|.model\]\)\}if\(Ext.isDefined" | wc -l`
+ fi
+ info_cnt_m=`cat $MWORK_DIR/mobile.js | grep "ds_model\")},{name:\"ram_size" | wc -l`
+ if [ "$info_cnt" -eq "0" ] && [ "$info_cnt_m" -eq "0" ]
+ then
+ ODCNT_CHK=`cat $WORK_DIR/admin_center.js | grep "cpu_cores=\"$ODCNT\"" | wc -l`
+ if [ "$ODCNT_CHK" -gt "0" ]
+ then
+ cpu_cores="$ODCNT"
+ fi
+ if [ "$MA_VER" -ge "6" ]
+ then
+ if [ "$MA_VER" -ge "7" ]
+ then
+ cpu_info="${dt}.cpu_vendor=\\\"${cpu_vendor}\\\",${dt}.cpu_family=\\\"${cpu_family}\\\",${dt}.cpu_series=\\\"${cpu_series}\\\",${dt}.cpu_cores=\\\"${cpu_cores}\\\",${dt}.cpu_detail=\\\"${cpu_detail}\\\","
+ cpu_info_s="${st}.cpu_vendor=\\\"${cpu_vendor}\\\",${st}.cpu_family=\\\"${cpu_family}\\\",${st}.cpu_series=\\\"${cpu_series}\\\",${st}.cpu_cores=\\\"${cpu_cores}\\\",${st}.cpu_detail=\\\"${cpu_detail}\\\","
+ else
+ cpu_info="${dt}.cpu_vendor=\\\"${cpu_vendor}\\\";${dt}.cpu_family=\\\"${cpu_family}\\\";${dt}.cpu_series=\\\"${cpu_series}\\\";${dt}.cpu_cores=\\\"${cpu_cores}\\\";${dt}.cpu_detail=\\\"${cpu_detail}\\\";"
+ fi
+ sed -i "s/${cpu_info}//g" $WORK_DIR/admin_center.js
+ sed -i "s/${dt}.cpu_detail)])/)])/g" $WORK_DIR/admin_center.js
+ sed -i "s/{2} {3}\",${dt}.cpu_vendor/{2}\",${dt}.cpu_vendor/g" $WORK_DIR/admin_center.js
+
+ ODCNT_CHK=`cat $MWORK_DIR/mobile.js | grep "cpu_cores=\"$ODCNT\"" | wc -l`
+ if [ "$ODCNT_CHK" -gt "0" ]
+ then
+ cpu_cores="$ODCNT"
+ fi
+
+ cpu_info_m="{name: \\\"cpu_series\\\",renderer: function(value){var cpu_vendor=\\\"${cpu_vendor}\\\";var cpu_family=\\\"${cpu_family}\\\";var cpu_series=\\\"${cpu_series}\\\";var cpu_cores=\\\"${cpu_cores}\\\";return Ext.String.format('{0} {1} {2} [ {3} ]', cpu_vendor, cpu_family, cpu_series, cpu_cores);},label: _T(\\\"status\\\", \\\"cpu_model_name\\\")},"
+ sed -i "s/${cpu_info_m}//g" $MWORK_DIR/mobile.js
+ if [[ "$MA_VER" -eq "6" && "$MI_VER" -ge "2" ]] || [ "$MA_VER" -eq "7" ]
+ then
+ cp -Rf $WORK_DIR/admin_center.js $WORK_DIR/admin_center.js.1
+ cp -Rf $MWORK_DIR/mobile.js $MWORK_DIR/mobile.js.1
+ gzip -f $WORK_DIR/admin_center.js
+ gzip -f $MWORK_DIR/mobile.js
+ mv $WORK_DIR/admin_center.js.1 $WORK_DIR/admin_center.js
+ mv $MWORK_DIR/mobile.js.1 $MWORK_DIR/mobile.js
+ fi
+ else
+ if [ "$MI_VER" -gt "0" ]
+ then
+ cpu_info="${dt}.cpu_vendor=\\\"${cpu_vendor}\\\";${dt}.cpu_family=\\\"${cpu_family}\\\";${dt}.cpu_series=\\\"${cpu_series}\\\";${dt}.cpu_cores=\\\"${cpu_cores}\\\";"
+ else
+ cpu_info="${dt}.cpu_vendor=\\\"${cpu_vendor}\\\";${dt}.cpu_family=\\\"${cpu_family} ${cpu_series}\\\";${dt}.cpu_cores=\\\"${cpu_cores}\\\";"
+ fi
+ sed -i "s/${cpu_info}//g" $WORK_DIR/admin_center.js
+ fi
+ fi
+ else
+ COMMENT08_FN
+ fi
+ fi
+}
+
+BLCHECK_FN () {
+ bl_check=n
+ if [ -d "$BKUP_DIR" ]
+ then
+ BK_CNT=`ls -l $BKUP_DIR/ | grep ^d | wc -l`
+ if [ "$BK_CNT" -gt "0" ]
+ then
+ BK_CNT=`ls -l $BKUP_DIR/ | grep ^d | grep "$BL_CHK" | wc -l`
+ if [ "$BK_CNT" -gt "0" ]
+ then
+ TIME=`ls -l $BKUP_DIR/ | grep ^d | grep "$BL_CHK" | awk '{print $9}' | head -1`
+ BK_CNT=`ls -l $BKUP_DIR/ | grep ^d | grep -v "$BL_CHK" | wc -l`
+ if [ "$BK_CNT" -gt "0" ]
+ then
+ BLSUB_FN "$1"
+ else
+ if [ "$re_check" == "n" ]
+ then
+ if [ "$1" == "run" ]
+ then
+ COMMENT03_FN
+ fi
+ COMMENT05_FN
+ else
+ STIME=`ls -l $BKUP_DIR/ | grep ^d | awk '{print $9}' | head -1`
+ BLSUB_FN "redo"
+ fi
+ fi
+ else
+ if [ "$1" == "restore" ]
+ then
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO03\n"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "이전버전 백업경로를 제거합니다.\n"
+ else
+ echo -e "Delete Previos Version Backup Location.\n"
+ fi
+ rm -rf $BKUP_DIR
+ COMMENT07_FN
+ else
+ BK_CNT=`ls -l $BKUP_DIR/ | grep ^d | grep -v "$BL_CHK" | wc -l`
+ if [ "$BK_CNT" -gt "0" ]
+ then
+ BL_COM=`ls -l $BKUP_DIR/ | grep ^d | awk '{print $9}' | head -1 | awk -F_ '{print $2}'`
+ BL_CNT=`ls -l $BKUP_DIR/ | grep ^d | awk '{print $9}' | head -1 | awk -F_ '{print $2}' | wc -l`
+ if [ "$BL_COM" == "" ]
+ then
+ if [ "$BL_CNT" -gt "0" ]
+ then
+ BLSUB_FN "$1"
+ bl_check=y
+ else
+ COMMENT06_FN
+ fi
+ else
+ TIME=`ls -l $BKUP_DIR/ | grep ^d | awk '{print $9}' | head -1`
+ if [ "$BL_CHK" == "$BL_COM" ]
+ then
+ if [ "$1" == "run" ]
+ then
+ COMMENT03_FN
+ else
+ COMMENT05_FN
+ bl_check=n
+ fi
+ else
+ if [ "$BL_CHK" -gt "$BL_COM" ]
+ then
+ BLSUB_FN "$1"
+ bl_check=y
+ else
+ COMMENT06_FN
+ fi
+ fi
+ fi
+ else
+ COMMENT06_FN
+ fi
+ fi
+ fi
+ else
+ CASE_FN "$1"
+ fi
+ else
+ CASE_FN "$1"
+ fi
+}
+
+BLSUB_FN () {
+ TIME=`echo "$STIME"`
+ if [ "$1" == "run" ]
+ then
+ RERUN_FN "redo"
+ else
+ RERUN_FN "$1"
+ fi
+ COMMENT05_FN
+}
+
+CASE_FN () {
+ case "$1" in
+ run) COMMENT05_FN ;;
+ redo) COMMENT07_FN ;;
+ restore) COMMENT07_FN ;;
+ *) COMMENT06_FN ;;
+ esac
+}
+
+EXEC_FN () {
+if [ -d $WORK_DIR ]
+then
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ READ_YN "$MSGECHO04 "
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ READ_YN "자동으로 실행합니다. n 선택시 대화형모드로 진행합니다. (취소하려면 q) [y/n] : "
+ else
+ READ_YN "Auto Excute, If you select n, proceed interactively (Cancel : q) [y/n] : "
+ fi
+ if [ "$Y_N" == "y" ]
+ then
+ mkdir -p $BKUP_DIR/$TIME
+
+ if [ "$re_check" == "y" ]
+ then
+ if [ "$bl_check" == "y" ]
+ then
+ COMMENT04_FN
+ else
+ RECOVER_FN
+ fi
+ fi
+
+ PREPARE_FN
+
+ GATHER_FN
+
+ PERFORM_FN
+
+ APPLY_FN
+
+ COMMENT09_FN
+
+ elif [ "$Y_N" == "n" ]
+ then
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ READ_YN "$MSGECHO05 "
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ READ_YN "원본백업 및 준비진행합니다. n 선택 시 원본에 직접작업합니다. (취소하려면 q) [y/n] : "
+ else
+ READ_YN "Proceed with original file backup and preparation.. If you select n, Work directly on the original file. (Cancel : q) [y/n] : "
+ fi
+ if [ "$Y_N" == "y" ]
+ then
+ mkdir -p $BKUP_DIR/$TIME
+
+ if [ "$re_check" == "y" ]
+ then
+ if [ "$bl_check" == "y" ]
+ then
+ COMMENT04_FN
+ else
+ RECOVER_FN
+ fi
+ fi
+
+ PREPARE_FN
+
+ elif [ "$Y_N" == "n" ]
+ then
+ direct_job=y
+ mkdir -p $BKUP_DIR
+ PREPARE_FN
+ else
+ COMMENT10_FN
+ fi
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ READ_YN "$MSGECHO06 "
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ READ_YN "CPU이름, 코어수 측정 후 반영합니다. n 선택 시 원복합니다. (취소하려면 q) [y/n] : "
+ else
+ READ_YN "CPU name, Core count and reflects it. If you select n, Resote original file (Cancel : q) [y/n] : "
+ fi
+ if [ "$Y_N" == "y" ]
+ then
+ GATHER_FN
+
+ PERFORM_FN
+
+ APPLY_FN
+
+ COMMENT09_FN
+ elif [ "$Y_N" == "n" ]
+ then
+ if [ -d "$BKUP_DIR" ]
+ then
+ gzip $BKUP_DIR/admin_center.js
+ gzip $BKUP_DIR/mobile.js
+ mv $BKUP_DIR/admin_center.js.gz $WORK_DIR/
+ mv $BKUP_DIR/mobile.js.gz $MWORK_DIR/
+ COMMENT09_FN
+ else
+ COMMENT07_FN
+ fi
+ else
+ COMMENT10_FN
+ fi
+ else
+ COMMENT10_FN
+ fi
+else
+ COMMENT08_FN
+fi
+}
+
+COMMENT03_FN () {
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO07\n"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "동일버전 실행 이력이 있습니다. 2) 다시실행 으로 진행바랍니다.\n"
+ else
+ echo -e "There is a history of running the same version. Please run again select 2) redo .\n"
+ fi
+ exit 0
+}
+
+COMMENT04_FN () {
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO08\n"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "상위버전 설치시 원복작업은 없습니다. 계속진행합니다.\n"
+ else
+ echo -e "Do not restore to source when installing a higher version. Contiue...\n"
+ fi
+}
+
+COMMENT05_FN () {
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO09\n"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "이전버전 설치 확인 및 조치완료 했습니다. 계속진행합니다.\n"
+ else
+ echo -e "You have verified and installed the previous version. Contiue...\n"
+ fi
+}
+
+COMMENT06_FN () {
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO10"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "문제가 발생하여 종료합니다. 확인 후 다시 진행해주세요."
+ else
+ echo -e "Problem and exit. Please run again after checking."
+ fi
+ exit 0
+}
+
+COMMENT07_FN () {
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO11"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "현재버전에서 수행이력이 없습니다. 처음실행으로 다시 진행해주세요."
+ else
+ echo -e "No execution history at this version. Please go back to the first run."
+ fi
+ exit 0
+}
+
+COMMENT08_FN () {
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO12"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "작업대상 파일(경로)이 존재하지 않습니다. 확인 후 다시 진행해주세요."
+ else
+ echo -e "The target file(location) does not exist. Please run again after checking."
+ fi
+ exit 0
+}
+
+COMMENT09_FN () {
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ if [ -f "$SWORK_DIR/System.js" ]
+ then
+ echo -e "$MSGECHO13"
+ fi
+ echo -e "$MSGECHO13"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ if [ -f "$SWORK_DIR/System.js" ]
+ then
+ echo -e "Surveillance Studio를 사용하는 경우 Surveillance Studio 시스템 정보에도 반영됩니다."
+ fi
+ echo -e "작업이완료 되었습니다!! 반영에는 약 1~2분 소요되며, \n(F5로 DSM 페이지 새로고침 후 또는 로그아웃/로그인 후 정보를 확인바랍니다."
+ else
+ if [ -f "$SWORK_DIR/System.js" ]
+ then
+ echo -e "If you use Surveillance Studio, it also applies to Surveillance Studio System Information."
+ fi
+ echo -e "The operation is complete!! It takes about 1-2 minutes to apply, \n(Please refresh the DSM page with F5 or after logout/login and check the information.)"
+ fi
+ exit 0
+}
+
+COMMENT10_FN () {
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO14"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "y / n / q 만 입력가능합니다. 다시진행해주세요."
+ else
+ echo -e "Only y / n / q can be input. Please proceed again."
+ fi
+ exit 0
+}
+
+# ==============================================================================
+# Main Progress
+# ==============================================================================
+clear
+WORK_DIR="/usr/syno/synoman/webman/modules/AdminCenter"
+SWORK_DIR="/var/packages/SurveillanceStation/target/ui/modules/System"
+MWORK_DIR="/usr/syno/synoman/mobile/ui"
+BKUP_DIR="/root/Xpenology_backup"
+VER_DIR="/etc.default"
+
+if [ "$LC_CHK" == "CUSTOMLANG" ]
+then
+ cecho c "$MSGECHO15\033[0;31m"$ver"\033[00m - $MSGECHO16 FOXBI\n"
+elif [ "$LC_CHK" == "Seoul" ]
+then
+ cecho c "DSM CPU 정보 변경 도구 ver. \033[0;31m"$ver"\033[00m - FOXBI 제작\n"
+else
+ cecho c "DSM CPU Information Change Tool ver. \033[0;31m"$ver"\033[00m - made by FOXBI\n"
+fi
+
+if [ -d "$VER_DIR" ]
+then
+ VER_FIL="$VER_DIR/VERSION"
+else
+ VER_FIL="/etc/VERSION"
+fi
+
+if [ -f "$VER_FIL" ]
+then
+ MA_VER=`cat $VER_FIL | grep majorversion | awk -F \= '{print $2}' | sed 's/\"//g'`
+ MI_VER=`cat $VER_FIL | grep minorversion | awk -F \= '{print $2}' | sed 's/\"//g'`
+ PD_VER=`cat $VER_FIL | grep productversion | awk -F \= '{print $2}' | sed 's/\"//g'`
+ BL_NUM=`cat $VER_FIL | grep buildnumber | awk -F \= '{print $2}' | sed 's/\"//g'`
+ BL_FIX=`cat $VER_FIL | grep smallfixnumber | awk -F \= '{print $2}' | sed 's/\"//g'`
+ if [ "$BL_FIX" -gt "0" ]
+ then
+ BL_UP="Update $BL_FIX"
+ else
+ BL_UP=""
+ fi
+else
+ COMMENT08_FN
+fi
+
+BL_CHK=$BL_NUM$BL_FIX
+TIME=`date +%Y%m%d%H%M%S`"_"$BL_CHK
+STIME="$TIME"
+
+if [ "$MA_VER" -gt "4" ]
+then
+ if [ "$MA_VER" -eq "5" ]
+ then
+ MWORK_DIR="/usr/syno/synoman/webman/mapp"
+ fi
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ cecho g "$MSGECHO17 \033[0;36mDSM \033[0;31m"$PD_VER"-"$BL_NUM" $BL_UP \033[0;32m \033[00m\n"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ cecho g "사용중인 DSM 버전은 \033[0;36mDSM \033[0;31m"$PD_VER"-"$BL_NUM" $BL_UP\033[0;32m 입니다. \033[00m\n"
+ else
+ cecho g "Your version of DSM is \033[0;36mDSM \033[0;31m"$PD_VER"-"$BL_NUM" $BL_UP \033[0;32m \033[00m\n"
+ fi
+else
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO19"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "DSM 5 버전미만은 지원하지 않습니다. 진행을 종료합니다."
+ else
+ echo -e "DSM version less than 5 is not supported. End the process."
+ fi
+ exit 0
+fi
+
+if [ "$MA_VER" -ge "6" ]
+then
+ if [ "$MA_VER" -ge "7" ]
+ then
+ dt=t
+ st=e
+ else
+ if [ "$BL_NUM" -ge "24922" ]
+ then
+ if [ "$BL_NUM" -ge "25423" ]
+ then
+ dt=g
+ else
+ dt=h
+ fi
+ else
+ dt=f
+ fi
+ fi
+else
+ dt=b
+fi
+
+GATHER_FN
+
+cpu_cores=`echo ${cpu_cores}"-"${cpu_gen} | sed 's/\\\//g'`
+
+if [ "$LC_CHK" == "CUSTOMLANG" ]
+then
+ cecho g "$MSGECHO26\033[00m\n"
+ cesho g "\033[0;36m${cpu_vendor} ${cpu_family} ${cpu_series} \033[0;31m[\033[0;36m${cpu_cores}\033[0;31m] \033[0;32m$MSGECHO18...\033[00m\n"
+elif [ "$LC_CHK" == "Seoul" ]
+then
+ cecho g "적용 할 사용 중인 CPU 정보는 아래와 같습니다. 확인 후 진행바랍니다.\033[00m\n"
+ cecho g "\033[0;36m${cpu_vendor} ${cpu_family} ${cpu_series} \033[0;31m[\033[0;36m${cpu_cores}\033[0;31m] \033[0;32m계속 진행합니다..\033[00m\n"
+else
+ cecho g "The CPU information to be applied is as follows.\033[00m\n"
+ cecho g "\033[0;36m${cpu_vendor} ${cpu_family} ${cpu_series} \033[0;31m[\033[0;36m${cpu_cores}\033[0;31m] \033[0;32mcontinue...\033[00m\n"
+fi
+
+if [ "$LC_CHK" == "CUSTOMLANG" ]
+then
+ read -n1 -p "$MSGECHO20 " run_select
+elif [ "$LC_CHK" == "Seoul" ]
+then
+ read -n1 -p "1) 처음실행 2) 다시실행 3) 원상복구 - 번호 선택하세요 : " run_select
+else
+ read -n1 -p "1) First run 2) Redo 3) Restore - Select Number : " run_select
+fi
+ case "$run_select" in
+ 1) run_check=run
+ echo -e "\n " ;;
+ 2) run_check=redo
+ echo -e "\n " ;;
+ 3) run_check=restore
+ echo -e "\n " ;;
+ *) echo -e "\n" ;;
+ esac
+
+if [ "$run_check" == "redo" ]
+then
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ READ_YN "$MSGECHO21"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ READ_YN "다시실행을 진행하시겠습니까? 원본백업으로 복구 후 진행합니다.(취소하려면 q) [y/n] : "
+ else
+ READ_YN "Do you want to proceed again? Restore to original file backup and proceed.(Cancel : q) [y/n] : "
+ fi
+ if [ "$Y_N" == "y" ]
+ then
+ re_check=y
+ BLCHECK_FN "$run_check"
+ run_check=run
+ EXEC_FN
+ elif [ "$Y_N" == "n" ]
+ then
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO22"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "다시실행을 진행하지 않습니다."
+ else
+ echo -e "Do not proceed with the redo."
+ fi
+ else
+ COMMENT10_FN
+ fi
+elif [ "$run_check" == "restore" ]
+then
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ READ_YN "$MSGECHO23 "
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ READ_YN "원본 백업파일을 이용하여 복구를 진행하시겠습니까? (취소하려면 q) [y/n] : "
+ else
+ READ_YN "Do you want to restore using the original backup file? (Cancel : q) [y/n] : "
+ fi
+ if [ "$Y_N" == "y" ]
+ then
+ re_check=n
+ BLCHECK_FN "$run_check"
+ RECOVER_FN
+ elif [ "$Y_N" == "n" ]
+ then
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO24"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "복구를 진행하지 않습니다."
+ else
+ echo -e "No restore was performed."
+ fi
+ else
+ COMMENT10_FN
+ fi
+elif [ "$run_check" == "run" ]
+then
+ re_check=n
+ BLCHECK_FN "$run_check"
+ EXEC_FN
+else
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO25"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "올바른 번호선택바랍니다."
+ else
+ echo -e "Please select the correct number."
+ fi
+fi
\ No newline at end of file
diff --git a/Archive/ch_cpuinfo_4.2.0/ch_cpuinfo.tar b/Archive/ch_cpuinfo_4.2.0/ch_cpuinfo.tar
new file mode 100644
index 0000000..07b2a12
Binary files /dev/null and b/Archive/ch_cpuinfo_4.2.0/ch_cpuinfo.tar differ
diff --git a/Archive/ch_cpuinfo_4.2.1/LANG.txt b/Archive/ch_cpuinfo_4.2.1/LANG.txt
new file mode 100644
index 0000000..b427708
--- /dev/null
+++ b/Archive/ch_cpuinfo_4.2.1/LANG.txt
@@ -0,0 +1,40 @@
+## Do not Change variable!!!
+##
+## If you change to Y value of CUSTLANG,
+## You can do change messages contents to your language.
+##
+## Change the value of MSGECHO to use
+##
+CUSTLANG=N
+##
+##
+### Messages Contents
+MSGECHO01="warning!! Work directly on the original file without backup."
+MSGECHO02="Restore to Original Source and Continue."
+MSGECHO03="Delete Previos Version Backup Location."
+MSGECHO04="Auto Excute, If you select n, proceed interactively (Cancel : q) [y/n] :"
+MSGECHO05="Proceed with original file backup and preparation.. If you select n, Work directly on the original file. (Cancel : q) [y/n] :"
+MSGECHO06="CPU name, Core count and reflects it. If you select n, Resote original file (Cancel : q) [y/n] :"
+MSGECHO07="There is a history of running the same version. Please run again select 2) redo ."
+MSGECHO08="Do not restore to source when installing a higher version. Contiue..."
+MSGECHO09="You have verified and installed the previous version. Contiue..."
+MSGECHO10="Problem and exit. Please run again after checking."
+MSGECHO11="No execution history at this version. Please go back to the first run."
+MSGECHO12="The target file(location) does not exist. Please run again after checking."
+MSGECHO13="The operation is complete!! It takes about 1-2 minutes to apply, \n(Please refresh the DSM page with F5 or after logout/login and check the information.)"
+MSGECHO14="Only y / n / q can be input. Please proceed again."
+MSGECHO15="DSM CPU Information Change Tool ver."
+MSGECHO16="made by"
+MSGECHO17="Your version of DSM is"
+MSGECHO18="continue"
+MSGECHO19="DSM version less than 5 is not supported. End the process."
+MSGECHO20="1) First run 2) Redo 3) Restore - Select Number :"
+MSGECHO21="Do you want to proceed again? Restore to original file backup and proceed.(Cancel : q) [y/n] :"
+MSGECHO22="Do not proceed with the redo."
+MSGECHO23="Do you want to restore using the original backup file? (Cancel : q) [y/n] :"
+MSGECHO24="No restore was performed."
+MSGECHO25="Please select the correct number."
+## Add inforation 2021.09.30
+MSGECHO26="The CPU information to be applied is as follows."
+## Add inforation 2023.02.17
+MSGECHO27="If you use Surveillance Studio, it also applies to Surveillance Studio System Information."
diff --git a/Archive/ch_cpuinfo_4.2.1/ch_cpuinfo.sh b/Archive/ch_cpuinfo_4.2.1/ch_cpuinfo.sh
new file mode 100644
index 0000000..f6c92b3
--- /dev/null
+++ b/Archive/ch_cpuinfo_4.2.1/ch_cpuinfo.sh
@@ -0,0 +1,996 @@
+#!/bin/sh
+# Updated 2023.03.05 - By FOXBI
+# htttps://github.com/foxbi/ch_cpuinfo
+ver="4.2.1-r01"
+# ==============================================================================
+# Location Check
+# ==============================================================================
+if [ -f "LANG.txt" ]
+then
+ source ./LANG.txt
+ if [ "$CUSTLANG" == "Y" ]
+ then
+ LC_CHK="CUSTOMLANG"
+ else
+ LC_CHK=`cat /etc/synoinfo.conf | grep timezone | awk -F= '{print $2}' | sed 's/"//g'`
+ fi
+else
+ LC_CHK=`cat /etc/synoinfo.conf | grep timezone | awk -F= '{print $2}' | sed 's/"//g'`
+fi
+# ==============================================================================
+# Y or N Function
+# ==============================================================================
+READ_YN () { # $1:question $2:default
+ read -n1 -p "$1" Y_N
+ case "$Y_N" in
+ y) Y_N="y"
+ echo -e "\n" ;;
+ n) Y_N="n"
+ echo -e "\n" ;;
+ q) echo -e "\n"
+ exit 0 ;;
+ *) echo -e "\n" ;;
+ esac
+}
+# ==============================================================================
+# Color Function
+# ==============================================================================
+cecho() {
+ if [ -n "$3" ]
+ then
+ case "$3" in
+ black | bk) bgcolor="40";;
+ red | r) bgcolor="41";;
+ green | g) bgcolor="42";;
+ yellow | y) bgcolor="43";;
+ blue | b) bgcolor="44";;
+ purple | p) bgcolor="45";;
+ cyan | c) bgcolor="46";;
+ gray | gr) bgcolor="47";;
+ esac
+ else
+ bgcolor="0"
+ fi
+ code="\033["
+ case "$1" in
+ black | bk) color="${code}${bgcolor};30m";;
+ red | r) color="${code}${bgcolor};31m";;
+ green | g) color="${code}${bgcolor};32m";;
+ yellow | y) color="${code}${bgcolor};33m";;
+ blue | b) color="${code}${bgcolor};34m";;
+ purple | p) color="${code}${bgcolor};35m";;
+ cyan | c) color="${code}${bgcolor};36m";;
+ gray | gr) color="${code}${bgcolor};37m";;
+ esac
+
+ text="$color$2${code}0m"
+ echo -e "$text"
+}
+# ==============================================================================
+# Process Function
+# ==============================================================================
+PREPARE_FN () {
+ if [ -f "$WORK_DIR/admin_center.js" ] && [ -f "$MWORK_DIR/mobile.js" ]
+ then
+ if [ "$direct_job" == "y" ]
+ then
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ cecho r "$MSGECHO01\n"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ cecho r "경고!! 백업하지 않고 원본에 직접 작업합니다.\n"
+ else
+ cecho r "warning!! Work directly on the original file without backup.\n"
+ fi
+ else
+ cd $WORK_DIR
+ tar -cf $BKUP_DIR/$TIME/admin_center.tar admin_center.js*
+ cd $MWORK_DIR
+ tar -cf $BKUP_DIR/$TIME/mobile.tar mobile.js*
+ if [ -f "$SWORK_DIR/System.js" ]
+ then
+ cd $SWORK_DIR
+ tar -cf $BKUP_DIR/$TIME/System.tar System.js*
+ cp -Rf $SWORK_DIR/System.js $BKUP_DIR/
+ fi
+ fi
+ if [ "$MA_VER" -eq "6" ] && [ "$MI_VER" -ge "2" ]
+ then
+ mv $WORK_DIR/admin_center.js.gz $BKUP_DIR/
+ mv $MWORK_DIR/mobile.js.gz $BKUP_DIR/
+ if [ -f "$SWORK_DIR/System.js" ]
+ then
+ cp -Rf $SWORK_DIR/System.js $BKUP_DIR/
+ fi
+ cd $BKUP_DIR/
+ gzip -df $BKUP_DIR/admin_center.js.gz
+ gzip -df $BKUP_DIR/mobile.js.gz
+ else
+ cp -Rf $WORK_DIR/admin_center.js $BKUP_DIR/
+ cp -Rf $MWORK_DIR/mobile.js $BKUP_DIR/
+ if [ -f "$SWORK_DIR/System.js" ]
+ then
+ cp -Rf $SWORK_DIR/System.js $BKUP_DIR/
+ fi
+ fi
+ else
+ COMMENT08_FN
+ fi
+}
+
+GATHER_FN () {
+ cpu_vendor_chk=`cat /proc/cpuinfo | grep model | grep name | sort -u | sed "s/(.)//g" | sed "s/(..)//g" | sed "s/CPU//g" | grep AMD | wc -l`
+ if [ "$cpu_vendor_chk" -gt "0" ]
+ then
+ cpu_vendor="AMD"
+ else
+ cpu_vendor_chk=`cat /proc/cpuinfo | grep model | grep name | sort -u | sed "s/(.)//g" | sed "s/(..)//g" | sed "s/CPU//g" | grep Intel | wc -l`
+ if [ "$cpu_vendor_chk" -gt "0" ]
+ then
+ cpu_vendor="Intel"
+ else
+ cpu_vendor=`cat /proc/cpuinfo | grep Hardware | sort -u | awk '{print $3}' | head -1`
+ if [ -z "$cpu_vendor" ]
+ then
+ cpu_vendor=`cat /proc/cpuinfo grep model | grep name | sort -u | awk '{print $3}' | head -1`
+ fi
+ fi
+ fi
+ if [ "$cpu_vendor" == "AMD" ]
+ then
+ pro_cnt=`cat /proc/cpuinfo | grep model | grep name | sort -u | awk -F: '{print $2}' | sed "s/^\s*AMD//g" | sed "s/^\s//g" | head -1 | grep -wi "PRO" | wc -l`
+ if [ "$pro_cnt" -gt 0 ]
+ then
+ pro_chk="-wi PRO"
+ else
+ pro_chk="-v PRO"
+ fi
+ cpu_series=`cat /proc/cpuinfo | grep model | grep name | sort -u | awk -F: '{print $2}' | sed "s/^\s*AMD//g" | sed "s/^\s//g" | head -1 | awk '{ for(i = NF; i > 1; i--) if ($i ~ /^[0-9]/) { for(j=i;j<=NF;j++)printf("%s ", $j);print("\n");break; }}' | sed "s/ *$//g"`
+ if [ -z "$cpu_series" ]
+ then
+ cpu_series=`cat /proc/cpuinfo | grep model | grep name | sort -u | awk -F: '{print $2}' | sed "s/^\s*AMD//g" | sed "s/^\s//g" | head -1 | awk '{ for(i = NF; i >= 1; i--) if ($i ~ ".*-.*") { print $i }}' | sed "s/ *$//g"`
+ fi
+ cpu_family=`cat /proc/cpuinfo | grep model | grep name | sort -u | awk -F: '{print $2}' | sed "s/^\s*AMD//g" | sed "s/^\s//g" | head -1 | awk -F"$cpu_series" '{print $1}' | sed "s/ *$//g"`
+ elif [ "$cpu_vendor" == "Intel" ]
+ then
+ cpu_family=`cat /proc/cpuinfo | grep model | grep name | sort -u | awk '{ for(i = 1; i < NF; i++) if ($i ~ /^Intel/) { for(j=i;j<=NF;j++)printf("%s ", $j);printf("\n") }}' | awk -F@ '{ print $1 }' | sed "s/(.)//g" | sed "s/(..)//g" | sed "s/ CPU//g" | awk '{print $2}' | head -1 | sed "s/ *$//g"`
+ cpu_series=`cat /proc/cpuinfo | grep model | grep name | sort -u | awk '{ for(i = 1; i < NF; i++) if ($i ~ /^Intel/) { for(j=i;j<=NF;j++)printf("%s ", $j);printf("\n") }}' | awk -F@ '{ print $1 }' | sed "s/(.)//g" | sed "s/(..)//g" | sed "s/ CPU//g" | awk -F"$cpu_family " '{print $2}' | head -1 | sed "s/ *$//g"`
+ if [ -z "$cpu_series" ]
+ then
+ cpu_series="Unknown"
+ fi
+ if [ "$cpu_family" == "Pentium" ]
+ then
+ cpu_series_b="$cpu_series"
+ cpu_series="$cpu_family $cpu_series"
+ else
+ m_chk=`echo "$cpu_series" | grep -wi ".* M .*" | wc -l`
+ if [ "$m_chk" -gt 0 ]
+ then
+ cpu_series=`echo "$cpu_series" | sed "s/ M /-/g" | awk '{print $0"M"}'`
+ fi
+ fi
+ else
+ cpu_family=`cat /proc/cpuinfo | grep model | grep name | sort -u | awk -F: '{print $2}' | sed "s/^\s*$cpu_vendor//g" | sed "s/^\s//g" | head -1`
+ cpu_series=""
+ fi
+ if [ "$cpu_vendor" == "Intel" ]
+ then
+ if [ "$cpu_series" == "ES" ] || [ "$cpu_series" == "Unkown" ]
+ then
+ cpu_detail="find<\/a>"
+ else
+ cpu_search="https://ark.intel.com/content/www/us/en/ark/search.html?_charset_=UTF-8&q=$cpu_series"
+ temp_file="/tmp/cpu_info_temp_url.txt"
+ wget -q -O $temp_file "$cpu_search"
+ url_cnt=`cat $temp_file | grep "FormRedirectUrl" | grep "hidden" | wc -l`
+ if [ "$url_cnt" -gt 0 ]
+ then
+ gen_url=`cat $temp_file | grep "FormRedirectUrl" | grep "hidden" | awk -F"value" '{print $2}' | awk -F\" '{print $2}'`
+ else
+ gen_url=`cat $temp_file | grep -wi "$cpu_series" | grep "href" | awk -F"href" '{print $2}' | awk -F\" '{print $2}'`
+ if [ "$cpu_family" == "Pentium" ]
+ then
+ chg_series=`echo $cpu_series | awk '{print "\\\-"$1"\\\-"$2"\\\-"}'`
+ gen_url=`cat $temp_file | grep -i "$chg_series" | grep "href" | awk -F"href" '{print $2}' | awk -F\" '{print $2}' | head -1`
+ cpu_series="$cpu_series_b"
+ fi
+ if [ -z "$gen_url" ]
+ then
+ chg_series=`echo $cpu_series | awk '{print "\\\-"$1".*"$2"\\\-"}'`
+ gen_url=`cat $temp_file | grep -i "$chg_series" | grep "href" | awk -F"href" '{print $2}' | awk -F\" '{print $2}' | head -1`
+ fi
+ fi
+ cpu_gen=`curl --silent https://ark.intel.com$gen_url | grep "Products formerly" | awk -F"Products formerly " '{print $2}' | sed "s/<\/a>//g"`
+ gen_url=`echo $gen_url | sed "s/\//\\\\\\\\\//g"`
+ cpu_detail="($cpu_gen) detail<\/a>"
+ fi
+ elif [ "$cpu_vendor" == "AMD" ]
+ then
+ cpu_search=`echo "$cpu_series" | awk '{print $1" "$2}'`
+ gen_url=`curl --silent -H "user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36" http://stackoverflow.com/questions/28760694/how-to-use-curl-to-get-a-get-request-exactly-same-as-using-chrome \
+ https://www.amd.com/en/products/specifications/processors | grep -wi "$cpu_search" | grep $pro_chk | awk -F"views-field" '{print $1}' | awk -F"entity-" '{print $2}'`
+ if [ -z "$gen_url" ]
+ then
+ chg_series=`echo $cpu_series | awk '{print $1}'`
+ gen_url=`curl --silent -H "user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36" http://stackoverflow.com/questions/28760694/how-to-use-curl-to-get-a-get-request-exactly-same-as-using-chrome \
+ https://www.amd.com/en/products/specifications/processors | grep -wi "$chg_series" | grep $pro_chk | awk -F"views-field" '{print $1}' | awk -F"entity-" '{print $2}'`
+ fi
+ if [ -z "$gen_url" ]
+ then
+ cpu_series=`cat /proc/cpuinfo | grep model | grep name | sort -u | awk -F: '{print $2}' | sed "s/^\s*AMD//g" | sed "s/^\s//g" | head -1 | awk '{ for(i = NF; i >= 1; i--) if ($i ~ ".*-.*") { print $i }}' | sed "s/ *$//g"`
+ cpu_family=`cat /proc/cpuinfo | grep model | grep name | sort -u | awk -F: '{print $2}' | sed "s/^\s*AMD//g" | sed "s/^\s//g" | head -1 | awk -F"$cpu_series" '{print $1}' | sed "s/ *$//g"`
+ chg_series=`echo $cpu_series | awk '{print $1}'`
+ gen_url=`curl --silent -H "user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36" http://stackoverflow.com/questions/28760694/how-to-use-curl-to-get-a-get-request-exactly-same-as-using-chrome \
+ https://www.amd.com/en/products/specifications/processors | grep -wi "$chg_series" | grep $pro_chk | awk -F"views-field" '{print $1}' | awk -F"entity-" '{print $2}'`
+ fi
+ cpu_gen=`curl --silent -H "user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36" http://stackoverflow.com/questions/28760694/how-to-use-curl-to-get-a-get-request-exactly-same-as-using-chrome \
+ https://www.amd.com/en/product/$gen_url | egrep -A 2 -w ">Former Codename<|>Architecture<" | grep "field__item" | sed "s/"/\"/g" | awk -F\"\>\" '{print $2}' | awk -F\" '{print $1}' | tr "\n" "| " | awk -F\| '{if($2=="") {print $1} else {print $1" | " $2}}'`
+ cpu_detail="($cpu_gen) detail<\/a>"
+ else
+ cpu_detail=""
+ fi
+
+ PICNT=`cat /proc/cpuinfo | grep "^physical id" | sort -u | wc -l`
+ CICNT=`cat /proc/cpuinfo | grep "^core id" | sort -u | wc -l`
+ CCCNT=`cat /proc/cpuinfo | grep "^cpu cores" | sort -u | awk '{print $NF}'`
+ CSCNT=`cat /proc/cpuinfo | grep "^siblings" | sort -u | awk '{print $NF}'`
+ THCNT=`cat /proc/cpuinfo | grep "^processor" | wc -l`
+ ODCNT=`cat /proc/cpuinfo | grep "processor" | wc -l`
+ if [ "$THCNT" -gt "0" ] && [ "$PICNT" == "0" ] && [ "$CICNT" == "0" ] && [ "$CCCNT" == "" ] && [ "$CSCNT" == "" ]
+ then
+ PICNT="1"
+ CICNT="$THCNT"
+ CCCNT="$THCNT"
+ CSCNT="$THCNT"
+ fi
+ if [ "$PICNT" -gt "1" ]
+ then
+ TPCNT="$PICNT CPUs"
+ TCCNT=`expr $PICNT \* $CCCNT`
+ else
+ TPCNT="$PICNT CPU"
+ TCCNT="$CCCNT"
+ fi
+ if [ "$TCCNT" -gt "1" ]
+ then
+ TCCNT="$TCCNT Cores "
+ else
+ TCCNT="$TCCNT Core "
+ fi
+ if [ "$CCCNT" -gt "1" ]
+ then
+ PCCNT="\/$CCCNT Cores "
+ else
+ PCCNT=" "
+ fi
+ if [ "$THCNT" -gt "1" ]
+ then
+ TTCNT="$THCNT Threads"
+ else
+ TTCNT="$THCNT Thread"
+ fi
+ cpu_cores="$TCCNT($TPCNT$PCCNT| $TTCNT)"
+}
+
+PERFORM_FN () {
+ if [ -f "$BKUP_DIR/admin_center.js" ] && [ -f "$BKUP_DIR/mobile.js" ]
+ then
+ if [ "$MA_VER" -ge "6" ]
+ then
+ if [ "$MA_VER" -ge "7" ]
+ then
+ cpu_info=`echo "${dt}.cpu_vendor=\"${cpu_vendor}\",${dt}.cpu_family=\"${cpu_family}\",${dt}.cpu_series=\"${cpu_series}\",${dt}.cpu_cores=\"${cpu_cores}\",${dt}.cpu_detail=\"${cpu_detail}\","`
+ sed -i "s/Ext.isDefined(${dt}.cpu_vendor/${cpu_info}Ext.isDefined(${dt}.cpu_vendor/g" $BKUP_DIR/admin_center.js
+ if [ -f "$BKUP_DIR/System.js" ]
+ then
+ cpu_info_s=`echo ${cpu_info} | sed "s/${dt}.cpu/${st}.cpu/g"`
+ sed -i "s/Ext.isDefined(${st}.cpu_vendor/${cpu_info_s}Ext.isDefined(${st}.cpu_vendor/g" $BKUP_DIR/System.js
+ fi
+ else
+ cpu_info=`echo "${dt}.cpu_vendor=\"${cpu_vendor}\";${dt}.cpu_family=\"${cpu_family}\";${dt}.cpu_series=\"${cpu_series}\";${dt}.cpu_cores=\"${cpu_cores}\";${dt}.cpu_detail=\"${cpu_detail}\";"`
+ sed -i "s/if(Ext.isDefined(${dt}.cpu_vendor/${cpu_info}if(Ext.isDefined(${dt}.cpu_vendor/g" $BKUP_DIR/admin_center.js
+ fi
+ sed -i "s/${dt}.cpu_series)])/${dt}.cpu_series,${dt}.cpu_detail)])/g" $BKUP_DIR/admin_center.js
+ sed -i "s/{2}\",${dt}.cpu_vendor/{2} {3}\",${dt}.cpu_vendor/g" $BKUP_DIR/admin_center.js
+ if [ -f "$BKUP_DIR/System.js" ]
+ then
+ sed -i "s/${st}.cpu_series)])/${st}.cpu_series,${st}.cpu_detail)])/g" $BKUP_DIR/System.js
+ sed -i "s/{2}\",${st}.cpu_vendor/{2} {3}\",${st}.cpu_vendor/g" $BKUP_DIR/System.js
+ fi
+ cpu_info_m=`echo "{name: \"cpu_series\",renderer: function(value){var cpu_vendor=\"${cpu_vendor}\";var cpu_family=\"${cpu_family}\";var cpu_series=\"${cpu_series}\";var cpu_cores=\"${cpu_cores}\";return Ext.String.format('{0} {1} {2} [ {3} ]', cpu_vendor, cpu_family, cpu_series, cpu_cores);},label: _T(\"status\", \"cpu_model_name\")},"`
+ sed -i "s/\"ds_model\")},/\"ds_model\")},${cpu_info_m}/g" $BKUP_DIR/mobile.js
+ else
+ if [ "$MI_VER" -gt "0" ]
+ then
+ cpu_info=`echo "${dt}.cpu_vendor=\"${cpu_vendor}\";${dt}.cpu_family=\"${cpu_family}\";${dt}.cpu_series=\"${cpu_series}\";${dt}.cpu_cores=\"${cpu_cores}\";"`
+ else
+ cpu_info=`echo "${dt}.cpu_vendor=\"${cpu_vendor}\";${dt}.cpu_family=\"${cpu_family} ${cpu_series}\";${dt}.cpu_cores=\"${cpu_cores}\";"`
+ fi
+ sed -i "s/if(Ext.isDefined(${dt}.cpu_vendor/${cpu_info}if(Ext.isDefined(${dt}.cpu_vendor/g" $BKUP_DIR/admin_center.js
+ fi
+ else
+ COMMENT08_FN
+ fi
+}
+
+APPLY_FN () {
+ if [ -f "$BKUP_DIR/admin_center.js" ] && [ -f "$BKUP_DIR/mobile.js" ]
+ then
+ cp -Rf $BKUP_DIR/admin_center.js $WORK_DIR/
+ cp -Rf $BKUP_DIR/mobile.js $MWORK_DIR/
+ if [ -f "$BKUP_DIR/System.js" ]
+ then
+ cp -Rf $BKUP_DIR/System.js $SWORK_DIR/
+ rm -rf $BKUP_DIR/System.js
+ fi
+ if [ "$MA_VER" -eq "6" ] && [ "$MI_VER" -lt "2" ]
+ then
+ rm -rf $BKUP_DIR/admin_center.js
+ rm -rf $BKUP_DIR/mobile.js
+ else
+ gzip -f $BKUP_DIR/admin_center.js
+ gzip -f $BKUP_DIR/mobile.js
+ mv $BKUP_DIR/admin_center.js.gz $WORK_DIR/
+ mv $BKUP_DIR/mobile.js.gz $MWORK_DIR/
+ fi
+ else
+ COMMENT08_FN
+ fi
+}
+
+RECOVER_FN () {
+ if [ -d "$BKUP_DIR/$TIME" ]
+ then
+ cd $WORK_DIR
+ tar -xf $BKUP_DIR/$TIME/admin_center.tar
+ if [ -f "$BKUP_DIR/$TIME/mobile.tar" ]
+ then
+ cd $MWORK_DIR
+ tar -xf $BKUP_DIR/$TIME/mobile.tar
+ fi
+ if [ -f "$BKUP_DIR/$TIME/System.tar" ]
+ then
+ cd $SWORK_DIR
+ tar -xf $BKUP_DIR/$TIME/System.tar
+ fi
+ if [ "$re_check" == "y" ]
+ then
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO02\n"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "원본으로 복구후 계속 수행합니다.\n"
+ else
+ echo -e "Restore to Original Source and Continue.\n"
+ fi
+ else
+ COMMENT09_FN
+ fi
+ else
+ COMMENT08_FN
+ fi
+}
+
+RERUN_FN () {
+ if [ "$1" == "redo" ]
+ then
+ ls -l $BKUP_DIR/ | grep ^d | grep -v "$BL_CHK" | awk '{print "rm -rf '$BKUP_DIR'/"$9}' | sh
+ GATHER_FN
+ if [ -f "$WORK_DIR/admin_center.js" ] && [ -f "$MWORK_DIR/mobile.js" ]
+ then
+ if [ "$MA_VER" -ge "7" ]
+ then
+ info_cnt=`cat $WORK_DIR/admin_center.js | egrep "${dt}.model\]\),Ext.isDefined\(${dt}.cpu_vendor" | wc -l`
+ if [ -f "$BKUP_DIR/System.js" ]
+ then
+ info_cnt_s=`cat $WORK_DIR/admin_center.js | egrep "${st}.model\]\),Ext.isDefined\(${st}.cpu_vendor" | wc -l`
+ fi
+ else
+ info_cnt=`cat $WORK_DIR/admin_center.js | egrep ".model\]\);if\(Ext.isDefined|.model\]\)\}if\(Ext.isDefined" | wc -l`
+ fi
+ info_cnt_m=`cat $MWORK_DIR/mobile.js | grep "ds_model\")},{name:\"ram_size" | wc -l`
+ if [ "$info_cnt" -eq "0" ] && [ "$info_cnt_m" -eq "0" ]
+ then
+ ODCNT_CHK=`cat $WORK_DIR/admin_center.js | grep "cpu_cores=\"$ODCNT\"" | wc -l`
+ if [ "$ODCNT_CHK" -gt "0" ]
+ then
+ cpu_cores="$ODCNT"
+ fi
+ if [ "$MA_VER" -ge "6" ]
+ then
+ if [ "$MA_VER" -ge "7" ]
+ then
+ cpu_info="${dt}.cpu_vendor=\\\"${cpu_vendor}\\\",${dt}.cpu_family=\\\"${cpu_family}\\\",${dt}.cpu_series=\\\"${cpu_series}\\\",${dt}.cpu_cores=\\\"${cpu_cores}\\\",${dt}.cpu_detail=\\\"${cpu_detail}\\\","
+ cpu_info_s="${st}.cpu_vendor=\\\"${cpu_vendor}\\\",${st}.cpu_family=\\\"${cpu_family}\\\",${st}.cpu_series=\\\"${cpu_series}\\\",${st}.cpu_cores=\\\"${cpu_cores}\\\",${st}.cpu_detail=\\\"${cpu_detail}\\\","
+ else
+ cpu_info="${dt}.cpu_vendor=\\\"${cpu_vendor}\\\";${dt}.cpu_family=\\\"${cpu_family}\\\";${dt}.cpu_series=\\\"${cpu_series}\\\";${dt}.cpu_cores=\\\"${cpu_cores}\\\";${dt}.cpu_detail=\\\"${cpu_detail}\\\";"
+ fi
+ sed -i "s/${cpu_info}//g" $WORK_DIR/admin_center.js
+ sed -i "s/${dt}.cpu_detail)])/)])/g" $WORK_DIR/admin_center.js
+ sed -i "s/{2} {3}\",${dt}.cpu_vendor/{2}\",${dt}.cpu_vendor/g" $WORK_DIR/admin_center.js
+
+ ODCNT_CHK=`cat $MWORK_DIR/mobile.js | grep "cpu_cores=\"$ODCNT\"" | wc -l`
+ if [ "$ODCNT_CHK" -gt "0" ]
+ then
+ cpu_cores="$ODCNT"
+ fi
+
+ cpu_info_m="{name: \\\"cpu_series\\\",renderer: function(value){var cpu_vendor=\\\"${cpu_vendor}\\\";var cpu_family=\\\"${cpu_family}\\\";var cpu_series=\\\"${cpu_series}\\\";var cpu_cores=\\\"${cpu_cores}\\\";return Ext.String.format('{0} {1} {2} [ {3} ]', cpu_vendor, cpu_family, cpu_series, cpu_cores);},label: _T(\\\"status\\\", \\\"cpu_model_name\\\")},"
+ sed -i "s/${cpu_info_m}//g" $MWORK_DIR/mobile.js
+ if [[ "$MA_VER" -eq "6" && "$MI_VER" -ge "2" ]] || [ "$MA_VER" -eq "7" ]
+ then
+ cp -Rf $WORK_DIR/admin_center.js $WORK_DIR/admin_center.js.1
+ cp -Rf $MWORK_DIR/mobile.js $MWORK_DIR/mobile.js.1
+ gzip -f $WORK_DIR/admin_center.js
+ gzip -f $MWORK_DIR/mobile.js
+ mv $WORK_DIR/admin_center.js.1 $WORK_DIR/admin_center.js
+ mv $MWORK_DIR/mobile.js.1 $MWORK_DIR/mobile.js
+ fi
+ else
+ if [ "$MI_VER" -gt "0" ]
+ then
+ cpu_info="${dt}.cpu_vendor=\\\"${cpu_vendor}\\\";${dt}.cpu_family=\\\"${cpu_family}\\\";${dt}.cpu_series=\\\"${cpu_series}\\\";${dt}.cpu_cores=\\\"${cpu_cores}\\\";"
+ else
+ cpu_info="${dt}.cpu_vendor=\\\"${cpu_vendor}\\\";${dt}.cpu_family=\\\"${cpu_family} ${cpu_series}\\\";${dt}.cpu_cores=\\\"${cpu_cores}\\\";"
+ fi
+ sed -i "s/${cpu_info}//g" $WORK_DIR/admin_center.js
+ fi
+ fi
+ else
+ COMMENT08_FN
+ fi
+ fi
+}
+
+BLCHECK_FN () {
+ bl_check=n
+ if [ -d "$BKUP_DIR" ]
+ then
+ BK_CNT=`ls -l $BKUP_DIR/ | grep ^d | wc -l`
+ if [ "$BK_CNT" -gt "0" ]
+ then
+ BK_CNT=`ls -l $BKUP_DIR/ | grep ^d | grep "$BL_CHK" | wc -l`
+ if [ "$BK_CNT" -gt "0" ]
+ then
+ TIME=`ls -l $BKUP_DIR/ | grep ^d | grep "$BL_CHK" | awk '{print $9}' | head -1`
+ BK_CNT=`ls -l $BKUP_DIR/ | grep ^d | grep -v "$BL_CHK" | wc -l`
+ if [ "$BK_CNT" -gt "0" ]
+ then
+ BLSUB_FN "$1"
+ else
+ if [ "$re_check" == "n" ]
+ then
+ if [ "$1" == "run" ]
+ then
+ COMMENT03_FN
+ fi
+ COMMENT05_FN
+ else
+ STIME=`ls -l $BKUP_DIR/ | grep ^d | awk '{print $9}' | head -1`
+ BLSUB_FN "redo"
+ fi
+ fi
+ else
+ if [ "$1" == "restore" ]
+ then
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO03\n"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "이전버전 백업경로를 제거합니다.\n"
+ else
+ echo -e "Delete Previos Version Backup Location.\n"
+ fi
+ rm -rf $BKUP_DIR
+ COMMENT07_FN
+ else
+ BK_CNT=`ls -l $BKUP_DIR/ | grep ^d | grep -v "$BL_CHK" | wc -l`
+ if [ "$BK_CNT" -gt "0" ]
+ then
+ BL_COM=`ls -l $BKUP_DIR/ | grep ^d | awk '{print $9}' | head -1 | awk -F_ '{print $2}'`
+ BL_CNT=`ls -l $BKUP_DIR/ | grep ^d | awk '{print $9}' | head -1 | awk -F_ '{print $2}' | wc -l`
+ if [ "$BL_COM" == "" ]
+ then
+ if [ "$BL_CNT" -gt "0" ]
+ then
+ BLSUB_FN "$1"
+ bl_check=y
+ else
+ COMMENT06_FN
+ fi
+ else
+ TIME=`ls -l $BKUP_DIR/ | grep ^d | awk '{print $9}' | head -1`
+ if [ "$BL_CHK" == "$BL_COM" ]
+ then
+ if [ "$1" == "run" ]
+ then
+ COMMENT03_FN
+ else
+ COMMENT05_FN
+ bl_check=n
+ fi
+ else
+ if [ "$BL_CHK" -gt "$BL_COM" ]
+ then
+ BLSUB_FN "$1"
+ bl_check=y
+ else
+ COMMENT06_FN
+ fi
+ fi
+ fi
+ else
+ COMMENT06_FN
+ fi
+ fi
+ fi
+ else
+ CASE_FN "$1"
+ fi
+ else
+ CASE_FN "$1"
+ fi
+}
+
+BLSUB_FN () {
+ TIME=`echo "$STIME"`
+ if [ "$1" == "run" ]
+ then
+ RERUN_FN "redo"
+ else
+ RERUN_FN "$1"
+ fi
+ COMMENT05_FN
+}
+
+CASE_FN () {
+ case "$1" in
+ run) COMMENT05_FN ;;
+ redo) COMMENT07_FN ;;
+ restore) COMMENT07_FN ;;
+ *) COMMENT06_FN ;;
+ esac
+}
+
+EXEC_FN () {
+if [ -d $WORK_DIR ]
+then
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ READ_YN "$MSGECHO04 "
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ READ_YN "자동으로 실행합니다. n 선택시 대화형모드로 진행합니다. (취소하려면 q) [y/n] : "
+ else
+ READ_YN "Auto Excute, If you select n, proceed interactively (Cancel : q) [y/n] : "
+ fi
+ if [ "$Y_N" == "y" ]
+ then
+ mkdir -p $BKUP_DIR/$TIME
+
+ if [ "$re_check" == "y" ]
+ then
+ if [ "$bl_check" == "y" ]
+ then
+ COMMENT04_FN
+ else
+ RECOVER_FN
+ fi
+ fi
+
+ PREPARE_FN
+
+ GATHER_FN
+
+ PERFORM_FN
+
+ APPLY_FN
+
+ COMMENT09_FN
+
+ elif [ "$Y_N" == "n" ]
+ then
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ READ_YN "$MSGECHO05 "
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ READ_YN "원본백업 및 준비진행합니다. n 선택 시 원본에 직접작업합니다. (취소하려면 q) [y/n] : "
+ else
+ READ_YN "Proceed with original file backup and preparation.. If you select n, Work directly on the original file. (Cancel : q) [y/n] : "
+ fi
+ if [ "$Y_N" == "y" ]
+ then
+ mkdir -p $BKUP_DIR/$TIME
+
+ if [ "$re_check" == "y" ]
+ then
+ if [ "$bl_check" == "y" ]
+ then
+ COMMENT04_FN
+ else
+ RECOVER_FN
+ fi
+ fi
+
+ PREPARE_FN
+
+ elif [ "$Y_N" == "n" ]
+ then
+ direct_job=y
+ mkdir -p $BKUP_DIR
+ PREPARE_FN
+ else
+ COMMENT10_FN
+ fi
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ READ_YN "$MSGECHO06 "
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ READ_YN "CPU이름, 코어수 측정 후 반영합니다. n 선택 시 원복합니다. (취소하려면 q) [y/n] : "
+ else
+ READ_YN "CPU name, Core count and reflects it. If you select n, Resote original file (Cancel : q) [y/n] : "
+ fi
+ if [ "$Y_N" == "y" ]
+ then
+ GATHER_FN
+
+ PERFORM_FN
+
+ APPLY_FN
+
+ COMMENT09_FN
+ elif [ "$Y_N" == "n" ]
+ then
+ if [ -d "$BKUP_DIR" ]
+ then
+ gzip $BKUP_DIR/admin_center.js
+ gzip $BKUP_DIR/mobile.js
+ mv $BKUP_DIR/admin_center.js.gz $WORK_DIR/
+ mv $BKUP_DIR/mobile.js.gz $MWORK_DIR/
+ COMMENT09_FN
+ else
+ COMMENT07_FN
+ fi
+ else
+ COMMENT10_FN
+ fi
+ else
+ COMMENT10_FN
+ fi
+else
+ COMMENT08_FN
+fi
+}
+
+COMMENT03_FN () {
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO07\n"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "동일버전 실행 이력이 있습니다. 2) 다시실행 으로 진행바랍니다.\n"
+ else
+ echo -e "There is a history of running the same version. Please run again select 2) redo .\n"
+ fi
+ exit 0
+}
+
+COMMENT04_FN () {
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO08\n"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "상위버전 설치시 원복작업은 없습니다. 계속진행합니다.\n"
+ else
+ echo -e "Do not restore to source when installing a higher version. Contiue...\n"
+ fi
+}
+
+COMMENT05_FN () {
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO09\n"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "이전버전 설치 확인 및 조치완료 했습니다. 계속진행합니다.\n"
+ else
+ echo -e "You have verified and installed the previous version. Contiue...\n"
+ fi
+}
+
+COMMENT06_FN () {
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO10"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "문제가 발생하여 종료합니다. 확인 후 다시 진행해주세요."
+ else
+ echo -e "Problem and exit. Please run again after checking."
+ fi
+ exit 0
+}
+
+COMMENT07_FN () {
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO11"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "현재버전에서 수행이력이 없습니다. 처음실행으로 다시 진행해주세요."
+ else
+ echo -e "No execution history at this version. Please go back to the first run."
+ fi
+ exit 0
+}
+
+COMMENT08_FN () {
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO12"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "작업대상 파일(경로)이 존재하지 않습니다. 확인 후 다시 진행해주세요."
+ else
+ echo -e "The target file(location) does not exist. Please run again after checking."
+ fi
+ exit 0
+}
+
+COMMENT09_FN () {
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ if [ -f "$SWORK_DIR/System.js" ]
+ then
+ echo -e "$MSGECHO13"
+ fi
+ echo -e "$MSGECHO13"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ if [ -f "$SWORK_DIR/System.js" ]
+ then
+ echo -e "Surveillance Studio를 사용하는 경우 Surveillance Studio 시스템 정보에도 반영됩니다."
+ fi
+ echo -e "작업이완료 되었습니다!! 반영에는 약 1~2분 소요되며, \n(F5로 DSM 페이지 새로고침 후 또는 로그아웃/로그인 후 정보를 확인바랍니다."
+ else
+ if [ -f "$SWORK_DIR/System.js" ]
+ then
+ echo -e "If you use Surveillance Studio, it also applies to Surveillance Studio System Information."
+ fi
+ echo -e "The operation is complete!! It takes about 1-2 minutes to apply, \n(Please refresh the DSM page with F5 or after logout/login and check the information.)"
+ fi
+ exit 0
+}
+
+COMMENT10_FN () {
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO14"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "y / n / q 만 입력가능합니다. 다시진행해주세요."
+ else
+ echo -e "Only y / n / q can be input. Please proceed again."
+ fi
+ exit 0
+}
+
+# ==============================================================================
+# Main Progress
+# ==============================================================================
+clear
+WORK_DIR="/usr/syno/synoman/webman/modules/AdminCenter"
+SWORK_DIR="/var/packages/SurveillanceStation/target/ui/modules/System"
+MWORK_DIR="/usr/syno/synoman/mobile/ui"
+BKUP_DIR="/root/Xpenology_backup"
+VER_DIR="/etc.default"
+
+if [ "$LC_CHK" == "CUSTOMLANG" ]
+then
+ cecho c "$MSGECHO15\033[0;31m"$ver"\033[00m - $MSGECHO16 FOXBI\n"
+elif [ "$LC_CHK" == "Seoul" ]
+then
+ cecho c "DSM CPU 정보 변경 도구 ver. \033[0;31m"$ver"\033[00m - FOXBI 제작\n"
+else
+ cecho c "DSM CPU Information Change Tool ver. \033[0;31m"$ver"\033[00m - made by FOXBI\n"
+fi
+
+if [ -d "$VER_DIR" ]
+then
+ VER_FIL="$VER_DIR/VERSION"
+else
+ VER_FIL="/etc/VERSION"
+fi
+
+if [ -f "$VER_FIL" ]
+then
+ MA_VER=`cat $VER_FIL | grep majorversion | awk -F \= '{print $2}' | sed 's/\"//g'`
+ MI_VER=`cat $VER_FIL | grep minorversion | awk -F \= '{print $2}' | sed 's/\"//g'`
+ PD_VER=`cat $VER_FIL | grep productversion | awk -F \= '{print $2}' | sed 's/\"//g'`
+ BL_NUM=`cat $VER_FIL | grep buildnumber | awk -F \= '{print $2}' | sed 's/\"//g'`
+ BL_FIX=`cat $VER_FIL | grep smallfixnumber | awk -F \= '{print $2}' | sed 's/\"//g'`
+ if [ "$BL_FIX" -gt "0" ]
+ then
+ BL_UP="Update $BL_FIX"
+ else
+ BL_UP=""
+ fi
+else
+ COMMENT08_FN
+fi
+
+BL_CHK=$BL_NUM$BL_FIX
+TIME=`date +%Y%m%d%H%M%S`"_"$BL_CHK
+STIME="$TIME"
+
+if [ "$MA_VER" -gt "4" ]
+then
+ if [ "$MA_VER" -eq "5" ]
+ then
+ MWORK_DIR="/usr/syno/synoman/webman/mapp"
+ fi
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ cecho g "$MSGECHO17 \033[0;36mDSM \033[0;31m"$PD_VER"-"$BL_NUM" $BL_UP \033[0;32m \033[00m\n"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ cecho g "사용중인 DSM 버전은 \033[0;36mDSM \033[0;31m"$PD_VER"-"$BL_NUM" $BL_UP\033[0;32m 입니다. \033[00m\n"
+ else
+ cecho g "Your version of DSM is \033[0;36mDSM \033[0;31m"$PD_VER"-"$BL_NUM" $BL_UP \033[0;32m \033[00m\n"
+ fi
+else
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO19"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "DSM 5 버전미만은 지원하지 않습니다. 진행을 종료합니다."
+ else
+ echo -e "DSM version less than 5 is not supported. End the process."
+ fi
+ exit 0
+fi
+
+if [ "$MA_VER" -ge "6" ]
+then
+ if [ "$MA_VER" -ge "7" ]
+ then
+ dt=t
+ st=e
+ else
+ if [ "$BL_NUM" -ge "24922" ]
+ then
+ if [ "$BL_NUM" -ge "25423" ]
+ then
+ dt=g
+ else
+ dt=h
+ fi
+ else
+ dt=f
+ fi
+ fi
+else
+ dt=b
+fi
+
+GATHER_FN
+
+cpu_cores=`echo ${cpu_cores}"-"${cpu_gen} | sed 's/\\\//g'`
+
+if [ "$LC_CHK" == "CUSTOMLANG" ]
+then
+ cecho g "$MSGECHO26\033[00m\n"
+ cesho g "\033[0;36m${cpu_vendor} ${cpu_family} ${cpu_series} \033[0;31m[\033[0;36m${cpu_cores}\033[0;31m] \033[0;32m$MSGECHO18...\033[00m\n"
+elif [ "$LC_CHK" == "Seoul" ]
+then
+ cecho g "적용 할 사용 중인 CPU 정보는 아래와 같습니다. 확인 후 진행바랍니다.\033[00m\n"
+ cecho g "\033[0;36m${cpu_vendor} ${cpu_family} ${cpu_series} \033[0;31m[\033[0;36m${cpu_cores}\033[0;31m] \033[0;32m계속 진행합니다..\033[00m\n"
+else
+ cecho g "The CPU information to be applied is as follows.\033[00m\n"
+ cecho g "\033[0;36m${cpu_vendor} ${cpu_family} ${cpu_series} \033[0;31m[\033[0;36m${cpu_cores}\033[0;31m] \033[0;32mcontinue...\033[00m\n"
+fi
+
+if [ "$LC_CHK" == "CUSTOMLANG" ]
+then
+ read -n1 -p "$MSGECHO20 " run_select
+elif [ "$LC_CHK" == "Seoul" ]
+then
+ read -n1 -p "1) 처음실행 2) 다시실행 3) 원상복구 - 번호 선택하세요 : " run_select
+else
+ read -n1 -p "1) First run 2) Redo 3) Restore - Select Number : " run_select
+fi
+ case "$run_select" in
+ 1) run_check=run
+ echo -e "\n " ;;
+ 2) run_check=redo
+ echo -e "\n " ;;
+ 3) run_check=restore
+ echo -e "\n " ;;
+ *) echo -e "\n" ;;
+ esac
+
+if [ "$run_check" == "redo" ]
+then
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ READ_YN "$MSGECHO21"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ READ_YN "다시실행을 진행하시겠습니까? 원본백업으로 복구 후 진행합니다.(취소하려면 q) [y/n] : "
+ else
+ READ_YN "Do you want to proceed again? Restore to original file backup and proceed.(Cancel : q) [y/n] : "
+ fi
+ if [ "$Y_N" == "y" ]
+ then
+ re_check=y
+ BLCHECK_FN "$run_check"
+ run_check=run
+ EXEC_FN
+ elif [ "$Y_N" == "n" ]
+ then
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO22"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "다시실행을 진행하지 않습니다."
+ else
+ echo -e "Do not proceed with the redo."
+ fi
+ else
+ COMMENT10_FN
+ fi
+elif [ "$run_check" == "restore" ]
+then
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ READ_YN "$MSGECHO23 "
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ READ_YN "원본 백업파일을 이용하여 복구를 진행하시겠습니까? (취소하려면 q) [y/n] : "
+ else
+ READ_YN "Do you want to restore using the original backup file? (Cancel : q) [y/n] : "
+ fi
+ if [ "$Y_N" == "y" ]
+ then
+ re_check=n
+ BLCHECK_FN "$run_check"
+ RECOVER_FN
+ elif [ "$Y_N" == "n" ]
+ then
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO24"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "복구를 진행하지 않습니다."
+ else
+ echo -e "No restore was performed."
+ fi
+ else
+ COMMENT10_FN
+ fi
+elif [ "$run_check" == "run" ]
+then
+ re_check=n
+ BLCHECK_FN "$run_check"
+ EXEC_FN
+else
+ if [ "$LC_CHK" == "CUSTOMLANG" ]
+ then
+ echo -e "$MSGECHO25"
+ elif [ "$LC_CHK" == "Seoul" ]
+ then
+ echo -e "올바른 번호선택바랍니다."
+ else
+ echo -e "Please select the correct number."
+ fi
+fi
\ No newline at end of file
diff --git a/Archive/ch_cpuinfo_4.2.1/ch_cpuinfo.tar b/Archive/ch_cpuinfo_4.2.1/ch_cpuinfo.tar
new file mode 100644
index 0000000..ac37435
Binary files /dev/null and b/Archive/ch_cpuinfo_4.2.1/ch_cpuinfo.tar differ
diff --git a/CHANGELOG b/CHANGELOG
index 0322686..8e22695 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,10 @@
# Change Log
+4.2.1-r01.
+ - Update new version (ch_cpuinfo ver 4.2.1-r01) 2023.03.05
+
+ - Fixed error when users of previous version perform redo with version 4.2.0-r01
+
4.2.0-r01.
- Update new version (ch_cpuinfo ver 4.2.0-r01) 2023.02.18
diff --git a/LANG.txt b/LANG.txt
index 5a56850..b427708 100644
--- a/LANG.txt
+++ b/LANG.txt
@@ -37,4 +37,4 @@ MSGECHO25="Please select the correct number."
## Add inforation 2021.09.30
MSGECHO26="The CPU information to be applied is as follows."
## Add inforation 2023.02.17
-MSGECHO27="If you use Surveillance Studio, it also applies to Surveillance Studio System Information."
\ No newline at end of file
+MSGECHO27="If you use Surveillance Studio, it also applies to Surveillance Studio System Information."
diff --git a/ch_cpuinfo b/ch_cpuinfo
index bb9f02d..f29940f 100644
Binary files a/ch_cpuinfo and b/ch_cpuinfo differ
diff --git a/ch_cpuinfo.sh b/ch_cpuinfo.sh
index 0456c97..f6c92b3 100644
--- a/ch_cpuinfo.sh
+++ b/ch_cpuinfo.sh
@@ -1,7 +1,7 @@
#!/bin/sh
-# Updated 2023.02.18 - By FOXBI
+# Updated 2023.03.05 - By FOXBI
# htttps://github.com/foxbi/ch_cpuinfo
-ver="4.2.0-r01"
+ver="4.2.1-r01"
# ==============================================================================
# Location Check
# ==============================================================================
@@ -99,14 +99,20 @@ PREPARE_FN () {
then
mv $WORK_DIR/admin_center.js.gz $BKUP_DIR/
mv $MWORK_DIR/mobile.js.gz $BKUP_DIR/
- cp -Rf $SWORK_DIR/System.js $BKUP_DIR/
+ if [ -f "$SWORK_DIR/System.js" ]
+ then
+ cp -Rf $SWORK_DIR/System.js $BKUP_DIR/
+ fi
cd $BKUP_DIR/
gzip -df $BKUP_DIR/admin_center.js.gz
gzip -df $BKUP_DIR/mobile.js.gz
else
cp -Rf $WORK_DIR/admin_center.js $BKUP_DIR/
cp -Rf $MWORK_DIR/mobile.js $BKUP_DIR/
- cp -Rf $SWORK_DIR/System.js $BKUP_DIR/
+ if [ -f "$SWORK_DIR/System.js" ]
+ then
+ cp -Rf $SWORK_DIR/System.js $BKUP_DIR/
+ fi
fi
else
COMMENT08_FN
diff --git a/ch_cpuinfo.tar b/ch_cpuinfo.tar
index 07b2a12..ac37435 100644
Binary files a/ch_cpuinfo.tar and b/ch_cpuinfo.tar differ