S07inject 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #!/bin/sh
  2. ### BEGIN INIT INFO
  3. # Provides:
  4. # Short-Description: Inject commands into app_init.sh
  5. # Description: Patch app_init.sh to inject wz_mini's init.d scripts
  6. ### END INIT INFO
  7. . /opt/wz_mini/wz_mini.conf
  8. case "$1" in
  9. start)
  10. echo "#####$(basename "$0")#####"
  11. echo "Copy stock rcS"
  12. cp /etc/init.d/rcS /opt/wz_mini/tmp/.storage/rcS
  13. echo "Add verbose debugging to rcS"
  14. sed -i '/^".*/aset -x' /opt/wz_mini/tmp/.storage/rcS
  15. echo "Inject init.d scripts to rcS"
  16. sed -i '/^# Run init script.*/i/opt/wz_mini/etc/rc.d/K01network \&\n' /opt/wz_mini/tmp/.storage/rcS
  17. sed -i '/^# Run init script.*/i/opt/wz_mini/etc/rc.d/K03rcd\n' /opt/wz_mini/tmp/.storage/rcS
  18. echo "Modify Global Paths in rcS"
  19. sed -i '/sbin:/s/$/:\/opt\/wz_mini\/bin/' /opt/wz_mini/tmp/.storage/rcS
  20. sed -i '/system\/\lib/s/$/:\/opt\/wz_mini\/lib/' /opt/wz_mini/tmp/.storage/rcS
  21. #Custom PATH hooks
  22. #sed -i '/^# Run init script.*/i#Hook Library PATH here\nexport LD_LIBRARY_PATH=/tmp/test/lib:$LD_LIBRARY_PATH\n' /opt/wz_mini/tmp/.storage/rcS
  23. #sed -i '/^# Run init script.*/i#Hook system PATH here\nexport PATH=/tmp/test/bin:$PATH\n' /opt/wz_mini/tmp/.storage/rcS
  24. echo "Copy factory app_init.sh"
  25. cp /system/init/app_init.sh /opt/wz_mini/tmp/.storage/app_init.sh
  26. echo "Replace factory app_init.sh path"
  27. sed -i '/\/system\/init\/app_init.sh/,+4d' /opt/wz_mini/tmp/.storage/rcS
  28. sed -i '/Run init script.*/a /opt/wz_mini/tmp/.storage/app_init.sh \&\n' /opt/wz_mini/tmp/.storage/rcS
  29. sed -i '/\/system\/init\/app_init.sh/,+2d' /opt/wz_mini/tmp/.storage/rcS
  30. if [[ "$DEBUG_ENABLED" == "true" ]]; then
  31. sed -i '/app_init.sh/,+4d' /opt/wz_mini/tmp/.storage/rcS
  32. sed -i '/^# Run init/i/bin/sh /etc/profile' /opt/wz_mini/tmp/.storage/rcS
  33. touch /tmp/dbgflag
  34. elif [[ "$WEB_CAM_ENABLE" == "true" ]]; then
  35. sed -i '/app_init.sh/,+4d' /opt/wz_mini/tmp/.storage/rcS
  36. sed -i '/^# Run init/i/opt/wz_mini/etc/rc.d/K02webcam &' /opt/wz_mini/tmp/.storage/rcS
  37. touch /tmp/dbgflag
  38. elif [[ -d /opt/Upgrade ]]; then
  39. sed -i '/app_init.sh/,+4d' /opt/wz_mini/tmp/.storage/rcS
  40. sed -i '/^# Run init/i/bin/sh /etc/profile' /opt/wz_mini/tmp/.storage/rcS
  41. sed -i '/^# Mount configs.*/i/opt/wz_mini/bin/upgrade-run.sh &\n' /opt/wz_mini/tmp/.storage/rcS
  42. touch /tmp/dbgflag
  43. fi
  44. echo "Enable libcallback"
  45. if [[ "$LIBCALLBACK_ENABLE" == "true" ]] || ([[ "$RTSP_HI_RES_ENABLED" == "true" ]] || [[ "$RTSP_LOW_RES_ENABLED" == "true" ]]); then
  46. echo "set path for iCamera"
  47. sed -i 's/\/system\/bin\/iCamera/\/opt\/wz_mini\/usr\/bin\/iCamera/g' /opt/wz_mini/tmp/.storage/app_init.sh
  48. fi
  49. ;;
  50. *)
  51. echo "Usage: $0 {start}"
  52. exit 1
  53. ;;
  54. esac