v3_init.sh 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #!/bin/sh
  2. ###
  3. ###DO NOT MODIFY UNLESS YOU KNOW WHAT YOU ARE DOING
  4. ###
  5. echo '
  6. __ ________ __ __ _____ _ _ _____
  7. \ \ / |___ / | \/ |_ _| \ | |_ _|
  8. \ \ /\ / / / / | \ / | | | | \| | | |
  9. \ \/ \/ / / / | |\/| | | | | . ` | | |
  10. \ /\ / / /__ | | | |_| |_| |\ |_| |_
  11. \/ \/ /_____| |_| |_|_____|_| \_|_____|
  12. ______
  13. |______|
  14. '
  15. set -x
  16. mount --bind /opt/wz_mini/etc/inittab /etc/inittab
  17. echo "bind /etc/profile for local/ssh shells"
  18. mount --bind /opt/wz_mini/etc/profile /etc/profile
  19. echo "mounting tempfs for workspace"
  20. mount -t tmpfs /tmp
  21. mount -t tmpfs /run
  22. echo "mount system to replace factorycheck with dummy, to prevent bind unmount"
  23. mount /dev/mtdblock3 /system
  24. mount --bind /opt/wz_mini/bin/factorycheck /system/bin/factorycheck
  25. touch /tmp/usrflag
  26. echo "replace stock fstab"
  27. mount --bind /opt/wz_mini/etc/fstab /etc/fstab
  28. echo "mount workplace dir"
  29. mount -t tmpfs /opt/wz_mini/tmp
  30. echo "create workspace directory"
  31. mkdir /opt/wz_mini/tmp/.storage
  32. echo "copy stock rcS"
  33. cp /etc/init.d/rcS /opt/wz_mini/tmp/.storage/rcS
  34. echo "add v3_post inject to stock rcS"
  35. sed -i '/^".*/aset -x' /opt/wz_mini/tmp/.storage/rcS
  36. sed -i '/^# Mount configs.*/i/opt/wz_mini/etc/init.d/v3_post.sh\n' /opt/wz_mini/tmp/.storage/rcS
  37. echo "replace stock password"
  38. cp /opt/wz_mini/etc/shadow /opt/wz_mini/tmp/.storage/shadow
  39. mount --bind /opt/wz_mini/tmp/.storage/shadow /etc/shadow
  40. chmod 400 /etc/shadow
  41. if [[ -e /opt/wz_mini/swap.gz ]]; then
  42. echo "swap archive present, extracting"
  43. gzip -d /opt/wz_mini/swap.gz
  44. mkswap /opt/wz_mini/swap
  45. sync;echo 3 > /proc/sys/vm/drop_caches;free
  46. else
  47. echo "swap archive not present, not extracting"
  48. fi
  49. if [[ -d /opt/wz_mini/usr/share/terminfo ]]; then
  50. echo "terminfo already present"
  51. else
  52. echo "terminfo not present, extract"
  53. tar xf /opt/wz_mini/usr/share/terminfo.tar -C /opt/wz_mini/usr/share/
  54. fi
  55. echo "Run dropbear ssh server"
  56. /opt/wz_mini/bin/dropbearmulti dropbear -R -s -g
  57. if [[ $(cat /opt/wz_mini/run_mmc.sh | grep "DEBUG_ENABLED\=") == "DEBUG_ENABLED\=\"true\"" ]]; then
  58. sed -i '/app_init.sh/,+2d' /opt/wz_mini/tmp/.storage/rcS
  59. sed -i '/^# Run init/i/bin/sh /etc/profile' /opt/wz_mini/tmp/.storage/rcS
  60. touch /tmp/dbgflag
  61. fi
  62. if ! [[ -e /tmp/dbgflag ]]; then
  63. { sleep 30; /media/mmc/wz_mini/run_mmc.sh 2> /media/mmc/wz_mini/log/wz_mini_hacks.log; } &
  64. else
  65. echo "debug enabled, ignore run_mmc.sh"
  66. fi
  67. /linuxrc