SceSblACMgr: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 45: Line 45:


{| class="wikitable"
{| class="wikitable"
! Path !! PathId !! comment
! Path !! Media Type !! comment
|-
|-
| ux0:user || 0 ||
| ux0:user || 0 ||
Line 63: Line 63:
| host0 || 7 ||
| host0 || 7 ||
|-
|-
| ?boot0? ?slb2? || 10 || Found in NSBL. Not findable and not working in 3.60 kernel. Could be the PathId for slb2 SELFs.
| ?boot0? ?slb2? || 10 || Found in NSKBL. Not findable and not working in 3.60 kernel. Could be the Media Type for slb2 SELFs.
|-
|-
| ud0 || 11 ||
| ud0 || 11 ||
Line 136: Line 136:
Returns true if self_auth_info->program_authority_id begins with 0x21 (NPDRM game) or 0x2F (SDK fSELF).
Returns true if self_auth_info->program_authority_id begins with 0x21 (NPDRM game) or 0x2F (SDK fSELF).


<source lang="C">
<source lang="C">int sceSblACMgrIsGameProgramForKernel(SceUID pid);</source>
int sceSblACMgrIsGameProgramForKernel(SceUID pid);
</source>


=== unk_06BE9F0F ===
=== unk_06BE9F0F ===
Line 152: Line 150:
?Returns true if sceSblACMgrIsSIEAppForDriver returns true.?
?Returns true if sceSblACMgrIsSIEAppForDriver returns true.?


<source lang="C">
<source lang="C">int unk_06BE9F0F(SceUID pid);</source>
int unk_06BE9F0F(SceUID pid);
</source>


=== unk_0E489631 ===
=== unk_0E489631 ===
Line 166: Line 162:
return sceSblACMgrHasCapabilityForDriver(pid, 32);
return sceSblACMgrHasCapabilityForDriver(pid, 32);


<source lang="C">
<source lang="C">int unk_0E489631(SceUID pid);</source>
int unk_0E489631(SceUID pid);
</source>


=== unk_11C9158B ===
=== unk_11C9158B ===
Line 178: Line 172:
|}
|}


<source lang="C">
<source lang="C">int unk_11C9158B(void* a1, void* a2);</source>
 
int unk_11C9158B(void* a1, void* a2);
 
</source>


=== unk_165C3C7A ===
=== unk_165C3C7A ===
Line 192: Line 182:
|}
|}


<source lang="C">
<source lang="C">int unk_165C3C7A(SceUID pid, char *maybe_path);</source>
 
int unk_165C3C7A(SceUID pid, char *maybe_path);
 
</source>


=== unk_1948E9DB_return0 ===
=== unk_1948E9DB_return0 ===
Line 208: Line 194:
Returns 0. Probably used in old firmwares and patched in new firmwares a security issue by making it return always false.
Returns 0. Probably used in old firmwares and patched in new firmwares a security issue by making it return always false.


<source lang="C">
<source lang="C">int unk_1948E9DB_return0(void);</source>
int unk_1948E9DB_return0(void);
</source>


=== unk_1B160234 ===
=== unk_1B160234 ===
Line 220: Line 204:
|}
|}


<source lang="C">
<source lang="C">int unk_1B160234(SceUID pid, st_attr_info* a2, int *a3, int flags);</source>
 
int unk_1B160234(SceUID pid, st_attr_info* a2, int *a3, int flags);
 
</source>


=== scePfsACSetFSAttrByModeForKernel ===
=== scePfsACSetFSAttrByModeForKernel ===
Line 248: Line 228:
or returns SceSysrootForDriver_26AA237C(void); if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true.
or returns SceSysrootForDriver_26AA237C(void); if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true.


<source lang="C">
<source lang="C">int unk_30575458(SceUID pid);</source>
int unk_30575458(SceUID pid);
</source>


=== sceSblACMgrIsSystemForKernel ===
=== sceSblACMgrIsSystemForKernel ===
Line 262: Line 240:
return sceSblACMgrHasCapabilityForDriver(pid, 0);
return sceSblACMgrHasCapabilityForDriver(pid, 0);


<source lang="C">
<source lang="C">int sceSblACMgrIsSystemForKernel(SceUID pid);</source>
int sceSblACMgrIsSystemForKernel(SceUID pid);
</source>


