SceSblACMgr

Secure bootloader Access Control Manager

Common functions
SceSblACMgr_0x570 : sceSblACMgrHasAttribute

Capability
Capability flags are stored on 0x20 bytes. The max bit number is 0xFF.

Attribute
Attribute flags are stored on 0x20 bytes. The max bit number is 0xFF.

Media Type
A code is passed in the SceSblSmCommContext130 context buffer to decrypt a SELF based on the path in which the SELF file must be located. This is a security feature to prevent SELFs that are designed to run from one path (for example ) from being copied and run from another path.

unk_02422F1F
return sceSblACMgrHasCapabilityForDriver(pid, 129);

unk_04C0ED3F
return sceSblACMgrHasCapabilityForDriver(pid, 128);

sceSblACMgrIsGameProgramForKernel
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver to get self_auth_info.

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

unk_06BE9F0F
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver to get self_auth_info.

?Returns true if sceSblACMgrIsSIEAppForDriver returns true.?

unk_0E489631
return sceSblACMgrHasCapabilityForDriver(pid, 32);

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

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

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

sceSblACMgrIsSystemForKernel
return sceSblACMgrHasCapabilityForDriver(pid, 0);

sceSblACMgrIsSIEAppForKernel
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver 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 []

sceSblACMgrIsAllowedExtendedMemoryForKernel
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver 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.

sceSblACMgrIsNonGameProgramForKernel
return sceSblACMgrHasCapabilityForDriver(pid, 3);

unk_410357AF
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.

sceSblACMgrIsPspEmuForKernel
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver to get self_auth_info.

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

unk_48F4D5EE
return sceSblACMgrHasCapabilityForDriver(pid, 31);

unk_49509A83
used by SceCoredump

Calls sceSblACMgrGetProcessSelfAuthInfoForDriver 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)

unk_4C4B7D6B
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver 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)

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

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

sceSblACMgrIsFselfForKernel
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver to get self_auth_info.

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

unk_5E6BA11C
return sceSblACMgrHasCapabilityForDriver(pid, 135);

unk_7529E364
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver to get self_auth_info.

Returns true if sceSblACMgrIsGameProgramForDriver returns true

or if sceSblACMgrIsNotSandboxedForDriver returns true.

sceSblACMgrGetProcessProgramAuthIdForKernel
Temp names was sceSblACMgrGetSelfAuthInfoForKernel, sceSblACMgrGetProcessSelfAuthInfoForKernel.

unk_7F294A09
Uses sceKernelSysrootGetProcessSelfAuthInfoForKernel.

attribute + 0x10

Uses SceKernelCheckDipswForDriver(159); // is development mode

sceSblACIsSystemProgramForKernel
Temp name was sceSblACMgrIsShellForKernel.

Used by "scePfsACConvertModeForRedirect".

return sceSblACMgrHasCapabilityForDriver(pid, 1);

sceSblACMgrIsAllowedVirtualMachineForKernel
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);

sceSblACMgrIsPSMRuntimeForKernel
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver 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)

sceSblACMgrIsUpdaterUISetupperOrPkgInstallerSpawnForKernel
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver 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).

sceSblACMgrIsWebCoreOrWebKitProcessForKernel
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver 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)

sceSblACMgrIsQAForKernel
old name is sceSblACMgrIsMiniSettingsForQAForKernel

Calls sceSblACMgrGetProcessSelfAuthInfoForDriver 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.

unk_A50FDA27
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver to get self_auth_info.

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

sceSblACMgrIsDevelopmentModeForKernel
Returns sceKernelCheckDipswForDriver(159);

sceSblACMgrIsPSMDevAssistantForKernel
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver 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.

unk_CCDBB74D_for_motoharu
Seems to check some bit flags.

sceSblACMgrGetMediaTypeForKernel
Temp name was sceSblACMgrGetPathIdForKernel.

unk_DC49E160
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.

