improve ability to hook stock system

This commit is contained in:
Alfonso Gamboa 2022-04-20 01:33:47 -07:00
parent f9cf541305
commit 3f1c819276
9 changed files with 126 additions and 41 deletions

View File

@ -0,0 +1,7 @@
#!/bin/sh
echo [FC] mount tfcard finish!
echo [FC] Test.tar no exist
echo [FC] umount tfcard finish!
echo [FC] In [user] mode!
touch /tmp/usrflag

View File

@ -0,0 +1,9 @@
# <file system> <mount pt> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
devpts /dev/pts devpts defaults,gid=5,mode=620 0 0
#tmpfs /dev/shm tmpfs mode=0777 0 0
tmpfs /tmp tmpfs mode=1777 0 0
tmpfs /run tmpfs mode=0755,nosuid,nodev 0 0
sysfs /sys sysfs defaults 0 0
media /media tmpfs mode=1777 0 0
tmpfs /opt/wz_mini/tmp tmpfs mode=1777 0 0

View File

@ -16,40 +16,42 @@ echo '
set -x
echo "mounting tempfs for workspace"
mount -t tmpfs /tmp
mount -t tmpfs /run
echo "create workspace directory"
mkdir /run/.storage
if [[ $(cat /opt/wz_mini/run_mmc.sh | grep "RTSP_ENABLED\=") == "RTSP_ENABLED\=\"true\"" ]]; then
cp /etc/init.d/rcS /run/.storage/rcS
sed -i '/^".*/aset -x' /run/.storage/rcS
sed -i '/^# Mount configs.*/i cp /system/bin/iCamera /run/.storage/\nmount -o ro,bind /opt/wz_mini/usr/bin/iCamera /system/bin/iCamera\n tail -f /system/bin/iCamera > /dev/null 2>&1 &' /run/.storage/rcS
sed -i '/sbin:/s/$/:\/opt\/wz_mini\/bin/' /run/.storage/rcS
sed -i '/system\/\lib/s/$/:\/opt\/wz_mini\/lib/' /run/.storage/rcS
mount --bind /run/.storage/rcS /etc/init.d/rcS
echo "load video loopback driver at video1"
insmod /opt/wz_mini/lib/modules/v4l2loopback.ko video_nr=1
fi
if [[ $(cat /opt/wz_mini/run_mmc.sh | grep "DEBUG_ENABLED\=") == "DEBUG_ENABLED\=\"true\"" ]]; then
cp /etc/init.d/rcS /run/.storage/rcS
sed -i '/app_init.sh/,+2d' /run/.storage/rcS
sed -i '/^# Run init/i/bin/sh /etc/profile' /run/.storage/rcS
mount --bind /run/.storage/rcS /etc/init.d/rcS
fi
echo "replace stock password"
cp /opt/wz_mini/etc/shadow /run/.storage/shadow
mount --bind /run/.storage/shadow /etc/shadow
chmod 400 /etc/shadow
mount --bind /opt/wz_mini/etc/inittab /etc/inittab
echo "bind /etc/profile for local/ssh shells"
mount --bind /opt/wz_mini/etc/profile /etc/profile
if [[ -f /opt/wz_mini/swap.gz ]]; then
echo "mounting tempfs for workspace"
mount -t tmpfs /tmp
mount -t tmpfs /run
echo "mount system to replace factorycheck with dummy, to prevent bind unmount"
mount /dev/mtdblock3 /system
mount --bind /opt/wz_mini/bin/factorycheck /system/bin/factorycheck
touch /tmp/usrflag
echo "replace stock fstab"
mount --bind /opt/wz_mini/etc/fstab /etc/fstab
echo "mount workplace dir"
mount -t tmpfs /opt/wz_mini/tmp
echo "create workspace directory"
mkdir /opt/wz_mini/tmp/.storage
echo "copy stock rcS"
cp /etc/init.d/rcS /opt/wz_mini/tmp/.storage/rcS
echo "add v3_post inject to stock rcS"
sed -i '/^".*/aset -x' /opt/wz_mini/tmp/.storage/rcS
sed -i '/^# Mount configs.*/i/opt/wz_mini/etc/init.d/v3_post.sh\n' /opt/wz_mini/tmp/.storage/rcS
echo "replace stock password"
cp /opt/wz_mini/etc/shadow /opt/wz_mini/tmp/.storage/shadow
mount --bind /opt/wz_mini/tmp/.storage/shadow /etc/shadow
chmod 400 /etc/shadow
if [[ -e /opt/wz_mini/swap.gz ]]; then
echo "swap archive present, extracting"
gzip -d /opt/wz_mini/swap.gz
mkswap /opt/wz_mini/swap
@ -58,17 +60,17 @@ else
echo "swap archive not present, not extracting"
fi
echo "mount configs partition for dropbear"
mount -t jffs2 /dev/mtdblock6 /configs
if [[ -d /opt/wz_mini/usr/share/terminfo ]]; then
if [[ -d /opt/wz_mini/usr/share/terminfo ]]; then
echo "terminfo already present"
else
else
echo "terminfo not present, extract"
tar xf /opt/wz_mini/usr/share/terminfo.tar -C /opt/wz_mini/usr/share/
fi
echo "mount configs partition for dropbear"
mount -t jffs2 /dev/mtdblock6 /configs
if [[ -d /configs/.ssh ]]; then
echo "dropbear ssh config dir present"
umount /configs
@ -81,6 +83,17 @@ fi
echo "Run dropbear ssh server"
/opt/wz_mini/bin/dropbearmulti dropbear -R -m
{ sleep 30; /media/mmc/wz_mini/run_mmc.sh 2> /media/mmc/wz_mini/log/wz_mini_hacks.log; } &
if [[ $(cat /opt/wz_mini/run_mmc.sh | grep "DEBUG_ENABLED\=") == "DEBUG_ENABLED\=\"true\"" ]]; then
sed -i '/app_init.sh/,+2d' /opt/wz_mini/tmp/.storage/rcS
sed -i '/^# Run init/i/bin/sh /etc/profile' /opt/wz_mini/tmp/.storage/rcS
touch /tmp/dbgflag
fi
if ! [[ -e /tmp/dbgflag ]]; then
{ sleep 30; /media/mmc/wz_mini/run_mmc.sh 2> /media/mmc/wz_mini/log/wz_mini_hacks.log; } &
else
echo "debug enabled, ignore run_mmc.sh"
fi
/linuxrc