=== sceSblACMgrIsSIEAppForKernel ===
=== sceSblACMgrIsSIEAppForKernel ===
Line 282: Line 258:
See [[https://vitadevwiki.com/vita/AuthorityId#SIE_apps]]
See [[https://vitadevwiki.com/vita/AuthorityId#SIE_apps]]


<source lang="C">
<source lang="C">int sceSblACMgrIsSIEAppForKernel(SceUID pid);</source>
int sceSblACMgrIsSIEAppForKernel(SceUID pid);
</source>


=== unk_356B9139 ===
=== unk_356B9139 ===
Line 294: Line 268:
|}
|}


<source lang="C">
<source lang="C">int unk_356B9139(int unused, char *maybe_path, int *a3);</source>
 
int unk_356B9139(int unused, char *maybe_path, int *a3);
 
</source>


=== sceSblACMgrIsAllowedExtendedMemoryForKernel ===
=== sceSblACMgrIsAllowedExtendedMemoryForKernel ===
Line 314: Line 284:
or if sceSblACMgrHasCapabilityForDriver(pid, 130) returns true.
or if sceSblACMgrHasCapabilityForDriver(pid, 130) returns true.


<source lang="C">
<source lang="C">int sceSblACMgrIsAllowedExtendedMemoryForKernel(SceUID pid);</source>
int sceSblACMgrIsAllowedExtendedMemoryForKernel(SceUID pid);
</source>


=== sceSblACMgrIsNonGameProgramForKernel ===
=== sceSblACMgrIsNonGameProgramForKernel ===
Line 328: Line 296:
return sceSblACMgrHasCapabilityForDriver(pid, 3);
return sceSblACMgrHasCapabilityForDriver(pid, 3);


<source lang="C">
<source lang="C">int sceSblACMgrIsNonGameProgramForKernel(SceUID pid);</source>
int sceSblACMgrIsNonGameProgramForKernel(SceUID pid);
</source>


=== unk_410357AF ===
=== unk_410357AF ===
Line 344: Line 310:
or returns SceSysrootForDriver_E2515A08(void); if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true.
or returns SceSysrootForDriver_E2515A08(void); if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true.


<source lang="C">
<source lang="C">int unk_410357AF(SceUID pid);</source>
int unk_410357AF(SceUID pid);
</source>


=== sceSblACMgrIsPspEmuForKernel ===
=== sceSblACMgrIsPspEmuForKernel ===
Line 360: Line 324:
Returns true if self_auth_info->program_authority_id equals 0x2800000000000013 (NPXS10029) or 0x2800000000007009 (NPXS10069 - testkit/old PSPemu).
Returns true if self_auth_info->program_authority_id equals 0x2800000000000013 (NPXS10029) or 0x2800000000007009 (NPXS10069 - testkit/old PSPemu).


<source lang="C">
<source lang="C">int sceSblACMgrIsPspEmuForKernel(SceUID pid);</source>
int sceSblACMgrIsPspEmuForKernel(SceUID pid);
</source>


=== unk_48F4D5EE ===
=== unk_48F4D5EE ===
Line 374: Line 336:
return sceSblACMgrHasCapabilityForDriver(pid, 31);
return sceSblACMgrHasCapabilityForDriver(pid, 31);


<source lang="C">
<source lang="C">int unk_48F4D5EE(SceUID pid);</source>
int unk_48F4D5EE(SceUID pid);
</source>


=== unk_49509A83 ===
=== unk_49509A83 ===
Line 406: Line 366:
-> returns self_auth_info.attribute bit flag number 16 from left (---> XX XX 8X)
-> returns self_auth_info.attribute bit flag number 16 from left (---> XX XX 8X)


<source lang="C">
<source lang="C">int unk_49509A83(SceUID pid);</source>
int unk_49509A83(SceUID pid);
</source>


=== unk_4C4B7D6B ===
=== unk_4C4B7D6B ===
Line 426: Line 384:
or 0x2800000000000044 (NPXS10085 - Videos) or 0x280000000000001E (NPXS10010 - Videos)
or 0x2800000000000044 (NPXS10085 - Videos) or 0x280000000000001E (NPXS10010 - Videos)


<source lang="C">
<source lang="C">int unk_4C4B7D6B(SceUID pid);</source>
int unk_4C4B7D6B(SceUID pid);
</source>


=== sceSblACMgrIsNonGameOrGameProgramForDriver ===
=== sceSblACMgrIsNonGameOrGameProgramForDriver ===
Line 442: Line 398:
or if sceSblACMgrHasCapabilityForDriver(pid, 3); (IsNonGame) returns true.
or if sceSblACMgrHasCapabilityForDriver(pid, 3); (IsNonGame) returns true.


<source lang="C">
<source lang="C">int sceSblACMgrIsNonGameOrGameProgramForDriver(SceUID pid);</source>
int sceSblACMgrIsNonGameOrGameProgramForDriver(SceUID pid);
</source>


=== sceSblACMgrIsFselfForKernel ===
=== sceSblACMgrIsFselfForKernel ===
Line 458: Line 412:
Returns true if self_auth_info->program_authority_id begins with 0x2F (SDK fSELF).
Returns true if self_auth_info->program_authority_id begins with 0x2F (SDK fSELF).


<source lang="C">
<source lang="C">int sceSblACMgrIsFselfForKernel(SceUID pid);</source>
int sceSblACMgrIsFselfForKernel(SceUID pid);
</source>


=== unk_5E6BA11C ===
=== unk_5E6BA11C ===
Line 472: Line 424:
return sceSblACMgrHasCapabilityForDriver(pid, 135);
return sceSblACMgrHasCapabilityForDriver(pid, 135);


<source lang="C">
<source lang="C">int unk_5E6BA11C(SceUID pid);</source>
int unk_5E6BA11C(SceUID pid);
</source>


=== unk_7529E364 ===
=== unk_7529E364 ===
Line 490: Line 440:
or if [[SceSblACMgr#sceSblACMgrIsNotSandboxedForDriver|sceSblACMgrIsNotSandboxedForDriver]] returns true.
or if [[SceSblACMgr#sceSblACMgrIsNotSandboxedForDriver|sceSblACMgrIsNotSandboxedForDriver]] returns true.


<source lang="C">
<source lang="C">int unk_7529E364(SceUID pid);</source>
int unk_7529E364(SceUID pid);
</source>


=== unk_75AAF981 ===
=== unk_75AAF981 ===
Line 502: Line 450:
|}
|}


<source lang="C">
<source lang="C">int unk_75AAF981(SceUID pid, st_attr_info * a2, int a3);</source>
 
int unk_75AAF981(SceUID pid, st_attr_info * a2, int a3);
 
</source>


=== sceSblACMgrGetSelfAuthInfoForKernel ===
=== sceSblACMgrGetSelfAuthInfoForKernel ===
Line 518: Line 462:
Wrapper to [[SceSysmem#sceSysrootGetSelfAuthInfoForKernel|sceSysrootGetSelfAuthInfoForKernel]].
Wrapper to [[SceSysmem#sceSysrootGetSelfAuthInfoForKernel|sceSysrootGetSelfAuthInfoForKernel]].


<source lang="C">int sceSblACMgrGetSelfAuthInfoForKernel(SceUID pid, SceSelfInfo* self_auth_info);</source>
<source lang="C">int sceSblACMgrGetSelfAuthInfoForKernel(SceUID pid, SceSelfAuthInfo* self_auth_info);</source>


=== unk_7F294A09 ===
=== unk_7F294A09 ===
Line 544: Line 488:
|}
|}


<source lang="C">
<source lang="C">int unk_8241AB5C(SceUID pid, int a2);</source>
 
int unk_8241AB5C(SceUID pid, int a2);
 
</source>


=== sceSblACIsSystemProgramForKernel ===
=== sceSblACIsSystemProgramForKernel ===
Line 560: Line 500:
Temp name was sceSblACMgrIsShellForKernel.
Temp name was sceSblACMgrIsShellForKernel.


used by "scePfsACConvertModeForRedirect".
Used by "scePfsACConvertModeForRedirect".


return sceSblACMgrHasCapabilityForDriver(pid, 1);
return sceSblACMgrHasCapabilityForDriver(pid, 1);
Line 582: Line 522:
-> returns SceSysrootForDriver_26AA237C(1);
-> returns SceSysrootForDriver_26AA237C(1);


<source lang="C">
<source lang="C">int sceSblACMgrIsAllowedVirtualMachineForKernel(SceUID pid);</source>
int sceSblACMgrIsAllowedVirtualMachineForKernel(SceUID pid);
</source>


=== sceSblACMgrIsPSMRuntimeForKernel ===
=== sceSblACMgrIsPSMRuntimeForKernel ===
Line 600: Line 538:
or equals 0x2800C0101CD2000B (PCSI00011 - PSM Runtime)
or equals 0x2800C0101CD2000B (PCSI00011 - PSM Runtime)


<source lang="C">
<source lang="C">int sceSblACMgrIsPSMRuntimeForKernel(SceUID pid);</source>
int sceSblACMgrIsPSMRuntimeForKernel(SceUID pid);
</source>


=== sceSblACMgrIsUpdaterUISetupperOrPkgInstallerSpawnForKernel ===
=== sceSblACMgrIsUpdaterUISetupperOrPkgInstallerSpawnForKernel ===
Line 620: Line 556:
OR 0x2800800000000003 - cui_setupper.self OR 2800800000000015 - NPXS10082/spawn.self - Package Installer Spawn).
OR 0x2800800000000003 - cui_setupper.self OR 2800800000000015 - NPXS10082/spawn.self - Package Installer Spawn).


<source lang="C">
<source lang="C">int sceSblACMgrIsUpdaterUISetupperOrPkgInstallerSpawnForKernel(SceUID pid);</source>
int sceSblACMgrIsUpdaterUISetupperOrPkgInstallerSpawnForKernel(SceUID pid);
</source>


=== sceSblACMgrHasCapabilityForKernel ===
=== sceSblACMgrHasCapabilityForKernel ===
Line 632: Line 566:
|}
|}


<source lang="C">
<source lang="C">int sceSblACMgrHasCapabilityForKernel(SceUID pid, int bit);</source>
 
int sceSblACMgrHasCapabilityForKernel(SceUID pid, int bit);
 
</source>


=== sceSblACMgrIsWebCoreOrWebKitProcessForKernel ===
=== sceSblACMgrIsWebCoreOrWebKitProcessForKernel ===
Line 652: Line 582:
OR 0x2800000000008005 (NPXS10083 and SceWebKitProcess and NPXS10084 SceWebKitProcessMini)
OR 0x2800000000008005 (NPXS10083 and SceWebKitProcess and NPXS10084 SceWebKitProcessMini)


<source lang="C">
<source lang="C">int sceSblACMgrIsWebCoreOrWebKitProcessForKernel(SceUID pid);</source>
int sceSblACMgrIsWebCoreOrWebKitProcessForKernel(SceUID pid);
</source>


=== sceSblACMgrIsMiniSettingsForQAForKernel ===
=== sceSblACMgrIsMiniSettingsForQAForKernel ===
Line 670: Line 598:
or if sceSblACMgrHasCapabilityForDriver(pid, 130) returns true.
or if sceSblACMgrHasCapabilityForDriver(pid, 130) returns true.


<source lang="C">
<source lang="C">int sceSblACMgrIsMiniSettingsForQAForKernel(SceUID pid);</source>
int sceSblACMgrIsMiniSettingsForQAForKernel(SceUID pid);
</source>


=== unk_A50FDA27 ===
=== unk_A50FDA27 ===
Line 686: Line 612:
-> returns self_auth_info.attribute bit flag number 16 from left (---> XX XX 8X)
-> returns self_auth_info.attribute bit flag number 16 from left (---> XX XX 8X)


<source lang="C">
<source lang="C">int unk_A50FDA27(SceUID pid);</source>
int unk_A50FDA27(SceUID pid);
</source>


=== sceSblACMgrIsDevelopmentModeForKernel ===
=== sceSblACMgrIsDevelopmentModeForKernel ===
Line 718: Line 642:
or returns SceSysrootForDriver_26AA237C(void); if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true.
or returns SceSysrootForDriver_26AA237C(void); if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true.


<source lang="C">
<source lang="C">int sceSblACMgrIsPSMDevAssistantForKernel(SceUID pid);</source>
int sceSblACMgrIsPSMDevAssistantForKernel(SceUID pid);
</source>


=== unk_CCDBB74D_for_motoharu ===
=== unk_CCDBB74D_for_motoharu ===
Line 732: Line 654:
Seams to check some bit flags.
Seams to check some bit flags.


<source lang="C">
<source lang="C">int unk_CCDBB74D_for_motoharu(SceUID pid, void* a2, void *a3);</source>
int unk_CCDBB74D_for_motoharu(SceUID pid, void* a2, void *a3);
</source>


=== sceSblACMgrGetMediaTypeForKernel ===
=== sceSblACMgrGetMediaTypeForKernel ===
Line 762: Line 682:
or returns SceSysrootForDriver_26AA237C(1); if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true.
or returns SceSysrootForDriver_26AA237C(1); if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true.


<source lang="C">
<source lang="C">int unk_DC49E160(SceUID pid);</source>
int unk_DC49E160(SceUID pid);
</source>


=== unk_E273ED8C_for_motoharu ===
=== unk_E273ED8C_for_motoharu ===
Line 780: Line 698:
AND (unsigned int)(self_auth_info + dword_A08[0]) >= 2.
AND (unsigned int)(self_auth_info + dword_A08[0]) >= 2.


<source lang="C">
<source lang="C">int unk_E273ED8C_for_motoharu(SceUID pid);</source>
int unk_E273ED8C_for_motoharu(SceUID pid);
</source>


=== sceSblACMgrIsNotSandboxedForKernel ===
=== sceSblACMgrIsNotSandboxedForKernel ===
Line 810: Line 726:
OR 0x2800000000000001 (NPXS19999 - SceShell)
OR 0x2800000000000001 (NPXS19999 - SceShell)


<source lang="C">
<source lang="C">int sceSblACMgrIsNotSandboxedForKernel(SceUID pid);</source>
int sceSblACMgrIsNotSandboxedForKernel(SceUID pid);
</source>


=== sceSblACMgrIsSceShellForKernel ===
=== sceSblACMgrIsSceShellForKernel ===
Line 826: Line 740:
Returns true if self_auth_info->program_authority_id equals 0x2800000000000001 (NPXS19999 - SceShell)
Returns true if self_auth_info->program_authority_id equals 0x2800000000000001 (NPXS19999 - SceShell)


<source lang="C">
<source lang="C">int sceSblACMgrIsSceShellForKernel(SceUID pid);</source>
int sceSblACMgrIsSceShellForKernel(SceUID pid);
</source>


=== unk_FBA1A256 ===
=== unk_FBA1A256 ===
Line 840: Line 752:
Returns 0. Probably used in old firmwares and patched in new firmwares a security issue by making it return always false.
Returns 0. Probably used in old firmwares and patched in new firmwares a security issue by making it return always false.


<source lang="C">
<source lang="C">int unk_FBA1A256_return0(void);</source>
int unk_FBA1A256_return0(void);
</source>


=== unk_FB2AC5B4 ===
=== unk_FB2AC5B4 ===
Line 852: Line 762:
|}
|}


