SceSblACMgr

Secure bootloader Attribute-Capability Manager

Common functions
FW 3.60 SceSblACMgr_0x570: sceSblACMgrHasAttribute

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

Attribute
Attribute flags are stored on 0x20 bytes. 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.

SceSblACMgrForKernel_F7524073
Returns true if QA flag byte 9 mask 1 is set.

sceSblACMgrHasMarlinFlagForKernel
return sceSblACMgrHasCapabilityForDriver(pid, 128);

sceSblACMgrHasMagicGateFlagForKernel
return sceSblACMgrHasCapabilityForDriver(pid, 129);

sceSblACMgrIsGameProgramForKernel
Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

Returns true if program_authority_id begins with 0x21 (game) or 0x2F (fSELF).

sceSblACMgrIsUnityRuntimeForPSMForKernel
Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

sceSblACMgrHasUserDebugFlagForKernel
This is a guessed name.

return sceSblACMgrHasCapabilityForDriver(pid, 32);

SceSblACMgrForKernel_11C9158B
Maybe sceSblACMgrGetFSAttributeByModeForKernel.

Same as.

SceSblACMgrForKernel_165C3C7A
A guessed name is sceSblACMgrIsVs0UserDriveAccessibleProgramForKernel.

Same as.

SceSblACMgrForKernel_1948E9DB
Equivalent of SceSblACMgrForKernel_FBA1A256.

SceSblACMgrForKernel_75AAF981
Equivalent of SceSblACMgrForKernel_BE5667C5.

Guessed name is sceSblACMgrIsAllowFSAttribute.

sceSblACMgrSetFSAttributeByModeForKernel
Equivalent of sceSblACMgrSetFSAttributeByModeForDriver.

SceSblACMgrForKernel_30575458
returns true if sceSblACMgrHasCapabilityForDriver(pid, 34) returns true

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

sceSblACMgrIsRootProgramForKernel
Temp name was sceSblACMgrIsSystemForKernel.

Same as sceSblACMgrIsRootProgramForDriver.

sceSblACMgrIsPSMDevAssistantForKernel
Temp name was sceSblACMgrIsSIEAppForKernel.

Equivalent of sceSblACMgrIsPSMDevAssistantForDriver.

sceSblACMgrIsAllowLoopBackMountForKernel
Temp name was sceSblACMgrIsAllowExtendedMemoryForKernel.

Equivalent of sceSblACMgrIsAllowLoopBackMountForDriver.

sceSblACMgrIsNonGameProgramForKernel
return sceSblACMgrHasCapabilityForDriver(pid, 3);

sceSblACMgrHasSystemDataFilePlayReadyFlagForKernel
returns true if sceSblACMgrHasCapabilityForDriver(pid, 134) returns true

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

sceSblACMgrIsPspEmuForKernel
Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

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

SceSblACMgrForKernel_48F4D5EE
Equivalent of SceSblACMgrForKernel_84604EED.

sceSblACMgrIsAllowProcessDebugForKernel
This is a guessed name. Temp name was sceSblACMgrIsAllowCoredumpForKernel.

sceSblACMgrIsAllowCacheForKernel
Equivalent of SceSblACMgrForKernel_456DA7AC.

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

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

sceSblACMgrIsFselfForKernel
Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

Returns true if program_authority_id begins with 0x2F (fSELF).

sceSblACMgrHasSystemDataFileFlagForKernel
return sceSblACMgrHasCapabilityForDriver(pid, 135);

SceSblACMgrForKernel_7529E364
Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

Returns true if sceSblACMgrIsGameProgramForDriver returns true

or if sceSblACMgrIsAllowMsMountForDriver returns true.

sceSblACMgrGetProcessProgramAuthIdForKernel
Temp name was sceSblACMgrGetSelfAuthInfoForKernel, sceSblACMgrGetProcessSelfAuthInfoForKernel.

SceSblACMgrForKernel_7F294A09
Uses sceKernelSysrootGetProcessSelfAuthInfoForKernel.

attribute + 0x10

Uses SceKernelCheckDipswForDriver(159); // is development mode

sceSblACIsSystemProgramForKernel
Temp name was sceSblACMgrIsShellForKernel.

Used by "scePfsACConvertModeForRedirect".

