onvif_upgrade.sh 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #!/bin/sh
  2. IMGPATH="/userdata/upgrade/fireware.img"
  3. STATUSDIR="/oem/.onvif_upgrade"
  4. STATUSPATH="${STATUSDIR}/status"
  5. [ ! -d "${STATUSDIR}" ] && mkdir -p ${STATUSDIR}
  6. get_mac() {
  7. real_model="`/etc/scripts/getmodel.sh`"
  8. if [ "foo${real_model}" = "fooX10" -o "foo${real_model}" = "fooX10_V2" ];then
  9. interface="br0"
  10. else
  11. interface="eth0"
  12. fi
  13. echo "`ifconfig ${interface} | grep HWaddr | awk '{print $5}' | tr -d ':' | tr -d ' '`"
  14. }
  15. action="$1"
  16. [ -z "${action}" ] && exit 1
  17. case "${action}" in
  18. upgrade)
  19. echo -n "UpgradePre" > ${STATUSPATH}
  20. sync
  21. [ -z "$2" -o -z "$3" ] && exit 1
  22. /etc/scripts/upgrade.sh pre
  23. fireware="$2"
  24. reset_default="$3"
  25. echo -n "Downloading" > ${STATUSPATH}
  26. #"Zycoo-X10 v_s1.2.5 68692E290C5D"
  27. model="`sysconf ${SYSTEMCONF} get system oem_model`"
  28. [ -z "${model}" ] && model="`sysconf ${SYSTEMCONF} get system model`"
  29. softwareVersion="`sysconf ${SYSTEMCONF} get system firmware`"
  30. mac="`get_mac`"
  31. user_agent="Zycoo-${model} ${softwareVersion} ${mac}"
  32. retcode="`/usr/bin/curl -o ${IMGPATH} -k --user-agent "${user_agent}" --connect-timeout 10 -w %{http_code} ${fireware}`"
  33. if [ "foo${retcode}" != "foo200" ];then
  34. echo -n "downloadError" > ${STATUSPATH}
  35. rm -rf ${IMGPATH}
  36. sync
  37. exit 1
  38. fi
  39. echo -n "Verifying" > ${STATUSPATH}
  40. sync
  41. model="`/etc/scripts/getmodel.sh`"
  42. [ -z ${model} ] && exit 1
  43. /bin/rk_parser ${IMGPATH} ${model}
  44. recode_check="$?"
  45. if [ "foo${recode_check}" != "foo0" ];then
  46. echo -n "VerifyFailed" > ${STATUSPATH}
  47. rm -rf ${IMGPATH}
  48. sync
  49. exit 1
  50. fi
  51. sync
  52. /etc/scripts/shell_action.sh showReboot
  53. updatetime="`sysconf /etc/speaker.conf get upgrade date`"
  54. if [ ! -f /userdata/updatetime.txt ];then
  55. touch /userdata/updatetime.txt
  56. cat << END > /userdata/updatetime.txt
  57. [upgrade]
  58. date=2019-12-02
  59. END
  60. fi
  61. sysconf /userdata/updatetime.txt set upgrade date ${updatetime}
  62. echo -n "Upgrading" > ${STATUSPATH}
  63. touch ${STATUSDIR}/upgraded
  64. touch ${STATUSDIR}/mqtt_upgraded
  65. sync
  66. sleep 4
  67. if [ "foo${reset_default}" = "foono" ];then
  68. rm -rf /oem/.upgrade
  69. #updateEngine --image_url=${para} --misc=update --savepath=${para} --reboot
  70. tar -zxvf ${para} -C /
  71. recode="$?"
  72. if [ "${recode}" = 255 ];then
  73. touch /oem/.upgrade
  74. rm -rf ${para}
  75. sync
  76. exit 1
  77. fi
  78. else
  79. rm -rf /oem/.userdata
  80. # updateEngine --image_url=${para} --misc=update --savepath=${para} --reboot
  81. tar -zxvf ${para} -C /
  82. recode="$?"
  83. if [ "${recode}" = 255 ];then
  84. touch /oem/.userdata
  85. rm -rf ${para}
  86. sync
  87. exit 1
  88. fi
  89. fi
  90. sync
  91. ;;
  92. getStatus)
  93. cat ${STATUSPATH}
  94. exit 0
  95. ;;
  96. esac
  97. exit 0