<source lang="C">
<source lang="C">int unk_FB2AC5B4(SceUID pid, char *maybe_path);</source>
 
int unk_FB2AC5B4(SceUID pid, char *maybe_path);
 
</source>


== SceSblACMgrForDriver ==
== SceSblACMgrForDriver ==
Line 874: Line 780:
OR 0x2800000000008005 (NPXS10083 and SceWebKitProcess and NPXS10084 SceWebKitProcessMini)
OR 0x2800000000008005 (NPXS10083 and SceWebKitProcess and NPXS10084 SceWebKitProcessMini)


<source lang="C">
<source lang="C">int sceSblACMgrIsWebCoreOrWebKitProcessForDriver(SceUID pid);</source>
int sceSblACMgrIsWebCoreOrWebKitProcessForDriver(SceUID pid);
</source>


=== unk_0606B87E ===
=== unk_0606B87E ===
Line 886: Line 790:
|}
|}


<source lang="C">
<source lang="C">int unk_0606B87E(int a1, int a2, int *a3);</source>
 
int unk_0606B87E(int a1, int a2, int *a3);
 
</source>


=== sceSblACMgrIsAllowedUsbSerialForDriver ===
=== sceSblACMgrIsAllowedUsbSerialForDriver ===
Line 906: Line 806:
or returns SceSysrootForDriver_26AA237C(1); if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true.
or returns SceSysrootForDriver_26AA237C(1); if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true.


<source lang="C">
<source lang="C">int sceSblACMgrIsAllowedUsbSerialForDriver(SceUID pid);</source>
int sceSblACMgrIsAllowedUsbSerialForDriver(SceUID pid);
</source>


=== sceSblACMgrIsPSMRuntimeForDriver ===
=== sceSblACMgrIsPSMRuntimeForDriver ===
Line 924: Line 822:
or equals 0x2800C0101CD2000B (PCSI00011 - PSM Runtime)
or equals 0x2800C0101CD2000B (PCSI00011 - PSM Runtime)


<source lang="C">
<source lang="C">int sceSblACMgrIsPSMRuntimeForDriver(SceUID pid);</source>
int sceSblACMgrIsPSMRuntimeForDriver(SceUID pid);
</source>


=== unk_0924896F_for_motoharu ===
=== unk_0924896F_for_motoharu ===
Line 942: Line 838:
AND (unsigned int)(self_auth_info + dword_A08[0]) >= 2.
AND (unsigned int)(self_auth_info + dword_A08[0]) >= 2.


<source lang="C">
<source lang="C">int unk_0924896F_for_motoharu(SceUID pid);</source>
int unk_0924896F_for_motoharu(SceUID pid);
</source>


=== sceSblACMgrIsSystemForDriver ===
=== sceSblACMgrIsSystemForDriver ===
Line 956: Line 850:
return sceSblACMgrHasCapabilityForDriver(pid, 0);
return sceSblACMgrHasCapabilityForDriver(pid, 0);


<source lang="C">
<source lang="C">int sceSblACMgrIsSystemForDriver(SceUID pid);</source>
int sceSblACMgrIsSystemForDriver(SceUID pid);
</source>


=== sceSblACMgrIsNotSandboxedForDriver ===
=== sceSblACMgrIsNotSandboxedForDriver ===
Line 986: Line 878:
OR 0x2800000000000001 (NPXS19999 - SceShell)
OR 0x2800000000000001 (NPXS19999 - SceShell)


<source lang="C">
<source lang="C">int sceSblACMgrIsNotSandboxedForDriver(SceUID pid);</source>
int sceSblACMgrIsNotSandboxedForDriver(SceUID pid);
</source>


=== sceSblACMgrIsGameProgramForDriver ===
=== sceSblACMgrIsGameProgramForDriver ===
Line 1,004: Line 894:
Returns true if self_auth_info->program_authority_id begins with 0x21 (NPDRM game) or 0x2F (SDK fSELF).
Returns true if self_auth_info->program_authority_id begins with 0x21 (NPDRM game) or 0x2F (SDK fSELF).


<source lang="C">
<source lang="C">int sceSblACMgrIsGameProgramForDriver(SceUID pid);</source>
int sceSblACMgrIsGameProgramForDriver(SceUID pid);
</source>


=== sceSblACMgrIsAllowedVirtualMachineForDriver ===
=== sceSblACMgrIsAllowedVirtualMachineForDriver ===
Line 1,024: Line 912:
-> returns SceSysrootForDriver_26AA237C(1);
-> returns SceSysrootForDriver_26AA237C(1);


<source lang="C">
<source lang="C">int sceSblACMgrIsAllowedVirtualMachineForDriver(SceUID pid);</source>
int sceSblACMgrIsAllowedVirtualMachineForDriver(SceUID pid);
</source>


=== unk_2E992B02 ===
=== unk_2E992B02 ===
Line 1,036: Line 922:
|}
|}


<source lang="C">
<source lang="C">int unk_2E992B02(SceUID pid);</source>
 
int unk_2E992B02(SceUID pid);
 
</source>


=== unk_3B356B98 ===
=== unk_3B356B98 ===
Line 1,050: Line 932:
|}
|}


<source lang="C">
<source lang="C">int unk_3B356B98(void* a1, void* a2);</source>
 
int unk_3B356B98(void* a1, void* a2);
 
</source>


=== sceSblACMgrIsFselfForDriver ===
=== sceSblACMgrIsFselfForDriver ===
Line 1,068: Line 946:
Returns true if self_auth_info->program_authority_id begins with 0x2F (SDK fSELF).
Returns true if self_auth_info->program_authority_id begins with 0x2F (SDK fSELF).


<source lang="C">
<source lang="C">int sceSblACMgrIsFselfForDriver(SceUID pid);</source>
int sceSblACMgrIsFselfForDriver(SceUID pid);
</source>


=== sceSblACMgrGetPathIdForDriver ===
=== sceSblACMgrGetMediaTypeForDriver ===
{| class="wikitable"
{| class="wikitable"
|-
|-
Line 1,079: Line 955:
| 3.60 || 0x4322F188
| 3.60 || 0x4322F188
|}
|}
<source lang="C">
int sceSblACMgrGetPathIdForDriver(const char *path, int* pathId);


