onvif_upgrade.sh 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  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. # /usr/bin/recoverySystem ota ${IMGPATH}
  70. updateEngine --image_url=${IMGPATH} --misc=update --savepath=${IMGPATH} --reboot
  71. recode="$?"
  72. if [ "${recode}" = 255 ];then
  73. echo -n "UpgradeFailed" > ${STATUSPATH}
  74. touch /oem/.upgrade
  75. rm -rf ${STATUSDIR}/upgraded
  76. rm -rf ${STATUSDIR}/mqtt_upgraded
  77. rm -rf ${IMGPATH}
  78. sync
  79. exit 1
  80. fi
  81. else
  82. rm -rf /oem/.userdata
  83. # /usr/bin/recoverySystem ota ${IMGPATH}
  84. updateEngine --image_url=${IMGPATH} --misc=update --savepath=${IMGPATH} --reboot
  85. recode="$?"
  86. if [ "${recode}" = 255 ];then
  87. echo -n "UpgradeFailed" > ${STATUSPATH}
  88. touch /oem/.userdata
  89. rm -rf ${STATUSDIR}/upgraded
  90. rm -rf ${STATUSDIR}/mqtt_upgraded
  91. rm -rf ${IMGPATH}
  92. sync
  93. exit 1
  94. fi
  95. fi
  96. sync
  97. ;;
  98. getStatus)
  99. cat ${STATUSPATH}
  100. exit 0
  101. ;;
  102. esac
  103. exit 0