pmaports/main/postmarketos-mkinitfs-hook-debug-shell/20-debug-shell.sh
Luca Weiss 3b5e3cb66a
main/postmarketos-mkinitfs-hook-debug-shell: show Loading splash once done (MR 4212)
Since the original "Loading..." splash is being shown before the hooks
is being run, we should go back to the "Loading..." splash once we're
done in the hook.
2023-07-01 19:43:01 +02:00

69 lines
1.6 KiB
Bash

#!/bin/sh
# shellcheck disable=SC1091
. ./init_functions.sh
. /usr/share/misc/source_deviceinfo
TELNET_PORT=23
setup_usb_network
start_unudhcpd
show_splash "WARNING: debug-shell is active\\nhttps://postmarketos.org/debug-shell"
echo "Create 'pmos_continue_boot' script"
{
echo "#!/bin/sh"
echo "pkill -f pmos_shell"
echo "pkill -f pmos_loop_forever"
echo "pkill -f telnetd.*:${TELNET_PORT}"
} >/usr/bin/pmos_continue_boot
chmod +x /usr/bin/pmos_continue_boot
echo "Create 'pmos_shell' script"
{
echo "#!/bin/sh"
echo "sh"
} >/usr/bin/pmos_shell
chmod +x /usr/bin/pmos_shell
echo "Create 'pmos_loop_forever' script"
{
echo "#!/bin/sh"
echo '. /init_functions.sh'
echo "loop_forever"
} >/usr/bin/pmos_loop_forever
chmod +x /usr/bin/pmos_loop_forever
echo "Start the telnet daemon"
{
echo "#!/bin/sh"
echo "echo \"Type 'pmos_continue_boot' to continue booting:\""
echo "sh"
} >/telnet_connect.sh
chmod +x /telnet_connect.sh
telnetd -b "${IP}:${TELNET_PORT}" -l /telnet_connect.sh
# mount pstore, if possible
if [ -d /sys/fs/pstore ]; then
mount -t pstore pstore /sys/fs/pstore || true
fi
# mount debugfs - very helpful for debugging
mount -t debugfs none /sys/kernel/debug || true
# make a symlink like Android recoveries do
ln -s /sys/kernel/debug /d
echo "---"
echo "WARNING: debug-shell is active on ${IP}:${TELNET_PORT}."
echo "This is a security hole! Only use it for debugging, and"
echo "uninstall the debug-shell hook afterwards!"
echo "---"
if tty -s; then
echo "Exit the shell to continue booting:"
pmos_shell
else
echo "No tty attached, looping forever."
pmos_loop_forever
fi
# Show "Loading" splash again when continuing
show_splash "Loading..."