</source>
<source lang="C">int sceSblACMgrGetMediaTypeForDriver(const char *path, int* media_type);</source>


=== unk_456DA7AC ===
=== unk_456DA7AC ===
Line 1,101: Line 974:
or 0x2800000000000044 (NPXS10085 - Videos) or 0x280000000000001E (NPXS10010 - Videos)
or 0x2800000000000044 (NPXS10085 - Videos) or 0x280000000000001E (NPXS10010 - Videos)


<source lang="C">
<source lang="C">int unk_456DA7AC(SceUID pid);</source>
int unk_456DA7AC(SceUID pid);
</source>


=== unk_48CFCEA2 ===
=== unk_48CFCEA2 ===
Line 1,113: Line 984:
|}
|}


<source lang="C">
<source lang="C">int unk_48CFCEA2(SceUID pid, int *a2, int *a3, int flags);</source>
 
int unk_48CFCEA2(SceUID pid, int *a2, int *a3, int flags);
 
</source>


=== unk_4CBD6156 ===
=== unk_4CBD6156 ===
Line 1,147: Line 1,014:
-> returns self_auth_info.attribute bit flag number 16 from left (---> XX XX 8X)
-> returns self_auth_info.attribute bit flag number 16 from left (---> XX XX 8X)


<source lang="C">
<source lang="C">int unk_4CBD6156(SceUID pid);</source>
int unk_4CBD6156(SceUID pid);
</source>


=== sceSblACMgrIsAllowedExtendedMemoryForDriver ===
=== sceSblACMgrIsAllowedExtendedMemoryForDriver ===
Line 1,165: Line 1,030:
or if sceSblACMgrHasCapabilityForDriver(pid, 130) (--> XX XX XX XX  XX XX XX XX  2X) returns true.
or if sceSblACMgrHasCapabilityForDriver(pid, 130) (--> XX XX XX XX  XX XX XX XX  2X) returns true.


<source lang="C">
<source lang="C">int sceSblACMgrIsAllowedExtendedMemoryForDriver(SceUID pid);</source>
int sceSblACMgrIsAllowedExtendedMemoryForDriver(SceUID pid);
</source>


=== unk_5C4BC352 ===
=== unk_5C4BC352 ===
Line 1,181: Line 1,044:
?Returns true if sceSblACMgrIsSIEAppForDriver returns true.?
?Returns true if sceSblACMgrIsSIEAppForDriver returns true.?


<source lang="C">
<source lang="C">int unk_5C4BC352(SceUID pid);</source>
int unk_5C4BC352(SceUID pid);
</source>


=== unk_5F9AF49C ===
=== unk_5F9AF49C ===
Line 1,197: Line 1,058:
Calls sceKernelCheckDipswForDriver(159, a2, a3, a4) and does different things according to the result.
Calls sceKernelCheckDipswForDriver(159, a2, a3, a4) and does different things according to the result.


<source lang="C">
<source lang="C">int unk_5F9AF49C(SceUID pid, char *unk_buf);</source>
int unk_5F9AF49C(SceUID pid, char *unk_buf);
</source>


=== unk_6210D745 ===
=== unk_6210D745 ===
Line 1,209: Line 1,068:
|}
|}


<source lang="C">
<source lang="C">int unk_6210D745(SceUID pid, void* a2, int flags);</source>
 
int unk_6210D745(SceUID pid, void* a2, int flags);
 
</source>


=== sceSblACMgrIsNonGameProgramForDriver ===
=== sceSblACMgrIsNonGameProgramForDriver ===
Line 1,243: Line 1,098:
or if [[SceSblACMgr#sceSblACMgrIsNotSandboxedForDriver|sceSblACMgrIsNotSandboxedForDriver]] returns true.
or if [[SceSblACMgr#sceSblACMgrIsNotSandboxedForDriver|sceSblACMgrIsNotSandboxedForDriver]] returns true.


<source lang="C">
<source lang="C">int unk_6D8A88B7(SceUID pid);</source>
int unk_6D8A88B7(SceUID pid);
</source>


=== unk_84604EED ===
=== unk_84604EED ===
Line 1,257: Line 1,110:
return sceSblACMgrHasCapabilityForDriver(pid, 31);
return sceSblACMgrHasCapabilityForDriver(pid, 31);


<source lang="C">
<source lang="C">int unk_84604EED(SceUID pid);</source>
int unk_84604EED(SceUID pid);
</source>


=== sceSblACIsSystemProgramForDriver ===
=== sceSblACIsSystemProgramForDriver ===
Line 1,287: Line 1,138:
or if sceSblACMgrHasCapabilityForDriver(pid, 3); (IsNonGame) returns true.
or if sceSblACMgrHasCapabilityForDriver(pid, 3); (IsNonGame) returns true.


<source lang="C">
<source lang="C">int sceSblACMgrIsNonGameOrGameProgramForKernel(SceUID pid);</source>
int sceSblACMgrIsNonGameOrGameProgramForKernel(SceUID pid);
</source>


=== sceSblACMgrIsUpdaterUISetupperOrPkgInstallerSpawnForDriver ===
=== sceSblACMgrIsUpdaterUISetupperOrPkgInstallerSpawnForDriver ===
Line 1,319: Line 1,168:
|}
|}


Wrapper to [[SceSysmem#sceSysrootGetSelfInfoForKernel|sceSysrootGetSelfInfoForKernel]].
Wrapper to [[SceSysmem#sceSysrootGetSelfAuthInfoForKernel|sceSysrootGetSelfAuthInfoForKernel]].


<source lang="C">
<source lang="C">int sceSblACMgrGetSelfAuthInfoForDriver(SceUID pid, SceSelfAuthInfo* self_auth_info);</source>
int sceSblACMgrGetSelfAuthInfoForDriver(SceUID pid, SceSelfInfo* self_auth_info);
</source>


=== sceSblACMgrIsSceShellForDriver ===
=== sceSblACMgrIsSceShellForDriver ===
Line 1,337: Line 1,184:
Returns true if self_auth_info->program_authority_id equals 0x2800000000000001 (NPXS19999 - SceShell)
Returns true if self_auth_info->program_authority_id equals 0x2800000000000001 (NPXS19999 - SceShell)


<source lang="C">
<source lang="C">int sceSblACMgrIsSceShellForDriver(SceUID pid);</source>
int sceSblACMgrIsSceShellForDriver(SceUID pid);
</source>


=== unk_A27E47A7 ===
=== unk_A27E47A7 ===
Line 1,351: Line 1,196:
return sceSblACMgrHasCapabilityForDriver(pid, 129);
return sceSblACMgrHasCapabilityForDriver(pid, 129);


<source lang="C">
<source lang="C">int unk_A27E47A7(SceUID pid);</source>
int unk_A27E47A7(SceUID pid);
</source>


=== sceSblACMgrIsSIEAppForDriver ===
=== sceSblACMgrIsSIEAppForDriver ===
Line 1,371: Line 1,214:
See [[https://vitadevwiki.com/vita/AuthorityId#SIE_apps]]
See [[https://vitadevwiki.com/vita/AuthorityId#SIE_apps]]


<source lang="C">
<source lang="C">int sceSblACMgrIsSIEAppForDriver(SceUID pid);</source>
int sceSblACMgrIsSIEAppForDriver(SceUID pid);
</source>


=== unk_A92CD636 ===
=== unk_A92CD636 ===
Line 1,385: Line 1,226:
return sceSblACMgrHasCapabilityForDriver(pid, 135);
return sceSblACMgrHasCapabilityForDriver(pid, 135);


<source lang="C">
<source lang="C">int unk_A92CD636(SceUID pid);</source>
int unk_A92CD636(SceUID pid);
</source>


=== unk_AD717E7A ===
=== unk_AD717E7A ===
Line 1,399: Line 1,238:
return sceSblACMgrHasCapabilityForDriver(pid, 32);
return sceSblACMgrHasCapabilityForDriver(pid, 32);


<source lang="C">
<source lang="C">int unk_AD717E7A(SceUID pid);</source>
 
int unk_AD717E7A(SceUID pid);
 
</source>


=== unk_AE1AF154 ===
=== unk_AE1AF154 ===
Line 1,417: Line 1,252:
or returns SceSysrootForDriver_E2515A08(void); if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true.
or returns SceSysrootForDriver_E2515A08(void); if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true.


<source lang="C">
<source lang="C">int unk_AE1AF154(SceUID pid);</source>
int unk_AE1AF154(SceUID pid);
</source>


=== unk_B12CEAA8_for_motoharu ===
=== unk_B12CEAA8_for_motoharu ===
Line 1,433: Line 1,266:
Used by SceExfatfs in VFS implementation functions: sceVfsNodeChstatForDriver and sceVfsNodeChstatByFdForDriver
Used by SceExfatfs in VFS implementation functions: sceVfsNodeChstatForDriver and sceVfsNodeChstatByFdForDriver


<source lang="C">
<source lang="C">int unk_B12CEAA8_for_motoharu(SceUID pid, st_attr_info *a1, st_attr_info *a2);</source>
int unk_B12CEAA8_for_motoharu(SceUID pid, st_attr_info *a1, st_attr_info *a2);
</source>


=== unk_B836CF13 ===
=== unk_B836CF13 ===
Line 1,449: Line 1,280:
-> returns self_auth_info.attribute bit flag number 16 from left (---> XX XX 8X)
-> returns self_auth_info.attribute bit flag number 16 from left (---> XX XX 8X)


<source lang="C">
<source lang="C">int unk_B836CF13(SceUID pid);</source>
int unk_B836CF13(SceUID pid);
</source>


=== unk_BE5667C5 ===
=== unk_BE5667C5 ===
Line 1,461: Line 1,290:
|}
|}


<source lang="C">
<source lang="C">int unk_BE5667C5(SceUID pid, void* a2, int a3);</source>
 
int unk_BE5667C5(SceUID pid, void* a2, int a3);
 
</source>


=== sceSblACMgrHasCapabilityForDriver ===
=== sceSblACMgrHasCapabilityForDriver ===
Line 1,475: Line 1,300:
|}
|}


<source lang="C">
<source lang="C">int sceSblACMgrHasCapabilityForDriver(SceUID pid, int bit);</source>
int sceSblACMgrHasCapabilityForDriver(SceUID pid, int bit);
</source>


=== sceSblACMgrIsPSMDevAssistantForDriver ===
=== sceSblACMgrIsPSMDevAssistantForDriver ===
Line 1,495: Line 1,318:
or returns SceSysrootForDriver_26AA237C(void); if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true.
or returns SceSysrootForDriver_26AA237C(void); if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true.


<source lang="C">
<source lang="C">int sceSblACMgrIsPSMDevAssistantForDriver(SceUID pid);</source>
int sceSblACMgrIsPSMDevAssistantForDriver(SceUID pid);
</source>


=== sceSblACMgrIsMiniSettingsForQAForDriver ===
=== sceSblACMgrIsMiniSettingsForQAForDriver ===
Line 1,513: Line 1,334:
or if sceSblACMgrHasCapabilityForDriver(pid, 130) returns true.
or if sceSblACMgrHasCapabilityForDriver(pid, 130) returns true.


<source lang="C">
<source lang="C">int sceSblACMgrIsMiniSettingsForQAForDriver(SceUID pid);</source>
int sceSblACMgrIsMiniSettingsForQAForDriver(SceUID pid);
</source>


=== unk_D7AD8471 ===
=== unk_D7AD8471 ===
Line 1,525: Line 1,344:
|}
|}


<source lang="C">
<source lang="C">int unk_D7AD8471(SceUID pid, char *maybe_path);</source>
 
int unk_D7AD8471(SceUID pid, char *maybe_path);
 
</source>


=== unk_E79C7A8D ===
=== unk_E79C7A8D ===
Line 1,539: Line 1,354:
|}
|}


<source lang="C">
<source lang="C">int unk_E79C7A8D(SceUID pid, char *maybe_path);</source>
 
int unk_E79C7A8D(SceUID pid, char *maybe_path);
 
</source>


=== sceSblACMgrIsDevelopmentModeForDriver ===
=== sceSblACMgrIsDevelopmentModeForDriver ===
Line 1,569: Line 1,380:
return sceSblACMgrHasCapabilityForDriver(pid, 128);
return sceSblACMgrHasCapabilityForDriver(pid, 128);


<source lang="C">
<source lang="C">int unk_F5AE24AC(SceUID pid);</source>
int unk_F5AE24AC(SceUID pid);
</source>


=== sceSblACMgrIsPspEmuForDriver ===
=== sceSblACMgrIsPspEmuForDriver ===
Line 1,585: Line 1,394:
Returns true if self_auth_info->program_authority_id equals 0x2800000000000013 (NPXS10029) or 0x2800000000007009 (NPXS10069 - testkit/old PSPemu).
Returns true if self_auth_info->program_authority_id equals 0x2800000000000013 (NPXS10029) or 0x2800000000007009 (NPXS10069 - testkit/old PSPemu).


<source lang="C">
<source lang="C">int sceSblACMgrIsPspEmuForDriver(SceUID pid);</source>
int sceSblACMgrIsPspEmuForDriver(SceUID pid);
</source>


=== unk_FF7125DE ===
=== unk_FF7125DE ===
Line 1,597: Line 1,404:
|}
|}


