bootsvc is (typically) the first program loaded by usermode (contrast with userboot, which is loaded by the kernel).
bootsvc provides several system services:
After preparing these services, it launches one program from the bootfs. The program may be selected with a kernel command line argument
bootsvc.next (this default to
bin/component_manager currently). The launched program is provided with the bootfs mounted at
/boot and the loader service.
bootsvc.on_next_process_exit controls whether bootsvc reboots or shuts down the device when the process it starts exits. The kernel command line arguments are provided to it via
envp. See the documentation in
system/core/bootsvc/main.cpp:LaunchNextProcess() for more details.