FFF256
Member
When you first enter the PSN, blocking /unblocking works (if you first clean syscall, then go to psn). But if it's already blocked, clearing the syscall has no effect...
Code:
static int check_syscalls()
{
int syscalls_disabled = ((*(uint64_t *)MKA(syscall_table_symbol + 8 * 6)) == (*(uint64_t *)MKA(syscall_table_symbol)));
return syscalls_disabled;
}
void check_signin(const char *path)
{
if(!strcmp(path, "/dev_flash/vsh/module/npsignin_plugin.sprx"))
{
if(check_syscalls())
map_path(NPSIGNIN_UNLOCK, NULL, FLAG_MAX_PRIORITY|FLAG_PROTECT);
else
{
CellFsStat stat;
if(cellFsStat(NPSIGNIN_LOCK, &stat) == SUCCEEDED)
map_path(NPSIGNIN_UNLOCK, NPSIGNIN_LOCK, FLAG_MAX_PRIORITY|FLAG_PROTECT);
else
map_path(NPSIGNIN_UNLOCK, NULL, FLAG_MAX_PRIORITY|FLAG_PROTECT);
}
}
}