View File

@ -0,0 +1,16 @@
#!/bin/sh
set -x
echo "v3_post.sh"
sed -i '/sbin:/s/$/:\/opt\/wz_mini\/bin/' /opt/wz_mini/tmp/.storage/rcS
sed -i '/system\/\lib/s/$/:\/opt\/wz_mini\/lib/' /opt/wz_mini/tmp/.storage/rcS
if [[ $(cat /opt/wz_mini/run_mmc.sh | grep "RTSP_ENABLED\=") == "RTSP_ENABLED\=\"true\"" ]] && ! [[ -e /tmp/dbgflag ]]; then
cp /system/bin/iCamera /opt/wz_mini/tmp/.storage/
mount -o ro,bind /opt/wz_mini/usr/bin/iCamera /system/bin/iCamera
echo "load video loopback driver at video1"
insmod /opt/wz_mini/lib/modules/v4l2loopback.ko video_nr=1
fi

View File

@ -0,0 +1,34 @@
# /etc/inittab
#
# Copyright (C) 2001 Erik Andersen <andersen@codepoet.org>
#
# Note: BusyBox init doesn't support runlevels. The runlevels field is
# completely ignored by BusyBox init. If you want runlevels, use
# sysvinit.
#
# Format for each entry: <id>:<runlevels>:<action>:<process>
#
# id == tty to run on, or empty for /dev/console
# runlevels == ignored
# action == one of sysinit, respawn, askfirst, wait, and once
# process == program to run
# Startup the system
::sysinit:/sbin/swapoff -a
::sysinit:/bin/mount -t tmpfs tmpfs /dev
::sysinit:/bin/mkdir -p /dev/pts
::sysinit:/bin/mkdir -p /dev/shm
::sysinit:/bin/mount -a
::sysinit:/bin/hostname -F /etc/hostname
# now run any rc scripts
::sysinit:/opt/wz_mini/tmp/.storage/rcS
# Put a getty on the serial port
console::respawn:/sbin/getty -L console 115200 vt100 # GENERIC_SERIAL
# Stuff to do for the 3-finger salute
#::ctrlaltdel:/sbin/reboot
# Stuff to do before rebooting
::shutdown:/bin/umount -a -r

View File

@ -12,6 +12,9 @@ export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/opt/wz_mini/bin
export PATH=/system/bin:$PATH
export LD_LIBRARY_PATH=/system/lib:/opt/wz_mini/lib
export LD_LIBRARY_PATH=/thirdlib:$LD_LIBRARY_PATH
export TERMINFO=/opt/wz_mini/usr/share/terminfo
/opt/wz_mini/bin/busybox resize
#export TZ=UTC-8
# Set directoty and file default create permission

View File

@ -21,6 +21,7 @@ RTSP_ENABLE_AUDIO="false"
ENABLE_IPV6="false"
DEBUG_ENABLED="false"
#drops you to a shell via serial, doesn't load app_init.sh
#####################################
##########CONFIG END#################
@ -29,7 +30,7 @@ DEBUG_ENABLED="false"
echo "run_mmc.sh start" > /dev/kmsg
swap_enable() {
if [[ -f /media/mmc/wz_mini/swap ]]; then
if [[ -e /media/mmc/wz_mini/swap ]]; then
echo "swap exists, enable"
swapon /media/mmc/wz_mini/swap
else
@ -112,9 +113,6 @@ fi
echo "set hostname"
hostname $HOSTNAME
echo "clean up tail"
pkill tail
sleep 3
#################################################

View File

@ -1,5 +1,9 @@
#!/bin/sh
set -x
echo "inject callback library and run"
LD_PRELOAD='libcallback.so:libtinyalsa.so.2.0.0:libsetunbuf.so' /run/.storage/iCamera
export LD_LIBRARY_PATH='/thirdlib:/system/lib:/opt/wz_mini/lib'
LD_PRELOAD='libcallback.so:libtinyalsa.so.2.0.0:libsetunbuf.so' /opt/wz_mini/tmp/.storage/iCamera

1
build.md Normal file
View File

@ -0,0 +1 @@
# process