OpenOrbis/mira-project

execve() from a homebrew app hangs up the system

Opened this issue · 1 comments

Here is an extract from Mira's log after doing execve("/app0/eboot.bin", &{"/app0/eboot.bin", 0}, 0):

W:\Build\J02541110\sys\freebsd\sys\kern\kern_exec.c(534) do_execve
[Debug] AuthSelfHeader:176 : fixing unsigned 
[Debug] OnSceSblAuthMgrIsLoadable2:136 : building fake self information 
[Debug] SceSblAuthMgrGetElfHeader:314 : self format 
[Error] SceSblAuthMgrGetSelfAuthInfoFake:425 : ealready (no valid authinfo) 
[Warn] OnMiraProcessExec:495 : Process Executing:  
err: (1), retval: (0)
[Error] OnProcessExec:129 : unable to apply devfs rule add request (-1). 

After this the application process hangs, any attempts to terminate it hang too, including rebooting the system. I'm not entirely sure though that this is a Mira issue and not a vanilla PS4 issue. We can see that the system does load the file (so this is not a permission issue), but then some error occurs.

sceSystemServiceLoadExec seems to bypass the normal execve() call and instead spawn a new process from SceSysCore, so that works.