<source lang="C">
<source lang="C">int unk_FF7125DE(int unused, char *maybe_path, int *a3);</source>
 
int unk_FF7125DE(int unused, char *maybe_path, int *a3);
 
</source>


== SceSblACMgr ==
== SceSblACMgr ==


=== _sceSblACMgrIsGameProgram ===
=== _sceSblACMgrIsGameProgram ===
Line 1,611: Line 1,413:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x3C17A7F7
| 1.69-3.60 || 0x3C17A7F7
|-
| 3.60 || 0x3C17A7F7
|}
|}


<source lang="C">
<source lang="C">int _sceSblACMgrIsGameProgram(int *result);</source>
 
int _sceSblACMgrIsGameProgram(int *result);


</source>


[[Category:Modules]]
[[Category:Modules]]
[[Category:Kernel]]
[[Category:Kernel]]

Revision as of 21:40, 1 February 2019

Secure bootloader Access Control Manager

Module

Known NIDs

Version Name World Privilege NID
1.69 SceSblACMgr Non-secure Kernel 0xB6E5AEBE
3.60 SceSblACMgr Non-secure Kernel 0x7474D6F9

Libraries

Known NIDs

Version Name World Visibility NID
1.69-3.60 SceSblACMgrForKernel Non-secure Kernel 0x11F9B314
1.69-3.60 SceSblACMgrForDriver Non-secure Kernel 0x9AD8E213
1.69-3.60 SceSblACMgr Non-secure User 0xF069F219

Types

struct st_attr_info
{
  int index; //operation index
  char *st_attr;
  int size; //1 or 2 - size of st_attr
};


PathId

A code is passed in the header context to decrypt a SELF based on the path in which the SELF file must be located. This is likely a security feature to prevent SELFs that are designed to run from one path (for example os0:) from being copied and run from another path. It could also be used to select the key used in decryption.

Path Media Type comment
ux0:user 0
sd0 1
os0 2
vs0 3
vd0 4
tm0 5
ur0 6
host0 7
?boot0? ?slb2? 10 Found in NSKBL. Not findable and not working in 3.60 kernel. Could be the Media Type for slb2 SELFs.
ud0 11
ux0 12
gro0:app 13
gro0:patch 14
sa0 15
mfa0 16
mfb0 17
lma0 18
lmb0 19
lmc0 20
lmd0 21
pd0 22
ux0:app 23
ux0:patch 24
ux0:data 25
uma0 27

SceSblACMgrForKernel

unk_02422F1F

Version NID
3.60 0x02422F1F

return sceSblACMgrHasCapabilityForDriver(pid, 129);

int unk_02422F1F(SceUID pid);

unk_04C0ED3F

Version NID
3.60 0x04C0ED3F

return sceSblACMgrHasCapabilityForDriver(pid, 128);

int unk_04C0ED3F(SceUID pid);

sceSblACMgrIsGameProgramForKernel

Version NID
3.60 0x05FDC646

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id begins with 0x21 (NPDRM game) or 0x2F (SDK fSELF).

int sceSblACMgrIsGameProgramForKernel(SceUID pid);

unk_06BE9F0F

Version NID
3.60 0x06BE9F0F

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

?Returns true if sceSblACMgrIsSIEAppForDriver returns true.?

int unk_06BE9F0F(SceUID pid);

unk_0E489631

Version NID
3.60 0x0E489631

return sceSblACMgrHasCapabilityForDriver(pid, 32);

int unk_0E489631(SceUID pid);

unk_11C9158B

Version NID
3.60 0x11C9158B
int unk_11C9158B(void* a1, void* a2);

unk_165C3C7A

Version NID
3.60 0x165C3C7A
int unk_165C3C7A(SceUID pid, char *maybe_path);

unk_1948E9DB_return0

Version NID
3.60 0x1948E9DB

Returns 0. Probably used in old firmwares and patched in new firmwares a security issue by making it return always false.

int unk_1948E9DB_return0(void);

unk_1B160234