unk_E273ED8C_for_motoharu
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver 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.

sceSblACMgrIsNotSandboxedForKernel
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver 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)

sceSblACMgrIsSceShellForKernel
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver to get self_auth_info.

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

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

sceSblACMgrIsWebCoreOrWebKitProcessForDriver
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver 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)

sceSblACMgrIsAllowedUsbSerialForDriver
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.

sceSblACMgrIsPSMRuntimeForDriver
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver 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)

unk_0924896F_for_motoharu
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver 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.

sceSblACMgrIsSystemForDriver
return sceSblACMgrHasCapabilityForDriver(pid, 0);

sceSblACMgrIsNotSandboxedForDriver
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver 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)

sceSblACMgrIsGameProgramForDriver
derived from sceAppMgrIsGameProgram

Calls sceSblACMgrGetProcessSelfAuthInfoForDriver to get self_auth_info.

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

sceSblACMgrIsAllowedVirtualMachineForDriver
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);

sceSblACMgrIsFselfForDriver
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver to get self_auth_info.

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

unk_456DA7AC
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver 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)

unk_4CBD6156
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver 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)

sceSblACMgrIsAllowedExtendedMemoryForDriver
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver 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.

unk_5C4BC352
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver to get self_auth_info.

?Returns true if sceSblACMgrIsSIEAppForDriver returns true.?

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

Calls sceKernelCheckDipswForDriver(159) and does different things according to the result.

sceSblACMgrIsNonGameProgramForDriver
derived from sceAppMgrIsNonGameProgram

return sceSblACMgrHasCapabilityForDriver(pid, 3);

unk_6D8A88B7
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver to get self_auth_info.

Returns true if sceSblACMgrIsGameProgramForDriver returns true

or if sceSblACMgrIsNotSandboxedForDriver returns true.

unk_84604EED
return sceSblACMgrHasCapabilityForDriver(pid, 31);

sceSblACMgrIsSystemProgramForDriver
Temp name was sceSblACMgrIsShellForDriver, sceSblACIsSystemProgramForDriver.

return sceSblACMgrHasCapabilityForDriver(pid, 1);

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

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

sceSblACMgrIsUpdaterUISetupperOrPkgInstallerSpawnForDriver
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver 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).

sceSblACMgrGetProcessSelfAuthInfoForDriver
Temp name was sceSblACMgrGetSelfAuthInfoForDriver.

Wrapper to sceKernelSysrootGetProcessSelfAuthInfoForKernel.

sceSblACMgrIsSceShellForDriver
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver to get self_auth_info.

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

unk_A27E47A7
return sceSblACMgrHasCapabilityForDriver(pid, 129);

sceSblACMgrIsSIEAppForDriver
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver 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 []

unk_A92CD636
return sceSblACMgrHasCapabilityForDriver(pid, 135);

unk_AD717E7A
return sceSblACMgrHasCapabilityForDriver(pid, 32);

unk_AE1AF154
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.

unk_B12CEAA8_for_motoharu
Seems to check some bit flags.

Used by SceExfatfs in VFS implementation functions: sceVfsNodeChstatForDriver and sceVfsNodeChstatByFdForDriver

unk_B836CF13
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver to get self_auth_info.

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

sceSblACMgrIsPSMDevAssistantForDriver
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver 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.

sceSblACMgrIsQAForDriver
old name is sceSblACMgrIsMiniSettingsForQAForDriver

Calls sceSblACMgrGetProcessSelfAuthInfoForDriver 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.

sceSblACMgrIsDevelopmentModeForDriver
derived from sceAppMgrIsDevelopmentMode

Returns sceKernelCheckDipswForDriver(159);

unk_F5AE24AC
return sceSblACMgrHasCapabilityForDriver(pid, 128);

sceSblACMgrIsPspEmuForDriver
Calls sceSblACMgrGetProcessSelfAuthInfoForDriver to get self_auth_info.

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