setup.sh 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #!/bin/bash
  2. LATEST_ROOTFS="4.36.3.19"
  3. LATEST_FW="4.36.8.32"
  4. clean() {
  5. rm -rf tmp_root
  6. rm -rf SD_ROOT
  7. }
  8. setup() {
  9. echo "Create SD Card root directory"
  10. mkdir SD_ROOT
  11. echo "Copy test to SD_ROOT"
  12. cp Test.tar SD_ROOT
  13. echo "Download utilities to SD_ROOT"
  14. wget https://www.busybox.net/downloads/binaries/1.21.1/busybox-mipsel -O SD_ROOT/busybox
  15. echo "Copy locla utilities to SD_ROOT"
  16. cp dropbearmulti SD_ROOT
  17. echo "Download latest rootfs firmware $LATEST_ROOTFS"
  18. wget https://s3-us-west-2.amazonaws.com/wuv2/upgrade/WYZE_CAKP2JFUS/firmware/$LATEST_ROOTFS.tar --directory-prefix=./tmp_root/
  19. mkdir ./tmp_root/"$LATEST_ROOTFS"_ext
  20. tar -xf ./tmp_root/$LATEST_ROOTFS.tar -C ./tmp_root/"$LATEST_ROOTFS"_ext
  21. echo "Download latest stable firmware $LATEST_FW"
  22. mkdir ./tmp_root/"$LATEST_FW"_ext
  23. wget https://s3-us-west-2.amazonaws.com/wuv2/upgrade/WYZE_CAKP2JFUS/firmware/$LATEST_FW.tar --directory-prefix=./tmp_root/
  24. tar -xf ./tmp_root/$LATEST_FW.tar -C ./tmp_root/"$LATEST_FW"_ext
  25. echo "Extract rootfs, prepare for modification"
  26. unsquashfs -d ./tmp_root/"$LATEST_ROOTFS"_ext/Upgrade/rootfs_dir ./tmp_root/"$LATEST_ROOTFS"_ext/Upgrade/rootfs
  27. ##test
  28. mkdir ./tmp_root/"$LATEST_ROOTFS"_ext/Upgrade/rootfs_dir/.ssh
  29. echo "Change unknown stock password to WYom2020 in /etc/shadow"
  30. rm -rf ./tmp_root/"$LATEST_ROOTFS"_ext/Upgrade/rootfs_dir/etc/shadow
  31. echo "root:aVG8.5PMEOfnQ:0:0:99999:7:::" > ./tmp_root/"$LATEST_ROOTFS"_ext/Upgrade/rootfs_dir/etc/shadow
  32. chmod 400 ./tmp_root/"$LATEST_ROOTFS"_ext/Upgrade/rootfs_dir/etc/shadow
  33. echo "Add run_mmc.sh to rootfs rcS init.d script"
  34. sed -i '/\-f\ \/system\/init\/app_init.sh/a { sleep 30; /media/mmc/run_mmc.sh > /media/mmc/wz_mini_hacks.log; } &' ./tmp_root/"$LATEST_ROOTFS"_ext/Upgrade/rootfs_dir/etc/init.d/rcS
  35. echo "repack rootfs for flashing"
  36. mksquashfs ./tmp_root/"$LATEST_ROOTFS"_ext/Upgrade/rootfs_dir SD_ROOT/rootfs2.bin -noappend -all-root -comp xz
  37. echo "copy latest appfs and kernel to SD_ROOT"
  38. cp ./tmp_root/"$LATEST_FW"_ext/Upgrade/app SD_ROOT/appfs.bin
  39. cp ./tmp_root/"$LATEST_FW"_ext/Upgrade/kernel SD_ROOT/kernel.bin
  40. echo "extract run_mmc.sh script to SD_ROOT"
  41. echo "#!/bin/sh
  42. echo "set hostname"
  43. hostname WCV3
  44. echo "Store dmesg logs"
  45. dmesg > /media/mmc/dmesg.log
  46. #echo "Run telnetd"
  47. #/media/mmc/busybox telnetd &
  48. echo "Run dropbear ssh server"
  49. /media/mmc/dropbearmulti dropbear -R -m
  50. #echo "Disable remote firmware upgrade, uncomment lines below to enable"
  51. #mkdir /tmp/Upgrade
  52. #mount -t tmpfs -o size=1,nr_inodes=1 none /tmp/Upgrade
  53. #echo -e "127.0.0.1 localhost \n127.0.0.1 wyze-upgrade-service.wyzecam.com" > /tmp/hosts_wz
  54. #mount --bind /tmp/hosts_wz /etc/hosts
  55. sleep 3
  56. #Place commands here to run 30 seconds after boot
  57. #such as mount nfs, ping, etc
  58. #mount -t nfs -o nolock,rw,noatime,nodiratime 192.168.1.1:/volume1 /media/mmc/record
  59. " > SD_ROOT/run_mmc.sh
  60. chmod 755 SD_ROOT/run_mmc.sh
  61. }
  62. if [ "$1" == "clean" ]; then
  63. clean
  64. elif [ "$1" == "compile" ]; then
  65. setup
  66. else
  67. echo "wz_mini_hacks setup script"
  68. echo "Usage:"
  69. echo "./setup.sh compile to download and patch firmware"
  70. echo "./setup.sh clean to delete all downloaded files and clean directory"
  71. fi