return sceSblACMgrHasCapabilityForDriver(pid, 1);

sceSblACMgrIsAllowVirtualMachineForKernel
If sceSblACMgrHasCapabilityForDriver(pid, 132) returns true

-> returns true

else if sceSblACMgrIsFselfForDriver returns true

-> returns SceSysrootForDriver_26AA237C(1);

sceSblACMgrIsPSMRuntimeForKernel
Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

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

or equals 0x2800C0101CD2000B (PCSI00011 - PSM Runtime)

sceSblACMgrIsUpdaterUISetupperOrPkgInstallerSpawnForKernel
Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

Returns true if 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 sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

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

OR 0x2800000000008005 (NPXS10083 and SceWebKitProcess and NPXS10084 SceWebKitProcessMini)

sceSblACMgrIsAllowUdcdForKernel
Temp name was sceSblACMgrIsMiniSettingsForQAForKernel.

Equivalent of.

SceSblACMgrForKernel_A50FDA27
Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

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

sceSblACMgrIsDevelopmentModeForKernel
Returns sceKernelCheckDipswForDriver(159);

sceSblACMgrIsPSMDevAssistantForKernel
Equivalent of sceSblACMgrIsPSMDevAssistantForDriver.

sceSblACMgrGetMediaTypeForKernel
Temp name was sceSblACMgrGetPathIdForKernel.

sceSblACMgrIsAllowUsbSerialForKernel
returns true if sceSblACMgrHasCapabilityForDriver(pid, 1) returns true

AND sceSblACMgrHasCapabilityForDriver(pid, 131) returns true

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

sceSblACMgrIsPsNowClientForKernel
Equivalent of sceSblACMgrIsPsNowClientForDriver.

sceSblACMgrIsAllowMsMountForKernel
Temp name was sceSblACMgrIsNotSandboxedForKernel.

Equivalent of sceSblACMgrIsAllowMsMountForDriver.

sceSblACMgrIsSceShellForKernel
Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

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

SceSblACMgrForKernel_FBA1A256
Returns 0. Probably used in very old firmwares and patched in new firmwares by making it return always false.

SceSblACMgrForKernel_356B9139
Equivalent of SceSblACMgrForKernel_FF7125DE.

sceSblACMgrIsWebCoreOrWebKitProcessForDriver
Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

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

OR 0x2800000000008005 (NPXS10083 and SceWebKitProcess and NPXS10084 SceWebKitProcessMini)

sceSblACMgrIsAllowUsbSerialForDriver
returns true if sceSblACMgrHasCapabilityForDriver(pid, 1) returns true

AND sceSblACMgrHasCapabilityForDriver(pid, 131) returns true

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

sceSblACMgrIsPSMRuntimeForDriver
Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

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

or equals 0x2800C0101CD2000B (PCSI00011 - PSM Runtime)

sceSblACMgrIsPsNowClientForDriver
Derived from sceAppMgrIsPsNowClient.

sceSblACMgrIsRootProgramForDriver
Temp name was sceSblACMgrIsSystemForDriver.

return sceSblACMgrHasCapabilityForDriver(pid, 0);

sceSblACMgrIsAllowMsMountForDriver
Temp name was sceSblACMgrIsNotSandboxedForDriver.

Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

Returns true if 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 sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

Returns true if program_authority_id begins with 0x21 (game) or 0x2F (fSELF).

sceSblACMgrIsAllowVirtualMachineForDriver
If sceSblACMgrHasCapabilityForDriver(pid, 132) returns true

-> returns true

else if sceSblACMgrIsFselfForDriver returns true

-> returns SceSysrootForDriver_26AA237C(1);

sceSblACMgrIsFselfForDriver
Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

Returns true if program_authority_id begins with 0x2F (fSELF).

sceSblACMgrIsAllowCacheForDriver
Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

Returns true:
 * if sceSblACMgrHasCapabilityForDriver(pid, 3); returns true
 * or if program_authority_id is between 0x0x210000101CD20007 and 0x0x21000010‭1CD20009‬ (PSM Dev Assistant apps)
 * or if fSELF and SceSysrootForDriver_26AA237C returns true

sceSblACMgrIsAllowProcessDebugForDriver
This is a guessed name. Temp name was sceSblACMgrIsAllowCoredumpForDriver.

Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

