SceSblACMgr

Secure block 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 sceSblACMgrGetPaidForDriver to get program_authority_id.

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

sceSblACMgrIsUnityRuntimeForPSMForKernel
Calls sceSblACMgrGetPaidForDriver to get program_authority_id.

sceSblACMgrHasUserDebugFlagForKernel
This is a guessed name.

return sceSblACMgrHasCapabilityForDriver(pid, 32);

SceSblACMgrForKernel_11C9158B
A guessed name is sceSblACMgrGetFSAttributeByModeForKernel.

Same as.

SceSblACMgrForKernel_165C3C7A
A guessed name is sceSblACMgrIsVs0UserDriveAccessibleProgramForKernel.

Same as.

SceSblACMgrForKernel_1948E9DB
Equivalent of.

SceSblACMgrForKernel_75AAF981
A guessed name is sceSblACMgrIsAllowFSAttributeForKernel.

Equivalent of.

sceSblACMgrSetFSAttributeByModeForKernel
Equivalent of.

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

or returns  if sceSblACMgrIsFselfForDriver returns true.

sceSblACMgrIsKernelProgramForKernel
Temp name was sceSblACMgrIsSystemForKernel, sceSblACMgrIsRootProgramForKernel.

Equivalent of.

sceSblACMgrIsPSMDevAssistantForKernel
Temp name was sceSblACMgrIsSIEAppForKernel.

Equivalent of.

sceSblACMgrIsAllowLoopBackMountForKernel
Temp name was sceSblACMgrIsAllowExtendedMemoryForKernel.

Equivalent of.

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

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

SceSblACMgrForKernel_48F4D5EE
Equivalent of.

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

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

sceSblACMgrHasSystemDataFileFlagForKernel
return sceSblACMgrHasCapabilityForDriver(pid, 135);

SceSblACMgrForKernel_7529E364
Calls sceSblACMgrGetPaidForDriver to get program_authority_id.

Returns true if sceSblACMgrIsGameProgramForDriver returns true

or if sceSblACMgrIsAllowMsMountForDriver returns true.

sceSblACMgrGetPaidForKernel
Temp name was sceSblACMgrGetProcessProgramAuthIdForKernel, sceSblACMgrGetSelfAuthInfoForKernel, sceSblACMgrGetProcessSelfAuthInfoForKernel.

SceSblACMgrForKernel_7F294A09
Uses sceKernelSysrootGetProcessSelfAuthInfoForKernel.

attribute + 0x10

Uses SceKernelCheckDipswForDriver(159); // is development mode

sceSblACMgrIsSystemProgramForKernel
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 sceSblACMgrGetPaidForDriver 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
This is a guessed name.

Calls sceSblACMgrGetPaidForDriver 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
This is a guessed name.

Calls sceSblACMgrGetPaidForDriver 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 sceSblACMgrGetPaidForDriver 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 sceSblACMgrGetPaidForDriver 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
This is a guessed name.

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

sceSblACMgrIsKernelProgramForDriver
Temp name was sceSblACMgrIsSystemForDriver, sceSblACMgrIsRootProgramForDriver.

Equivalent of.

return sceSblACMgrHasCapabilityForDriver(pid, 0);

sceSblACMgrIsAllowMsMountForDriver
Temp name was sceSblACMgrIsNotSandboxedForDriver.

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

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

sceSblACMgrIsAllowCacheForDriver
Calls sceSblACMgrGetPaidForDriver 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 sceSblACMgrGetPaidForDriver 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 sceSblACMgrGetPaidForDriver 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 sceSblACMgrGetPaidForDriver to get program_authority_id.

SceSblACMgrForDriver_5F9AF49C
might sceSblACMgrIsMediaAccessibleProgram.

SceAppMgr will pass some drive list to this function and if it returns SCE_FALSE, it will add invalid overlay for that drive.

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

Returns true if sceSblACMgrIsGameProgramForDriver returns true

or if sceSblACMgrIsAllowMsMountForDriver returns true.

sceSblACMgrIsSystemProgramForDriver
Temp name was sceSblACMgrIsShellForDriver.

return sceSblACMgrHasCapabilityForDriver(pid, 1);

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

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

sceSblACMgrIsUpdaterUISetupperOrPkgInstallerSpawnForDriver
This is a guessed name.

Calls sceSblACMgrGetPaidForDriver 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).

sceSblACMgrGetPaidForDriver
Temp name was sceSblACMgrGetProcessProgramAuthIdForDriver, sceSblACMgrGetSelfAuthInfoForDriver, sceSblACMgrGetProcessSelfAuthInfoForDriver.

sceSblACMgrIsSceShellForDriver
Calls sceSblACMgrGetPaidForDriver 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 sceSblACMgrGetPaidForDriver 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 sceSblACMgrGetPaidForDriver to get program_authority_id.

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

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