Version NID
3.60 0x1B160234
int unk_1B160234(SceUID pid, st_attr_info* a2, int *a3, int flags);

scePfsACSetFSAttrByModeForKernel

Version NID
0.990-3.60 0x2AE6CF27
int scePfsACSetFSAttrByModeForKernel(SceUID pid, st_attr_info *a2, int flags);

unk_30575458

Version NID
3.60 0x30575458

returns true if sceSblACMgrHasCapabilityForDriver(pid, 34) returns true (--> XX XX XX XX 2X),

or returns SceSysrootForDriver_26AA237C(void); if sceSblACMgrIsFselfForDriver returns true.

int unk_30575458(SceUID pid);

sceSblACMgrIsSystemForKernel

Version NID
3.60 0x31C23B66

return sceSblACMgrHasCapabilityForDriver(pid, 0);

int sceSblACMgrIsSystemForKernel(SceUID pid);

sceSblACMgrIsSIEAppForKernel

Version NID
3.60 0x3388F595

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id first 8 bytes equals ?0x28000000 or 0x22000000 or 0x21000000?

and if self_auth_info->program_authority_id last 8 bytes equals 0x1CD20010 or is lower.

See [[1]]

int sceSblACMgrIsSIEAppForKernel(SceUID pid);

unk_356B9139

Version NID
3.60 0x356B9139
int unk_356B9139(int unused, char *maybe_path, int *a3);

sceSblACMgrIsAllowedExtendedMemoryForKernel

Version NID
3.60 0x384D20FD

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id equals 0x280000000000001E (NPXS10010 - Videos) or 0x2800000000000010 (NPXS10104 - Mini Settings for QA) or 0x2800000000000031 (NPXS10036 - AVMediaService)

or if sceSblACMgrHasCapabilityForDriver(pid, 130) returns true.

int sceSblACMgrIsAllowedExtendedMemoryForKernel(SceUID pid);

sceSblACMgrIsNonGameProgramForKernel

Version NID
3.60 0x3F99279F

return sceSblACMgrHasCapabilityForDriver(pid, 3);

int sceSblACMgrIsNonGameProgramForKernel(SceUID pid);

unk_410357AF

Version NID
3.60 0x410357AF

returns true if sceSblACMgrHasCapabilityForDriver(pid, 134) returns true (--> XX XX XX XX XX XX XX XX X2),

or returns SceSysrootForDriver_E2515A08(void); if sceSblACMgrIsFselfForDriver returns true.

int unk_410357AF(SceUID pid);

sceSblACMgrIsPspEmuForKernel

Version NID
3.60 0x47B67F72

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id equals 0x2800000000000013 (NPXS10029) or 0x2800000000007009 (NPXS10069 - testkit/old PSPemu).

int sceSblACMgrIsPspEmuForKernel(SceUID pid);

unk_48F4D5EE

Version NID
3.60 0x48F4D5EE

return sceSblACMgrHasCapabilityForDriver(pid, 31);

int unk_48F4D5EE(SceUID pid);

unk_49509A83

Version NID
3.60 0x49509A83

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

If self_auth_info->program_authority_id first 8 bytes equals 0x28000000

AND sceSblQafMgrIsAllowSystemAppDebugForDriver returns false

-> returns self_auth_info.attribute bit flag number 16 from left (---> XX XX 8X)

Else, if self_auth_info->program_authority_id first 8 bytes equals 0x22000000 or 0x21000000

AND SceSysrootForDriver_56D85EB0 returns true

AND SceQafMgrForDriver_694D1096 returns true

-> returns 1

Else,

-> returns self_auth_info.attribute bit flag number 16 from left (---> XX XX 8X)

int unk_49509A83(SceUID pid);

unk_4C4B7D6B

Version NID
3.60 0x4C4B7D6B

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if sceSblACMgrHasCapabilityForDriver(pid, 3); returns true

or if self_auth_info->program_authority_id 8 last bytes equals 0x1CD20010 or is lower (SIE apps)

or 0x2800000000000044 (NPXS10085 - Videos) or 0x280000000000001E (NPXS10010 - Videos)

int unk_4C4B7D6B(SceUID pid);

sceSblACMgrIsNonGameOrGameProgramForDriver

Version NID
3.60 0x570D6AD3

Returns true if sceSblACMgrHasCapabilityForDriver(pid, 2); (IsGame) returns true

or if sceSblACMgrHasCapabilityForDriver(pid, 3); (IsNonGame) returns true.

int sceSblACMgrIsNonGameOrGameProgramForDriver(SceUID pid);

sceSblACMgrIsFselfForKernel

Version NID
3.60 0x5AC59172

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id begins with 0x2F (SDK fSELF).

int sceSblACMgrIsFselfForKernel(SceUID pid);

unk_5E6BA11C

Version NID
3.60 0x5E6BA11C

return sceSblACMgrHasCapabilityForDriver(pid, 135);

int unk_5E6BA11C(SceUID pid);

unk_7529E364

Version NID
3.60 0x7529E364

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if sceSblACMgrIsGameProgramForDriver returns true

or if sceSblACMgrIsNotSandboxedForDriver returns true.

int unk_7529E364(SceUID pid);

unk_75AAF981

Version NID
3.60 0x75AAF981
int unk_75AAF981(SceUID pid, st_attr_info * a2, int a3);

sceSblACMgrGetSelfAuthInfoForKernel

Version NID
3.60 0x7C2AF978

Wrapper to sceSysrootGetSelfAuthInfoForKernel.

int sceSblACMgrGetSelfAuthInfoForKernel(SceUID pid, SceSelfAuthInfo* self_auth_info);

unk_7F294A09

Version NID
3.60 0x7F294A09

Uses sceSysrootGetSelfInfoForKernel.

attribute + 0x10

Uses SceKernelCheckDipswForDriver(159); // is development mode

int unk_7F294A09(SceUID pid, char *maybe_path);

unk_8241AB5C

Version NID
3.60 0x8241AB5C
int unk_8241AB5C(SceUID pid, int a2);

sceSblACIsSystemProgramForKernel

Version NID
3.60 0x930CD037

Temp name was sceSblACMgrIsShellForKernel.

Used by "scePfsACConvertModeForRedirect".

return sceSblACMgrHasCapabilityForDriver(pid, 1);

int sceSblACIsSystemProgramForKernel(SceUID pid);

sceSblACMgrIsAllowedVirtualMachineForKernel

Version NID
3.60 0x96403142

If sceSblACMgrHasCapabilityForDriver(pid, 132) (--> XX XX XX XX XX XX XX XX X8) returns true

-> returns true

else if sceSblACMgrIsFselfForDriver returns true

-> returns SceSysrootForDriver_26AA237C(1);

int sceSblACMgrIsAllowedVirtualMachineForKernel(SceUID pid);

sceSblACMgrIsPSMRuntimeForKernel

Version NID
3.60 0x966B3738

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id equals 0x210000101CD2000A (PCSI00010 - Unity Runtime For PlayStation®Mobile (found inside a PSM .pkg))

or equals 0x2800C0101CD2000B (PCSI00011 - PSM Runtime)

int sceSblACMgrIsPSMRuntimeForKernel(SceUID pid);

sceSblACMgrIsUpdaterUISetupperOrPkgInstallerSpawnForKernel

Version NID
3.60 0x98B28671

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id first 8 bytes equals 0x28008000

(?0x2800800000000001? - never seen OR 0x2800800000000002 - gui_setupper.self

OR 0x2800800000000003 - cui_setupper.self OR 2800800000000015 - NPXS10082/spawn.self - Package Installer Spawn).

int sceSblACMgrIsUpdaterUISetupperOrPkgInstallerSpawnForKernel(SceUID pid);

sceSblACMgrHasCapabilityForKernel

Version NID
3.60 0x9EDAF856
int sceSblACMgrHasCapabilityForKernel(SceUID pid, int bit);

sceSblACMgrIsWebCoreOrWebKitProcessForKernel

Version NID
3.60 0xA7C3001D

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id equals 0x2800000000008003 (NPXS10017 and NPXS10037 - SceWebCore)

OR 0x2800000000008005 (NPXS10083 and SceWebKitProcess and NPXS10084 SceWebKitProcessMini)

int sceSblACMgrIsWebCoreOrWebKitProcessForKernel(SceUID pid);

sceSblACMgrIsMiniSettingsForQAForKernel

Version NID
3.60 0xAF6F208E

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id equals 0x2800000000000010 (NPXS10104 - Mini Settings for QA)

or if sceSblACMgrHasCapabilityForDriver(pid, 130) returns true.

int sceSblACMgrIsMiniSettingsForQAForKernel(SceUID pid);

