function change_root()
{
ADDON=
- INIT_BINARY=/sbin/init
+ INIT_BINARY=$([[ $(</proc/cmdline) =~ (^|[[:space:]])init=([^[:space:]]*) ]]; echo ${BASH_REMATCH[2]})
+ INIT_BINARY=${INIT_BINARY:-/sbin/init}
+
if [ "$BOOT_MODE" == "fota" ]; then
ADDON="--unit=online-update.target"
INIT_BINARY=/usr/lib/systemd/systemd
then
if [ "$IN_INITRD" = "1" ]
then
- exec chroot . "$INIT_BINARY" "$ADDON" $@
+ exec chroot . "$INIT_BINARY" $ADDON $@
elif [ "$IN_INITRAMFS" = "1" ]
then
- exec switch_root $ROOTFS_MNT "$INIT_BINARY" "$ADDON" $@
+ exec switch_root $ROOTFS_MNT "$INIT_BINARY" $ADDON $@
else
- exec /usr/lib/systemd/systemd "$ADDON" $@
+ exec /usr/lib/systemd/systemd $ADDON $@
fi
fi
}