upgrade-run.sh 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. #!/bin/sh
  2. if [ -L /dev/fd ]; then
  3. echo fd exists
  4. else
  5. echo fd does not exist, link
  6. ln -s /proc/self/fd /dev/fd
  7. fi
  8. LOG_FILE=/opt/wz_upgrade.log
  9. exec > >(busybox tee -a ${LOG_FILE}) 2>&1
  10. setup() {
  11. echo "Create Upgrade directory"
  12. mkdir /opt/Upgrade
  13. echo "Create backup files directory"
  14. mkdir /opt/Upgrade/preserve
  15. echo "Download latest master"
  16. wget --no-check-certificate https://github.com/gtxaspec/wz_mini_hacks/archive/refs/heads/master.zip -O /opt/Upgrade/wz_mini.zip; sync
  17. echo "Extract archive"
  18. unzip /opt/Upgrade/wz_mini.zip -d /opt/Upgrade/
  19. echo "Verify file integrity"
  20. cd /opt/Upgrade/wz_mini_hacks-master
  21. md5sum -c file.chk
  22. if [ $? -eq 0 ]
  23. then
  24. echo "files OK"
  25. #exit 0
  26. else
  27. echo "Failure: archive has corrupted files"
  28. exit 1
  29. fi
  30. cp /opt/wz_mini/wz_mini.conf /opt/Upgrade/preserve/
  31. cp -r /opt/wz_mini/etc/ssh /opt/Upgrade/preserve/
  32. cp -r /opt/wz_mini/etc/wireguard /opt/Upgrade/preserve/
  33. sync
  34. reboot
  35. }
  36. upgrade_mode_start() {
  37. set -x
  38. #WCV3 AUDIO GPIO
  39. GPIO=63
  40. #Check model, change GPIO is HL_PAN2
  41. if [[ "$V2" == "false" ]]; then
  42. mount -t jffs2 /dev/mtdblock6 /configs
  43. if [[ $(cat /configs/.product_config | grep PRODUCT_MODEL) == "PRODUCT_MODEL=HL_PAN2" ]]; then
  44. umount /configs
  45. GPIO=7
  46. fi
  47. else
  48. echo "v2, no need to check"
  49. fi
  50. #test for v2
  51. if [ -b /dev/mtdblock9 ]; then
  52. mount -t jffs2 /dev/mtdblock9 /params
  53. if cat /params/config/.product_config | grep WYZEC1-JZ; then
  54. V2="true"
  55. fi
  56. fi
  57. if [[ "$V2" == "true" ]]; then
  58. insmod /opt/wz_mini/lib/modules/3.10.14_v2/kernel/audio.ko
  59. LD_LIBRARY_PATH='/opt/wz_mini/lib' /opt/wz_mini/bin/audioplay_t20 /opt/wz_mini/usr/share/audio/upgrade_mode_v2.wav 70
  60. rmmod audio
  61. else
  62. 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
  63. /opt/wz_mini/bin/audioplay_t31 /opt/wz_mini/usr/share/audio/upgrade_mode.wav 50
  64. rmmod audio
  65. fi
  66. echo UPGRADE MODE
  67. umount /opt/wz_mini/tmp
  68. ls -l /opt/wz_mini/
  69. rm -rf /opt/wz_mini/*
  70. mv /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/wz_mini/* /opt/wz_mini/
  71. rm -f /opt/factory_t31_ZMC6tiIDQN
  72. mv /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/factory_t31_ZMC6tiIDQN /opt/factory_t31_ZMC6tiIDQN
  73. diff /opt/wz_mini/wz_mini.conf /opt/Upgrade/preserve/wz_mini.conf
  74. cp /opt/Upgrade/preserve/wz_mini.conf /opt/wz_mini/
  75. cp /opt/Upgrade/preserve/ssh/* /opt/wz_mini/etc/ssh/
  76. cp -r /opt/Upgrade/preserve/wireguard /opt/wz_mini/etc/
  77. rm -rf /opt/Upgrade
  78. sync
  79. reboot
  80. }
  81. if [[ -e /tmp/dbgflag ]]; then
  82. upgrade_mode_start
  83. else
  84. read -r -p "${1:-wz_mini, this will download the latest version from github and upgrade your system. Are you sure? [y/N]} " response
  85. case "$response" in
  86. [yY][eE][sS]|[yY])
  87. if [[ -d /opt/Upgrade ]]; then
  88. echo "WARNING: Old Upgrade directory exists"
  89. read -r -p "${1:-Unable to proceed, must DELETE old Upgrade directory, are you sure? [y/N]} " response
  90. case "$response" in
  91. [yY][eE][sS]|[yY])
  92. rm -rf /opt/Upgrade
  93. sync
  94. setup
  95. ;;
  96. *)
  97. echo "User denied directory removal, exit"
  98. ;;
  99. esac
  100. else
  101. setup
  102. fi
  103. ;;
  104. *)
  105. echo "User declined system update, exit"
  106. ;;
  107. esac
  108. fi