unk_A50FDA27

Version NID
3.60 0xA50FDA27

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

-> returns self_auth_info.attribute bit flag number 16 from left (---> XX XX 8X)

int unk_A50FDA27(SceUID pid);

sceSblACMgrIsDevelopmentModeForKernel

Version NID
3.60 0xBBA13D9C

Returns sceKernelCheckDipswForDriver(159);

int sceSblACMgrIsDevelopmentModeForKernel(void);

sceSblACMgrIsPSMDevAssistantForKernel

Version NID
3.60 0xC90A9216

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id equals 0x210000101CD20007 (PCSI00007 - PlayStation®Mobile Development Assistant)

AND sceSblACMgrIsPSMRuntimeForDriver returns true.

or returns SceSysrootForDriver_26AA237C(void); if sceSblACMgrIsFselfForDriver returns true.

int sceSblACMgrIsPSMDevAssistantForKernel(SceUID pid);

unk_CCDBB74D_for_motoharu

Version NID
3.60 0xCCDBB74D

Seams to check some bit flags.

int unk_CCDBB74D_for_motoharu(SceUID pid, void* a2, void *a3);

sceSblACMgrGetMediaTypeForKernel

Version NID
0.990-3.60 0xD442962E

Temp name was sceSblACMgrGetPathIdForKernel.

int sceSblACMgrGetMediaTypeForKernel(const char *path, int* media_type);

unk_DC49E160

Version NID
3.60 0xDC49E160

returns true if sceSblACMgrHasCapabilityForDriver(pid, 1) returns true (--> 4X) (IsShell)

AND sceSblACMgrHasCapabilityForDriver(pid, 131) returns true (--> XX XX XX XX XX XX XX XX 1X) (IsAllowedUsbSerial)

or returns SceSysrootForDriver_26AA237C(1); if sceSblACMgrIsFselfForDriver returns true.

int unk_DC49E160(SceUID pid);

unk_E273ED8C_for_motoharu

Version NID
3.60 0xE273ED8C

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if ( !((unsigned __int64)(self_auth_info + *(_QWORD *)dword_A08) >> 32) )

AND (unsigned int)(self_auth_info + dword_A08[0]) >= 2.

int unk_E273ED8C_for_motoharu(SceUID pid);

sceSblACMgrIsNotSandboxedForKernel

Version NID
3.60 0xF5AD56E4

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id equals :

0x2800000000000013 (NPXS100028 - ScePspEmu)

OR 0x2800000000007009 (NPXS10069 - ScePspEmu old/testkit)

OR 0x2800000000000010 (NPXS10104 - Mini Settings For QA)

OR 0x280000000000002D (NPXS10026 - CMA)

OR 0x2800000000000022 (NPXS10027 - SceGameManual)

OR 0x2800000000000039 (NPXS10079 - Daily Checker BG)

OR 0x2800000000000001 (NPXS19999 - SceShell)

int sceSblACMgrIsNotSandboxedForKernel(SceUID pid);

sceSblACMgrIsSceShellForKernel

Version NID
3.60 0xF9FEF5F0

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id equals 0x2800000000000001 (NPXS19999 - SceShell)

int sceSblACMgrIsSceShellForKernel(SceUID pid);

unk_FBA1A256

Version NID
3.60 0xFBA1A256

Returns 0. Probably used in old firmwares and patched in new firmwares a security issue by making it return always false.

int unk_FBA1A256_return0(void);

unk_FB2AC5B4

Version NID
3.60 0xFB2AC5B4
int unk_FB2AC5B4(SceUID pid, char *maybe_path);

SceSblACMgrForDriver

sceSblACMgrIsWebCoreOrWebKitProcessForDriver

Version NID
3.60 0x0139FC20

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id equals 0x2800000000008003 (NPXS10017 and NPXS10037 - SceWebCore)

OR 0x2800000000008005 (NPXS10083 and SceWebKitProcess and NPXS10084 SceWebKitProcessMini)

int sceSblACMgrIsWebCoreOrWebKitProcessForDriver(SceUID pid);

unk_0606B87E

Version NID
3.60 0x0606B87E
int unk_0606B87E(int a1, int a2, int *a3);

sceSblACMgrIsAllowedUsbSerialForDriver

Version NID
3.60 0x062CAEB2

returns true if sceSblACMgrHasCapabilityForDriver(pid, 1) returns true (--> 4X) (IsShell)

AND sceSblACMgrHasCapabilityForDriver(pid, 131) returns true (--> XX XX XX XX XX XX XX XX 1X) (IsAllowedUsbSerial)

or returns SceSysrootForDriver_26AA237C(1); if sceSblACMgrIsFselfForDriver returns true.

int sceSblACMgrIsAllowedUsbSerialForDriver(SceUID pid);

sceSblACMgrIsPSMRuntimeForDriver

Version NID
3.60 0x091F7247

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id equals 0x210000101CD2000A (PCSI00010 - Unity Runtime For PlayStation®Mobile (found inside a PSM .pkg))

or equals 0x2800C0101CD2000B (PCSI00011 - PSM Runtime)

int sceSblACMgrIsPSMRuntimeForDriver(SceUID pid);

unk_0924896F_for_motoharu

Version NID
3.60 0x0924896F

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if ( !((unsigned __int64)(self_auth_info + *(_QWORD *)dword_A08) >> 32) )

AND (unsigned int)(self_auth_info + dword_A08[0]) >= 2.

int unk_0924896F_for_motoharu(SceUID pid);

sceSblACMgrIsSystemForDriver

Version NID
3.60 0x0948F41C

return sceSblACMgrHasCapabilityForDriver(pid, 0);

int sceSblACMgrIsSystemForDriver(SceUID pid);

sceSblACMgrIsNotSandboxedForDriver

Version NID
3.60 0x0B6E6CD7

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id equals :

0x2800000000000013 (NPXS100028 - ScePspEmu)

OR 0x2800000000007009 (NPXS10069 - ScePspEmu old/testkit)

OR 0x2800000000000010 (NPXS10104 - Mini Settings For QA)

OR 0x280000000000002D (NPXS10026 - CMA)

OR 0x2800000000000022 (NPXS10027 - SceGameManual)

OR 0x2800000000000039 (NPXS10079 - Daily Checker BG)

OR 0x2800000000000001 (NPXS19999 - SceShell)

int sceSblACMgrIsNotSandboxedForDriver(SceUID pid);

sceSblACMgrIsGameProgramForDriver

Version NID
3.60 0x1298C647

derived from sceAppMgrIsGameProgram

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id begins with 0x21 (NPDRM game) or 0x2F (SDK fSELF).

int sceSblACMgrIsGameProgramForDriver(SceUID pid);

sceSblACMgrIsAllowedVirtualMachineForDriver

Version NID
3.60 0x2A29453C

If sceSblACMgrHasCapabilityForDriver(pid, 132) (--> XX XX XX XX XX XX XX XX X8) returns true

-> returns true

else if sceSblACMgrIsFselfForDriver returns true

-> returns SceSysrootForDriver_26AA237C(1);

int sceSblACMgrIsAllowedVirtualMachineForDriver(SceUID pid);

unk_2E992B02

Version NID
3.60 0x2E992B02
int unk_2E992B02(SceUID pid);

unk_3B356B98

Version NID
3.60 0x3B356B98
int unk_3B356B98(void* a1, void* a2);

sceSblACMgrIsFselfForDriver

Version NID
3.60 0x426A4E8C

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id begins with 0x2F (SDK fSELF).

int sceSblACMgrIsFselfForDriver(SceUID pid);

sceSblACMgrGetMediaTypeForDriver

Version NID
3.60 0x4322F188
int sceSblACMgrGetMediaTypeForDriver(const char *path, int* media_type);

unk_456DA7AC

Version NID
3.60 0x456DA7AC

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if sceSblACMgrHasCapabilityForDriver(pid, 3); returns true

or if self_auth_info->program_authority_id 8 last bytes equals 0x1CD20010 or is lower (SIE apps)

or 0x2800000000000044 (NPXS10085 - Videos) or 0x280000000000001E (NPXS10010 - Videos)

int unk_456DA7AC(SceUID pid);

unk_48CFCEA2

Version NID
3.60 0x48CFCEA2
int unk_48CFCEA2(SceUID pid, int *a2, int *a3, int flags);

unk_4CBD6156

Version NID
3.60 0x4CBD6156

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

If self_auth_info->program_authority_id first 8 bytes equals 0x28000000

AND sceSblQafMgrIsAllowSystemAppDebugForDriver returns false

-> returns self_auth_info.attribute bit flag number 16 from left (---> XX XX 8X)

