With the switch to Plymouth, OpenRC may hang during startup or shutdown if a service fails to start, resulting in a system that has not fully booted and that is unable to shutdown again. This is because of a bug in OpenRC's plugin system that affects musl-based distros, like postmarketOS.
A fix was submitted to OpenRC, but in the meantime the Plymouth OpenRC integration plugin has been temporarily replaced by a kill-plymouth OpenRC service that runs on boot, just like what used to be the case with pbsplash. This workaround is included in postmarketos-bootsplash 0.5.1.
Recovery
If you still can access ssh, or the UI already started and you can enter a terminal, you can simply run:
sudo apk upgrade postmarketos-bootsplash
# In this state, OpenRC will be unable to reboot properly, so we need to
# completely bypass the init system. Note that this won't properly shutdown
# your device.
sudo reboot -f
Using debug-shell
If your device hangs before ssh or the UI are even ran, you'll need to make use of the debug-shell. Enter debug-shell by holding Shift or Volume down on boot. Run the following commands:
mount_subpartitions
# If your rootfs is encrypted, run:
cryptsetup open $PMOS_ROOT root
mount /dev/mapper/root /sysroot
# Else, run:
mount $PMOS_ROOT /sysroot
rm /sysroot/lib/rc/plugins/plymouth.so
reboot
After boot, enter a terminal (if the boot splash is in an endless loop, hold Volume down and press Power three times, or ssh), and run:
sudo plymouth quit # kill plymouth if it's still running
sudo apk upgrade postmarketos-bootsplash
sudo reboot
Reach out in chat if you need help.