SceSblACMgr

Secure bootloader Attribute-Capability Manager

Common functions
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.

unk_0E489631
return sceSblACMgrHasCapabilityForDriver(pid, 32);

unk_11C9158B
Same as unk_3B356B98.

unk_1948E9DB
Equivalent of unk_FBA1A256.

unk_75AAF981
Equivalent of unk_BE5667C5.

sceSblACMgrSetFSAttributeByModeForKernel
Equivalent of sceSblACMgrSetFSAttributeByModeForDriver.

unk_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).

unk_48F4D5EE
Equivalent of unk_84604EED.

sceSblACMgrIsAllowCacheForKernel
Equivalent of unk_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);

unk_7529E364
Calls sceSblACMgrGetProcessProgramAuthIdForDriver to get program_authority_id.

Returns true if sceSblACMgrIsGameProgramForDriver returns true

or if sceSblACMgrIsAllowMsMountForDriver 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);

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

unk_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)

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

unk_356B9139
Equivalent of unk_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

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

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

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

unk_3B356B98
Maybe sceSblACMgrGetFSAttributeByModeForDriver.

sceSblACMgrIsNonGameProgramForDriver
derived from sceAppMgrIsNonGameProgram

return sceSblACMgrHasCapabilityForDriver(pid, 3);

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

unk_AD717E7A
return sceSblACMgrHasCapabilityForDriver(pid, 32);

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

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

unk_B12CEAA8
Seems to check some bit flags.

Used by SceExfatfs in VFS implementation functions: sceVfsNodeChstatForDriver and sceVfsNodeChstatByFdForDriver

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

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

unk_FF7125DE
Gets some info for path.