Returns true:
 * if program_authority_id first 8 bytes equals 0x28000000 AND sceSblQafMgrIsAllowSystemAppDebugForDriver returns false
 * if self_auth_info.attribute flag 16 is set
 * if program_authority_id first 8 bytes equals 0x22000000 or 0x21000000 AND SceSysrootForDriver_56D85EB0 returns true AND SceQafMgrForDriver_694D1096 returns true

SceSblACMgrForDriver_84604EED
return sceSblACMgrHasCapabilityForDriver(pid, 31);

sceSblACMgrIsAllowLoopBackMountForDriver
Temp name was sceSblACMgrIsAllowExtendedMemoryForDriver.

Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

Returns true if program_authority_id equals 0x280000000000001E (NPXS10010 - Videos) or 0x2800000000000010 (NPXS10104 - Mini Settings for QA) or 0x2800000000000031 (NPXS10036 - AVMediaService) or 0x220000101CC73883 (a certain nongame program???)

or if sceSblACMgrHasCapabilityForDriver(pid, 130) returns true.

sceSblACMgrIsUnityRuntimeForPSMForDriver
Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

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

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

SceSblACMgrForDriver_3B356B98
Maybe sceSblACMgrGetFSAttributeByModeForDriver.

Same as.

sceSblACMgrIsNonGameProgramForDriver
derived from sceAppMgrIsNonGameProgram

return sceSblACMgrHasCapabilityForDriver(pid, 3);

SceSblACMgrForDriver_6D8A88B7
Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

Returns true if sceSblACMgrIsGameProgramForDriver returns true

or if sceSblACMgrIsAllowMsMountForDriver returns true.

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 sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

Returns true if 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).

sceSblACMgrGetProcessProgramAuthIdForDriver
Temp name was sceSblACMgrGetSelfAuthInfoForDriver, sceSblACMgrGetProcessSelfAuthInfoForDriver.

sceSblACMgrIsSceShellForDriver
Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

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

sceSblACMgrHasMagicGateFlagForDriver
return sceSblACMgrHasCapabilityForDriver(pid, 129);

sceSblACMgrIsPSMDevAssistantForDriver
Temp name was sceSblACMgrIsSIEAppForDriver.

Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

Returns true if program_authority_id is between 0x210000101CD20007 and 0x210000101CD20009 (PSM Dev Assistant apps).

sceSblACMgrHasSystemDataFileFlagForDriver
return sceSblACMgrHasCapabilityForDriver(pid, 135);

sceSblACMgrHasUserDebugFlagForDriver
This is a guessed name.

Used by SceDeci4pLoadp, SceDeci4pDbgp

return sceSblACMgrHasCapabilityForDriver(pid, 32);

sceSblACMgrHasSystemDataFilePlayReadyFlagForDriver
returns true if sceSblACMgrHasCapabilityForDriver(pid, 134) returns true

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

SceSblACMgrForDriver_B12CEAA8
Seems to check some bit flags.

Used by SceExfatfs in VFS implementation functions: sceVfsNodeChstatForDriver and sceVfsNodeChstatByFdForDriver

SceSblACMgrForDriver_B836CF13
Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

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

sceSblACMgrIsPSMDevAssistantForDriver
Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

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

AND sceSblACMgrIsPSMRuntimeForDriver returns true.

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

sceSblACMgrIsAllowUdcdForDriver
Temp name was sceSblACMgrIsMiniSettingsForQAForDriver.

Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

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

or if program_authority_id equals 0x220000101CC73883 (a certain nongame program???)

or if sceSblACMgrHasCapabilityForDriver(pid, 130) returns true.

SceSblACMgrForDriver_E79C7A8D
A guessed name is sceSblACMgrIsVs0UserDriveAccessibleProgramForDriver.

Same as.

sceSblACMgrIsDevelopmentModeForDriver
derived from sceAppMgrIsDevelopmentMode

Returns sceKernelCheckDipswForDriver(159);

sceSblACMgrHasMarlinFlagForDriver
return sceSblACMgrHasCapabilityForDriver(pid, 128);

sceSblACMgrIsPspEmuForDriver
Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

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

SceSblACMgrForDriver_FF7125DE
Gets some info for path.