SceSblACMgr: Difference between revisions
(112 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
Secure | Secure block Attribute-Capability Manager | ||
== Module == | == Module == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version | ! Version !! World !! Privilege | ||
|- | |- | ||
| | | 0.931.010-3.740.011 || Non-secure || Kernel | ||
|} | |} | ||
Line 21: | Line 18: | ||
! Version !! Name !! World !! Visibility !! NID | ! Version !! Name !! World !! Visibility !! NID | ||
|- | |- | ||
| | | 0.931.010-3.740.011 || [[SceSblACMgr#SceSblACMgrForKernel|SceSblACMgrForKernel]] || Non-secure || Kernel || 0x11F9B314 | ||
|- | |- | ||
| | | 0.931.010-3.740.011 || [[SceSblACMgr#SceSblACMgrForDriver|SceSblACMgrForDriver]] || Non-secure || Kernel || 0x9AD8E213 | ||
|- | |- | ||
| | | 0.931.010-3.740.011 || [[SceSblACMgr#SceSblACMgr|SceSblACMgr]] || Non-secure || User || 0xF069F219 | ||
|} | |} | ||
Line 31: | Line 28: | ||
<source lang="C"> | <source lang="C"> | ||
struct st_attr_info { | typedef struct st_attr_info_internal { | ||
int index; //operation index | SceUInt32 st_attr; | ||
int unk_0x04; | |||
} st_attr_info_internal; | |||
}; | |||
typedef struct st_attr_info { | |||
int index; // operation index | |||
st_attr_info_internal *st_attr; | |||
SceSize size; // 1 or 2 - size of st_attr | |||
} st_attr_info; | |||
</source> | </source> | ||
== | == Notes == | ||
=== | |||
=== Common functions === | |||
FW 3.60 SceSblACMgr_0x570: sceSblACMgrHasAttribute | |||
== Capability == | |||
Capability flags are stored on 0x20 bytes. Max bit number is 0xFF. | |||
{| class="wikitable" | |||
! Bit !! Class !! Name !! Description | |||
|- | |||
| 0 || privilege || root || | |||
|- | |||
| 1 || privilege || system || | |||
|- | |||
| 2 || privilege || game || Set on fSELF type 1. | |||
|- | |||
| 3 || privilege || nongame || Set on fSELF type 2. | |||
|- | |||
| 31 || ? || ? || Used by [[#SceSblACMgrForKernel_84604EED]]. | |||
|- | |||
| 32 || ?debug level? || ?process dbg? || Bypass spawner privilege requirement and ignore shared secret. | |||
|- | |||
| 33 || ?debug level? || ?limited user? || Prohibits spawned attribute flag 17 at same time as self_type mask 0x20 and (genuine CEX or masked self_type != 0x10000). Error 0x800F0B35. | |||
|- | |||
| 34 || ?debug level? || ?remap? || VM function. Used by [[#SceSblACMgrForKernel_30575458]] ([[SceSysmem#sceKernelSysrootCheckRemapCodeForUserForKernel]]). | |||
|- | |||
| 35 || ?debug level? || ? || | |||
|- | |||
| 52-55 || ? || ? || Set on fSELF type 1. | |||
|- | |||
| 56-59 || ? || ? || Set on fSELF type 2. | |||
|- | |||
| 96-127 || ? || ? || Always set (0xFFFFFFFF). | |||
|- | |||
| 128 || function || marlin || Used by [[#sceSblACMgrHasMarlinFlagForKernel]], [[#sceSblACMgrHasMarlinFlagForDriver]]. | |||
|- | |||
| 129 || function || magic_gate || Used by [[#sceSblACMgrHasMagicGateFlagForKernel]], [[#sceSblACMgrHasMagicGateFlagForDriver]]. | |||
|- | |||
| 130 || function || udcd || Allows LoopBack Mount, Allows Udcd. | |||
|- | |||
| 131 || function || usb_serial || | |||
|- | |||
| 132 || function || virtual_machine || | |||
|- | |||
| 133 || function || force_open_msgpipe || Used by [[#SceSblACMgrForKernel_8241AB5C]] (and [[SceKernelThreadMgr#sceKernelOpenMsgPipe]]). | |||
|- | |||
| 134 || function || system_data_file_play_ready || Used by [[#sceSblACMgrHasSystemDataFilePlayReadyFlagForKernel]], [[#sceSblACMgrHasSystemDataFilePlayReadyFlagForDriver]]. | |||
|- | |||
| 135 || function || system_data_file || Used by [[#sceSblACMgrHasSystemDataFileFlagForDriver]], [[#sceSblACMgrHasSystemDataFileFlagForDriver]] | |||
|} | |||
== | == Attribute == | ||
Attribute flags are stored on 0x20 bytes. Max bit number is 0xFF. | |||
{| class="wikitable" | |||
! Bit !! Class !! Name !! Description | |||
|- | |||
| 0 || spawn_by || system || | |||
|- | |||
| 1 || spawn_by || game || | |||
|- | |||
| 2 || spawn_by || nongame || | |||
|- | |||
| 16 || ? || coredump || Triggers a coredump when app crashes. Prohibits self_type mask 0x10000. Error 0x800F0B35. | |||
|- | |||
| 17 || ? || ? || Prohibits spawner capability flag 33 at same time as self_type mask 0x20 and (genuine CEX or masked self_type != 0x10000). Error 0x800F0B35. | |||
|- | |||
| 29 || platform || dex || | |||
|- | |||
| 30 || platform || test, tool || Also supported by Diag. | |||
|- | |||
| 31 || platform || cex || Also supported by Diag. | |||
|- | |||
| 32 || mode || production || Requires production mode (Manufacturing mode). | |||
|- | |||
| 33 || mode || no_production || Prohibits production mode (Manufacturing mode). Set on fSELF type 1 and 2. | |||
|- | |||
| 34 || mode || qa_0xD_mask_1 || Requires QA flag 0xD mask 1. | |||
|- | |||
| 35 || mode || no_qa_0xD_mask_1 || Prohibits QA flag 0xD mask 1. | |||
|- | |||
| 36 || mode || some boot flag || Requires [[Second_Loader#Boot_type_indicator_for_slsk]] mask 0x20, but it seems this boot type is disabled in FW 3.60 release second_loader. | |||
|- | |||
| 37 || mode || qa_0xF_mask_1 || Requires QA flag 0xF mask 1. | |||
|- | |||
| 48 || "fself_related" || ? || | |||
|- | |||
| 49 || "fself_related" || ? || | |||
|- | |||
| 50 || "fself_related" || ? || Set on fSELF type 1. | |||
|- | |||
| 51 || "fself_related" || ? || Set on fSELF type 1. | |||
|- | |||
| 52 || "fself_related" || ? || Set on fSELF type 2. | |||
|- | |||
| 53 || "fself_related" || ? || Set on fSELF type 2. | |||
|- | |||
| 54 || "fself_related" || ? || Set on fSELF type 1 and 2. | |||
|- | |||
| 55 || "fself_related" || ? || Set on fSELF type 1 and 2. | |||
|- | |||
| 64 || media || ? || Media Type 9 | |||
|- | |||
| 65 || media || sd0 || Set on fSELF type 1 and 2. | |||
|- | |||
| 66 || media || host0 || Set on fSELF type 1 and 2 only in Development Mode. | |||
|- | |||
| 67 || media || ? || Media Type 8 | |||
|- | |||
| 68 || media || ux0 || | |||
|- | |||
| 69 || media || gro0:app || Set on fSELF type 1 and 2 only in Release Mode. | |||
|- | |||
| 70 || media || gro0:patch || Set on fSELF type 1 and 2 only in Release Mode. | |||
|- | |||
| 71 || media || sa0 || | |||
|- | |||
| 72 || media || mfa0 || | |||
|- | |||
| 73 || media || mfb0 || | |||
|- | |||
| 74 || media || lma0 || | |||
|- | |||
| 75 || media || lmb0 || | |||
|- | |||
| 76 || media || lmc0 || | |||
|- | |||
| 77 || media || lmd0 || | |||
|- | |||
| 78 || media || pd0 || | |||
|- | |||
| 79 || media || ? || Maybe reserved or unused. | |||
|- | |||
| 80 || media || ?boot0? ?slb2? || | |||
|- | |||
| 81 || media || os0 || | |||
|- | |||
| 82 || media || vs0 || | |||
|- | |||
| 83 || media || vd0 || | |||
|- | |||
| 84 || media || tm0 || | |||
|- | |||
| 85 || media || ur0 || | |||
|- | |||
| 86 || media || ud0 || | |||
|- | |||
| 87 || media || ? || | |||
|- | |||
| 88 || media || ? || | |||
|- | |||
| 89 || media || ux0:data || | |||
|- | |||
| 90 || media || memcard (ux0:app) || | |||
|- | |||
| 91 || media || memcard_patch (ux0:patch) || | |||
|- | |||
| 92-95 || media || ? || Used by [[SceMagicGate]]. | |||
|- | |||
| 96 || level or self_type || kernel || | |||
|- | |||
| 97 || level or self_type || usermode || | |||
|- | |||
| 98 || level or self_type || SM || | |||
|- | |||
| 128 || ? || qa_0xB_mask_0x10 || On Test/Tool/Diag platform, it requires QA flag 0xB mask 0x10. Error 0x800F0B33. | |||
|- | |||
| 129 || ? || ? || Allows limited vs0 user drive access. Used by [[#SceSblACMgrForKernel_165C3C7A]], [[#SceSblACMgrForDriver_E79C7A8D]]. | |||
|- | |||
| 136-223 || ? || ? || Never set? | |||
|- | |||
| 224-255 || ? || ? || Always set (0xFFFFFFFF). | |||
|} | |||
== | == Media Type == | ||
A code is passed in the | 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 <code>os0:</code>) from being copied and run from another path. | ||
{| class="wikitable" | {| class="wikitable" | ||
! Path !! Media Type !! | ! Path !! Media Type !! SELF Program Attribute Media Type Bit Number (0-255) !! Comment | ||
|- | |- | ||
| ux0:user || 0 || | | ux0:user, 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 || | | sd0 || 1 || 0x41 || | ||
|- | |- | ||
| os0 || 2 || | | os0 || 2 || 0x51 || | ||
|- | |- | ||
| vs0 || 3 || | | vs0 || 3 || 0x52 || | ||
|- | |- | ||
| vd0 || 4 || | | vd0 || 4 || 0x53 || | ||
|- | |- | ||
| tm0 || 5 || | | tm0 || 5 || 0x54 || | ||
|- | |- | ||
| ur0 || 6 || | | ur0 || 6 || 0x55 || | ||
|- | |- | ||
| host0 || 7 || | | host0 || 7 || 0x42 || For usermode self_type, requires QA flag 0xD mask 2. For kernel or SM self_type, requires QA flag 0xE mask 1. | ||
|- | |||
| ? || 8 || 0x43 || Present in FWs 0.931.010-3.740.011 [[Secure Kernel]]. | |||
|- | |||
| ? || 9 || 0x40 || Present in FWs 0.931.010-3.740.011 [[Secure Kernel]]. | |||
|- | |||
| slb || 10 || 0x50 || like for kprx_auth_sm.self. | |||
Also in external boot mode, the mediaType of self loaded by Kernel/User will be unconditionally set to this mediaType (10). | |||
<s>Only set when kbl_param->boot_type_indicator_1 has flag 0x40, which seems to never happen on external (release) FWs. It is used to load SM (usually from os0:) instead of using sd0: Media Type.</s> | |||
|- | |- | ||
| | | ud0 || 11 || 0x56 || | ||
|- | |- | ||
| | | ux0 || 12 || 0x44 || | ||
|- | |- | ||
| | | gro0:app, gro0:/app || 13 || 0x45 || | ||
|- | |- | ||
| gro0: | | gro0:patch, 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, ux0:/app || 23 || 0x5A || | ||
|- | |- | ||
| ux0: | | ux0:patch, ux0:/patch || 24 || 0x5B || | ||
|- | |- | ||
| ux0: | | ux0:data, ux0:/data || 25 || 0x59 || | ||
|- | |- | ||
| | | ? || 26 || ? || Not present in FWs 0.931.010-3.740.011 [[Secure Kernel]] thus would return error 0x800F0B32. Certainly usable in non-secure kernel though. | ||
|- | |- | ||
| uma0 || 27 || | | uma0 || 27 || ? || Not present in FWs 0.931.010-3.740.011 [[Secure Kernel]] thus would return error 0x800F0B32. Usable in non-secure kernel though. | ||
|} | |} | ||
<source lang="C"> | |||
// Code inspired by PSVita FWs 0.931.010-3.740.011 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; | |||
} | |||
</source> | |||
== SceSblACMgrForKernel == | == SceSblACMgrForKernel == | ||
=== | === SceSblACMgrForKernel_F7524073 === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 3.60 || | | 0.931 || 0xF7524073 | ||
|- | |||
| 3.60 || not present | |||
|} | |} | ||
Returns true if QA flag byte 9 mask 1 is set. | |||
<source lang="C"> | <source lang="C">SceBool SceSblACMgrForKernel_F7524073(void);</source> | ||
=== | === sceSblACMgrHasMarlinFlagForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 149: | Line 326: | ||
return sceSblACMgrHasCapabilityForDriver(pid, 128); | return sceSblACMgrHasCapabilityForDriver(pid, 128); | ||
<source lang="C">int | <source lang="C">int sceSblACMgrHasMarlinFlagForKernel(SceUID pid);</source> | ||
=== sceSblACMgrHasMagicGateFlagForKernel === | |||
{| class="wikitable" | |||
|- | |||
! Version !! NID | |||
|- | |||
| 3.60 || 0x02422F1F | |||
|} | |||
return sceSblACMgrHasCapabilityForDriver(pid, 129); | |||
<source lang="C">int sceSblACMgrHasMagicGateFlagForKernel(SceUID pid);</source> | |||
=== sceSblACMgrIsGameProgramForKernel === | === sceSblACMgrIsGameProgramForKernel === | ||
Line 159: | Line 348: | ||
|} | |} | ||
Calls [[SceSblACMgr# | Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | ||
Returns true if | Returns true if program_authority_id begins with 0x21 (game) or 0x2F (fSELF). | ||
<source lang="C">int sceSblACMgrIsGameProgramForKernel(SceUID pid);</source> | <source lang="C">int sceSblACMgrIsGameProgramForKernel(SceUID pid);</source> | ||
=== | === sceSblACMgrIsUnityRuntimeForPSMForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 173: | Line 362: | ||
|} | |} | ||
Calls [[SceSblACMgr# | Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | ||
<source lang="C">int | <source lang="C">int sceSblACMgrIsUnityRuntimeForPSMForKernel(SceUID pid);</source> | ||
=== | === sceSblACMgrHasUserDebugFlagForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 186: | Line 373: | ||
| 3.60 || 0x0E489631 | | 3.60 || 0x0E489631 | ||
|} | |} | ||
This is a guessed name. | |||
return sceSblACMgrHasCapabilityForDriver(pid, 32); | return sceSblACMgrHasCapabilityForDriver(pid, 32); | ||
<source lang="C">int | <source lang="C">int sceSblACMgrHasUserDebugFlagForKernel(SceUID pid);</source> | ||
=== | === SceSblACMgrForKernel_11C9158B === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 3.60 || 0x11C9158B | | 0.931-3.60 || 0x11C9158B | ||
|} | |} | ||
A guessed name is sceSblACMgrGetFSAttributeByModeForKernel. | |||
=== | Same as [[#SceSblACMgrForDriver_3B356B98]]. | ||
<source lang="C">int SceSblACMgrForKernel_11C9158B(void* input, void* output);</source> | |||
=== SceSblACMgrForKernel_165C3C7A === | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 209: | Line 402: | ||
|} | |} | ||
A guessed name is sceSblACMgrIsVs0UserDriveAccessibleProgramForKernel. | |||
=== | Same as [[#SceSblACMgrForDriver_E79C7A8D]]. | ||
<source lang="C">SceBool SceSblACMgrForKernel_165C3C7A(SceUID pid, const SceChar8 *path);</source> | |||
=== SceSblACMgrForKernel_1948E9DB === | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 219: | Line 416: | ||
|} | |} | ||
Equivalent of [[#SceSblACMgrForKernel_FBA1A256]]. | |||
<source lang="C">int | <source lang="C">int SceSblACMgrForKernel_1948E9DB(void);</source> | ||
=== | === SceSblACMgrForKernel_CCDBB74D === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 3.60 || | | 0.931-3.60 || 0xCCDBB74D | ||
|} | |} | ||
<source lang="C">int | <source lang="C">int SceSblACMgrForKernel_CCDBB74D(SceUID pid, st_attr_info *a2, void *a3);</source> | ||
=== | === SceSblACMgrForKernel_75AAF981 === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 0. | | 0.931-3.60 || 0x75AAF981 | ||
|} | |} | ||
<source lang="C">int | A guessed name is sceSblACMgrIsAllowFSAttributeForKernel. | ||
Equivalent of [[#SceSblACMgrForKernel_BE5667C5]]. | |||
<source lang="C">int SceSblACMgrForKernel_75AAF981(SceUID pid, st_attr_info *a2, int a3);</source> | |||
=== | === sceSblACMgrSetFSAttributeByAttributeWithMountPointForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 3. | | 1.500.151-3.740.011 || 0x1B160234 | ||
|} | |} | ||
<source lang="C">int sceSblACMgrSetFSAttributeByAttributeWithMountPointForKernel(SceUID pid, st_attr_info *a2, int *a3, int flags);</source> | |||
=== sceSblACMgrSetFSAttributeByModeForKernel === | |||
{| class="wikitable" | |||
|- | |||
! Version !! NID | |||
|- | |||
| 0.990-3.60 || 0x2AE6CF27 | |||
|} | |||
Equivalent of [[#sceSblACMgrSetFSAttributeByModeForDriver]]. | |||
<source lang="C">int | <source lang="C">int sceSblACMgrSetFSAttributeByModeForKernel(SceUID pid, st_attr_info *a2, int flags);</source> | ||
=== | === SceSblACMgrForKernel_30575458 === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 3.60 || | | 3.60 || 0x30575458 | ||
|} | |} | ||
returns true if sceSblACMgrHasCapabilityForDriver(pid, 34) returns true | |||
or returns <code>SceSysrootForDriver_26AA237C();</code> if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true. | |||
<source lang="C">int | <source lang="C">int SceSblACMgrForKernel_30575458(SceUID pid);</source> | ||
=== | === sceSblACMgrIsKernelProgramForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 3.60 || | | 3.60 || 0x31C23B66 | ||
|} | |} | ||
Temp name was sceSblACMgrIsSystemForKernel, sceSblACMgrIsRootProgramForKernel. | |||
Equivalent of [[#sceSblACMgrIsKernelProgramForDriver]]. | |||
<source lang="C">int sceSblACMgrIsKernelProgramForKernel(SceUID pid);</source> | |||
=== sceSblACMgrIsPSMDevAssistantForKernel === | |||
== | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 3.60 || | | 3.60 || 0x3388F595 | ||
|} | |} | ||
Temp name was sceSblACMgrIsSIEAppForKernel. | |||
=== | Equivalent of [[#sceSblACMgrIsPSMDevAssistantForDriver]]. | ||
<source lang="C">int sceSblACMgrIsPSMDevAssistantForKernel(SceUID pid);</source> | |||
=== sceSblACMgrIsAllowLoopBackMountForKernel === | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 305: | Line 516: | ||
|} | |} | ||
Temp name was sceSblACMgrIsAllowExtendedMemoryForKernel. | |||
Equivalent of [[#sceSblACMgrIsAllowLoopBackMountForDriver]]. | |||
<source lang="C">SceBool sceSblACMgrIsAllowLoopBackMountForKernel(SceUID pid);</source> | |||
<source lang="C"> | |||
=== sceSblACMgrIsNonGameProgramForKernel === | === sceSblACMgrIsNonGameProgramForKernel === | ||
Line 325: | Line 534: | ||
<source lang="C">int sceSblACMgrIsNonGameProgramForKernel(SceUID pid);</source> | <source lang="C">int sceSblACMgrIsNonGameProgramForKernel(SceUID pid);</source> | ||
=== | === sceSblACMgrHasSystemDataFilePlayReadyFlagForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 333: | Line 542: | ||
|} | |} | ||
returns true if sceSblACMgrHasCapabilityForDriver(pid, 134) returns true | returns true if sceSblACMgrHasCapabilityForDriver(pid, 134) returns true | ||
or returns SceSysrootForDriver_E2515A08(void); if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true. | or returns SceSysrootForDriver_E2515A08(void); if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true. | ||
<source lang="C">int | <source lang="C">int sceSblACMgrHasSystemDataFilePlayReadyFlagForKernel(SceUID pid);</source> | ||
=== sceSblACMgrIsPspEmuForKernel === | === sceSblACMgrIsPspEmuForKernel === | ||
Line 347: | Line 556: | ||
|} | |} | ||
Calls [[SceSblACMgr# | Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | ||
Returns true if | Returns true if program_authority_id equals 0x2800000000000013 (NPXS10029) or 0x2800000000007009 (NPXS10069 - testkit/old PSPemu). | ||
<source lang="C">int sceSblACMgrIsPspEmuForKernel(SceUID pid);</source> | <source lang="C">int sceSblACMgrIsPspEmuForKernel(SceUID pid);</source> | ||
=== | === SceSblACMgrForKernel_48F4D5EE === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 3.60 || 0x48F4D5EE | | 0.931-3.60 || 0x48F4D5EE | ||
|} | |} | ||
Equivalent of [[#SceSblACMgrForKernel_84604EED]]. | |||
<source lang="C"> | <source lang="C">SceBool SceSblACMgrForKernel_48F4D5EE(SceUID pid);</source> | ||
=== | === sceSblACMgrIsAllowProcessDebugForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 373: | Line 582: | ||
|} | |} | ||
This is a guessed name. Temp name was sceSblACMgrIsAllowCoredumpForKernel. | |||
<source lang="C">int sceSblACMgrIsAllowProcessDebugForKernel(SceUID pid);</source> | |||
=== sceSblACMgrIsAllowCacheForKernel === | |||
== | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 405: | Line 594: | ||
|} | |} | ||
Equivalent of SceSblACMgrForKernel_456DA7AC. | |||
<source lang="C">int sceSblACMgrIsAllowCacheForKernel(SceUID pid);</source> | |||
<source lang="C">int | |||
=== sceSblACMgrIsNonGameOrGameProgramForDriver === | === sceSblACMgrIsNonGameOrGameProgramForDriver === | ||
Line 437: | Line 620: | ||
|} | |} | ||
Calls [[SceSblACMgr# | Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | ||
Returns true if | Returns true if program_authority_id begins with 0x2F (fSELF). | ||
<source lang="C">int sceSblACMgrIsFselfForKernel(SceUID pid);</source> | <source lang="C">int sceSblACMgrIsFselfForKernel(SceUID pid);</source> | ||
=== | === sceSblACMgrHasSystemDataFileFlagForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 453: | Line 636: | ||
return sceSblACMgrHasCapabilityForDriver(pid, 135); | return sceSblACMgrHasCapabilityForDriver(pid, 135); | ||
<source lang="C">int | <source lang="C">int sceSblACMgrHasSystemDataFileFlagForKernel(SceUID pid);</source> | ||
=== | === SceSblACMgrForKernel_7529E364 === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 463: | Line 646: | ||
|} | |} | ||
Calls [[SceSblACMgr# | Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | ||
Returns true if [[SceSblACMgr#sceSblACMgrIsGameProgramForDriver|sceSblACMgrIsGameProgramForDriver]] returns true | Returns true if [[SceSblACMgr#sceSblACMgrIsGameProgramForDriver|sceSblACMgrIsGameProgramForDriver]] returns true | ||
or if [[SceSblACMgr# | or if [[SceSblACMgr#sceSblACMgrIsAllowMsMountForDriver|sceSblACMgrIsAllowMsMountForDriver]] returns true. | ||
<source lang="C">int | <source lang="C">int SceSblACMgrForKernel_7529E364(SceUID pid);</source> | ||
=== | === sceSblACMgrGetPaidForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| | | 0.931 || not present | ||
|- | |- | ||
| 3.60 || 0x7C2AF978 | | 3.60 || 0x7C2AF978 | ||
|} | |} | ||
Temp | Temp name was sceSblACMgrGetProcessProgramAuthIdForKernel, sceSblACMgrGetSelfAuthInfoForKernel, sceSblACMgrGetProcessSelfAuthInfoForKernel. | ||
<source lang="C">int sceSblACMgrGetPaidForKernel(SceUID pid, SceUInt64 *pPaid);</source> | |||
=== SceSblACMgrForKernel_7F294A09 === | |||
== | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 505: | Line 676: | ||
|} | |} | ||
Uses [[SceSysmem# | Uses [[SceSysmem#sceKernelSysrootGetProcessSelfAuthInfoForKernel|sceKernelSysrootGetProcessSelfAuthInfoForKernel]]. | ||
attribute + 0x10 | attribute + 0x10 | ||
Line 511: | Line 682: | ||
Uses [[SceSysmem#SceKernelCheckDipswForDriver|SceKernelCheckDipswForDriver]](159); // is development mode | Uses [[SceSysmem#SceKernelCheckDipswForDriver|SceKernelCheckDipswForDriver]](159); // is development mode | ||
<source lang="C">int | <source lang="C">int SceSblACMgrForKernel_7F294A09(SceUID pid, char *maybe_path);</source> | ||
=== | === SceSblACMgrForKernel_8241AB5C === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 521: | Line 692: | ||
|} | |} | ||
<source lang="C">int | <source lang="C">int SceSblACMgrForKernel_8241AB5C(SceUID pid, int a2);</source> | ||
=== | === sceSblACMgrIsSystemProgramForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 3. | | 0.931.010-3.740.011 || 0x930CD037 | ||
|} | |} | ||
Line 537: | Line 708: | ||
return sceSblACMgrHasCapabilityForDriver(pid, 1); | return sceSblACMgrHasCapabilityForDriver(pid, 1); | ||
<source lang="C">int | <source lang="C">int sceSblACMgrIsSystemProgramForKernel(SceUID pid);</source> | ||
=== | === sceSblACMgrIsAllowVirtualMachineForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 547: | Line 718: | ||
|} | |} | ||
If sceSblACMgrHasCapabilityForDriver(pid, 132 | This is a guessed name. | ||
If sceSblACMgrHasCapabilityForDriver(pid, 132) returns true | |||
-> returns true | -> returns true | ||
Line 555: | Line 728: | ||
-> returns SceSysrootForDriver_26AA237C(1); | -> returns SceSysrootForDriver_26AA237C(1); | ||
<source lang="C">int | <source lang="C">int sceSblACMgrIsAllowVirtualMachineForKernel(SceUID pid);</source> | ||
=== sceSblACMgrIsPSMRuntimeForKernel === | === sceSblACMgrIsPSMRuntimeForKernel === | ||
Line 565: | Line 738: | ||
|} | |} | ||
Calls [[SceSblACMgr# | Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | ||
Returns true if | 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) | or equals 0x2800C0101CD2000B (PCSI00011 - PSM Runtime) | ||
Line 581: | Line 754: | ||
|} | |} | ||
This is a guessed name. | |||
Returns true if | Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|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 | (?0x2800800000000001? - never seen OR 0x2800800000000002 - gui_setupper.self | ||
Line 609: | Line 784: | ||
|} | |} | ||
Calls [[SceSblACMgr# | This is a guessed name. | ||
Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | |||
Returns true if | Returns true if program_authority_id equals 0x2800000000008003 (NPXS10017 and NPXS10037 - SceWebCore) | ||
OR 0x2800000000008005 (NPXS10083 and SceWebKitProcess and NPXS10084 SceWebKitProcessMini) | OR 0x2800000000008005 (NPXS10083 and SceWebKitProcess and NPXS10084 SceWebKitProcessMini) | ||
Line 617: | Line 794: | ||
<source lang="C">int sceSblACMgrIsWebCoreOrWebKitProcessForKernel(SceUID pid);</source> | <source lang="C">int sceSblACMgrIsWebCoreOrWebKitProcessForKernel(SceUID pid);</source> | ||
=== | === sceSblACMgrIsAllowUdcdForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 625: | Line 802: | ||
|} | |} | ||
Temp name was sceSblACMgrIsMiniSettingsForQAForKernel. | |||
Equivalent of [[#sceSblACMgrIsAllowUdcdForDriver]]. | |||
<source lang="C"> | <source lang="C">SceBool sceSblACMgrIsAllowUdcdForKernel(SceUID pid);</source> | ||
=== | === SceSblACMgrForKernel_A50FDA27 === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 641: | Line 816: | ||
|} | |} | ||
Calls [[SceSblACMgr# | Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | ||
-> returns self_auth_info.attribute bit flag number 16 from left (---> XX XX 8X) | -> returns self_auth_info.attribute bit flag number 16 from left (---> XX XX 8X) | ||
<source lang="C">int | <source lang="C">int SceSblACMgrForKernel_A50FDA27(SceUID pid);</source> | ||
=== sceSblACMgrIsDevelopmentModeForKernel === | === sceSblACMgrIsDevelopmentModeForKernel === | ||
Line 652: | Line 827: | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 3.60 || 0xBBA13D9C | | 0.931-3.60 || 0xBBA13D9C | ||
|} | |} | ||
Line 667: | Line 842: | ||
|} | |} | ||
Equivalent of sceSblACMgrIsPSMDevAssistantForDriver. | |||
<source lang="C">int sceSblACMgrIsPSMDevAssistantForKernel(SceUID pid);</source> | <source lang="C">int sceSblACMgrIsPSMDevAssistantForKernel(SceUID pid);</source> | ||
=== sceSblACMgrGetMediaTypeForKernel === | === sceSblACMgrGetMediaTypeForKernel === | ||
Line 694: | Line 851: | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 0. | | 0.931-3.60 || 0xD442962E | ||
|} | |} | ||
Temp name was sceSblACMgrGetPathIdForKernel. | Temp name was sceSblACMgrGetPathIdForKernel. | ||
<source lang="C">int sceSblACMgrGetMediaTypeForKernel(const char *path, | <source lang="C">int sceSblACMgrGetMediaTypeForKernel(const char *path, SceUInt32 *pMediaType);</source> | ||
=== | === sceSblACMgrIsAllowUsbSerialForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 709: | Line 866: | ||
|} | |} | ||
returns true if sceSblACMgrHasCapabilityForDriver(pid, 1) returns true | returns true if sceSblACMgrHasCapabilityForDriver(pid, 1) returns true | ||
AND sceSblACMgrHasCapabilityForDriver(pid, 131) returns true | AND sceSblACMgrHasCapabilityForDriver(pid, 131) returns true | ||
or returns SceSysrootForDriver_26AA237C(1); if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true. | or returns SceSysrootForDriver_26AA237C(1); if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true. | ||
<source lang="C">int | <source lang="C">int sceSblACMgrIsAllowUsbSerialForKernel(SceUID pid);</source> | ||
=== | === sceSblACMgrIsPsNowClientForKernel === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 725: | Line 882: | ||
|} | |} | ||
Equivalent of sceSblACMgrIsPsNowClientForDriver. | |||
<source lang="C">int sceSblACMgrIsPsNowClientForKernel(SceUID pid);</source> | |||
=== sceSblACMgrIsAllowMsMountForKernel === | |||
= | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 741: | Line 894: | ||
|} | |} | ||
Temp name was sceSblACMgrIsNotSandboxedForKernel. | |||
Equivalent of sceSblACMgrIsAllowMsMountForDriver. | |||
<source lang="C">SceBool sceSblACMgrIsAllowMsMountForKernel(SceUID pid);</source> | |||
<source lang="C"> | |||
=== sceSblACMgrIsSceShellForKernel === | === sceSblACMgrIsSceShellForKernel === | ||
Line 769: | Line 908: | ||
|} | |} | ||
Calls [[SceSblACMgr# | Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | ||
Returns true if | Returns true if program_authority_id equals 0x2800000000000001 (NPXS19999 - SceShell) | ||
<source lang="C">int sceSblACMgrIsSceShellForKernel(SceUID pid);</source> | <source lang="C">int sceSblACMgrIsSceShellForKernel(SceUID pid);</source> | ||
=== | === SceSblACMgrForKernel_FBA1A256 === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 3.60 || 0xFBA1A256 | | 0.931-3.60 || 0xFBA1A256 | ||
|} | |} | ||
Returns 0. Probably used in old firmwares and patched in new firmwares | Returns 0. Probably used in very old firmwares and patched in new firmwares by making it return always false. | ||
<source lang="C"> | <source lang="C">SceBool SceSblACMgrForKernel_FBA1A256(void);</source> | ||
=== | === SceSblACMgrForKernel_FB2AC5B4 === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 795: | Line 934: | ||
|} | |} | ||
<source lang="C">int | <source lang="C">int SceSblACMgrForKernel_FB2AC5B4(SceUID pid, char *maybe_path);</source> | ||
=== SceSblACMgrForKernel_356B9139 === | |||
{| class="wikitable" | |||
|- | |||
! Version !! NID | |||
|- | |||
| 0.931-3.60 || 0x356B9139 | |||
|} | |||
Equivalent of SceSblACMgrForKernel_FF7125DE. | |||
<source lang="C">int SceSblACMgrForKernel_356B9139(int unused, const char *path, int *a3);</source> | |||
== SceSblACMgrForDriver == | == SceSblACMgrForDriver == | ||
Line 807: | Line 958: | ||
|} | |} | ||
Calls [[SceSblACMgr# | This is a guessed name. | ||
Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | |||
Returns true if | Returns true if program_authority_id equals 0x2800000000008003 (NPXS10017 and NPXS10037 - SceWebCore) | ||
OR 0x2800000000008005 (NPXS10083 and SceWebKitProcess and NPXS10084 SceWebKitProcessMini) | OR 0x2800000000008005 (NPXS10083 and SceWebKitProcess and NPXS10084 SceWebKitProcessMini) | ||
Line 815: | Line 968: | ||
<source lang="C">int sceSblACMgrIsWebCoreOrWebKitProcessForDriver(SceUID pid);</source> | <source lang="C">int sceSblACMgrIsWebCoreOrWebKitProcessForDriver(SceUID pid);</source> | ||
=== | === sceSblACMgrIsAllowUsbSerialForDriver === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 833: | Line 976: | ||
|} | |} | ||
returns true if sceSblACMgrHasCapabilityForDriver(pid, 1) returns true | returns true if sceSblACMgrHasCapabilityForDriver(pid, 1) returns true | ||
AND sceSblACMgrHasCapabilityForDriver(pid, 131) returns true | AND sceSblACMgrHasCapabilityForDriver(pid, 131) returns true | ||
or returns SceSysrootForDriver_26AA237C(1); if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true. | or returns SceSysrootForDriver_26AA237C(1); if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true. | ||
<source lang="C">int | <source lang="C">int sceSblACMgrIsAllowUsbSerialForDriver(SceUID pid);</source> | ||
=== sceSblACMgrIsPSMRuntimeForDriver === | === sceSblACMgrIsPSMRuntimeForDriver === | ||
Line 849: | Line 992: | ||
|} | |} | ||
Calls [[SceSblACMgr# | Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | ||
Returns true if | 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) | or equals 0x2800C0101CD2000B (PCSI00011 - PSM Runtime) | ||
Line 857: | Line 1,000: | ||
<source lang="C">int sceSblACMgrIsPSMRuntimeForDriver(SceUID pid);</source> | <source lang="C">int sceSblACMgrIsPSMRuntimeForDriver(SceUID pid);</source> | ||
=== | === sceSblACMgrIsPsNowClientForDriver === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 865: | Line 1,008: | ||
|} | |} | ||
Derived from [[SceAppMgr#sceAppMgrIsPsNowClient|sceAppMgrIsPsNowClient]]. | |||
<source lang="C">int | <source lang="C">int sceSblACMgrIsPsNowClientForDriver(SceUID pid);</source> | ||
=== | === sceSblACMgrIsKernelProgramForDriver === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 880: | Line 1,019: | ||
| 3.60 || 0x0948F41C | | 3.60 || 0x0948F41C | ||
|} | |} | ||
Temp name was sceSblACMgrIsSystemForDriver, sceSblACMgrIsRootProgramForDriver. | |||
Equivalent of [[#sceSblACMgrIsKernelProgramForKernel]]. | |||
return sceSblACMgrHasCapabilityForDriver(pid, 0); | return sceSblACMgrHasCapabilityForDriver(pid, 0); | ||
<source lang="C">int | <source lang="C">int sceSblACMgrIsKernelProgramForDriver(SceUID pid);</source> | ||
=== | === sceSblACMgrIsAllowMsMountForDriver === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 893: | Line 1,036: | ||
|} | |} | ||
Temp name was sceSblACMgrIsNotSandboxedForDriver. | |||
Returns true if | Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | ||
Returns true if program_authority_id equals : | |||
0x2800000000000013 (NPXS100028 - ScePspEmu) | 0x2800000000000013 (NPXS100028 - ScePspEmu) | ||
Line 911: | Line 1,056: | ||
OR 0x2800000000000001 (NPXS19999 - SceShell) | OR 0x2800000000000001 (NPXS19999 - SceShell) | ||
<source lang="C"> | <source lang="C">SceBool sceSblACMgrIsAllowMsMountForDriver(SceUID pid);</source> | ||
=== sceSblACMgrIsGameProgramForDriver === | === sceSblACMgrIsGameProgramForDriver === | ||
Line 921: | Line 1,066: | ||
|} | |} | ||
Derived from [[SceAppMgr#sceAppMgrIsGameProgram|sceAppMgrIsGameProgram]]. | |||
Calls [[SceSblACMgr# | Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | ||
Returns true if | Returns true if program_authority_id begins with 0x21 (game) or 0x2F (fSELF). | ||
<source lang="C">int sceSblACMgrIsGameProgramForDriver(SceUID pid);</source> | <source lang="C">int sceSblACMgrIsGameProgramForDriver(SceUID pid);</source> | ||
=== | === sceSblACMgrIsAllowVirtualMachineForDriver === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 937: | Line 1,082: | ||
|} | |} | ||
If sceSblACMgrHasCapabilityForDriver(pid, 132 | This is a guessed name. | ||
If sceSblACMgrHasCapabilityForDriver(pid, 132) returns true | |||
-> returns true | -> returns true | ||
Line 945: | Line 1,092: | ||
-> returns SceSysrootForDriver_26AA237C(1); | -> returns SceSysrootForDriver_26AA237C(1); | ||
<source lang="C">int | <source lang="C">int sceSblACMgrIsAllowVirtualMachineForDriver(SceUID pid);</source> | ||
=== | === SceSblACMgrForDriver_2E992B02 === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 955: | Line 1,102: | ||
|} | |} | ||
<source lang="C">int | <source lang="C">int SceSblACMgrForDriver_2E992B02(SceUID pid);</source> | ||
=== sceSblACMgrIsFselfForDriver === | === sceSblACMgrIsFselfForDriver === | ||
Line 975: | Line 1,112: | ||
|} | |} | ||
Calls [[SceSblACMgr# | Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | ||
Returns true if | Returns true if program_authority_id begins with 0x2F (fSELF). | ||
<source lang="C">int sceSblACMgrIsFselfForDriver(SceUID pid);</source> | <source lang="C">int sceSblACMgrIsFselfForDriver(SceUID pid);</source> | ||
Line 986: | Line 1,123: | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 3.60 || 0x4322F188 | | 0.931-3.60 || 0x4322F188 | ||
|} | |} | ||
<source lang="C">int sceSblACMgrGetMediaTypeForDriver(const char *path, int* | <source lang="C">int sceSblACMgrGetMediaTypeForDriver(const char *path, int *pMediaType);</source> | ||
=== | === sceSblACMgrIsAllowCacheForDriver === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 999: | Line 1,136: | ||
|} | |} | ||
Calls [[SceSblACMgr# | Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | ||
Returns true if [[SceSblACMgr#sceSblACMgrHasCapabilityForDriver|sceSblACMgrHasCapabilityForDriver]](pid, 3); returns true | Returns true: | ||
* if [[SceSblACMgr#sceSblACMgrHasCapabilityForDriver|sceSblACMgrHasCapabilityForDriver]](pid, 3); returns true | |||
* or if program_authority_id is between 0x0x210000101CD20007 and 0x0x210000101CD20009 (PSM Dev Assistant apps) | |||
* or if fSELF and SceSysrootForDriver_26AA237C returns true | |||
<source lang="C">SceBool sceSblACMgrIsAllowCacheForDriver(SceUID pid);</source> | |||
=== SceSblACMgrForDriver_48CFCEA2 === | |||
== | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 1,017: | Line 1,153: | ||
|} | |} | ||
<source lang="C">int | <source lang="C">int SceSblACMgrForDriver_48CFCEA2(SceUID pid, int *a2, int *a3, int flags);</source> | ||
=== | === sceSblACMgrIsAllowProcessDebugForDriver === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 1,027: | Line 1,163: | ||
|} | |} | ||
This is a guessed name. Temp name was sceSblACMgrIsAllowCoredumpForDriver. | |||
Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | |||
AND sceSblQafMgrIsAllowSystemAppDebugForDriver returns false | 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 | |||
<source lang="C">int sceSblACMgrIsAllowProcessDebugForDriver(SceUID pid);</source> | |||
=== SceSblACMgrForDriver_84604EED === | |||
{| class="wikitable" | |||
|- | |||
! Version !! NID | |||
|- | |||
| 0.931-3.60 || 0x84604EED | |||
|} | |||
return sceSblACMgrHasCapabilityForDriver(pid, 31); | |||
<source lang="C"> | <source lang="C">SceBool SceSblACMgrForDriver_84604EED(SceUID pid);</source> | ||
=== | === sceSblACMgrIsAllowLoopBackMountForDriver === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 1,057: | Line 1,194: | ||
|} | |} | ||
Temp name was sceSblACMgrIsAllowExtendedMemoryForDriver. | |||
Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|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. | |||
=== | <source lang="C">SceBool sceSblACMgrIsAllowLoopBackMountForDriver(SceUID pid);</source> | ||
=== sceSblACMgrIsUnityRuntimeForPSMForDriver === | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 1,073: | Line 1,212: | ||
|} | |} | ||
Calls [[SceSblACMgr# | Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | ||
<source lang="C">int sceSblACMgrIsUnityRuntimeForPSMForDriver(SceUID pid);</source> | |||
=== SceSblACMgrForDriver_5F9AF49C === | |||
== | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 1,087: | Line 1,224: | ||
|} | |} | ||
Checks if program_authority_id begins with 0x21 ( | 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. | Calls sceKernelCheckDipswForDriver(159) and does different things according to the result. | ||
<source lang="C">int | <source lang="C">int SceSblACMgrForDriver_5F9AF49C(SceUID pid, const char *drive);</source> | ||
=== | === SceSblACMgrForDriver_3B356B98 === | ||
{| class="wikitable" | |||
|- | |||
! Version !! NID | |||
|- | |||
| 0.931-3.60 || 0x3B356B98 | |||
|} | |||
Maybe sceSblACMgrGetFSAttributeByModeForDriver. | |||
Same as [[#SceSblACMgrForKernel_11C9158B]]. | |||
<source lang="C">int SceSblACMgrForDriver_3B356B98(void* input, void* output);</source> | |||
=== sceFatfsACSetFSAttributeByPermissionForDriver === | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 1,101: | Line 1,256: | ||
|} | |} | ||
<source lang="C">int | Temp name was sceSblACMgrSetFSAttributeByModeForDriver. | ||
<source lang="C">int sceFatfsACSetFSAttributeByPermissionForDriver(SceUID pid, st_attr_info *a2, int flags);</source> | |||
=== sceSblACMgrGetFSAttributeByThreadAccessLevelForDriver === | |||
{| class="wikitable" | |||
|- | |||
! Version !! NID | |||
|- | |||
| 0.931-3.60 || 0x0606B87E | |||
|} | |||
<source lang="C">int sceSblACMgrGetFSAttributeByThreadAccessLevelForDriver(int a1, int a2, int *a3);</source> | |||
=== sceSblACMgrIsNonGameProgramForDriver === | === sceSblACMgrIsNonGameProgramForDriver === | ||
Line 1,111: | Line 1,278: | ||
|} | |} | ||
Derived from [[SceAppMgr#sceAppMgrIsNonGameProgram|sceAppMgrIsNonGameProgram]]. | |||
return sceSblACMgrHasCapabilityForDriver(pid, 3); | return sceSblACMgrHasCapabilityForDriver(pid, 3); | ||
Line 1,117: | Line 1,284: | ||
<source lang="C">int sceSblACMgrIsNonGameProgramForDriver(SceUID pid);</source> | <source lang="C">int sceSblACMgrIsNonGameProgramForDriver(SceUID pid);</source> | ||
=== | === SceSblACMgrForDriver_6D8A88B7 === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 1,125: | Line 1,292: | ||
|} | |} | ||
Calls [[SceSblACMgr# | Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | ||
Returns true if [[SceSblACMgr#sceSblACMgrIsGameProgramForDriver|sceSblACMgrIsGameProgramForDriver]] returns true | Returns true if [[SceSblACMgr#sceSblACMgrIsGameProgramForDriver|sceSblACMgrIsGameProgramForDriver]] returns true | ||
or if [[SceSblACMgr# | or if [[SceSblACMgr#sceSblACMgrIsAllowMsMountForDriver|sceSblACMgrIsAllowMsMountForDriver]] returns true. | ||
<source lang="C">int | <source lang="C">int SceSblACMgrForDriver_6D8A88B7(SceUID pid);</source> | ||
=== | === sceSblACMgrIsSystemProgramForDriver === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| | | 0.931-3.60 || 0x8612B243 | ||
|} | |} | ||
Line 1,157: | Line 1,312: | ||
return sceSblACMgrHasCapabilityForDriver(pid, 1); | return sceSblACMgrHasCapabilityForDriver(pid, 1); | ||
<source lang="C">int | <source lang="C">int sceSblACMgrIsSystemProgramForDriver(SceUID pid);</source> | ||
=== sceSblACMgrIsNonGameOrGameProgramForKernel === | === sceSblACMgrIsNonGameOrGameProgramForKernel === | ||
Line 1,181: | Line 1,336: | ||
|} | |} | ||
This is a guessed name. | |||
Returns true if | Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|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 | (?0x2800800000000001? - never seen OR 0x2800800000000002 - gui_setupper.self | ||
Line 1,189: | Line 1,346: | ||
OR 0x2800800000000003 - cui_setupper.self OR 2800800000000015 - NPXS10082/spawn.self - Package Installer Spawn). | OR 0x2800800000000003 - cui_setupper.self OR 2800800000000015 - NPXS10082/spawn.self - Package Installer Spawn). | ||
<source lang="C"> | <source lang="C">int sceSblACMgrIsUpdaterUISetupperOrPkgInstallerSpawnForDriver(SceUID pid);</source> | ||
int sceSblACMgrIsUpdaterUISetupperOrPkgInstallerSpawnForDriver(SceUID pid); | |||
</source> | |||
=== | === sceSblACMgrGetPaidForDriver === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |||
| 0.931 || not present | |||
|- | |- | ||
| 3.60 || 0x96AF69BD | | 3.60 || 0x96AF69BD | ||
|} | |} | ||
Temp name was sceSblACMgrGetSelfAuthInfoForDriver. | Temp name was sceSblACMgrGetProcessProgramAuthIdForDriver, sceSblACMgrGetSelfAuthInfoForDriver, sceSblACMgrGetProcessSelfAuthInfoForDriver. | ||
<source lang="C">int sceSblACMgrGetPaidForDriver(SceUID pid, SceUInt64 *pPaid);</source> | |||
<source lang="C">int | |||
=== sceSblACMgrIsSceShellForDriver === | === sceSblACMgrIsSceShellForDriver === | ||
Line 1,215: | Line 1,370: | ||
|} | |} | ||
Calls [[SceSblACMgr# | Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | ||
Returns true if | Returns true if program_authority_id equals 0x2800000000000001 (NPXS19999 - SceShell) | ||
<source lang="C">int sceSblACMgrIsSceShellForDriver(SceUID pid);</source> | <source lang="C">int sceSblACMgrIsSceShellForDriver(SceUID pid);</source> | ||
=== | === sceSblACMgrHasMagicGateFlagForDriver === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 1,231: | Line 1,386: | ||
return sceSblACMgrHasCapabilityForDriver(pid, 129); | return sceSblACMgrHasCapabilityForDriver(pid, 129); | ||
<source lang="C">int | <source lang="C">int sceSblACMgrHasMagicGateFlagForDriver(SceUID pid);</source> | ||
=== | === sceSblACMgrIsPSMDevAssistantForDriver === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 1,241: | Line 1,396: | ||
|} | |} | ||
Temp name was sceSblACMgrIsSIEAppForDriver. | |||
Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | |||
Returns true if program_authority_id is between 0x210000101CD20007 and 0x210000101CD20009 (PSM Dev Assistant apps). | |||
<source lang="C">int sceSblACMgrIsPSMDevAssistantForDriver(SceUID pid);</source> | |||
<source lang="C">int | |||
=== | === sceSblACMgrHasSystemDataFileFlagForDriver === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 1,261: | Line 1,414: | ||
return sceSblACMgrHasCapabilityForDriver(pid, 135); | return sceSblACMgrHasCapabilityForDriver(pid, 135); | ||
<source lang="C">int | <source lang="C">int sceSblACMgrHasSystemDataFileFlagForDriver(SceUID pid);</source> | ||
=== | === sceSblACMgrHasUserDebugFlagForDriver === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 1,270: | Line 1,423: | ||
| 3.60 || 0xAD717E7A | | 3.60 || 0xAD717E7A | ||
|} | |} | ||
This is a guessed name. | |||
Used by [[SceDeci4pLoadp]], [[SceDeci4pDbgp]] | |||
return sceSblACMgrHasCapabilityForDriver(pid, 32); | return sceSblACMgrHasCapabilityForDriver(pid, 32); | ||
<source lang="C">int | <source lang="C">int sceSblACMgrHasUserDebugFlagForDriver(SceUID pid);</source> | ||
=== | === sceSblACMgrHasSystemDataFilePlayReadyFlagForDriver === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 1,283: | Line 1,440: | ||
|} | |} | ||
returns true if sceSblACMgrHasCapabilityForDriver(pid, 134) returns true | returns true if sceSblACMgrHasCapabilityForDriver(pid, 134) returns true | ||
or returns SceSysrootForDriver_E2515A08(void); if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true. | or returns SceSysrootForDriver_E2515A08(void); if [[SceSblACMgr#sceSblACMgrIsFselfForDriver|sceSblACMgrIsFselfForDriver]] returns true. | ||
<source lang="C">int | <source lang="C">int sceSblACMgrHasSystemDataFilePlayReadyFlagForDriver(SceUID pid);</source> | ||
=== | === SceSblACMgrForDriver_B12CEAA8 === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 1,297: | Line 1,454: | ||
|} | |} | ||
Seems to check some bit flags. | |||
Used by SceExfatfs in VFS implementation functions: sceVfsNodeChstatForDriver and sceVfsNodeChstatByFdForDriver | Used by SceExfatfs in VFS implementation functions: sceVfsNodeChstatForDriver and sceVfsNodeChstatByFdForDriver | ||
<source lang="C">int | <source lang="C">int SceSblACMgrForDriver_B12CEAA8(SceUID pid, st_attr_info *a1, st_attr_info *a2);</source> | ||
=== | === SceSblACMgrForDriver_B836CF13 === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 1,311: | Line 1,468: | ||
|} | |} | ||
Calls [[SceSblACMgr# | Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | ||
-> returns self_auth_info.attribute bit flag number 16 from left (---> XX XX 8X) | -> returns self_auth_info.attribute bit flag number 16 from left (---> XX XX 8X) | ||
<source lang="C">int | <source lang="C">int SceSblACMgrForDriver_B836CF13(SceUID pid);</source> | ||
=== | === SceSblACMgrForDriver_BE5667C5 === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 3.60 || 0xBE5667C5 | | 0.931-3.60 || 0xBE5667C5 | ||
|} | |} | ||
<source lang="C">int | <source lang="C">int SceSblACMgrForDriver_BE5667C5(SceUID pid, st_attr_info *a2, int a3);</source> | ||
=== sceSblACMgrHasCapabilityForDriver === | === sceSblACMgrHasCapabilityForDriver === | ||
Line 1,345: | Line 1,502: | ||
|} | |} | ||
Calls [[SceSblACMgr# | Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | ||
Returns true if | Returns true if program_authority_id equals 0x210000101CD20007 (PCSI00007 - PlayStation®Mobile Development Assistant) | ||
AND [[SceSblACMgr#sceSblACMgrIsPSMRuntimeForDriver|sceSblACMgrIsPSMRuntimeForDriver]] returns true. | AND [[SceSblACMgr#sceSblACMgrIsPSMRuntimeForDriver|sceSblACMgrIsPSMRuntimeForDriver]] returns true. | ||
Line 1,355: | Line 1,512: | ||
<source lang="C">int sceSblACMgrIsPSMDevAssistantForDriver(SceUID pid);</source> | <source lang="C">int sceSblACMgrIsPSMDevAssistantForDriver(SceUID pid);</source> | ||
=== | === sceSblACMgrIsAllowUdcdForDriver === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 1,363: | Line 1,520: | ||
|} | |} | ||
Temp name was sceSblACMgrIsMiniSettingsForQAForDriver. | |||
Calls [[SceSblACMgr# | Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | ||
Returns true if | 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. | or if sceSblACMgrHasCapabilityForDriver(pid, 130) returns true. | ||
<source lang="C"> | <source lang="C">SceBool sceSblACMgrIsAllowUdcdForDriver(SceUID pid);</source> | ||
=== | === SceSblACMgrForDriver_D7AD8471 === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 1,381: | Line 1,540: | ||
|} | |} | ||
<source lang="C">int | <source lang="C">int SceSblACMgrForDriver_D7AD8471(SceUID pid, char *maybe_path);</source> | ||
=== | === SceSblACMgrForDriver_E79C7A8D === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 1,391: | Line 1,550: | ||
|} | |} | ||
<source lang="C"> | A guessed name is sceSblACMgrIsVs0UserDriveAccessibleProgramForDriver. | ||
Same as [[#SceSblACMgrForKernel_165C3C7A]]. | |||
<source lang="C">SceBool SceSblACMgrForDriver_E79C7A8D(SceUID pid, const SceChar8 *path);</source> | |||
=== sceSblACMgrIsDevelopmentModeForDriver === | === sceSblACMgrIsDevelopmentModeForDriver === | ||
Line 1,398: | Line 1,561: | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 3.60 || 0xE87D1777 | | 0.931-3.60 || 0xE87D1777 | ||
|} | |} | ||
Derived from [[SceAppMgr#sceAppMgrIsDevelopmentMode|sceAppMgrIsDevelopmentMode]]. | |||
Returns [[SceKernelThreadMgr#sceKernelCheckDipswForDriver|sceKernelCheckDipswForDriver]](159); | Returns [[SceKernelThreadMgr#sceKernelCheckDipswForDriver|sceKernelCheckDipswForDriver]](159); | ||
Line 1,407: | Line 1,570: | ||
<source lang="C">int sceSblACMgrIsDevelopmentModeForDriver(void);</source> | <source lang="C">int sceSblACMgrIsDevelopmentModeForDriver(void);</source> | ||
=== | === sceSblACMgrHasMarlinFlagForDriver === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 1,417: | Line 1,580: | ||
return sceSblACMgrHasCapabilityForDriver(pid, 128); | return sceSblACMgrHasCapabilityForDriver(pid, 128); | ||
<source lang="C">int | <source lang="C">int sceSblACMgrHasMarlinFlagForDriver(SceUID pid);</source> | ||
=== sceSblACMgrIsPspEmuForDriver === | === sceSblACMgrIsPspEmuForDriver === | ||
Line 1,427: | Line 1,590: | ||
|} | |} | ||
Calls [[SceSblACMgr# | Calls [[SceSblACMgr#sceSblACMgrGetPaidForDriver|sceSblACMgrGetPaidForDriver]] to get program_authority_id. | ||
Returns true if | Returns true if program_authority_id equals 0x2800000000000013 (NPXS10029) or 0x2800000000007009 (NPXS10069 - testkit/old PSPemu). | ||
<source lang="C">int sceSblACMgrIsPspEmuForDriver(SceUID pid);</source> | <source lang="C">int sceSblACMgrIsPspEmuForDriver(SceUID pid);</source> | ||
=== | === SceSblACMgrForDriver_FF7125DE === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 3.60 || 0xFF7125DE | | 0.931-3.60 || 0xFF7125DE | ||
|} | |} | ||
<source lang="C">int | Gets some info for path. | ||
<source lang="C">int SceSblACMgrForDriver_FF7125DE(int unused, const char *path, int *a3);</source> | |||
== SceSblACMgr == | == SceSblACMgr == | ||
Line 1,450: | Line 1,615: | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| | | 0.931.010-3.740.011 || 0x3C17A7F7 | ||
|} | |} | ||
<source lang="C">int _sceSblACMgrIsGameProgram(int *result);</source> | <source lang="C">int _sceSblACMgrIsGameProgram(int *result);</source> | ||
[[Category:ARM]] | |||
[[Category:Kernel]] | |||
[[Category:Modules]] | [[Category:Modules]] | ||
[[Category: | [[Category:Library]] |
Latest revision as of 16:12, 8 June 2024
Secure block Attribute-Capability Manager
Module
Version | World | Privilege |
---|---|---|
0.931.010-3.740.011 | Non-secure | Kernel |
Libraries
Known NIDs
Version | Name | World | Visibility | NID |
---|---|---|---|---|
0.931.010-3.740.011 | SceSblACMgrForKernel | Non-secure | Kernel | 0x11F9B314 |
0.931.010-3.740.011 | SceSblACMgrForDriver | Non-secure | Kernel | 0x9AD8E213 |
0.931.010-3.740.011 | SceSblACMgr | Non-secure | User | 0xF069F219 |
Types
typedef struct st_attr_info_internal { SceUInt32 st_attr; int unk_0x04; } st_attr_info_internal; typedef struct st_attr_info { int index; // operation index st_attr_info_internal *st_attr; SceSize size; // 1 or 2 - size of st_attr } st_attr_info;
Notes
Common functions
FW 3.60 SceSblACMgr_0x570: sceSblACMgrHasAttribute
Capability
Capability flags are stored on 0x20 bytes. Max bit number is 0xFF.
Bit | Class | Name | Description |
---|---|---|---|
0 | privilege | root | |
1 | privilege | system | |
2 | privilege | game | Set on fSELF type 1. |
3 | privilege | nongame | Set on fSELF type 2. |
31 | ? | ? | Used by #SceSblACMgrForKernel_84604EED. |
32 | ?debug level? | ?process dbg? | Bypass spawner privilege requirement and ignore shared secret. |
33 | ?debug level? | ?limited user? | Prohibits spawned attribute flag 17 at same time as self_type mask 0x20 and (genuine CEX or masked self_type != 0x10000). Error 0x800F0B35. |
34 | ?debug level? | ?remap? | VM function. Used by #SceSblACMgrForKernel_30575458 (SceSysmem#sceKernelSysrootCheckRemapCodeForUserForKernel). |
35 | ?debug level? | ? | |
52-55 | ? | ? | Set on fSELF type 1. |
56-59 | ? | ? | Set on fSELF type 2. |
96-127 | ? | ? | Always set (0xFFFFFFFF). |
128 | function | marlin | Used by #sceSblACMgrHasMarlinFlagForKernel, #sceSblACMgrHasMarlinFlagForDriver. |
129 | function | magic_gate | Used by #sceSblACMgrHasMagicGateFlagForKernel, #sceSblACMgrHasMagicGateFlagForDriver. |
130 | function | udcd | Allows LoopBack Mount, Allows Udcd. |
131 | function | usb_serial | |
132 | function | virtual_machine | |
133 | function | force_open_msgpipe | Used by #SceSblACMgrForKernel_8241AB5C (and SceKernelThreadMgr#sceKernelOpenMsgPipe). |
134 | function | system_data_file_play_ready | Used by #sceSblACMgrHasSystemDataFilePlayReadyFlagForKernel, #sceSblACMgrHasSystemDataFilePlayReadyFlagForDriver. |
135 | function | system_data_file | Used by #sceSblACMgrHasSystemDataFileFlagForDriver, #sceSblACMgrHasSystemDataFileFlagForDriver |
Attribute
Attribute flags are stored on 0x20 bytes. Max bit number is 0xFF.
Bit | Class | Name | Description |
---|---|---|---|
0 | spawn_by | system | |
1 | spawn_by | game | |
2 | spawn_by | nongame | |
16 | ? | coredump | Triggers a coredump when app crashes. Prohibits self_type mask 0x10000. Error 0x800F0B35. |
17 | ? | ? | Prohibits spawner capability flag 33 at same time as self_type mask 0x20 and (genuine CEX or masked self_type != 0x10000). Error 0x800F0B35. |
29 | platform | dex | |
30 | platform | test, tool | Also supported by Diag. |
31 | platform | cex | Also supported by Diag. |
32 | mode | production | Requires production mode (Manufacturing mode). |
33 | mode | no_production | Prohibits production mode (Manufacturing mode). Set on fSELF type 1 and 2. |
34 | mode | qa_0xD_mask_1 | Requires QA flag 0xD mask 1. |
35 | mode | no_qa_0xD_mask_1 | Prohibits QA flag 0xD mask 1. |
36 | mode | some boot flag | Requires Second_Loader#Boot_type_indicator_for_slsk mask 0x20, but it seems this boot type is disabled in FW 3.60 release second_loader. |
37 | mode | qa_0xF_mask_1 | Requires QA flag 0xF mask 1. |
48 | "fself_related" | ? | |
49 | "fself_related" | ? | |
50 | "fself_related" | ? | Set on fSELF type 1. |
51 | "fself_related" | ? | Set on fSELF type 1. |
52 | "fself_related" | ? | Set on fSELF type 2. |
53 | "fself_related" | ? | Set on fSELF type 2. |
54 | "fself_related" | ? | Set on fSELF type 1 and 2. |
55 | "fself_related" | ? | Set on fSELF type 1 and 2. |
64 | media | ? | Media Type 9 |
65 | media | sd0 | Set on fSELF type 1 and 2. |
66 | media | host0 | Set on fSELF type 1 and 2 only in Development Mode. |
67 | media | ? | Media Type 8 |
68 | media | ux0 | |
69 | media | gro0:app | Set on fSELF type 1 and 2 only in Release Mode. |
70 | media | gro0:patch | Set on fSELF type 1 and 2 only in Release Mode. |
71 | media | sa0 | |
72 | media | mfa0 | |
73 | media | mfb0 | |
74 | media | lma0 | |
75 | media | lmb0 | |
76 | media | lmc0 | |
77 | media | lmd0 | |
78 | media | pd0 | |
79 | media | ? | Maybe reserved or unused. |
80 | media | ?boot0? ?slb2? | |
81 | media | os0 | |
82 | media | vs0 | |
83 | media | vd0 | |
84 | media | tm0 | |
85 | media | ur0 | |
86 | media | ud0 | |
87 | media | ? | |
88 | media | ? | |
89 | media | ux0:data | |
90 | media | memcard (ux0:app) | |
91 | media | memcard_patch (ux0:patch) | |
92-95 | media | ? | Used by SceMagicGate. |
96 | level or self_type | kernel | |
97 | level or self_type | usermode | |
98 | level or self_type | SM | |
128 | ? | qa_0xB_mask_0x10 | On Test/Tool/Diag platform, it requires QA flag 0xB mask 0x10. Error 0x800F0B33. |
129 | ? | ? | Allows limited vs0 user drive access. Used by #SceSblACMgrForKernel_165C3C7A, #SceSblACMgrForDriver_E79C7A8D. |
136-223 | ? | ? | Never set? |
224-255 | ? | ? | Always set (0xFFFFFFFF). |
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, 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 | For usermode self_type, requires QA flag 0xD mask 2. For kernel or SM self_type, requires QA flag 0xE mask 1. |
? | 8 | 0x43 | Present in FWs 0.931.010-3.740.011 Secure Kernel. |
? | 9 | 0x40 | Present in FWs 0.931.010-3.740.011 Secure Kernel. |
slb | 10 | 0x50 | like for kprx_auth_sm.self.
Also in external boot mode, the mediaType of self loaded by Kernel/User will be unconditionally set to this mediaType (10).
|
ud0 | 11 | 0x56 | |
ux0 | 12 | 0x44 | |
gro0:app, gro0:/app | 13 | 0x45 | |
gro0:patch, 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, ux0:/app | 23 | 0x5A | |
ux0:patch, ux0:/patch | 24 | 0x5B | |
ux0:data, ux0:/data | 25 | 0x59 | |
? | 26 | ? | Not present in FWs 0.931.010-3.740.011 Secure Kernel thus would return error 0x800F0B32. Certainly usable in non-secure kernel though. |
uma0 | 27 | ? | Not present in FWs 0.931.010-3.740.011 Secure Kernel thus would return error 0x800F0B32. Usable in non-secure kernel though. |
// Code inspired by PSVita FWs 0.931.010-3.740.011 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
SceSblACMgrForKernel_F7524073
Version | NID |
---|---|
0.931 | 0xF7524073 |
3.60 | not present |
Returns true if QA flag byte 9 mask 1 is set.
SceBool SceSblACMgrForKernel_F7524073(void);
sceSblACMgrHasMarlinFlagForKernel
Version | NID |
---|---|
3.60 | 0x04C0ED3F |
return sceSblACMgrHasCapabilityForDriver(pid, 128);
int sceSblACMgrHasMarlinFlagForKernel(SceUID pid);
sceSblACMgrHasMagicGateFlagForKernel
Version | NID |
---|---|
3.60 | 0x02422F1F |
return sceSblACMgrHasCapabilityForDriver(pid, 129);
int sceSblACMgrHasMagicGateFlagForKernel(SceUID pid);
sceSblACMgrIsGameProgramForKernel
Version | NID |
---|---|
3.60 | 0x05FDC646 |
Calls sceSblACMgrGetPaidForDriver to get program_authority_id.
Returns true if program_authority_id begins with 0x21 (game) or 0x2F (fSELF).
int sceSblACMgrIsGameProgramForKernel(SceUID pid);
sceSblACMgrIsUnityRuntimeForPSMForKernel
Version | NID |
---|---|
3.60 | 0x06BE9F0F |
Calls sceSblACMgrGetPaidForDriver to get program_authority_id.
int sceSblACMgrIsUnityRuntimeForPSMForKernel(SceUID pid);
sceSblACMgrHasUserDebugFlagForKernel
Version | NID |
---|---|
3.60 | 0x0E489631 |
This is a guessed name.
return sceSblACMgrHasCapabilityForDriver(pid, 32);
int sceSblACMgrHasUserDebugFlagForKernel(SceUID pid);
SceSblACMgrForKernel_11C9158B
Version | NID |
---|---|
0.931-3.60 | 0x11C9158B |
A guessed name is sceSblACMgrGetFSAttributeByModeForKernel.
Same as #SceSblACMgrForDriver_3B356B98.
int SceSblACMgrForKernel_11C9158B(void* input, void* output);
SceSblACMgrForKernel_165C3C7A
Version | NID |
---|---|
3.60 | 0x165C3C7A |
A guessed name is sceSblACMgrIsVs0UserDriveAccessibleProgramForKernel.
Same as #SceSblACMgrForDriver_E79C7A8D.
SceBool SceSblACMgrForKernel_165C3C7A(SceUID pid, const SceChar8 *path);
SceSblACMgrForKernel_1948E9DB
Version | NID |
---|---|
3.60 | 0x1948E9DB |
Equivalent of #SceSblACMgrForKernel_FBA1A256.
int SceSblACMgrForKernel_1948E9DB(void);
SceSblACMgrForKernel_CCDBB74D
Version | NID |
---|---|
0.931-3.60 | 0xCCDBB74D |
int SceSblACMgrForKernel_CCDBB74D(SceUID pid, st_attr_info *a2, void *a3);
SceSblACMgrForKernel_75AAF981
Version | NID |
---|---|
0.931-3.60 | 0x75AAF981 |
A guessed name is sceSblACMgrIsAllowFSAttributeForKernel.
Equivalent of #SceSblACMgrForKernel_BE5667C5.
int SceSblACMgrForKernel_75AAF981(SceUID pid, st_attr_info *a2, int a3);
sceSblACMgrSetFSAttributeByAttributeWithMountPointForKernel
Version | NID |
---|---|
1.500.151-3.740.011 | 0x1B160234 |
int sceSblACMgrSetFSAttributeByAttributeWithMountPointForKernel(SceUID pid, st_attr_info *a2, int *a3, int flags);
sceSblACMgrSetFSAttributeByModeForKernel
Version | NID |
---|---|
0.990-3.60 | 0x2AE6CF27 |
Equivalent of #sceSblACMgrSetFSAttributeByModeForDriver.
int sceSblACMgrSetFSAttributeByModeForKernel(SceUID pid, st_attr_info *a2, int flags);
SceSblACMgrForKernel_30575458
Version | NID |
---|---|
3.60 | 0x30575458 |
returns true if sceSblACMgrHasCapabilityForDriver(pid, 34) returns true
or returns SceSysrootForDriver_26AA237C();
if sceSblACMgrIsFselfForDriver returns true.
int SceSblACMgrForKernel_30575458(SceUID pid);
sceSblACMgrIsKernelProgramForKernel
Version | NID |
---|---|
3.60 | 0x31C23B66 |
Temp name was sceSblACMgrIsSystemForKernel, sceSblACMgrIsRootProgramForKernel.
Equivalent of #sceSblACMgrIsKernelProgramForDriver.
int sceSblACMgrIsKernelProgramForKernel(SceUID pid);
sceSblACMgrIsPSMDevAssistantForKernel
Version | NID |
---|---|
3.60 | 0x3388F595 |
Temp name was sceSblACMgrIsSIEAppForKernel.
Equivalent of #sceSblACMgrIsPSMDevAssistantForDriver.
int sceSblACMgrIsPSMDevAssistantForKernel(SceUID pid);
sceSblACMgrIsAllowLoopBackMountForKernel
Version | NID |
---|---|
3.60 | 0x384D20FD |
Temp name was sceSblACMgrIsAllowExtendedMemoryForKernel.
Equivalent of #sceSblACMgrIsAllowLoopBackMountForDriver.
SceBool sceSblACMgrIsAllowLoopBackMountForKernel(SceUID pid);
sceSblACMgrIsNonGameProgramForKernel
Version | NID |
---|---|
3.60 | 0x3F99279F |
return sceSblACMgrHasCapabilityForDriver(pid, 3);
int sceSblACMgrIsNonGameProgramForKernel(SceUID pid);
sceSblACMgrHasSystemDataFilePlayReadyFlagForKernel
Version | NID |
---|---|
3.60 | 0x410357AF |
returns true if sceSblACMgrHasCapabilityForDriver(pid, 134) returns true
or returns SceSysrootForDriver_E2515A08(void); if sceSblACMgrIsFselfForDriver returns true.
int sceSblACMgrHasSystemDataFilePlayReadyFlagForKernel(SceUID pid);
sceSblACMgrIsPspEmuForKernel
Version | NID |
---|---|
3.60 | 0x47B67F72 |
Calls sceSblACMgrGetPaidForDriver to get program_authority_id.
Returns true if program_authority_id equals 0x2800000000000013 (NPXS10029) or 0x2800000000007009 (NPXS10069 - testkit/old PSPemu).
int sceSblACMgrIsPspEmuForKernel(SceUID pid);
SceSblACMgrForKernel_48F4D5EE
Version | NID |
---|---|
0.931-3.60 | 0x48F4D5EE |
Equivalent of #SceSblACMgrForKernel_84604EED.
SceBool SceSblACMgrForKernel_48F4D5EE(SceUID pid);
sceSblACMgrIsAllowProcessDebugForKernel
Version | NID |
---|---|
3.60 | 0x49509A83 |
This is a guessed name. Temp name was sceSblACMgrIsAllowCoredumpForKernel.
int sceSblACMgrIsAllowProcessDebugForKernel(SceUID pid);
sceSblACMgrIsAllowCacheForKernel
Version | NID |
---|---|
3.60 | 0x4C4B7D6B |
Equivalent of SceSblACMgrForKernel_456DA7AC.
int sceSblACMgrIsAllowCacheForKernel(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 sceSblACMgrGetPaidForDriver to get program_authority_id.
Returns true if program_authority_id begins with 0x2F (fSELF).
int sceSblACMgrIsFselfForKernel(SceUID pid);
sceSblACMgrHasSystemDataFileFlagForKernel
Version | NID |
---|---|
3.60 | 0x5E6BA11C |
return sceSblACMgrHasCapabilityForDriver(pid, 135);
int sceSblACMgrHasSystemDataFileFlagForKernel(SceUID pid);
SceSblACMgrForKernel_7529E364
Version | NID |
---|---|
3.60 | 0x7529E364 |
Calls sceSblACMgrGetPaidForDriver to get program_authority_id.
Returns true if sceSblACMgrIsGameProgramForDriver returns true
or if sceSblACMgrIsAllowMsMountForDriver returns true.
int SceSblACMgrForKernel_7529E364(SceUID pid);
sceSblACMgrGetPaidForKernel
Version | NID |
---|---|
0.931 | not present |
3.60 | 0x7C2AF978 |
Temp name was sceSblACMgrGetProcessProgramAuthIdForKernel, sceSblACMgrGetSelfAuthInfoForKernel, sceSblACMgrGetProcessSelfAuthInfoForKernel.
int sceSblACMgrGetPaidForKernel(SceUID pid, SceUInt64 *pPaid);
SceSblACMgrForKernel_7F294A09
Version | NID |
---|---|
3.60 | 0x7F294A09 |
Uses sceKernelSysrootGetProcessSelfAuthInfoForKernel.
attribute + 0x10
Uses SceKernelCheckDipswForDriver(159); // is development mode
int SceSblACMgrForKernel_7F294A09(SceUID pid, char *maybe_path);
SceSblACMgrForKernel_8241AB5C
Version | NID |
---|---|
3.60 | 0x8241AB5C |
int SceSblACMgrForKernel_8241AB5C(SceUID pid, int a2);
sceSblACMgrIsSystemProgramForKernel
Version | NID |
---|---|
0.931.010-3.740.011 | 0x930CD037 |
Temp name was sceSblACMgrIsShellForKernel.
Used by "scePfsACConvertModeForRedirect".
return sceSblACMgrHasCapabilityForDriver(pid, 1);
int sceSblACMgrIsSystemProgramForKernel(SceUID pid);
sceSblACMgrIsAllowVirtualMachineForKernel
Version | NID |
---|---|
3.60 | 0x96403142 |
This is a guessed name.
If sceSblACMgrHasCapabilityForDriver(pid, 132) returns true
-> returns true
else if sceSblACMgrIsFselfForDriver returns true
-> returns SceSysrootForDriver_26AA237C(1);
int sceSblACMgrIsAllowVirtualMachineForKernel(SceUID pid);
sceSblACMgrIsPSMRuntimeForKernel
Version | NID |
---|---|
3.60 | 0x966B3738 |
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)
int sceSblACMgrIsPSMRuntimeForKernel(SceUID pid);
sceSblACMgrIsUpdaterUISetupperOrPkgInstallerSpawnForKernel
Version | NID |
---|---|
3.60 | 0x98B28671 |
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).
int sceSblACMgrIsUpdaterUISetupperOrPkgInstallerSpawnForKernel(SceUID pid);
sceSblACMgrHasCapabilityForKernel
Version | NID |
---|---|
3.60 | 0x9EDAF856 |
int sceSblACMgrHasCapabilityForKernel(SceUID pid, int bit);
sceSblACMgrIsWebCoreOrWebKitProcessForKernel
Version | NID |
---|---|
3.60 | 0xA7C3001D |
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)
int sceSblACMgrIsWebCoreOrWebKitProcessForKernel(SceUID pid);
sceSblACMgrIsAllowUdcdForKernel
Version | NID |
---|---|
3.60 | 0xAF6F208E |
Temp name was sceSblACMgrIsMiniSettingsForQAForKernel.
Equivalent of #sceSblACMgrIsAllowUdcdForDriver.
SceBool sceSblACMgrIsAllowUdcdForKernel(SceUID pid);
SceSblACMgrForKernel_A50FDA27
Version | NID |
---|---|
3.60 | 0xA50FDA27 |
Calls sceSblACMgrGetPaidForDriver to get program_authority_id.
-> returns self_auth_info.attribute bit flag number 16 from left (---> XX XX 8X)
int SceSblACMgrForKernel_A50FDA27(SceUID pid);
sceSblACMgrIsDevelopmentModeForKernel
Version | NID |
---|---|
0.931-3.60 | 0xBBA13D9C |
Returns sceKernelCheckDipswForDriver(159);
int sceSblACMgrIsDevelopmentModeForKernel(void);
sceSblACMgrIsPSMDevAssistantForKernel
Version | NID |
---|---|
3.60 | 0xC90A9216 |
Equivalent of sceSblACMgrIsPSMDevAssistantForDriver.
int sceSblACMgrIsPSMDevAssistantForKernel(SceUID pid);
sceSblACMgrGetMediaTypeForKernel
Version | NID |
---|---|
0.931-3.60 | 0xD442962E |
Temp name was sceSblACMgrGetPathIdForKernel.
int sceSblACMgrGetMediaTypeForKernel(const char *path, SceUInt32 *pMediaType);
sceSblACMgrIsAllowUsbSerialForKernel
Version | NID |
---|---|
3.60 | 0xDC49E160 |
returns true if sceSblACMgrHasCapabilityForDriver(pid, 1) returns true
AND sceSblACMgrHasCapabilityForDriver(pid, 131) returns true
or returns SceSysrootForDriver_26AA237C(1); if sceSblACMgrIsFselfForDriver returns true.
int sceSblACMgrIsAllowUsbSerialForKernel(SceUID pid);
sceSblACMgrIsPsNowClientForKernel
Version | NID |
---|---|
3.60 | 0xE273ED8C |
Equivalent of sceSblACMgrIsPsNowClientForDriver.
int sceSblACMgrIsPsNowClientForKernel(SceUID pid);
sceSblACMgrIsAllowMsMountForKernel
Version | NID |
---|---|
3.60 | 0xF5AD56E4 |
Temp name was sceSblACMgrIsNotSandboxedForKernel.
Equivalent of sceSblACMgrIsAllowMsMountForDriver.
SceBool sceSblACMgrIsAllowMsMountForKernel(SceUID pid);
sceSblACMgrIsSceShellForKernel
Version | NID |
---|---|
3.60 | 0xF9FEF5F0 |
Calls sceSblACMgrGetPaidForDriver to get program_authority_id.
Returns true if program_authority_id equals 0x2800000000000001 (NPXS19999 - SceShell)
int sceSblACMgrIsSceShellForKernel(SceUID pid);
SceSblACMgrForKernel_FBA1A256
Version | NID |
---|---|
0.931-3.60 | 0xFBA1A256 |
Returns 0. Probably used in very old firmwares and patched in new firmwares by making it return always false.
SceBool SceSblACMgrForKernel_FBA1A256(void);
SceSblACMgrForKernel_FB2AC5B4
Version | NID |
---|---|
3.60 | 0xFB2AC5B4 |
int SceSblACMgrForKernel_FB2AC5B4(SceUID pid, char *maybe_path);
SceSblACMgrForKernel_356B9139
Version | NID |
---|---|
0.931-3.60 | 0x356B9139 |
Equivalent of SceSblACMgrForKernel_FF7125DE.
int SceSblACMgrForKernel_356B9139(int unused, const char *path, int *a3);
SceSblACMgrForDriver
sceSblACMgrIsWebCoreOrWebKitProcessForDriver
Version | NID |
---|---|
3.60 | 0x0139FC20 |
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)
int sceSblACMgrIsWebCoreOrWebKitProcessForDriver(SceUID pid);
sceSblACMgrIsAllowUsbSerialForDriver
Version | NID |
---|---|
3.60 | 0x062CAEB2 |
returns true if sceSblACMgrHasCapabilityForDriver(pid, 1) returns true
AND sceSblACMgrHasCapabilityForDriver(pid, 131) returns true
or returns SceSysrootForDriver_26AA237C(1); if sceSblACMgrIsFselfForDriver returns true.
int sceSblACMgrIsAllowUsbSerialForDriver(SceUID pid);
sceSblACMgrIsPSMRuntimeForDriver
Version | NID |
---|---|
3.60 | 0x091F7247 |
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)
int sceSblACMgrIsPSMRuntimeForDriver(SceUID pid);
sceSblACMgrIsPsNowClientForDriver
Version | NID |
---|---|
3.60 | 0x0924896F |
Derived from sceAppMgrIsPsNowClient.
int sceSblACMgrIsPsNowClientForDriver(SceUID pid);
sceSblACMgrIsKernelProgramForDriver
Version | NID |
---|---|
3.60 | 0x0948F41C |
Temp name was sceSblACMgrIsSystemForDriver, sceSblACMgrIsRootProgramForDriver.
Equivalent of #sceSblACMgrIsKernelProgramForKernel.
return sceSblACMgrHasCapabilityForDriver(pid, 0);
int sceSblACMgrIsKernelProgramForDriver(SceUID pid);
sceSblACMgrIsAllowMsMountForDriver
Version | NID |
---|---|
3.60 | 0x0B6E6CD7 |
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)
SceBool sceSblACMgrIsAllowMsMountForDriver(SceUID pid);
sceSblACMgrIsGameProgramForDriver
Version | NID |
---|---|
3.60 | 0x1298C647 |
Derived from sceAppMgrIsGameProgram.
Calls sceSblACMgrGetPaidForDriver to get program_authority_id.
Returns true if program_authority_id begins with 0x21 (game) or 0x2F (fSELF).
int sceSblACMgrIsGameProgramForDriver(SceUID pid);
sceSblACMgrIsAllowVirtualMachineForDriver
Version | NID |
---|---|
3.60 | 0x2A29453C |
This is a guessed name.
If sceSblACMgrHasCapabilityForDriver(pid, 132) returns true
-> returns true
else if sceSblACMgrIsFselfForDriver returns true
-> returns SceSysrootForDriver_26AA237C(1);
int sceSblACMgrIsAllowVirtualMachineForDriver(SceUID pid);
SceSblACMgrForDriver_2E992B02
Version | NID |
---|---|
3.60 | 0x2E992B02 |
int SceSblACMgrForDriver_2E992B02(SceUID pid);
sceSblACMgrIsFselfForDriver
Version | NID |
---|---|
3.60 | 0x426A4E8C |
Calls sceSblACMgrGetPaidForDriver to get program_authority_id.
Returns true if program_authority_id begins with 0x2F (fSELF).
int sceSblACMgrIsFselfForDriver(SceUID pid);
sceSblACMgrGetMediaTypeForDriver
Version | NID |
---|---|
0.931-3.60 | 0x4322F188 |
int sceSblACMgrGetMediaTypeForDriver(const char *path, int *pMediaType);
sceSblACMgrIsAllowCacheForDriver
Version | NID |
---|---|
3.60 | 0x456DA7AC |
Calls sceSblACMgrGetPaidForDriver to get program_authority_id.
Returns true:
- if sceSblACMgrHasCapabilityForDriver(pid, 3); returns true
- or if program_authority_id is between 0x0x210000101CD20007 and 0x0x210000101CD20009 (PSM Dev Assistant apps)
- or if fSELF and SceSysrootForDriver_26AA237C returns true
SceBool sceSblACMgrIsAllowCacheForDriver(SceUID pid);
SceSblACMgrForDriver_48CFCEA2
Version | NID |
---|---|
3.60 | 0x48CFCEA2 |
int SceSblACMgrForDriver_48CFCEA2(SceUID pid, int *a2, int *a3, int flags);
sceSblACMgrIsAllowProcessDebugForDriver
Version | NID |
---|---|
3.60 | 0x4CBD6156 |
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
int sceSblACMgrIsAllowProcessDebugForDriver(SceUID pid);
SceSblACMgrForDriver_84604EED
Version | NID |
---|---|
0.931-3.60 | 0x84604EED |
return sceSblACMgrHasCapabilityForDriver(pid, 31);
SceBool SceSblACMgrForDriver_84604EED(SceUID pid);
sceSblACMgrIsAllowLoopBackMountForDriver
Version | NID |
---|---|
3.60 | 0x4DB7F512 |
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.
SceBool sceSblACMgrIsAllowLoopBackMountForDriver(SceUID pid);
sceSblACMgrIsUnityRuntimeForPSMForDriver
Version | NID |
---|---|
3.60 | 0x5C4BC352 |
Calls sceSblACMgrGetPaidForDriver to get program_authority_id.
int sceSblACMgrIsUnityRuntimeForPSMForDriver(SceUID pid);
SceSblACMgrForDriver_5F9AF49C
Version | NID |
---|---|
3.60 | 0x5F9AF49C |
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.
int SceSblACMgrForDriver_5F9AF49C(SceUID pid, const char *drive);
SceSblACMgrForDriver_3B356B98
Version | NID |
---|---|
0.931-3.60 | 0x3B356B98 |
Maybe sceSblACMgrGetFSAttributeByModeForDriver.
Same as #SceSblACMgrForKernel_11C9158B.
int SceSblACMgrForDriver_3B356B98(void* input, void* output);
sceFatfsACSetFSAttributeByPermissionForDriver
Version | NID |
---|---|
3.60 | 0x6210D745 |
Temp name was sceSblACMgrSetFSAttributeByModeForDriver.
int sceFatfsACSetFSAttributeByPermissionForDriver(SceUID pid, st_attr_info *a2, int flags);
sceSblACMgrGetFSAttributeByThreadAccessLevelForDriver
Version | NID |
---|---|
0.931-3.60 | 0x0606B87E |
int sceSblACMgrGetFSAttributeByThreadAccessLevelForDriver(int a1, int a2, int *a3);
sceSblACMgrIsNonGameProgramForDriver
Version | NID |
---|---|
3.60 | 0x6C5AB07F |
Derived from sceAppMgrIsNonGameProgram.
return sceSblACMgrHasCapabilityForDriver(pid, 3);
int sceSblACMgrIsNonGameProgramForDriver(SceUID pid);
SceSblACMgrForDriver_6D8A88B7
Version | NID |
---|---|
3.60 | 0x6D8A88B7 |
Calls sceSblACMgrGetPaidForDriver to get program_authority_id.
Returns true if sceSblACMgrIsGameProgramForDriver returns true
or if sceSblACMgrIsAllowMsMountForDriver returns true.
int SceSblACMgrForDriver_6D8A88B7(SceUID pid);
sceSblACMgrIsSystemProgramForDriver
Version | NID |
---|---|
0.931-3.60 | 0x8612B243 |
Temp name was sceSblACMgrIsShellForDriver.
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 |
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).
int sceSblACMgrIsUpdaterUISetupperOrPkgInstallerSpawnForDriver(SceUID pid);
sceSblACMgrGetPaidForDriver
Version | NID |
---|---|
0.931 | not present |
3.60 | 0x96AF69BD |
Temp name was sceSblACMgrGetProcessProgramAuthIdForDriver, sceSblACMgrGetSelfAuthInfoForDriver, sceSblACMgrGetProcessSelfAuthInfoForDriver.
int sceSblACMgrGetPaidForDriver(SceUID pid, SceUInt64 *pPaid);
sceSblACMgrIsSceShellForDriver
Version | NID |
---|---|
3.60 | 0x991FDC15 |
Calls sceSblACMgrGetPaidForDriver to get program_authority_id.
Returns true if program_authority_id equals 0x2800000000000001 (NPXS19999 - SceShell)
int sceSblACMgrIsSceShellForDriver(SceUID pid);
sceSblACMgrHasMagicGateFlagForDriver
Version | NID |
---|---|
3.60 | 0xA27E47A7 |
return sceSblACMgrHasCapabilityForDriver(pid, 129);
int sceSblACMgrHasMagicGateFlagForDriver(SceUID pid);
sceSblACMgrIsPSMDevAssistantForDriver
Version | NID |
---|---|
3.60 | 0xA67E8E5B |
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).
int sceSblACMgrIsPSMDevAssistantForDriver(SceUID pid);
sceSblACMgrHasSystemDataFileFlagForDriver
Version | NID |
---|---|
3.60 | 0xA92CD636 |
return sceSblACMgrHasCapabilityForDriver(pid, 135);
int sceSblACMgrHasSystemDataFileFlagForDriver(SceUID pid);
sceSblACMgrHasUserDebugFlagForDriver
Version | NID |
---|---|
3.60 | 0xAD717E7A |
This is a guessed name.
Used by SceDeci4pLoadp, SceDeci4pDbgp
return sceSblACMgrHasCapabilityForDriver(pid, 32);
int sceSblACMgrHasUserDebugFlagForDriver(SceUID pid);
sceSblACMgrHasSystemDataFilePlayReadyFlagForDriver
Version | NID |
---|---|
3.60 | 0xAE1AF154 |
returns true if sceSblACMgrHasCapabilityForDriver(pid, 134) returns true
or returns SceSysrootForDriver_E2515A08(void); if sceSblACMgrIsFselfForDriver returns true.
int sceSblACMgrHasSystemDataFilePlayReadyFlagForDriver(SceUID pid);
SceSblACMgrForDriver_B12CEAA8
Version | NID |
---|---|
3.60 | 0xB12CEAA8 |
Seems to check some bit flags.
Used by SceExfatfs in VFS implementation functions: sceVfsNodeChstatForDriver and sceVfsNodeChstatByFdForDriver
int SceSblACMgrForDriver_B12CEAA8(SceUID pid, st_attr_info *a1, st_attr_info *a2);
SceSblACMgrForDriver_B836CF13
Version | NID |
---|---|
3.60 | 0xB836CF13 |
Calls sceSblACMgrGetPaidForDriver to get program_authority_id.
-> returns self_auth_info.attribute bit flag number 16 from left (---> XX XX 8X)
int SceSblACMgrForDriver_B836CF13(SceUID pid);
SceSblACMgrForDriver_BE5667C5
Version | NID |
---|---|
0.931-3.60 | 0xBE5667C5 |
int SceSblACMgrForDriver_BE5667C5(SceUID pid, st_attr_info *a2, int a3);
sceSblACMgrHasCapabilityForDriver
Version | NID |
---|---|
3.60 | 0xC2D1F2FC |
int sceSblACMgrHasCapabilityForDriver(SceUID pid, int bit);
sceSblACMgrIsPSMDevAssistantForDriver
Version | NID |
---|---|
3.60 | 0xC98D82EE |
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.
int sceSblACMgrIsPSMDevAssistantForDriver(SceUID pid);
sceSblACMgrIsAllowUdcdForDriver
Version | NID |
---|---|
3.60 | 0xD0E11C89 |
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.
SceBool sceSblACMgrIsAllowUdcdForDriver(SceUID pid);
SceSblACMgrForDriver_D7AD8471
Version | NID |
---|---|
3.60 | 0xD7AD8471 |
int SceSblACMgrForDriver_D7AD8471(SceUID pid, char *maybe_path);
SceSblACMgrForDriver_E79C7A8D
Version | NID |
---|---|
3.60 | 0xE79C7A8D |
A guessed name is sceSblACMgrIsVs0UserDriveAccessibleProgramForDriver.
Same as #SceSblACMgrForKernel_165C3C7A.
SceBool SceSblACMgrForDriver_E79C7A8D(SceUID pid, const SceChar8 *path);
sceSblACMgrIsDevelopmentModeForDriver
Version | NID |
---|---|
0.931-3.60 | 0xE87D1777 |
Derived from sceAppMgrIsDevelopmentMode.
Returns sceKernelCheckDipswForDriver(159);
int sceSblACMgrIsDevelopmentModeForDriver(void);
sceSblACMgrHasMarlinFlagForDriver
Version | NID |
---|---|
3.60 | 0xF5AE24AC |
return sceSblACMgrHasCapabilityForDriver(pid, 128);
int sceSblACMgrHasMarlinFlagForDriver(SceUID pid);
sceSblACMgrIsPspEmuForDriver
Version | NID |
---|---|
3.60 | 0xFD00C72A |
Calls sceSblACMgrGetPaidForDriver to get program_authority_id.
Returns true if program_authority_id equals 0x2800000000000013 (NPXS10029) or 0x2800000000007009 (NPXS10069 - testkit/old PSPemu).
int sceSblACMgrIsPspEmuForDriver(SceUID pid);
SceSblACMgrForDriver_FF7125DE
Version | NID |
---|---|
0.931-3.60 | 0xFF7125DE |
Gets some info for path.
int SceSblACMgrForDriver_FF7125DE(int unused, const char *path, int *a3);
SceSblACMgr
_sceSblACMgrIsGameProgram
Version | NID |
---|---|
0.931.010-3.740.011 | 0x3C17A7F7 |
int _sceSblACMgrIsGameProgram(int *result);