Else, if self_auth_info->program_authority_id first 8 bytes equals 0x22000000 or 0x21000000

AND SceSysrootForDriver_56D85EB0 returns true

AND SceQafMgrForDriver_694D1096 returns true

-> returns 1

Else,

-> returns self_auth_info.attribute bit flag number 16 from left (---> XX XX 8X)

int unk_4CBD6156(SceUID pid);

sceSblACMgrIsAllowedExtendedMemoryForDriver

Version NID
3.60 0x4DB7F512

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id equals 0x280000000000001E (NPXS10010 - Videos) or 0x2800000000000010 (NPXS10104 - Mini Settings for QA) or 0x2800000000000031 (NPXS10036 - AVMediaService)

or if sceSblACMgrHasCapabilityForDriver(pid, 130) (--> XX XX XX XX XX XX XX XX 2X) returns true.

int sceSblACMgrIsAllowedExtendedMemoryForDriver(SceUID pid);

unk_5C4BC352

Version NID
3.60 0x5C4BC352

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

?Returns true if sceSblACMgrIsSIEAppForDriver returns true.?

int unk_5C4BC352(SceUID pid);

unk_5F9AF49C

Version NID
3.60 0x5F9AF49C

Checks if program_authority_id begins with 0x21 (NPDRM game) or with 0x2F (SDK fSELF) and does different things accordingly.

Calls sceKernelCheckDipswForDriver(159, a2, a3, a4) and does different things according to the result.

int unk_5F9AF49C(SceUID pid, char *unk_buf);

unk_6210D745

Version NID
3.60 0x6210D745
int unk_6210D745(SceUID pid, void* a2, int flags);

sceSblACMgrIsNonGameProgramForDriver

Version NID
3.60 0x6C5AB07F

derived from sceAppMgrIsNonGameProgram

return sceSblACMgrHasCapabilityForDriver(pid, 3);

int sceSblACMgrIsNonGameProgramForDriver(SceUID pid);

unk_6D8A88B7

Version NID
3.60 0x6D8A88B7

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if sceSblACMgrIsGameProgramForDriver returns true

or if sceSblACMgrIsNotSandboxedForDriver returns true.

int unk_6D8A88B7(SceUID pid);

unk_84604EED

Version NID
3.60 0x84604EED

return sceSblACMgrHasCapabilityForDriver(pid, 31);

int unk_84604EED(SceUID pid);

sceSblACIsSystemProgramForDriver

Version NID
3.60 0x8612B243

Temp name was sceSblACMgrIsShellForDriver.

return sceSblACMgrHasCapabilityForDriver(pid, 1);

int sceSblACIsSystemProgramForDriver(SceUID pid);

sceSblACMgrIsNonGameOrGameProgramForKernel

Version NID
3.60 0x8A54DF3A

Returns true if sceSblACMgrHasCapabilityForDriver(pid, 2); (IsGame) returns true

or if sceSblACMgrHasCapabilityForDriver(pid, 3); (IsNonGame) returns true.

int sceSblACMgrIsNonGameOrGameProgramForKernel(SceUID pid);

sceSblACMgrIsUpdaterUISetupperOrPkgInstallerSpawnForDriver

Version NID
3.60 0x962CD237

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id first 8 bytes equals 0x28008000

(?0x2800800000000001? - never seen OR 0x2800800000000002 - gui_setupper.self

OR 0x2800800000000003 - cui_setupper.self OR 2800800000000015 - NPXS10082/spawn.self - Package Installer Spawn).

int sceSblACMgrIsUpdaterUISetupperOrPkgInstallerSpawnForDriver(SceUID pid);

sceSblACMgrGetSelfAuthInfoForDriver

Version NID
3.60 0x96AF69BD

Wrapper to sceSysrootGetSelfAuthInfoForKernel.

int sceSblACMgrGetSelfAuthInfoForDriver(SceUID pid, SceSelfAuthInfo* self_auth_info);

sceSblACMgrIsSceShellForDriver

Version NID
3.60 0x991FDC15

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id equals 0x2800000000000001 (NPXS19999 - SceShell)

int sceSblACMgrIsSceShellForDriver(SceUID pid);

unk_A27E47A7

Version NID
3.60 0xA27E47A7

return sceSblACMgrHasCapabilityForDriver(pid, 129);

int unk_A27E47A7(SceUID pid);

sceSblACMgrIsSIEAppForDriver

Version NID
3.60 0xA67E8E5B

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id first 8 bytes equals ?0x28000000 or 0x22000000 or 0x21000000?

and if self_auth_info->program_authority_id last 8 bytes equals 0x1CD20010 or is lower.

See [[2]]

int sceSblACMgrIsSIEAppForDriver(SceUID pid);

unk_A92CD636

Version NID
3.60 0xA92CD636

return sceSblACMgrHasCapabilityForDriver(pid, 135);

int unk_A92CD636(SceUID pid);

unk_AD717E7A

Version NID
3.60 0xAD717E7A

return sceSblACMgrHasCapabilityForDriver(pid, 32);

int unk_AD717E7A(SceUID pid);

unk_AE1AF154

Version NID
3.60 0xAE1AF154

returns true if sceSblACMgrHasCapabilityForDriver(pid, 134) returns true (--> XX XX XX XX XX XX XX XX X2),

or returns SceSysrootForDriver_E2515A08(void); if sceSblACMgrIsFselfForDriver returns true.

int unk_AE1AF154(SceUID pid);

unk_B12CEAA8_for_motoharu

Version NID
3.60 0xB12CEAA8

Seams to check some bit flags.

Used by SceExfatfs in VFS implementation functions: sceVfsNodeChstatForDriver and sceVfsNodeChstatByFdForDriver

int unk_B12CEAA8_for_motoharu(SceUID pid, st_attr_info *a1, st_attr_info *a2);

unk_B836CF13

Version NID
3.60 0xB836CF13

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

-> returns self_auth_info.attribute bit flag number 16 from left (---> XX XX 8X)

int unk_B836CF13(SceUID pid);

unk_BE5667C5

Version NID
3.60 0xBE5667C5
int unk_BE5667C5(SceUID pid, void* a2, int a3);

sceSblACMgrHasCapabilityForDriver

Version NID
3.60 0xC2D1F2FC
int sceSblACMgrHasCapabilityForDriver(SceUID pid, int bit);

sceSblACMgrIsPSMDevAssistantForDriver

Version NID
3.60 0xC98D82EE

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id equals 0x210000101CD20007 (PCSI00007 - PlayStation®Mobile Development Assistant)

AND sceSblACMgrIsPSMRuntimeForDriver returns true.

or returns SceSysrootForDriver_26AA237C(void); if sceSblACMgrIsFselfForDriver returns true.

int sceSblACMgrIsPSMDevAssistantForDriver(SceUID pid);

sceSblACMgrIsMiniSettingsForQAForDriver

Version NID
3.60 0xD0E11C89

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id equals 0x2800000000000010 (NPXS10104 - Mini Settings for QA)

or if sceSblACMgrHasCapabilityForDriver(pid, 130) returns true.

int sceSblACMgrIsMiniSettingsForQAForDriver(SceUID pid);

unk_D7AD8471

Version NID
3.60 0xD7AD8471
int unk_D7AD8471(SceUID pid, char *maybe_path);

unk_E79C7A8D

Version NID
3.60 0xE79C7A8D
int unk_E79C7A8D(SceUID pid, char *maybe_path);

sceSblACMgrIsDevelopmentModeForDriver

Version NID
3.60 0xE87D1777

derived from sceAppMgrIsDevelopmentMode

Returns sceKernelCheckDipswForDriver(159, a1, a2);

int sceSblACMgrIsDevelopmentModeForDriver(int a1, int a2);

unk_F5AE24AC

Version NID
3.60 0xF5AE24AC

return sceSblACMgrHasCapabilityForDriver(pid, 128);

int unk_F5AE24AC(SceUID pid);

sceSblACMgrIsPspEmuForDriver

Version NID
3.60 0xFD00C72A

Calls sceSblACMgrGetSelfAuthInfoForDriver to get self_auth_info.

Returns true if self_auth_info->program_authority_id equals 0x2800000000000013 (NPXS10029) or 0x2800000000007009 (NPXS10069 - testkit/old PSPemu).

int sceSblACMgrIsPspEmuForDriver(SceUID pid);

unk_FF7125DE

Version NID
3.60 0xFF7125DE
int unk_FF7125DE(int unused, char *maybe_path, int *a3);

SceSblACMgr

_sceSblACMgrIsGameProgram

Version NID
1.69-3.60 0x3C17A7F7
int _sceSblACMgrIsGameProgram(int *result);