#!/bin/sh if [ -L /dev/fd ]; then echo fd exists else echo fd does not exist, link ln -s /proc/self/fd /dev/fd fi LOG_FILE=/opt/upgrade_wz_mini.log exec > >(busybox tee -a ${LOG_FILE}) 2>&1 setup() { echo "Create Upgrade directory" mkdir /opt/Upgrade echo "Create backup files directory" mkdir /opt/Upgrade/preserve echo "Download latest master" wget --no-check-certificate https://github.com/gtxaspec/wz_mini_hacks/archive/refs/heads/master.zip -O /opt/Upgrade/wz_mini.zip; sync echo "Extract archive" unzip /opt/Upgrade/wz_mini.zip -d /opt/Upgrade/ echo "Verify file integrity" cd /opt/Upgrade/wz_mini_hacks-master md5sum -c file.chk if [ $? -eq 0 ] then echo "files OK" install_upgrade_script else echo "Failure: archive has corrupted files" echo "Delete failed upgrade dir" rm -rf /opt/Upgrade exit 1 fi } install_upgrade_script() { echo "Installing latest upgrade-script" cp /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/wz_mini/usr/bin/upgrade-run.sh /opt/wz_mini/usr/bin/upgrade-run.sh /opt/wz_mini/usr/bin/upgrade-run.sh backup_begin } backup_begin() { echo "Backup user config" cp /opt/wz_mini/wz_mini.conf /opt/Upgrade/preserve/ cp -r /opt/wz_mini/etc/configs /opt/Upgrade/preserve/ cp -r /opt/wz_mini/etc/ssh /opt/Upgrade/preserve/ cp -r /opt/wz_mini/etc/wireguard /opt/Upgrade/preserve/ sync echo "Rebooting into UPGRADE MODE" reboot } upgrade_mode_start() { export WZMINI_CFG=/opt/wz_mini/wz_mini.conf [ -f $WZMINI_CFG ] && source $WZMINI_CFG set -x #WCV3 AUDIO GPIO GPIO=63 V2="false" #Check model, change GPIO is HL_PAN2 if [[ "$V2" == "false" ]]; then mount -t jffs2 /dev/mtdblock6 /configs if [[ $(cat /configs/.product_config | grep PRODUCT_MODEL) == "PRODUCT_MODEL=HL_PAN2" ]]; then umount /configs GPIO=7 fi else echo "not HL_PAN2" fi #test for v2 if [ -b /dev/mtdblock9 ]; then mount -t jffs2 /dev/mtdblock9 /params if cat /params/config/.product_config | grep WYZEC1-JZ; then V2="true" fi fi if [[ "$V2" == "true" ]]; then insmod /opt/wz_mini/lib/modules/3.10.14_v2/kernel/audio.ko LD_LIBRARY_PATH='/opt/wz_mini/lib' /opt/wz_mini/bin/audioplay_t20 /opt/wz_mini/usr/share/audio/upgrade_mode_v2.wav $AUDIO_PROMPT_VOLUME rmmod audio else insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/audio.ko spk_gpio=$GPIO alc_mode=0 mic_gain=0 /opt/wz_mini/bin/audioplay_t31 /opt/wz_mini/usr/share/audio/upgrade_mode.wav $AUDIO_PROMPT_VOLUME rmmod audio fi echo UPGRADE MODE umount -l /opt/wz_mini/tmp ls -l /opt/wz_mini/ rm -rf /opt/wz_mini/* sync mv /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/wz_mini/* /opt/wz_mini/ rm -f /opt/factory_t31_ZMC6tiIDQN mv /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/factory_t31_ZMC6tiIDQN /opt/factory_t31_ZMC6tiIDQN diff /opt/wz_mini/wz_mini.conf /opt/Upgrade/preserve/wz_mini.conf if [ $(cat /opt/Upgrade/preserve/wz_mini.conf | wc -l) != $(cat /opt/wz_mini/wz_mini.conf | wc -l) ]; then echo "doesn't match, keep old config" mv /opt/wz_mini/wz_mini.conf /opt/wz_mini/wz_mini.conf.dist cp /opt/Upgrade/preserve/wz_mini.conf /opt/wz_mini/ else echo "configs match" cp /opt/Upgrade/preserve/wz_mini.conf /opt/wz_mini/ fi cp /opt/Upgrade/preserve/ssh/* /opt/wz_mini/etc/ssh/ cp /opt/Upgrade/preserve/configs/* /opt/wz_mini/etc/configs cp -r /opt/Upgrade/preserve/wireguard /opt/wz_mini/etc/ rm -rf /opt/Upgrade sync reboot } if [[ -e /tmp/dbgflag ]]; then upgrade_mode_start else if [ "$1" == "backup_begin" ]; then backup_begin else read -r -p "${1:-wz_mini, this will download the latest version from github and upgrade your system. Are you sure? [y/N]} " response case "$response" in [yY][eE][sS]|[yY]) if [[ -d /opt/Upgrade ]]; then echo "WARNING: Old Upgrade directory exists" read -r -p "${1:-Unable to proceed, must DELETE old Upgrade directory, are you sure? [y/N]} " response case "$response" in [yY][eE][sS]|[yY]) rm -rf /opt/Upgrade sync setup ;; *) echo "User denied directory removal, exit" ;; esac else setup fi ;; *) echo "User declined system update, exit" ;; esac fi fi