It is possible to launch the update utility without putting the console in update mode, it can still update the components of the PS4. To do this, you need a Kernel exploit, a Homebrew ENabler), and the make_fself.py by flat_z.
The idea is that through a Homebrew “Hosts”, to execute a modified orbis_swu.self which will do what we want. Just use the function sceSystemServiceLoadExec(char* path, void* unk);
The modification of the orbis_swu will have to apply 2 patches to make it usable with a host application.
- Modifying the video output: orbis_swu is normally used in a context where SceShellUI does not exist. It will now be necessary to indicate to him that he must take the exit of the Applications.
- Give it permissions: Like any system process, orbis_swu must be able to access certain things. It will therefore be necessary to give it special permissions and make it escape from its sandbox through a system call. It is also necessary to patch the kernel to be able to have access to the sflash in writing.
Once this is done, your homebrew is ready to use the orbis_swu to perform updates! Now is when things start to get interesting!