Difference between revisions of "SceSblACMgr"

From Vita Development Wiki
Jump to navigation Jump to search
Line 1,220: Line 1,220:
 
|-
 
|-
 
! Version !! NID
 
! Version !! NID
 +
|-
 +
| 0.931 || not present
 
|-
 
|-
 
| 3.60 || 0x96AF69BD
 
| 3.60 || 0x96AF69BD
Line 1,228: Line 1,230:
 
Wrapper to [[SceSysmem#sceKernelSysrootGetProcessSelfAuthInfoForKernel|sceKernelSysrootGetProcessSelfAuthInfoForKernel]].
 
Wrapper to [[SceSysmem#sceKernelSysrootGetProcessSelfAuthInfoForKernel|sceKernelSysrootGetProcessSelfAuthInfoForKernel]].
  
<source lang="C">int sceSblACMgrGetProcessSelfAuthInfoForDriver(SceUID pid, SceSelfAuthInfo* self_auth_info);</source>
+
<source lang="C">int sceSblACMgrGetProcessSelfAuthInfoForDriver(SceUID pid, SceSelfAuthInfo *pSelfAuthInfo);</source>
  
 
=== sceSblACMgrIsSceShellForDriver ===
 
=== sceSblACMgrIsSceShellForDriver ===

Revision as of 02:42, 9 June 2020

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
};

note

common function

SceSblACMgr_0x570 : sceSblACMgrHasAttributes

Capability flags

The max bit number is 0xFF which means capability flags are stored on 0x100 / 8 = 0x20 bytes.

0x00:high-level-system(kernel only?)
0x01:system(ex:sce module)
0x02:npdrm
0x03:unknown
0x1F:unknown
/* 0x20-0x23:debug level? */
0x20:Allow super user
0x21:limited user
0x22:
0x80:unknown, used by SceSblACMgrForKernel_04C0ED3F
0x81:unknown, used by SceSblACMgrForKernel_02422F1F
0x82:QA app
0x83:Allow usbserial
0x84:Allow Virtual Machine2
0x85:
0x86:unknown, used by SceSblACMgrForKernel_410357AF
0x87:unknown, used by SceSblACMgrForKernel_5E6BA11C

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 os0:) from being copied and run from another path.

Path Media Type SELF Program Attribute Media Type Bit Number (0-255) Comment
ux0:user 0 0xFFFFFFFF (invalid) Its bit number would read out of attribute (valid bits 0-255) so there is an early unsigned int check to avoid this Media Type in secure_kernel. It is so unlikely that this Media Type is embedded in SELF Program Attribute.
sd0 1 0x41
os0 2 0x51
vs0 3 0x52
vd0 4 0x53
tm0 5 0x54
ur0 6 0x55
host0 7 0x42
? 8 0x43 Present in FWs 0.931-3.73 Secure Kernel.
? 9 0x40 Present in FWs 0.931-3.73 Secure Kernel.
?boot0? ?slb2? 10 0x50 Present in NSKBL and Secure Kernel. Not findable and not usable in FW 3.60 non-secure kernel. Could be the Media Type for slb2 or bootimage.skprx SELFs.
ud0 11 0x52
ux0 12 0x44
gro0:app 13 0x45
gro0:patch 14 0x46
sa0 15 0x47
mfa0 16 0x48
mfb0 17 0x49
lma0 18 0x4A
lmb0 19 0x4B
lmc0 20 0x4C
lmd0 21 0x4D
pd0 22 0x4E
ux0:app 23 0x5A
ux0:patch 24 0x5B
ux0:data 25 0x59
? 26 ? Not present in FWs 0.931-3.73 Secure Kernel thus would return error 0x800F0B32. Certainly usable in non-secure kernel though.
uma0 27 ? Not present in FWs 0.931-3.73 Secure Kernel thus would return error 0x800F0B32. Usable in non-secure kernel though.
// Code inspired by PSVita FWs 0.931-3.60 secure_kernel
uint32_t check_media_type_in_attribute(uint8_t *pAttribute, uint32_t media_type) {
  if (0x18 < media_type - 1) // This unsigned int check inhibits Media Type 0 because it has an invalid bit number (-1)
    return 0x800f0b32;
  uint32_t ret = 0x800F0B32; // Bad Media Type
  uint32_t bit_no = index_table[media_type];
  uint8_t media_type_byte = *(uint8_t *)pAttribute[bit_no >> 3];
  uint8_t media_type_mask = 1 << (~bit_no & 7);
  if (media_type_byte & media_type_mask != 0)
    ret = 0;
  return ret;
}

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

sceSblACMgrSetFSAttributeByModeForKernel

Version NID
0.990-3.60 0x2AE6CF27
int sceSblACMgrSetFSAttributeByModeForKernel(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 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 [[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 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.

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

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)

int unk_49509A83(SceUID pid);

unk_4C4B7D6B

Version NID
3.60 0x4C4B7D6B

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)

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

sceSblACMgrGetProcessSelfAuthInfoForKernel

Version NID
3.60 0x7C2AF978

Temp names was sceSblACMgrGetSelfAuthInfoForKernel.

Wrapper to sceKernelSysrootGetProcessSelfAuthInfoForKernel.

note : get only authid

int sceSblACMgrGetProcessSelfAuthInfoForKernel(SceUID pid, uint64_t *authid);

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

int sceSblACMgrIsPSMRuntimeForKernel(SceUID pid);

sceSblACMgrIsUpdaterUISetupperOrPkgInstallerSpawnForKernel

Version NID
3.60 0x98B28671

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

int sceSblACMgrIsUpdaterUISetupperOrPkgInstallerSpawnForKernel(SceUID pid);

sceSblACMgrHasCapabilityForKernel

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

sceSblACMgrIsWebCoreOrWebKitProcessForKernel

Version NID
3.60 0xA7C3001D

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)

int sceSblACMgrIsWebCoreOrWebKitProcessForKernel(SceUID pid);

sceSblACMgrIsQAForKernel

Version NID
3.60 0xAF6F208E

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.

int sceSblACMgrIsQAForKernel(SceUID pid);

unk_A50FDA27

Version NID
3.60 0xA50FDA27

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

int sceSblACMgrIsPSMDevAssistantForKernel(SceUID pid);

unk_CCDBB74D_for_motoharu

Version NID
3.60 0xCCDBB74D

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

int unk_E273ED8C_for_motoharu(SceUID pid);

sceSblACMgrIsNotSandboxedForKernel

Version NID
3.60 0xF5AD56E4

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)

int sceSblACMgrIsNotSandboxedForKernel(SceUID pid);

sceSblACMgrIsSceShellForKernel

Version NID
3.60 0xF9FEF5F0

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

int sceSblACMgrIsWebCoreOrWebKitProcessForDriver(SceUID pid);

sceSblACMgrGetFSAttributeByThreadAccessLevelForDriver

Version NID
3.60 0x0606B87E
int sceSblACMgrGetFSAttributeByThreadAccessLevelForDriver(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 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)

int sceSblACMgrIsPSMRuntimeForDriver(SceUID pid);

unk_0924896F_for_motoharu

Version NID
3.60 0x0924896F

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.

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

int sceSblACMgrIsNotSandboxedForDriver(SceUID pid);

sceSblACMgrIsGameProgramForDriver

Version NID
3.60 0x1298C647

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

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

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

int unk_4CBD6156(SceUID pid);

sceSblACMgrIsAllowedExtendedMemoryForDriver

Version NID
3.60 0x4DB7F512

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.

int sceSblACMgrIsAllowedExtendedMemoryForDriver(SceUID pid);

unk_5C4BC352

Version NID
3.60 0x5C4BC352

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

sceSblACMgrIsSystemProgramForDriver

Version NID
0.931-3.60 0x8612B243

Temp name was sceSblACMgrIsShellForDriver, sceSblACIsSystemProgramForDriver.

return sceSblACMgrHasCapabilityForDriver(pid, 1);

int sceSblACMgrIsSystemProgramForDriver(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 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).

int sceSblACMgrIsUpdaterUISetupperOrPkgInstallerSpawnForDriver(SceUID pid);

sceSblACMgrGetProcessSelfAuthInfoForDriver

Version NID
0.931 not present
3.60 0x96AF69BD

Temp name was sceSblACMgrGetSelfAuthInfoForDriver.

Wrapper to sceKernelSysrootGetProcessSelfAuthInfoForKernel.

int sceSblACMgrGetProcessSelfAuthInfoForDriver(SceUID pid, SceSelfAuthInfo *pSelfAuthInfo);

sceSblACMgrIsSceShellForDriver

Version NID
3.60 0x991FDC15

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

Seems 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 sceSblACMgrGetProcessSelfAuthInfoForDriver 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
// some_id: from 1 to 8
int unk_BE5667C5(SceUID pid, SceUInt32 some_id, int a3);

sceSblACMgrHasCapabilityForDriver

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

sceSblACMgrIsPSMDevAssistantForDriver

Version NID
3.60 0xC98D82EE

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.

int sceSblACMgrIsPSMDevAssistantForDriver(SceUID pid);

sceSblACMgrIsQAForDriver

Version NID
3.60 0xD0E11C89

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.

int sceSblACMgrIsQAForDriver(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);

int sceSblACMgrIsDevelopmentModeForDriver(void);

unk_F5AE24AC

Version NID
3.60 0xF5AE24AC

return sceSblACMgrHasCapabilityForDriver(pid, 128);

int unk_F5AE24AC(SceUID pid);

sceSblACMgrIsPspEmuForDriver

Version NID
3.60 0xFD00C72A

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

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