Difference between revisions of "Modules"

From Vita Development Wiki
Jump to navigation Jump to search
 
(34 intermediate revisions by 3 users not shown)
Line 1: Line 1:
The PSP/PS3/PSVita ELF loaded in memory is called a module.
+
A PSP/PS3/PS Vita ELF is called a module.
  
A module is distinctive by its fingerprint (a sort of hash) and in most cases its name, but the same module name can be used in both the non-secure kernel and the secure kernel, for instance SceSysmem.
+
A module is distinctive by its fingerprint (a sort of hash) and in most cases its name, but the same module name can be used in both the non-secure kernel and the secure kernel, for instance [[SceSysmem]].
  
On PS Vita, most modules are loaded by [[SceKernelModulemgr]].
+
On PS Vita, most modules are loaded by the [[SceKernelModulemgr]] module, itself loaded by the [[NSKBL]].
  
 
== SceModuleInfo ==
 
== SceModuleInfo ==
Line 38: Line 38:
 
|-
 
|-
 
| infover
 
| infover
| SceModuleInfo version. Old name was "terminal" on PSP. Seen values are: 0 on PSP and PS3, 1 never seen, 2 on PSVita FW 0.902, 3 on PSVita FW 0.931, 6 on PSVita FWs 0.940-3.73.
+
| SceModuleInfo version. Old name was "terminal" on PSP. Seen values are: 0 on PSP and PS3, 1 never seen, 2 on PS Vita FW 0.902, 3 on PS Vita FW 0.931, 6 on PS Vita FWs 0.940-3.73.
 
|-
 
|-
 
| gp_value
 
| gp_value
Line 170: Line 170:
 
=== Module attribute ===
 
=== Module attribute ===
  
The attributes of a module. Bitwise OR'ed values from ::SceModuleAttribute and ::SceModulePrivilegeLevel.
+
The attributes of a module (PSP, PS Vita, ?PS3 to check?). Bitwise OR'ed values from ::SceModuleAttribute and ::SceModulePrivilegeLevel. Since PS Vita SDK 0.940, SceModulePrivilegeLevel are not set anymore and unused in PS Vita OS.
  
 
* Most usermode modules and a few kernel modules have it set to 0.
 
* Most usermode modules and a few kernel modules have it set to 0.
 
* Most kernel modules have it set to 7.
 
* Most kernel modules have it set to 7.
* attribute 0x8000 was seen in FW 0.902 cui_update_starter_module.self and FW 0.995 debug comicreader.elf.
+
* Attribute 0x800 was seen in FW 0.902 cui_update_starter_module.self and FW 0.995 debug comicreader.elf. That attribute was set because these ELFs were compiled with an old PS Vita SDK (<= 0.930) that inherited privilege level attributes from the PSP SDK.
  
 
{| class="wikitable"
 
{| class="wikitable"
 
! Value !! Name !! Comments
 
! Value !! Name !! Comments
|-
 
| 0x8000 || SCE_MODULE_ATTR_DEBUG || Debug.
 
 
|-
 
|-
 
| 0x4 || SCE_MODULE_ATTR_EXCLUSIVE_START || Only one instance of the module can be started. If you want to start another version of that module, you have to stop the currently running version first.
 
| 0x4 || SCE_MODULE_ATTR_EXCLUSIVE_START || Only one instance of the module can be started. If you want to start another version of that module, you have to stop the currently running version first.
Line 232: Line 230:
  
 
An array of export entries defines all the libraries exported by the module.
 
An array of export entries defines all the libraries exported by the module.
 +
 +
==== NID ====
 +
 +
If there is a change in the ForKernel library between FWs, the ForKernel NID will change.
 +
 +
However, the NID of a ForKernel library that is intentionally assigned an arbitrary NID, such as SceSysrootForKernel, does not change.
 +
 +
Therefore, when the lower level ForKernel NID is changed, the ForKernel library NID existing in the module A that imports it is changed in a chain reaction. In addition, the NID of ForKernel Library A has changed, so more chain reaction will occur.
  
 
==== Structure ====
 
==== Structure ====
Line 356: Line 362:
 
! Name !! Type !! NID !! Definition
 
! Name !! Type !! NID !! Definition
 
|-
 
|-
| module_start || Function || 0x935CD196 || int module_start(SceSize arglen, const void *argp);
+
| module_start || Function || 0x935CD196 || <code>int module_start(SceSize arglen, const void *argp);</code>
 
|-
 
|-
| module_stop || Function || 0x79F8E492 || int module_stop(SceSize arglen, const void *argp);
+
| module_stop || Function || 0x79F8E492 || <code>int module_stop(SceSize arglen, const void *argp);</code>
 
|-
 
|-
| module_exit || Function || 0x913482A9 || int module_exit(SceSize arglen, const void *argp);
+
| module_exit || Function || 0x913482A9 || <code>int module_exit(SceSize arglen, const void *argp);</code>
 
|-
 
|-
| module_bootstart || Function || 0x5C424D40 || int module_bootstart(SceSize arglen, const void *argp);
+
| module_bootstart || Function || 0x5C424D40 || <code>int module_bootstart(SceSize arglen, const void *argp);</code>
 
|-
 
|-
| module_info || Variable || 0x6C2224BA || SceModuleInfo
+
| module_suspend || Function || 0xDD42FA37 || <code>int module_suspend(void);</code> Supported in FW 0.990.030, unsupported as of firmware 3.65. Present in FW 0.990.030 [[SceKernelModulemgr]].
 
|-
 
|-
| module_proc_param || Variable || 0x70FBA1E7 || SceProcessParam
+
| module_proc_create || Function || 0xE640E30C || <code>SceInt32 module_proc_create(ScePID pid, void* pParam, void* pCommon);</code> Supported in FW 0.931-0.990.030, unsupported as of firmware 3.65. Seemingly never used.
 
|-
 
|-
| module_sdk_version || Variable || 0x936C8A78 || int
+
| module_proc_exit || Function || 0x4F0EE5BD || <code>SceInt32 module_proc_exit(ScePID pid, void* pParam, void* pCommon);</code> Supported in FW 0.931-0.990.030, unsupported as of firmware 3.65. Seemingly never used.
 
|-
 
|-
| ?module_proc_? || Variable || 0x9318D9DD || SceModuleDebugPointExportsInfo. Present in [[SceKernelThreadMgr]], [[SceProcessmgr]], [[SceDisplay]].
+
| module_proc_kill || Function || 0xDF0212B9 || <code>SceInt32 module_proc_kill(ScePID pid, void* pParam, void* pCommon);</code> Supported in FW 0.931-0.990.030, unsupported as of firmware 3.65. Seemingly never used.
 
|-
 
|-
| ?module_proc_? || Variable || 0x8CE938B1 || An array of SceModuleDebugPointExportsInfo.numEntries pointers to SceModuleDebugPointExport entries. Present in [[SceKernelThreadMgr]], [[SceProcessmgr]], [[SceDisplay]].
+
| module_info || Variable || 0x6C2224BA || <code>SceModuleInfo</code> structure
 
|-
 
|-
| ? || Variable || 0x1A9822A4 || Size is 0x14 bytes. Unknown. Found NID in [[SceKernelModulemgr]] parser. Exported in usermode modules only.
+
| module_proc_param || Variable || 0x70FBA1E7 || <code>SceProcessParam</code> structure
 
|-
 
|-
| ? || ? || 0xD20886EB || Unknown. Found NID in [[SceKernelModulemgr]] parser.
+
| module_sdk_version || Variable || 0x936C8A78 || <code>SceUInt32</code> variable - Used in FW 2.10.
 +
|-
 +
| module_dtrace_probes_info || Variable || 0x9318D9DD || <code>sdt_probes_info_t</code> structure. Present in [[SceKernelThreadMgr]], [[SceProcessmgr]], [[SceDisplay]]. Reserved for kernel modules. Used by [[SceDeci4pDtracep]].
 +
|-
 +
| module_dtrace_probes || Variable || 0x8CE938B1 || An array of <code>sdt_probes_info_t.count</code> pointers to <code>sdt_probedesc_t</code>. Present in [[SceKernelThreadMgr]], [[SceProcessmgr]], [[SceDisplay]]. Reserved for kernel modules. Used by [[SceDeci4pDtracep]].
 +
|-
 +
| sce_module_start_thread_parameter || Variable || 0x1A9822A4 || Pointer to <code>SceModuleThreadParameter</code>. Defines the parameters used to create the thread that runs the <code>module_start</code> function. Reserved for usermode modules.
 +
|-
 +
| sce_module_stop_thread_parameter || Variable || 0xD20886EB || Pointer to <code>SceModuleThreadParameter</code>. Defines the parameters used to create the thread that runs the <code>module_stop</code> function. Reserved for usermode modules.
 
|}
 
|}
  
Line 384: Line 398:
 
! Name !! Type !! NID !! Definition
 
! Name !! Type !! NID !! Definition
 
|-
 
|-
| module_start || Function || 0xD632ACDB || int module_start(int arglen, const void *argp);
+
| module_start || Function || 0xD632ACDB || <code>int module_start(int arglen, const void *argp);</code>
 
|-
 
|-
| module_stop || Function || 0xCEE8593C || int module_stop(int arglen, const void *argp);
+
| module_stop || Function || 0xCEE8593C || <code>int module_stop(int arglen, const void *argp);</code>
 
|-
 
|-
| module_bootstart || Function || 0xD3744BE0 || int module_bootstart(int arglen, const void *argp);
+
| module_bootstart || Function || 0xD3744BE0 || <code>int module_bootstart(int arglen, const void *argp);</code>
 
|-
 
|-
| module_reboot_before || Function || 0x2F064FA6 || int module_reboot_before(void);
+
| module_reboot_before || Function || 0x2F064FA6 || <code>int module_reboot_before(void);</code>
 
|-
 
|-
| module_reboot_phase || Function || 0xADF12745 || int module_reboot_phase(void)
+
| module_reboot_phase || Function || 0xADF12745 || <code>int module_reboot_phase(void)</code>
 
|-
 
|-
| module_info || Variable || 0xF01D73A7 || SceModuleInfo
+
| module_info || Variable || 0xF01D73A7 || <code>SceModuleInfo</code>
 
|-
 
|-
| module_start_thread_parameter || Variable || 0x0F7C276C || SceModuleThreadParameter
+
| module_start_thread_parameter || Variable || 0x0F7C276C || <code>SceModuleThreadParameter</code>
 
|-
 
|-
| module_stop_thread_parameter || Variable || 0xCF0CC697 || SceModuleThreadParameter
+
| module_stop_thread_parameter || Variable || 0xCF0CC697 || <code>SceModuleThreadParameter</code>
 
|-
 
|-
| module_reboot_before_thread_parameter || Variable || 0xF4F4299D || SceModuleThreadParameter
+
| module_reboot_before_thread_parameter || Variable || 0xF4F4299D || <code>SceModuleThreadParameter</code>
 
|-
 
|-
| module_sdk_version || Variable || 0x11B97506 || int
+
| module_sdk_version || Variable || 0x11B97506 || <code>int</code>
 
|-
 
|-
 
| module_linked || Variable || 0x900DADE1 ||  
 
| module_linked || Variable || 0x900DADE1 ||  
Line 410: Line 424:
  
 
<source lang="C">
 
<source lang="C">
# Temporary name: SceModuleEntryThread
+
# Temporary name was: SceModuleEntryThread
typedef struct SceModuleThreadParameter { // size is 0x10 bytes on PSP
+
typedef struct SceModuleThreadParameter { // Size is 0x10 bytes on PSP, 0x14 on Vita
     /* The number of thread parameters, typically 3. */
+
     /* The number of thread parameters. Must be 4 on Vita. */
 
     SceUInt32 numParams;
 
     SceUInt32 numParams;
     /* The initial priority of the entry thread. */
+
     /* The initial priority of the entry thread. Default value is SCE_KERNEL_DEFAULT_PRIORITY. */
 
     SceUInt32 initPriority;
 
     SceUInt32 initPriority;
     /* The stack size of the entry thread. */
+
     /* The stack size of the entry thread. Default value is SCE_KERNEL_THREAD_STACK_SIZE_DEFAULT_USER_MAIN (256KiB). */
 
     SceSize stackSize;
 
     SceSize stackSize;
     /* The attributes of the entry thread. */
+
     /* The attributes of the entry thread. Always ignored on Vita. */
 
     SceUInt32 attr;
 
     SceUInt32 attr;
 +
    /* The CPU affinity mask of the entry thread. Only present on Vita. Default value is SCE_KERNEL_THREAD_CPU_AFFINITY_MASK_DEFAULT. */
 +
    SceInt32 cpuAffinityMask;
 
} SceModuleThreadParameter;
 
} SceModuleThreadParameter;
  
// This is a guessed name
+
// Temporary names were: SceModuleStaticProbesInfo, SceModuleDTraceProbesInfo
typedef struct SceModuleDebugPointExportsInfo { // size is 0x8 bytes on FWs 0.931-3.73
+
typedef struct sdt_probes_info { // size is 0x8 bytes on FWs 0.931-3.73
     SceUInt32 version; // ex: 1
+
     unsigned int version; // Always 1
     SceUInt32 numEntries; // ex: 1, 5, 7, 16
+
     unsigned int count; // Number of probes. ex: 1, 5, 7, 16
} SceModuleDebugPointExportsInfo;
+
} sdt_probes_info_t;
 +
 
 +
typedef union {
 +
void (*handler0)(const struct sdt_probedesc *desc);
 +
void (*handler1)(const struct sdt_probedesc *desc, uintptr_t arg0);
 +
void (*handler2)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1);
 +
void (*handler3)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2);
 +
void (*handler4)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3);
 +
void (*handler5)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4);
 +
void (*handler6)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5);
 +
void (*handler7)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5, uintptr_t arg6);
 +
void (*handler8)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5, uintptr_t arg6, uintptr_t arg7);
 +
void (*handler9)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5, uintptr_t arg6, uintptr_t arg7, uintptr_t arg8);
 +
void (*handler10)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5, uintptr_t arg6, uintptr_t arg7, uintptr_t arg8, uintptr_t arg9);
 +
} sdpd_handler_t;
  
// This is a guessed name
+
// Temporary names were: SceModuleStaticProbe, SceModuleDTraceProbe
typedef struct SceModuleDebugPointExport { // size is 0x28 on FWs 0.931-3.73
+
typedef struct sdt_probedesc { // size is 0x28 on FWs 0.931-3.73
    void* unk_0x0; // maybe pointer to a structure or could be a SceUInt32
+
unsigned int *sdpd_id; // probe ID
    char* type_name; // "__proc_", "__interrupt_", "__sched_"
+
const char *sdpd_provider; // name of provider
    char* command_name; // Name of the operation. ex: "exec__failure
+
const char *sdpd_name; // name of probe
    void *addr; // Pointer to the exported instructions
+
void *sdpd_offset; // instrumentation point (address)
    void *storage; // Can be used in the exported instructions
+
sdpd_handler_t *sdpd_handler_fn; // probe handler_fn function (NULL if disabled)
    void *unk_0x14; // Seems unused
+
void *sdpd_private; // probe private data
    void *unk_0x18; // Seems unused
+
void (*sdpd_create_fn)(const struct sdt_probedesc *desc); // probe create helper function (NULL if unused)
    void *unk_0x1C; // Seems unused
+
void (*sdpd_enable_fn)(const struct sdt_probedesc *desc); // probe enable helper function (NULL if unused)
    void *unk_0x20; // Seems unused
+
void (*sdpd_disable_fn)(const struct sdt_probedesc *desc); // probe disable helper function (NULL f unused)
    void *unk_0x24; // Seems unused
+
void (*sdpd_destroy_fn)(const struct sdt_probedesc *desc); // probe destroy helper function (NULL if unused)
} SceModuleDebugPointExport;
+
} sdt_probedesc_t;
  
 
typedef struct SceProcessParam { // size is 0x20 on FW 0.895, 0x2C on FW 0.931, 0x30 on FW 0.945, 0x34 on FW 3.60
 
typedef struct SceProcessParam { // size is 0x20 on FW 0.895, 0x2C on FW 0.931, 0x30 on FW 0.945, 0x34 on FW 3.60
Line 462: Line 492:
 
} SceProcessParam;
 
} SceProcessParam;
  
typedef struct SceLibcParam { // size is 0x30 on FWs 1.80-1.81, 0x38 on FWs 2.00-3.73
+
typedef struct SceLibcParam { // size is 0x1C on FW 0.930, 0x30 on FWs 1.80-1.81, 0x38 on FWs 2.00-3.73
 
SceSize size; // Size of this structure
 
SceSize size; // Size of this structure
SceUInt32 unk_4;
+
SceLibEntryTable_1C *_SceLibcParam_0001_ent_head; // Pointer to SceLibcParam library information
 
SceSize *sceLibcHeapSize; // Pointer to heap size
 
SceSize *sceLibcHeapSize; // Pointer to heap size
SceSize *sceLibcHeapSizeDefault; // Pointer to heap size
+
SceSize *__sceLibcHeapSizeDefault; // Pointer to heap size
 
SceUInt32 *sceLibcHeapExtendedAlloc; // Pointer to flag to dynamically extend heap size
 
SceUInt32 *sceLibcHeapExtendedAlloc; // Pointer to flag to dynamically extend heap size
 
SceUInt32 *sceLibcHeapDelayedAlloc; // Pointer to flag to allocate heap on first call to malloc
 
SceUInt32 *sceLibcHeapDelayedAlloc; // Pointer to flag to allocate heap on first call to malloc
Line 602: Line 632:
 
{| class="wikitable"
 
{| class="wikitable"
 
! Bit !! Comments
 
! Bit !! Comments
|-
 
| 0x10000 || Unknown
 
 
|-
 
|-
 
| 0x8000 || Main Export: Set for main NONAME export.
 
| 0x8000 || Main Export: Set for main NONAME export.
Line 622: Line 650:
 
== Relocations ==
 
== Relocations ==
  
See [https://wiki.henkaku.xyz/vita/images/a/a2/Vita_SDK_specifications.pdf] for more information on how PSVita relocations work.
+
See [https://wiki.henkaku.xyz/vita/images/a/a2/Vita_SDK_specifications.pdf] for more information on how PS Vita relocations work.
  
 
Relocations are stored within the PT_SCE_RELA segment.
 
Relocations are stored within the PT_SCE_RELA segment.
  
Relocation entry format can be one of 10 types which is determined by r_format (the first 4 bits).
+
There are 10 relocation entry formats. It is determined by r_format (the first 4 bits of the relocation entry).
 +
 
 +
Warning! In PS Vita FWs <= 3.00, only relocation entry format 0 is available. Using any other relocation entry format gives error 0x8002D019.
  
 
<source lang="C">
 
<source lang="C">
Line 722: Line 752:
 
! Start !! End !! Description
 
! Start !! End !! Description
 
|-
 
|-
| 0 || 3 || Entry format type set to 0
+
| 0 || 3 || Entry format. Set to 0.
 
|-
 
|-
 
| 4 || 7 || Symbol segment index
 
| 4 || 7 || Symbol segment index
Line 744: Line 774:
 
! Start !! End !! Description
 
! Start !! End !! Description
 
|-
 
|-
| 0 || 3 || Entry format type set to 1
+
| 0 || 3 || Entry format. Set to 1.
 
|-
 
|-
 
| 4 || 7 || Symbol segment index
 
| 4 || 7 || Symbol segment index
Line 762: Line 792:
 
! Start !! End !! Description
 
! Start !! End !! Description
 
|-
 
|-
| 0 || 3 || Entry format type set to 2
+
| 0 || 3 || Entry format. Set to 2.
 
|-
 
|-
 
| 4 || 7 || Symbol segment index
 
| 4 || 7 || Symbol segment index
Line 778: Line 808:
 
! Start !! End !! Description
 
! Start !! End !! Description
 
|-
 
|-
| 0 || 3 || Entry format type set to 3
+
| 0 || 3 || Entry format. Set to 3
 
|-
 
|-
 
| 4 || 7 || Symbol segment index
 
| 4 || 7 || Symbol segment index
Line 796: Line 826:
 
! Start !! End !! Description
 
! Start !! End !! Description
 
|-
 
|-
| 0 || 3 || Entry format type set to 4
+
| 0 || 3 || Entry format. Set to 4.
 
|-
 
|-
 
| 4 || 26 || Offset
 
| 4 || 26 || Offset
Line 808: Line 838:
 
! Start !! End !! Description
 
! Start !! End !! Description
 
|-
 
|-
| 0 || 3 || Entry format type set to 5
+
| 0 || 3 || Entry format. Set to 5.
 
|-
 
|-
 
| 4 || 12 || Distance 1
 
| 4 || 12 || Distance 1
Line 824: Line 854:
 
! Start !! End !! Description
 
! Start !! End !! Description
 
|-
 
|-
| 0 || 3 || Entry format type set to 6
+
| 0 || 3 || Entry format. Set to 6.
 
|-
 
|-
 
| 4 || 31 || Offset
 
| 4 || 31 || Offset
Line 834: Line 864:
 
! Start !! End !! Description
 
! Start !! End !! Description
 
|-
 
|-
| 0 || 3 || Entry format type set to 7
+
| 0 || 3 || Entry format. Set to 7.
 
|-
 
|-
 
| 4 || 10 || Offset 1
 
| 4 || 10 || Offset 1
Line 850: Line 880:
 
! Start !! End !! Description
 
! Start !! End !! Description
 
|-
 
|-
| 0 || 3 || Entry format type set to 8
+
| 0 || 3 || Entry format. Set to 8.
 
|-
 
|-
 
| 4 || 7 || Offset 1
 
| 4 || 7 || Offset 1
Line 872: Line 902:
 
! Start !! End !! Description
 
! Start !! End !! Description
 
|-
 
|-
| 0 || 3 || Entry format type set to 9
+
| 0 || 3 || Entry format. Set to 9.
 
|-
 
|-
 
| 4 || 5 || Offset 1
 
| 4 || 5 || Offset 1
Line 907: Line 937:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Code !! Description
+
! Code !! Name !! Description
 
|-
 
|-
| 0 || R_ARM_NONE
+
| 0 || R_ARM_NONE || No relocation
 
|-
 
|-
| 2 || R_ARM_ABS32
+
| 2 || R_ARM_ABS32 || Direct 32-bits address
 
|-
 
|-
| 3 || R_ARM_REL32
+
| 3 || R_ARM_REL32 || N/A
 
|-
 
|-
| 10 || R_ARM_THM_CALL
+
| 10 || R_ARM_THM_CALL || bl/blx on Thumb mode
 
|-
 
|-
| 28 || R_ARM_CALL
+
| 28 || R_ARM_CALL || bl/blx on ARM mode
 
|-
 
|-
| 29 || R_ARM_JUMP24
+
| 29 || R_ARM_JUMP24 || N/A
 
|-
 
|-
| 38 || R_ARM_TARGET1 (same as R_ARM_ABS32)
+
| 38 || R_ARM_TARGET1 || same as R_ARM_ABS32
 
|-
 
|-
| 40 || R_ARM_V4BX (same as R_ARM_NONE)
+
| 40 || R_ARM_V4BX || same as R_ARM_NONE
 
|-
 
|-
| 41 || R_ARM_TARGET2 (same as R_ARM_REL32)
+
| 41 || R_ARM_TARGET2 || same as R_ARM_REL32
 
|-
 
|-
| 42 || R_ARM_PREL31
+
| 42 || R_ARM_PREL31 || N/A
 
|-
 
|-
| 43 || R_ARM_MOVW_ABS_NC
+
| 43 || R_ARM_MOVW_ABS_NC || movw on ARM mode
 
|-
 
|-
| 44 || R_ARM_MOVT_ABS
+
| 44 || R_ARM_MOVT_ABS || movt on ARM mode
 
|-
 
|-
| 47 || R_ARM_THM_MOVW_ABS_NC
+
| 47 || R_ARM_THM_MOVW_ABS_NC || movw on Thumb mode
 
|-
 
|-
| 48 || R_ARM_THM_MOVT_ABS
+
| 48 || R_ARM_THM_MOVT_ABS || movt on Thumb mode
 
|-
 
|-
| 255 || R_ARM_RBASE (Variables only, Found in ScePower)
+
| 255 || R_ARM_RBASE || Ignored
 +
|}
 +
 
 +
== System Software Version independant usermode system modules ==
 +
 
 +
These system usermode modules can be decrypted on any firmware version and are identified by kprx_auth_sm.self by their program-authority-id.
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Name !! program-authority-id !! Path
 +
|-
 +
| unknown || 0x2800800000000001 || unknown
 +
|-
 +
| [[ScePsp2Swu]] || 0x2800800000000002 || ud0:PSP2UPDATE/psp2swu.self, in PUP files
 +
|-
 +
| [[SceCuiSetUpper]] || 0x2800800000000003 || ud0:PSP2UPDATE/cui_setupper.self, in PUP files
 +
|-
 +
| unknown || 0x2800800000000013 || unknown
 +
|-
 +
| unknown || 0x2800800000000016 || unknown
 +
|-
 +
| unknown || 0x2800000000000032 || unknown
 +
|-
 +
| [[SceGameRightPlugin]] || 0x2800000000000030 || /sce_sys/about/right.suprx, in PKG files
 
|}
 
|}
  
Line 952: Line 1,005:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! name !! program-authority-id !! Module path
+
! Name !! program-authority-id !! Path
 
|-
 
|-
 
| [[kernel_boot_loader]] || 0x2E00000000000001 || slb0:kernel_boot_loader.self
 
| [[kernel_boot_loader]] || 0x2E00000000000001 || slb0:kernel_boot_loader.self
Line 961: Line 1,014:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! name !! program-authority-id !! Module path
+
! Name !! program-authority-id !! Path
 
|-
 
|-
 
| [[kprx_auth_sm]] || 0x2E00000000000002 || slb0:kprx_auth_sm.self
 
| [[kprx_auth_sm]] || 0x2E00000000000002 || slb0:kprx_auth_sm.self
Line 974: Line 1,027:
 
|-
 
|-
 
| [[compat_sm]] || 0x2E00000000000008 || os0:sm/compat_sm.self
 
| [[compat_sm]] || 0x2E00000000000008 || os0:sm/compat_sm.self
 +
|-
 +
| [[applier_sm]] (only present in very old prototype FWs) || 0x2E00000000000009 || os0:sm/applier_sm.self
 
|-
 
|-
 
| [[act_sm]] || 0x2E0000000000000A || os0:sm/act_sm.self
 
| [[act_sm]] || 0x2E0000000000000A || os0:sm/act_sm.self
Line 992: Line 1,047:
 
==== 3.60 Kernel modules ====
 
==== 3.60 Kernel modules ====
  
{| class="wikitable"
+
{| class="sortable wikitable"
 
|-
 
|-
! Module name !! program-authority-id !! Module path
+
! Name !! program-authority-id !! Path
 
|-
 
|-
 
| [[ScePsp2BootConfig]] || 0x280800000002005B || os0:psp2bootconfig.skprx
 
| [[ScePsp2BootConfig]] || 0x280800000002005B || os0:psp2bootconfig.skprx
Line 1,093: Line 1,148:
 
|-
 
|-
 
| [[SceWlanBtRobinImageAx]] || 0x2808000000020057 || os0:kd/wlanbt_robin_img_ax.skprx
 
| [[SceWlanBtRobinImageAx]] || 0x2808000000020057 || os0:kd/wlanbt_robin_img_ax.skprx
 +
|-
 +
| [[SceDeci4pCpup]] || 0x280800000001000C || os0:kd/deci4p_cpup.skprx
 +
|-
 +
| [[SceDeci4pCtrlp]] || 0x2808000000010016 || os0:kd/deci4p_ctrlp.skprx
 +
|-
 +
| [[SceDeci4pDbgp]] || 0x2808000000010001 || os0:kd/deci4p_dbgp.skprx
 +
|-
 +
| [[SceDeci4pDfMgr]] || 0x2808000000010008 || os0:kd/deci4p_dfmgr.skprx
 +
|-
 +
| [[SceDeci4pDrfp]] || 0x2808000000010000 || os0:kd/deci4p_drfp.skprx
 +
|-
 +
| [[SceDeci4pDtracep]] || 0x2808000000010010 || os0:kd/deci4p_dtracep.skprx
 +
|-
 +
| [[SceDeci4pLoadp]] || 0x280800000001000A || os0:kd/deci4p_loadp.skprx
 +
|-
 +
| [[SceDeci4pPamp]] || 0x280800000001000B || os0:kd/deci4p_pamp.skprx
 +
|-
 +
| [[SceDeci4pRDrfp]] || 0x2808000000010014 || os0:kd/deci4p_rdrfp.skprx
 +
|-
 +
| [[SceDeci4pSCTtyp]] || 0x2808000000010097 || os0:kd/deci4p_scttyp.skprx
 +
|-
 +
| [[SceDeci4pSDbgp]] || 0x2808000000010081 || os0:kd/deci4p_sdbgp.skprx
 +
|-
 +
| [[SceDeci4pSDeci2p]] || 0x2808000000010083 || os0:kd/deci4p_sdeci2p.skprx
 +
|-
 +
| [[SceDeci4pSDfCtl]] || 0x2808000000010093 || os0:kd/deci4p_sdfctl.skprx
 +
|-
 +
| [[SceDeci4pSDfMgr]] || 0x2808000000010088 || os0:kd/deci4p_sdfmgr.skprx
 +
|-
 +
| [[SceDeci4pSDrfp]] || 0x2808000000010080 || os0:kd/deci4p_sdrfp.skprx
 +
|-
 +
| [[SceDeci4pSTtyp]] || 0x2808000000010089 || os0:kd/deci4p_sttyp.skprx
 +
|-
 +
| [[SceDeci4pTmcp]] || 0x2808000000010017 || os0:kd/deci4p_tmcp.skprx
 +
|-
 +
| [[SceDeci4pTsmp]] || 0x280800000001000F || os0:kd/deci4p_tsmp.skprx
 +
|-
 +
| [[SceDeci4pTtyp]] || 0x2808000000010009 || os0:kd/deci4p_ttyp.skprx
 +
|-
 +
| [[SceDeci4pUserp]] || 0x2808000000010011 || os0:kd/deci4p_userp.skprx
 +
|-
 +
| [[SceDeci4pVcp]] || 0x2808000000010012 || os0:kd/deci4p_vcp.skprx
 
|-
 
|-
 
| [[SceSblPcffBin]] || 0x2808000000000101 || vs0:app/NPXS10028_pcff.skprx
 
| [[SceSblPcffBin]] || 0x2808000000000101 || vs0:app/NPXS10028_pcff.skprx
Line 1,213: Line 1,310:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Name !! SELF AuthId !! Path
+
! Name !! program-authority-id !! Path
 
|-
 
|-
 
| [[SceSafeMode]] || 0x2800000000000015 || os0:ue/safemode.self
 
| [[SceSafeMode]] || 0x2800000000000015 || os0:ue/safemode.self
Line 1,724: Line 1,821:
 
|-
 
|-
 
| [[ScePsp2Swu]] || 0x2800800000000002 || ud0:PSP2UPDATE/psp2swu.self
 
| [[ScePsp2Swu]] || 0x2800800000000002 || ud0:PSP2UPDATE/psp2swu.self
|-
 
| [[SceLibDeflt]] || 0x2F00000000000001 || n/a
 
 
|}
 
|}
  

Latest revision as of 21:09, 17 September 2022

A PSP/PS3/PS Vita ELF is called a module.

A module is distinctive by its fingerprint (a sort of hash) and in most cases its name, but the same module name can be used in both the non-secure kernel and the secure kernel, for instance SceSysmem.

On PS Vita, most modules are loaded by the SceKernelModulemgr module, itself loaded by the NSKBL.

SceModuleInfo

It contains information on the module, and on its imports/exports.

Location

  • For non-stripped modules, SceModuleInfo structure is located in ".sceModuleInfo.rodata" memory block.
  • For ET_SCE_EXEC modules, when e_entry is not null, SceModuleInfo structure is located in text segment at offset e_entry. Else it is located in text segment (first LOAD segment) at offset Elf32_Phdr[text_seg_id].p_paddr - Elf32_Phdr[text_seg_id].p_offset.
  • For ET_SCE_RELEXEC modules, SceModuleInfo structure is located in the segment indexed by the upper two bits of e_entry of the ELF header. The structure is stored at the base offset of the segment plus the offset defined by the bottom 30 bits of e_entry.

Structure

Some fields are optional and can be set to zero. The other fields determine how this module is loaded and linked. All offset fields are formatted as follows: top 2 bits is an index to the segment to start at and bottom 30 bits is an offset from the segment start. Currently, the segment start index must match the segment that the module information structure is in.

Name Description
modattribute Attributes of the module. See #Module attribute
modversion Major version of the module (usually set to 1) followed by Minor version of the module (usually set to 1).
modname Name of the module. Null-terminated string.
infover SceModuleInfo version. Old name was "terminal" on PSP. Seen values are: 0 on PSP and PS3, 1 never seen, 2 on PS Vita FW 0.902, 3 on PS Vita FW 0.931, 6 on PS Vita FWs 0.940-3.73.
gp_value global pointer value for MIPS, TOC address (address of .toc) for PowerPC, always 0 for ARM.
ent_top Offset to top of exports array
ent_btm Offset to bottom of exports array
stub_top Offset to top of imports array
stub_btm Offset to bottom of imports array
dbg_fingerprint It was wrongly named module NID. It is a sort of hash to ensure integrity and versioning.
tls_start Offset to start of TLS (Thread Local Storage).
tls_filesz Certainly equals (tls_end - tls_start).
tls_memsz Certainly equals (tls_initialized_data_end - tls_start).
start_entry Offset to module_start function. -1 to disable.
stop_entry Offset to module_stop function. -1 to disable.
arm_exidx_top Offset to top of ARM EXIDX (optional)
arm_exidx_btm Offset to bottom of ARM EXIDX (optional)
arm_extab_top Offset to top of ARM EXTAB (optional)
arm_extab_btm Offset to bottom of ARM EXTAB (optional)
#define MODULE_NAME_MAX_LEN 27

typedef struct SceModuleInfo_common { // size is 0x20
  unsigned short modattribute;
  unsigned char modversion[2];
  char modname[MODULE_NAME_MAX_LEN];
  unsigned char infover;
} SceModuleInfo_common;

typedef struct SceModuleInfo_v0 { // size is 0x34
  SceModuleInfo_common c;
  Elf32_Addr gp_value;
  Elf32_Addr ent_top;
  Elf32_Addr ent_btm;
  Elf32_Addr stub_top;
  Elf32_Addr stub_btm;
} SceModuleInfo_v0;

typedef struct SceModuleInfo_v1 { // size is 0x40
  SceModuleInfo_common c;
  Elf32_Addr gp_value;
  Elf32_Addr ent_top;
  Elf32_Addr ent_btm;
  Elf32_Addr stub_top;
  Elf32_Addr stub_btm;
  Elf32_Word dbg_fingerprint;
  Elf32_Addr start_entry;
  Elf32_Addr stop_entry;
} SceModuleInfo_v1;

typedef struct SceModuleInfo_v2 { // size is 0x48
  SceModuleInfo_common c;
  Elf32_Addr gp_value;
  Elf32_Addr ent_top;
  Elf32_Addr ent_btm;
  Elf32_Addr stub_top;
  Elf32_Addr stub_btm;
  Elf32_Word dbg_fingerprint;
  Elf32_Addr start_entry;
  Elf32_Addr stop_entry;
  Elf32_Addr arm_exidx_top;
  Elf32_Addr arm_exidx_btm;
} SceModuleInfo_v2;

typedef struct SceModuleInfo_v3 { // size is 0x54
  SceModuleInfo_common c;
  Elf32_Addr gp_value;
  Elf32_Addr ent_top;
  Elf32_Addr ent_btm;
  Elf32_Addr stub_top;
  Elf32_Addr stub_btm;
  Elf32_Word dbg_fingerprint;
  Elf32_Addr start_entry;
  Elf32_Addr stop_entry;
  Elf32_Addr arm_exidx_top;
  Elf32_Addr arm_exidx_btm;
  Elf32_Addr tls_start;
  Elf32_Addr tls_filesz;
  Elf32_Addr tls_memsz;
} SceModuleInfo_v3;

typedef struct SceModuleInfo_v6 { // size is 0x5C
  SceModuleInfo_common c;
  Elf32_Addr gp_value;
  Elf32_Addr ent_top;
  Elf32_Addr ent_btm;
  Elf32_Addr stub_top;
  Elf32_Addr stub_btm;
  Elf32_Word dbg_fingerprint;
  Elf32_Addr tls_start;
  Elf32_Addr tls_filesz;
  Elf32_Addr tls_memsz;
  Elf32_Addr start_entry;
  Elf32_Addr stop_entry;
  Elf32_Addr arm_exidx_top;
  Elf32_Addr arm_exidx_btm;
  Elf32_Addr arm_extab_top;
  Elf32_Addr arm_extab_btm;
} SceModuleInfo_v6;

Module attribute

The attributes of a module (PSP, PS Vita, ?PS3 to check?). Bitwise OR'ed values from ::SceModuleAttribute and ::SceModulePrivilegeLevel. Since PS Vita SDK 0.940, SceModulePrivilegeLevel are not set anymore and unused in PS Vita OS.

  • Most usermode modules and a few kernel modules have it set to 0.
  • Most kernel modules have it set to 7.
  • Attribute 0x800 was seen in FW 0.902 cui_update_starter_module.self and FW 0.995 debug comicreader.elf. That attribute was set because these ELFs were compiled with an old PS Vita SDK (<= 0.930) that inherited privilege level attributes from the PSP SDK.
Value Name Comments
0x4 SCE_MODULE_ATTR_EXCLUSIVE_START Only one instance of the module can be started. If you want to start another version of that module, you have to stop the currently running version first.
0x2 SCE_MODULE_ATTR_EXCLUSIVE_LOAD Only one instance of the module can be loaded. If you want to load another version of that module, you have to unload the currently loaded version first.
0x1 SCE_MODULE_ATTR_CANT_STOP Resident module - stays in memory. You cannot unload such a module.
0x0 SCE_MODULE_ATTR_NONE No module attributes.
/** 
 * Module type attributes. 
 */
enum SceModuleAttribute {
    SCE_MODULE_ATTR_NONE             = 0x0000,
    SCE_MODULE_ATTR_CANT_STOP        = 0x0001,
    SCE_MODULE_ATTR_EXCLUSIVE_LOAD   = 0x0002,
    SCE_MODULE_ATTR_EXCLUSIVE_START  = 0x0004,
};

/** 
 * Module Privilege Levels - These levels define the permissions a 
 * module can have.
 */
enum SceModulePrivilegeLevel {
    /** Lowest permission. */
    SCE_MODULE_USER                 = 0x0000,
    /** MS modeul. POPS/Demo. */
    SCE_MODULE_MS                   = 0x0200,
    /** USB WLAN module. Gamesharing */
    SCE_MODULE_USBWLAN              = 0x0400,
    /** Application module. */
    SCE_MODULE_APP                  = 0x0600,
    /** VSH module. */
    SCE_MODULE_VSH                  = 0x0800,
    /** Kernel module. Highest permission. */
    SCE_MODULE_KERNEL               = 0x1000,
    /** The module uses KIRK's memlmd resident library. */
    SCE_MODULE_KIRK_MEMLMD_LIB      = 0x2000,
    /** The module uses KIRK's semaphore resident library. */
    SCE_MODULE_KIRK_SEMAPHORE_LIB   = 0x4000
};

Modules imports-exports

Each module contains zero or more library exports and zero or more library imports. An exported library groups together related functions along with their NID and exports it for SceKernelModulemgr to link with a library import in another module.

Exports

An array of export entries defines all the libraries exported by the module.

NID

If there is a change in the ForKernel library between FWs, the ForKernel NID will change.

However, the NID of a ForKernel library that is intentionally assigned an arbitrary NID, such as SceSysrootForKernel, does not change.

Therefore, when the lower level ForKernel NID is changed, the ForKernel library NID existing in the module A that imports it is changed in a chain reaction. In addition, the NID of ForKernel Library A has changed, so more chain reaction will occur.

Structure

Kernel modules that export syscalls (user accessible libraries) also get entries added to the syscall table. The syscall table is randomized on each boot so the same function will likely get a different syscall number assigned each time.

Name Description
size Size of the structure in bytes (usually 0x1C or 0x20)
auxattribute Unknown. Was added recently.
version Library version (usually 1)
attribute Library attribute flags
nfunc Number of exported functions
nvar Number of exported variables
ntls Number of exported TLS variables
hashinfo hash info (funcinfo + varinfo<<4). See Modules#Hash_Info.
hashinfotls tls hash info. See Modules#Hash_Info.
reserved Reserved.
nidaltsets Unknown. usually 0
libname_nid Library NID
libname Pointer to library name. Set to 0 for NONAME.
nid_table Pointer to array of NIDs of exports
entry_table Pointer to array of pointers of exports
typedef struct _scelibent_psp { // size is 0x10 or 0x14
	Elf32_Addr libname; /* <libname> (0 if NONAME) */
	unsigned short version; /* <version> */
	unsigned short attribute; /* <attribute> */
	unsigned char size; /* struct size in dwords */
	unsigned char nvar; /* number of variables */
	unsigned short nfunc; /* number of functions */
	Elf32_Addr entry_table; /* <entry_table> addr (in .rodata.sceResident) */
	union {
		unsigned int unk_0x10; /* Not always present. Might be alias_table. ex: 0x20000 */
	};
} SceLibEntryTable_psp;

typedef struct _scelibent_common { // size is 0x10
	unsigned char size;
	unsigned char auxattribute;
	unsigned short version;
	unsigned short attribute;
	unsigned short nfunc;
	unsigned short nvar;
	unsigned short ntls;
	unsigned char hashinfo;
	unsigned char hashinfotls;
	unsigned char reserved;
	unsigned char nidaltsets;
} SceLibEntryTable_common;

typedef struct _scelibent_1C { // size is 0x1C
	SceLibEntryTable_common c;
	Elf32_Addr libname;
	Elf32_Addr nid_table;
	Elf32_Addr entry_table;
} SceLibEntryTable_1C;

typedef struct _scelibent_20 { // size is 0x20
	SceLibEntryTable_common c;
	Elf32_Word libname_nid;
	Elf32_Addr libname;
	Elf32_Addr nid_table;
	Elf32_Addr entry_table;
} SceLibEntryTable_20;

Hash Info

Hash info is a number which depends of the number of exports. It can have values: 0, 2, 4 or 6.

It is related to NID Hash Table, which is still a mystery.

#define HASHINFO_LIMIT 0x10
int getHashInfo(uint16_t num) {
	if ((HASHINFO_LIMIT == 0) || (num < HASHINFO_LIMIT))
		return 0;
	else if (num < 0x40)
		return 2;
	else if (num < 0x100)
		return 4;
	else
		return 6;
}

int getHashInfo(SceLibEntryTable_common *table) {
	return getHashInfo(table->nfunc) + getHashInfo(table->nvar) << 4;
}

int getHashInfoTls(SceLibEntryTable_common *table) {
	return getHashInfo(table->ntls);
}

NONAME exports

Old name was "syslib", short name for "system library".

There is a special export entry that always shows up (even when the module exports no libraries) with attribute 0x8000 and NID 0x00000000 that exports the module_start, module_stop, module_exit functions for example.

The NIDs for these exports are common for all modules. See here for NID generation algorithm.

For PS Vita:

Name Type NID Definition
module_start Function 0x935CD196 int module_start(SceSize arglen, const void *argp);
module_stop Function 0x79F8E492 int module_stop(SceSize arglen, const void *argp);
module_exit Function 0x913482A9 int module_exit(SceSize arglen, const void *argp);
module_bootstart Function 0x5C424D40 int module_bootstart(SceSize arglen, const void *argp);
module_suspend Function 0xDD42FA37 int module_suspend(void); Supported in FW 0.990.030, unsupported as of firmware 3.65. Present in FW 0.990.030 SceKernelModulemgr.
module_proc_create Function 0xE640E30C SceInt32 module_proc_create(ScePID pid, void* pParam, void* pCommon); Supported in FW 0.931-0.990.030, unsupported as of firmware 3.65. Seemingly never used.
module_proc_exit Function 0x4F0EE5BD SceInt32 module_proc_exit(ScePID pid, void* pParam, void* pCommon); Supported in FW 0.931-0.990.030, unsupported as of firmware 3.65. Seemingly never used.
module_proc_kill Function 0xDF0212B9 SceInt32 module_proc_kill(ScePID pid, void* pParam, void* pCommon); Supported in FW 0.931-0.990.030, unsupported as of firmware 3.65. Seemingly never used.
module_info Variable 0x6C2224BA SceModuleInfo structure
module_proc_param Variable 0x70FBA1E7 SceProcessParam structure
module_sdk_version Variable 0x936C8A78 SceUInt32 variable - Used in FW 2.10.
module_dtrace_probes_info Variable 0x9318D9DD sdt_probes_info_t structure. Present in SceKernelThreadMgr, SceProcessmgr, SceDisplay. Reserved for kernel modules. Used by SceDeci4pDtracep.
module_dtrace_probes Variable 0x8CE938B1 An array of sdt_probes_info_t.count pointers to sdt_probedesc_t. Present in SceKernelThreadMgr, SceProcessmgr, SceDisplay. Reserved for kernel modules. Used by SceDeci4pDtracep.
sce_module_start_thread_parameter Variable 0x1A9822A4 Pointer to SceModuleThreadParameter. Defines the parameters used to create the thread that runs the module_start function. Reserved for usermode modules.
sce_module_stop_thread_parameter Variable 0xD20886EB Pointer to SceModuleThreadParameter. Defines the parameters used to create the thread that runs the module_stop function. Reserved for usermode modules.

For PSP:

Name Type NID Definition
module_start Function 0xD632ACDB int module_start(int arglen, const void *argp);
module_stop Function 0xCEE8593C int module_stop(int arglen, const void *argp);
module_bootstart Function 0xD3744BE0 int module_bootstart(int arglen, const void *argp);
module_reboot_before Function 0x2F064FA6 int module_reboot_before(void);
module_reboot_phase Function 0xADF12745 int module_reboot_phase(void)
module_info Variable 0xF01D73A7 SceModuleInfo
module_start_thread_parameter Variable 0x0F7C276C SceModuleThreadParameter
module_stop_thread_parameter Variable 0xCF0CC697 SceModuleThreadParameter
module_reboot_before_thread_parameter Variable 0xF4F4299D SceModuleThreadParameter
module_sdk_version Variable 0x11B97506 int
module_linked Variable 0x900DADE1
module_unlinked Variable 0x592743D8
# Temporary name was: SceModuleEntryThread
typedef struct SceModuleThreadParameter { // Size is 0x10 bytes on PSP, 0x14 on Vita
    /* The number of thread parameters. Must be 4 on Vita. */
    SceUInt32 numParams;
    /* The initial priority of the entry thread. Default value is SCE_KERNEL_DEFAULT_PRIORITY. */
    SceUInt32 initPriority;
    /* The stack size of the entry thread. Default value is SCE_KERNEL_THREAD_STACK_SIZE_DEFAULT_USER_MAIN (256KiB). */
    SceSize stackSize;
    /* The attributes of the entry thread. Always ignored on Vita. */
    SceUInt32 attr;
    /* The CPU affinity mask of the entry thread. Only present on Vita. Default value is SCE_KERNEL_THREAD_CPU_AFFINITY_MASK_DEFAULT. */
    SceInt32 cpuAffinityMask;
} SceModuleThreadParameter;

// Temporary names were: SceModuleStaticProbesInfo, SceModuleDTraceProbesInfo 
typedef struct sdt_probes_info { // size is 0x8 bytes on FWs 0.931-3.73
    unsigned int version; // Always 1
    unsigned int count; // Number of probes. ex: 1, 5, 7, 16
} sdt_probes_info_t;

typedef union {
	void (*handler0)(const struct sdt_probedesc *desc);
	void (*handler1)(const struct sdt_probedesc *desc, uintptr_t arg0);
	void (*handler2)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1);
	void (*handler3)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2);
	void (*handler4)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3);
	void (*handler5)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4);
	void (*handler6)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5);
	void (*handler7)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5, uintptr_t arg6);
	void (*handler8)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5, uintptr_t arg6, uintptr_t arg7);
	void (*handler9)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5, uintptr_t arg6, uintptr_t arg7, uintptr_t arg8);
	void (*handler10)(const struct sdt_probedesc *desc, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5, uintptr_t arg6, uintptr_t arg7, uintptr_t arg8, uintptr_t arg9);
} sdpd_handler_t;

// Temporary names were: SceModuleStaticProbe, SceModuleDTraceProbe
typedef struct sdt_probedesc { // size is 0x28 on FWs 0.931-3.73
	unsigned int *sdpd_id; // probe ID
	const char *sdpd_provider; // name of provider
	const char *sdpd_name; // name of probe
	void *sdpd_offset; // instrumentation point (address)
	sdpd_handler_t *sdpd_handler_fn; // probe handler_fn function (NULL if disabled)
	void *sdpd_private; // probe private data
	void (*sdpd_create_fn)(const struct sdt_probedesc *desc); // probe create helper function (NULL if unused)
	void (*sdpd_enable_fn)(const struct sdt_probedesc *desc); // probe enable helper function (NULL if unused)
	void (*sdpd_disable_fn)(const struct sdt_probedesc *desc); // probe disable helper function (NULL f unused)
	void (*sdpd_destroy_fn)(const struct sdt_probedesc *desc); // probe destroy helper function (NULL if unused)
} sdt_probedesc_t;

typedef struct SceProcessParam { // size is 0x20 on FW 0.895, 0x2C on FW 0.931, 0x30 on FW 0.945, 0x34 on FW 3.60
	SceSize size; // Size of this structure
	SceUInt32 magic; // "PSP2"
	SceUInt32 version; // Version of this structure. Implies number of extended entries. ex: 1 on FW 0.895, 4 on FW 0.931, 5 on FW 0.945, 6 on FW 3.60
	SceUInt32 sdk_version; // ex: 0x00895000 on FW 0.895, 0x00931010 on FW 0.931
	union {
		struct {
			char *sceUserMainThreadName; // ex: "main_thread"
			SceInt32 sceUserMainThreadPriority; // ex: 0x20, 0xA0, 0x10000100
			SceUInt32 sceUserMainThreadStackSize; // ex: 256 * 1024, 1024 * 1024
			SceUInt32 sceUserMainThreadAttribute;
			char *sceProcessName;
			SceUInt32 sce_process_preload_disabled;
			SceUInt32 sceUserMainThreadCpuAffinityMask;
			SceLibcParam *sce_libcparam;
			SceUInt32 unk_0x30;
		}
	};
} SceProcessParam;

typedef struct SceLibcParam { // size is 0x1C on FW 0.930, 0x30 on FWs 1.80-1.81, 0x38 on FWs 2.00-3.73
	SceSize size; // Size of this structure
	SceLibEntryTable_1C *_SceLibcParam_0001_ent_head; // Pointer to SceLibcParam library information
	SceSize *sceLibcHeapSize; // Pointer to heap size
	SceSize *__sceLibcHeapSizeDefault; // Pointer to heap size
	SceUInt32 *sceLibcHeapExtendedAlloc; // Pointer to flag to dynamically extend heap size
	SceUInt32 *sceLibcHeapDelayedAlloc; // Pointer to flag to allocate heap on first call to malloc
	SceUInt32 sdk_version; // SDK version
	SceUInt32 unk_1C; // ex: 9
	void *__sce_libc_alloc_replace; // Pointer to replacement functions for Libc memory allocation functions
	void *__sce_libcxx_alloc_replace; // Pointer to replacement functions for Libcxx (C++) memory allocation functions
	SceSize *heap_initial_size; // Pointer to dynamically allocated heap initial size
	SceUInt32 *heap_unit_1mb; // Pointer to flag to change alloc unit size from 64kB to 1MB
	union {
		struct {
			SceUInt32 *heap_detect_overrun; // Pointer to flag to detect heap buffer overruns
			void *__sce_libc_tls_alloc_replace; // Pointer to replacement functions for TLS memory allocation functions
		}
	};
} SceLibcParam;

Imports

Each module can import any number of libraries from other modules by specifying the library NID to import along with a list of functions/variables NIDs to import. SceKernelModulemgr does the dynamic linking by either jumping to an address if the two modules are in the same privilege level, or making a syscall if it is usermode module importing a library exported by a kernel module. Kernel modules cannot import user libraries.

Name Description
size Size of the structure (usually 0x24, 0x2C or 0x34)
version Library version (ex: 1, 5)
attribute Library attribute flags
nfunc Number of imported functions
nvar Number of imported variables
ntls Number of imported TLS variables
reserved unk
libname_nid Library NID
libname Pointer to library name
sce_sdk_version usually 0
func_nid_table Pointer to array of imported functions NIDs
func_entry_table Pointer to array of imported functions stubs offsets
var_nid_table Pointer to array of imported variables NIDs
var_entry_table Pointer to array of imported variables offsets
tls_nid_table Pointer to array of imported TLS variables NIDs
tls_entry_table Pointer to array of imported TLS variables offsets
typedef struct _scelibstub_psp { // size is 0x14 or 0x18
	Elf32_Addr libname; /* library name */
	unsigned short version; /* version */
	unsigned short attribute; /* attribute */
	unsigned char size; /* struct size */
	unsigned char nvar; /* number of variables */
	unsigned short nfunc; /* number of function stubs */
	Elf32_Addr nid_table; /* functions/variables NID table */
	Elf32_Addr stub_table; /* functions stub table */
	union {
		Elf32_Addr var_table; /* variables table */
	};
} SceLibStubTable_psp;

typedef struct _scelibstub_common { // size is 0xC
	unsigned short size;
	unsigned short version;
	unsigned short attribute;
	unsigned short nfunc;
	unsigned short nvar;
	unsigned short ntls;
} SceLibStubTable_common;

typedef struct _scelibstub_24 { // size is 0x24
	SceLibStubTable_common c;
	Elf32_Word libname_nid;
	Elf32_Addr libname;
	Elf32_Addr func_nid_table;
	Elf32_Addr func_entry_table;
	Elf32_Addr var_nid_table;
	Elf32_Addr var_entry_table;
} SceLibStubTable_24;

typedef struct _scelibstub_2C { // size is 0x2C
	SceLibStubTable_common c;
	unsigned char reserved[4];
	Elf32_Addr libname;
	Elf32_Addr func_nid_table;
	Elf32_Addr func_entry_table;
	Elf32_Addr var_nid_table;
	Elf32_Addr var_entry_table;
	Elf32_Addr tls_nid_table;
	Elf32_Addr tls_entry_table;
} SceLibStubTable_2C;

typedef struct _scelibstub_34 { // size is 0x34
	SceLibStubTable_common c;
	unsigned char reserved[4];
	Elf32_Word libname_nid;
	Elf32_Addr libname;
	Elf32_Word sce_sdk_version;
	Elf32_Addr func_nid_table;
	Elf32_Addr func_entry_table;
	Elf32_Addr var_nid_table;
	Elf32_Addr var_entry_table;
	Elf32_Addr tls_nid_table;
	Elf32_Addr tls_entry_table;
} SceLibStubTable_34;

Variable imports

Importing variables is a special case of imports. Function import points to the function table, whilst variable import points to the ELF relocation config in text segment.

typedef struct SceRelInfoType1Import {
	SceSize size; // this object size << 4
	SceRelInfoType1Variables info[];
} SceRelInfoType1Import;

Library attribute flags

Flags are ORed together and identified as follows:

Bit Comments
0x8000 Main Export: Set for main NONAME export.
0x4000 User Importable: In kernel modules only. Allow syscall export to usermode.
0x2000 On PS3, it seems to indicate a non-PRX library (like "stdc" or "allocator") that comes from somewhere else (LV2?).
0x8 WEAK_IMPORT
0x4 NOLINK_EXPORT
0x2 WEAK_EXPORT. ?kernel non-driver export?
0x1 AUTO_EXPORT. Importable: Should be set unless it is the main export. ?regular export?

Relocations

See [1] for more information on how PS Vita relocations work.

Relocations are stored within the PT_SCE_RELA segment.

There are 10 relocation entry formats. It is determined by r_format (the first 4 bits of the relocation entry).

Warning! In PS Vita FWs <= 3.00, only relocation entry format 0 is available. Using any other relocation entry format gives error 0x8002D019.

// assuming LSB of bitfield is listed first
union {
	Elf32Word r_format: 4;

	struct {
		Elf32Word r_format : 4;
		Elf32Word r_symbol_segment : 4;
		Elf32Word r_type : 8;
		Elf32Word r_patch_segment : 4;
		Elf32Word r_type2 : 8;
		Elf32Word r_dist2 : 4;

		Elf32Word r_addend;

		Elf32Word r_offset;
	} r_entry_0;

	struct {
		Elf32Word r_format : 4;
		Elf32Word r_symbol_segment : 4;
		Elf32Word r_type : 8;
		Elf32Word r_patch_segment : 4;
		Elf32Word r_offset_lo : 12;

		Elf32Word r_offset_hi : 10;
		Elf32Word r_addend : 22;
	} r_entry_1;

	// Used by var import relocations
	struct {
		Elf32Word r_format : 4;
		Elf32Word r_symbol_segment : 4;
		Elf32Word r_type : 8;
		Elf32Word r_patch_segment : 2;
		Elf32Word r_unk : 2;
		Elf32Word r_pad : 4;

		Elf32Word r_offset;
	} r_entry_1_alt;

	struct {
		Elf32Word r_format : 4;
		Elf32Word r_symbol_segment : 4;
		Elf32Word r_type : 8;
		Elf32Word r_offset : 16;

		Elf32Word r_addend;
	} r_entry_2;

	struct {
		Elf32Word r_format : 4;
		Elf32Word r_symbol_segment : 4;
		Elf32Word r_ins_mode : 1; // ARM = 0, THUMB = 1
		Elf32Word r_offset : 18;
		Elf32Word r_dist2 : 5;

		Elf32Word r_addend : 22;
	} r_entry_3;

	struct {
		Elf32Word r_format : 4;
		Elf32Word r_offset : 23;
		Elf32Word r_dist2 : 5;
	} r_entry_4;

	struct {
		Elf32Word r_format : 4;
		Elf32Word r_dist1 : 9;
		Elf32Word r_dist2 : 5;
		Elf32Word r_dist3 : 9;
		Elf32Word r_dist4 : 5;
	} r_entry_5;

	struct {
		Elf32Word r_format : 4;
		Elf32Word r_offset : 28;
	} r_entry_6;

	struct {
		Elf32Word r_format : 4;
		// r_format 7 has 4 offsets, 7 bits each
		// r_format 8 has 7 offsets, 4 bits each
		// r_format 9 has 14 offsets, 2 bits each
		Elf32Word offsets : 28;
	} r_entry_7_8_9;
} SceRel;

Format 0

Start End Description
0 3 Entry format. Set to 0.
4 7 Symbol segment index
8 15 Relocation type
16 19 Patch segment index
20 26 Second relocation type
27 31 Distance from offset (used for second relocation)
32 63 Addend
64 95 Offset

Format 1

Start End Description
0 3 Entry format. Set to 1.
4 7 Symbol segment index
8 15 Relocation type
16 19 Patch segment index
20 41 Offset
42 63 Addend

Format 2

Start End Description
0 3 Entry format. Set to 2.
4 7 Symbol segment index
8 15 Relocation type
16 31 Offset
32 64 Addend

Format 3

Start End Description
0 3 Entry format. Set to 3
4 7 Symbol segment index
8 8 Mode (ARM = 0, THUMB = 1)
9 26 Offset
27 31 Distance from offset
32 64 Addend

Format 4

Start End Description
0 3 Entry format. Set to 4.
4 26 Offset
27 31 Distance from offset

Format 5

Start End Description
0 3 Entry format. Set to 5.
4 12 Distance 1
13 17 Distance 2
18 26 Distance 3
27 31 Distance 4

Format 6

Start End Description
0 3 Entry format. Set to 6.
4 31 Offset

Format 7

Start End Description
0 3 Entry format. Set to 7.
4 10 Offset 1
11 17 Offset 2
18 24 Offset 3
25 31 Offset 4

Format 8

Start End Description
0 3 Entry format. Set to 8.
4 7 Offset 1
8 11 Offset 2
12 15 Offset 3
16 19 Offset 4
20 23 Offset 5
24 27 Offset 6
28 31 Offset 7

Format 9

Start End Description
0 3 Entry format. Set to 9.
4 5 Offset 1
6 7 Offset 2
8 9 Offset 3
10 11 Offset 4
12 13 Offset 5
14 15 Offset 6
16 17 Offset 7
18 19 Offset 8
20 21 Offset 9
22 23 Offset 10
24 25 Offset 11
26 27 Offset 12
28 29 Offset 13
30 31 Offset 14

Supported Relocation Codes (as of FW 3.60)

Code Name Description
0 R_ARM_NONE No relocation
2 R_ARM_ABS32 Direct 32-bits address
3 R_ARM_REL32 N/A
10 R_ARM_THM_CALL bl/blx on Thumb mode
28 R_ARM_CALL bl/blx on ARM mode
29 R_ARM_JUMP24 N/A
38 R_ARM_TARGET1 same as R_ARM_ABS32
40 R_ARM_V4BX same as R_ARM_NONE
41 R_ARM_TARGET2 same as R_ARM_REL32
42 R_ARM_PREL31 N/A
43 R_ARM_MOVW_ABS_NC movw on ARM mode
44 R_ARM_MOVT_ABS movt on ARM mode
47 R_ARM_THM_MOVW_ABS_NC movw on Thumb mode
48 R_ARM_THM_MOVT_ABS movt on Thumb mode
255 R_ARM_RBASE Ignored

System Software Version independant usermode system modules

These system usermode modules can be decrypted on any firmware version and are identified by kprx_auth_sm.self by their program-authority-id.

Name program-authority-id Path
unknown 0x2800800000000001 unknown
ScePsp2Swu 0x2800800000000002 ud0:PSP2UPDATE/psp2swu.self, in PUP files
SceCuiSetUpper 0x2800800000000003 ud0:PSP2UPDATE/cui_setupper.self, in PUP files
unknown 0x2800800000000013 unknown
unknown 0x2800800000000016 unknown
unknown 0x2800000000000032 unknown
SceGameRightPlugin 0x2800000000000030 /sce_sys/about/right.suprx, in PKG files

List of Modules

Below is a list of all known Modules in the system along with the lowest version number it was seen on.

3.60 Retail Modules

Module name obtained in decrypted SELF at offset (elf_hdr.entrypoint+4) and program-authority-id in SELF header at offset 0x80.

3.60 Bootloader modules

Name program-authority-id Path
kernel_boot_loader 0x2E00000000000001 slb0:kernel_boot_loader.self

3.60 Security modules

Name program-authority-id Path
kprx_auth_sm 0x2E00000000000002 slb0:kprx_auth_sm.self
update_service_sm 0x2E00000000000004 os0:sm/update_service_sm.self
qaf_sm 0x2E00000000000005 os0:sm/qaf_sm.self
pm_sm 0x2E00000000000006 os0:sm/pm_sm.self
aimgr_sm 0x2E00000000000007 os0:sm/aimgr_sm.self
compat_sm 0x2E00000000000008 os0:sm/compat_sm.self
applier_sm (only present in very old prototype FWs) 0x2E00000000000009 os0:sm/applier_sm.self
act_sm 0x2E0000000000000A os0:sm/act_sm.self
mgkm_sm 0x2E0000000000000B os0:sm/mgkm_sm.self
encdec_w_portability_sm 0x2E0000000000000C os0:sm/encdec_w_portability_sm.self
gcauthmgr_sm 0x2E0000000000000D os0:sm/gcauthmgr_sm.self
rmauth_sm 0x2E0000000000000E os0:sm/rmauth_sm.self
utoken_sm 0x2E0000000000000F os0:sm/utoken_sm.self
spkg_verifier_sm_w_key 0x2E00000000000010 os0:sm/spkg_verifier_sm_w_key.self

3.60 Kernel modules

Name program-authority-id Path
ScePsp2BootConfig 0x280800000002005B os0:psp2bootconfig.skprx
SceKernelPsp2Config 0x2808000000020059 os0:psp2config_dolce.skprx
SceKernelPsp2Config 0x2808000000020059 os0:psp2config_vita.skprx
SceSblACMgr 0x2808000000020002 os0:kd/acmgr.skprx
SceSblAuthMgr 0x2808000000020007 os0:kd/authmgr.skprx
SceKernelBootimage 0x2808000000020060 os0:kd/bootimage.skprx
SceKernelBusError 0x280800000002000D os0:kd/buserror.skprx
SceCrashDump 0x2808000000020064 os0:kd/crashdump.skprx
SceDisplay 0x2808000000020014 os0:kd/display.skprx
SceKernelDmacMgr 0x2808000000020015 os0:kd/dmacmgr.skprx
SceEnumWakeUp 0x280800000002005C os0:kd/enum_wakeup.skprx
SceExcpmgr 0x2808000000020017 os0:kd/excpmgr.skprx
SceExfatfs 0x2808000000020018 os0:kd/exfatfs.skprx
SceSblGcAuthMgr 0x280800000002005E os0:kd/gcauthmgr.skprx
SceGpuEs4CoreDump 0x280800000002001F os0:kd/gpucoredump_es4.skprx
SceHdmi 0x2808000000020022 os0:kd/hdmi.skprx
SceKernelIntrMgr 0x2808000000020025 os0:kd/intrmgr.skprx
SceIofilemgr 0x2808000000020026 os0:kd/iofilemgr.skprx
SceKrm 0x280800000002006E os0:kd/krm.skprx
SceLcd 0x2808000000020066 os0:kd/lcd.skprx
SceLowio 0x2808000000020028 os0:kd/lowio.skprx
SceMagicGate 0x2808000000000201 os0:kd/magicgate.skprx
SceMarlinHci 0x280800000002005F os0:kd/marlin_hci.skprx
SceSblMgKeyMgr 0x2808000000000201 os0:kd/mgkeymgr.skprx
SceMgVideo 0x2808000000000202 os0:kd/mgvideo.skprx
SceKernelModulemgr 0x280800000002002A os0:kd/modulemgr.skprx
SceMsif 0x280800000002002C os0:kd/msif.skprx
SceNetPs(dev) 0x280800000002002E os0:kd/net_ps_dev.skprx
SceOled 0x2808000000020031 os0:kd/oled.skprx
SceSblPcbcBin 0x2808000000000100 os0:kd/pcbc.skprx
SceProcessmgr 0x2808000000020036 os0:kd/processmgr.skprx
SceRtc 0x2808000000020039 os0:kd/rtc.skprx
SceSdif 0x280800000002003B os0:kd/sdif.skprx
SceSdstor 0x280800000002003C os0:kd/sdstor.skprx
SceSblSmschedProxy 0x280800000002003E os0:kd/smsc_proxy.skprx
SceSblSsSmComm 0x280800000002003D os0:kd/sm_comm.skprx
SceSblSsMgr 0x280800000002003F os0:kd/ss_mgr.skprx
SceSyscon 0x2808000000020043 os0:kd/syscon.skprx
SceSysmem 0x2808000000020044 os0:kd/sysmem.skprx
SceSysStateMgr 0x2808000000020046 os0:kd/sysstatemgr.skprx
SceSystimer 0x2808000000020047 os0:kd/systimer.skprx
SceKernelThreadMgr 0x2808000000020048 os0:kd/threadmgr.skprx
SceUsbPspcm 0x2808000000020063 os0:kd/usbpspcm.skprx
SceUsbstorDriver 0x2808000000020061 os0:kd/usbstor.skprx
SceUsbstorMg 0x2808000000000203 os0:kd/usbstormg.skprx
SceUsbstorVStorDriver 0x2808000000020062 os0:kd/usbstorvstor.skprx
SceVipImage 0x2808000000020052 os0:kd/vipimg.skprx
SceVeneziaImage 0x2808000000020054 os0:kd/vnzimg.skprx
SceWlanBtRobinImageAx 0x2808000000020057 os0:kd/wlanbt_robin_img_ax.skprx
SceDeci4pCpup 0x280800000001000C os0:kd/deci4p_cpup.skprx
SceDeci4pCtrlp 0x2808000000010016 os0:kd/deci4p_ctrlp.skprx
SceDeci4pDbgp 0x2808000000010001 os0:kd/deci4p_dbgp.skprx
SceDeci4pDfMgr 0x2808000000010008 os0:kd/deci4p_dfmgr.skprx
SceDeci4pDrfp 0x2808000000010000 os0:kd/deci4p_drfp.skprx
SceDeci4pDtracep 0x2808000000010010 os0:kd/deci4p_dtracep.skprx
SceDeci4pLoadp 0x280800000001000A os0:kd/deci4p_loadp.skprx
SceDeci4pPamp 0x280800000001000B os0:kd/deci4p_pamp.skprx
SceDeci4pRDrfp 0x2808000000010014 os0:kd/deci4p_rdrfp.skprx
SceDeci4pSCTtyp 0x2808000000010097 os0:kd/deci4p_scttyp.skprx
SceDeci4pSDbgp 0x2808000000010081 os0:kd/deci4p_sdbgp.skprx
SceDeci4pSDeci2p 0x2808000000010083 os0:kd/deci4p_sdeci2p.skprx
SceDeci4pSDfCtl 0x2808000000010093 os0:kd/deci4p_sdfctl.skprx
SceDeci4pSDfMgr 0x2808000000010088 os0:kd/deci4p_sdfmgr.skprx
SceDeci4pSDrfp 0x2808000000010080 os0:kd/deci4p_sdrfp.skprx
SceDeci4pSTtyp 0x2808000000010089 os0:kd/deci4p_sttyp.skprx
SceDeci4pTmcp 0x2808000000010017 os0:kd/deci4p_tmcp.skprx
SceDeci4pTsmp 0x280800000001000F os0:kd/deci4p_tsmp.skprx
SceDeci4pTtyp 0x2808000000010009 os0:kd/deci4p_ttyp.skprx
SceDeci4pUserp 0x2808000000010011 os0:kd/deci4p_userp.skprx
SceDeci4pVcp 0x2808000000010012 os0:kd/deci4p_vcp.skprx
SceSblPcffBin 0x2808000000000101 vs0:app/NPXS10028_pcff.skprx
SceAppMgr None bootfs:appmgr.skprx
SceAudio None bootfs:audio.skprx
SceAudioin None bootfs:audioin.skprx
SceAVConfig None bootfs:av_config.skprx
SceAvcodec None bootfs:avcodec.skprx
SceBbmc None bootfs:bbmc.skprx
SceBt None bootfs:bt.skprx
SceCamera None bootfs:camera.skprx
SceCameraDummy None bootfs:camera_dummy.skprx
SceClockgen None bootfs:clockgen.skprx
SceCodec None bootfs:codec.skprx
SceCodec None bootfs:codec_cx.skprx
SceCompat None bootfs:compat.skprx
SceCoredump None bootfs:coredump.skprx
SceCtrl None bootfs:ctrl.skprx
SceDs3 None bootfs:ds3.skprx
SceError None bootfs:error.skprx
SceFios2Kernel None bootfs:fios2.skprx
SceGps None bootfs:gps.skprx
SceGpuEs4 None bootfs:gpu_es4.skprx
SceGpuEs4Init None bootfs:gpuinit_es4.skprx
SceHid None bootfs:hid.skprx
SceHpremote None bootfs:hpremote.skprx
SceIdStorage None bootfs:idstorage.skprx
SceKrm None bootfs:krm.skprx
SceMotionDev None bootfs:motion.skprx
SceMotionDevDummy None bootfs:motion_dummy.skprx
SceMtpIfDriver None bootfs:mtpif.skprx
SceNetPs None bootfs:net_ps.skprx
SceNgs None bootfs:ngs.skprx
SceNpDrm None bootfs:npdrm.skprx
ScePfsMgr None bootfs:pfsmgr.skprx
SceSblPostSsMgr None bootfs:post_ss_mgr.skprx
ScePower None bootfs:power.skprx
SceRegistryMgr None bootfs:regmgr.skprx
SceSysmodule None bootfs:sysmodule.skprx
SceTouch None bootfs:touch.skprx
SceTouchDummy None bootfs:touch_dummy.skprx
SceTty2uart None bootfs:tty2uart.skprx
SceUdcd None bootfs:udcd.skprx
SceUlobjMgr None bootfs:ulobjmgr.skprx
SceUsbMass None bootfs:umass.skprx
SceSblUpdateMgr None bootfs:update_mgr.skprx
SceUsbEtherRtl None bootfs:usb_ether_rtl.skprx
SceUsbEtherSmsc None bootfs:usb_ether_smsc.skprx
SceUsbAudio None bootfs:usbaudio.skprx
SceUsbd None bootfs:usbd.skprx
SceUsbMtp None bootfs:usbmtp.skprx
SceUsbPspcm None bootfs:usbpspcm.skprx
SceUsbSerial None bootfs:usbserial.skprx
SceUsbServ None bootfs:usbserv.skprx
SceUsbstorDriver None bootfs:usbstor.skprx
SceUsbstorVStorDriver None bootfs:usbstorvstor.skprx
SceCodecEngineWrapper None bootfs:vnz_wrapper.skprx
SceVshBridge None bootfs:vshbridge.skprx
SceWlanBt None bootfs:wlanbt.skprx

3.60 User modules and apps

Name program-authority-id Path
SceSafeMode 0x2800000000000015 os0:ue/safemode.self
SceAvcodecUser 0x2800000000028005 os0:us/avcodec_us.suprx
SceDriverUser 0x280000000002800A os0:us/driver_us.suprx
SceGpuEs4User 0x280000000002802A os0:us/libgpu_es4.suprx
SceGxm 0x2800000000028030 os0:us/libgxm_es4.suprx
SceLibKernel 0x2800000000028034 os0:us/libkernel.suprx
SceNear 0x2800000000000027 vs0:app/NPXS10000/eboot.bin
SceParty 0x2800000000000026 vs0:app/NPXS10001/eboot.bin
SceNpPartyAppUtil 0x280000000002001F vs0:app/NPXS10001/np_party_app.suprx
SceStoreBrowser 0x280000000000001C vs0:app/NPXS10002/eboot.bin
SceWebBrowser 0x2800000000000025 vs0:app/NPXS10003/eboot.bin
ScePhotoCam 0x2800000000000018 vs0:app/NPXS10004/eboot.bin
SceFriend 0x280000000000001A vs0:app/NPXS10006/eboot.bin
SceTrophy 0x280000000000001B vs0:app/NPXS10008/eboot.bin
SceMusicBrowser 0x2800000000000011 vs0:app/NPXS10009/eboot.bin
SceVideoPlayer 0x280000000000001E vs0:app/NPXS10010/eboot.bin
SceRemotePlay 0x2800000000000012 vs0:app/NPXS10012/eboot.bin
ScePS4Link 0x280000000000700A vs0:app/NPXS10013/eboot.bin
gaikai_player 0x2800000000020045 vs0:app/NPXS10013/gaikai-player.suprx
SceSecondScreen 0x2800000000020046 vs0:app/NPXS10013/libSceSecondScreen.suprx
ScePsnMail 0x2800000000000020 vs0:app/NPXS10014/eboot.bin
SceSettings 0x2800000000000010 vs0:app/NPXS10015/eboot.bin
SceSystemSettingsCore 0x2800000000020024 vs0:app/NPXS10015/system_settings_core.suprx
SceSignup 0x2800000000000019 vs0:app/NPXS10018/eboot.bin
SceTelRegMain 0x2800000000000029 vs0:app/NPXS10021/eboot.bin
SceTelReg 0x2800000000020026 vs0:app/NPXS10021/tel_reg.suprx
ScePhotoExport 0x2800000000000016 vs0:app/NPXS10023/eboot.bin
SceNearAutoLocation 0x280000000000002B vs0:app/NPXS10024/eboot.bin
SceNearAutoCheckin 0x280000000000002C vs0:app/NPXS10025/eboot.bin
SceContentManager 0x280000000000002D vs0:app/NPXS10026/eboot.bin
SceGameManual 0x2800000000000022 vs0:app/NPXS10027/eboot.bin
ScePspemu 0x2800000000000013 vs0:app/NPXS10028/eboot.bin
SceMarlinBgMtp 0x280000000000002A vs0:app/NPXS10029/eboot.bin
fake_package_installer 0x280000000000002E vs0:app/NPXS10031/eboot.bin
SceNearUtilService 0x280000000000002F vs0:app/NPXS10032/eboot.bin
SceAvMediaService 0x2800000000000031 vs0:app/NPXS10036/eboot.bin
SceMsgMiddleWare 0x2800000000000021 vs0:app/NPXS10063/eboot.bin
SceGriefReportDialogApp 0x2800000000000034 vs0:app/NPXS10065/eboot.bin
SceGriefReportDialog 0x2800000000020030 vs0:app/NPXS10065/grief_report_dialog.suprx
SceEmailApp 0x2800000000000035 vs0:app/NPXS10072/eboot.bin
SceEmailEngine 0x2800000000020035 vs0:app/NPXS10072/email_engine.suprx
SceEmailBg 0x2800000000000037 vs0:app/NPXS10073/eboot.bin
SceCrashReport 0x2800000000000036 vs0:app/NPXS10077/eboot.bin
SceComboPlay 0x2800000000000040 vs0:app/NPXS10078/eboot.bin
SceDailyCheckerBg 0x2800000000000039 vs0:app/NPXS10079/eboot.bin
swagner 0x2800000000000041 vs0:app/NPXS10080/eboot.bin
ScePsmManual 0x2800000000000038 vs0:app/NPXS10081/eboot.bin
SceWebKitProcess 0x2800000000008005 vs0:app/NPXS10083/eboot.bin
SceWebKitProcessMini 0x2800000000008005 vs0:app/NPXS10084/eboot.bin
SceVideoStreaming 0x2800000000000044 vs0:app/NPXS10085/eboot.bin
SceCalendar 0x2800000000000042 vs0:app/NPXS10091/eboot.bin
SceCalendarBg 0x2800000000000043 vs0:app/NPXS10092/eboot.bin
SceKidsApp 0x2800000000000046 vs0:app/NPXS10094/eboot.bin
ScePanorama 0x2800000000000045 vs0:app/NPXS10095/eboot.bin
SceStitcherCoreAdapter 0x2800000000020041 vs0:app/NPXS10095/stitch_core_prx.suprx
SceStitchAdapter 0x2800000000020042 vs0:app/NPXS10095/stitch_prx.suprx
ScePS4Link 0x280000000000700A vs0:app/NPXS10098/eboot.bin
gaikai_player 0x2800000000020045 vs0:app/NPXS10098/gaikai-player.suprx
SceHostCollaboService 0x2800000000000047 vs0:app/NPXS10100/eboot.bin
SceBgCopyResultBrowser 0x2800000000000048 vs0:app/NPXS10101/eboot.bin
SceWebFiltering 0x280000000002807F vs0:data/external/webcore/jx_web_filtering.suprx
ScePsp2Compat 0x2800000000028097 vs0:data/external/webcore/ScePsp2Compat.suprx
SceWebKit 0x2800000000028099 vs0:data/external/webcore/SceWebKitModule.suprx
SceLibVitaJSExtObj 0x280000000002807E vs0:data/external/webcore/vita_jsextobj.suprx
SceActivityDb 0x2800000000028001 vs0:sys/external/activity_db.suprx
SceNetAdhocMatching 0x2800000000028002 vs0:sys/external/adhoc_matching.suprx
SceAppUtil 0x2800000000028003 vs0:sys/external/apputil.suprx
SceAppUtilExt 0x28000000000280A5 vs0:sys/external/apputil_ext.suprx
SceAudiocodec 0x2800000000028004 vs0:sys/external/audiocodec.suprx
SceAvcdecForPlayer 0x28000000000280AC vs0:sys/external/avcdec_for_player.suprx
SceBgAppUtil 0x2800000000028086 vs0:sys/external/bgapputil.suprx
ScebXCe 0x2800000000028007 vs0:sys/external/bXCe.suprx
SceCommonGuiDialog 0x2800000000028008 vs0:sys/external/common_gui_dialog.suprx
SceDbrecoveryUtility 0x2800000000028080 vs0:sys/external/dbrecovery_utility.suprx
SceDbutil 0x2800000000028009 vs0:sys/external/dbutil.suprx
SceFriendSelect 0x28000000000280AE vs0:sys/external/friend_select.suprx
SceIncomingDialog 0x2800000000028087 vs0:sys/external/incoming_dialog.suprx
SceIniFileProcessor 0x280000000002800C vs0:sys/external/ini_file_processor.suprx
SceAtrac 0x2800000000028083 vs0:sys/external/libatrac.suprx
SceLibc 0x280000000002800E vs0:sys/external/libc.suprx
SceCommonDialog 0x280000000002800F vs0:sys/external/libcdlg.suprx
SceCalendarDialogPlugin 0x28000000000280AA vs0:sys/external/libcdlg_calendar_review.suprx
SceCamImportDialogPlugin 0x2800000000028079 vs0:sys/external/libcdlg_cameraimport.suprx
SceCheckoutDialogPlugin 0x2800000000028010 vs0:sys/external/libcdlg_checkout.suprx
SceCompanionDialogPlugin 0x2800000000017003 vs0:sys/external/libcdlg_companion.suprx
SceCompatDialogPlugin 0x280000000002807C vs0:sys/external/libcdlg_compat.suprx
SceCrossCtlDialogPlugin 0x2800000000028090 vs0:sys/external/libcdlg_cross_controller.suprx
SceFriendListDialogPlugin 0x2800000000028011 vs0:sys/external/libcdlg_friendlist.suprx
SceFriendList2DialogPlugin 0x28000000000280A8 vs0:sys/external/libcdlg_friendlist2.suprx
SceNpGameCustomDataDPlugin 0x28000000000280B1 vs0:sys/external/libcdlg_game_custom_data.suprx
SceNpGameCustomDataDlgImpl 0x28000000000280B2 vs0:sys/external/libcdlg_game_custom_data_impl.suprx
SceImeDialogPlugin 0x2800000000028012 vs0:sys/external/libcdlg_ime.suprx
SceInvitationDlgPlugin 0x28000000000280AF vs0:sys/external/libcdlg_invitation.suprx
SceInvitationDlgImplPlugin 0x28000000000280B0 vs0:sys/external/libcdlg_invitation_impl.suprx
SceCommonDialogMain 0x2800000000028013 vs0:sys/external/libcdlg_main.suprx
SceMsgDialogPlugin 0x2800000000028015 vs0:sys/external/libcdlg_msg.suprx
SceNearDialogPlugin 0x280000000002809F vs0:sys/external/libcdlg_near.suprx
SceNetCheckDialogPlugin 0x2800000000028017 vs0:sys/external/libcdlg_netcheck.suprx
SceNpEulaDialogPlugin 0x2800000000028089 vs0:sys/external/libcdlg_npeula.suprx
SceNpProfile2DialogPlugin 0x28000000000280A9 vs0:sys/external/libcdlg_npprofile2.suprx
SceNpMessageDialogPlugin 0x280000000002801A vs0:sys/external/libcdlg_np_message.suprx
SceNpSnsFbDialogPlugin 0x2800000000028082 vs0:sys/external/libcdlg_np_sns_fb.suprx
SceTrophySetupDialogPlugin 0x280000000002801B vs0:sys/external/libcdlg_np_trophy_setup.suprx
ScePhotoImportDialogPlugin 0x280000000002801C vs0:sys/external/libcdlg_photoimport.suprx
ScePhotoReviewDialogPlugin 0x280000000002801D vs0:sys/external/libcdlg_photoreview.suprx
ScePocsDialogPlugin 0x2800000000020040 vs0:sys/external/libcdlg_pocketstation.suprx
SceRemoteOSKDialogPlugin 0x2800000000017004 vs0:sys/external/libcdlg_remote_osk.suprx
SceSaveDataDialogPlugin 0x280000000002801E vs0:sys/external/libcdlg_savedata.suprx
SceTwitterDialogPlugin 0x2800000000028096 vs0:sys/external/libcdlg_twitter.suprx
SceTwLoginDialogPlugin 0x280000000002809A vs0:sys/external/libcdlg_tw_login.suprx
SceVideoImportDialogPlugin 0x28000000000280B3 vs0:sys/external/libcdlg_videoimport.suprx
SceClipboard 0x2800000000028020 vs0:sys/external/libclipboard.suprx
SceLibDbg 0x2800000000028023 vs0:sys/external/libdbg.suprx
SceFiber 0x2800000000028024 vs0:sys/external/libfiber.suprx
SceLibFios2 0x2800000000028026 vs0:sys/external/libfios2.suprx
SceLibG729 0x2800000000028027 vs0:sys/external/libg729.suprx
SceLibGameUpdate 0x28000000000280A1 vs0:sys/external/libgameupdate.suprx
SceHandwriting 0x280000000002807A vs0:sys/external/libhandwriting.suprx
SceLibHttp 0x2800000000028032 vs0:sys/external/libhttp.suprx
SceIme 0x2800000000028033 vs0:sys/external/libime.suprx
SceIpmiNonGameApp 0x2800000000028088 vs0:sys/external/libipmi_nongame.suprx
SceLibLocation 0x2800000000028036 vs0:sys/external/liblocation.suprx
SceLibLocationExtension 0x280000000002809C vs0:sys/external/liblocation_extension.suprx
SceLibLocationFactory 0x2800000000028092 vs0:sys/external/liblocation_factory.suprx
SceLibLocationInternal 0x2800000000028091 vs0:sys/external/liblocation_internal.suprx
SceLibMarlin 0x280000000002002C vs0:sys/external/libmln.suprx
MarlinAppLib 0x2800000000024003 vs0:sys/external/libmlnapplib.suprx
SceMarlinDownloader 0x2800000000020031 vs0:sys/external/libmlndownloader.suprx
SceAacenc 0x2800000000028078 vs0:sys/external/libnaac.suprx
SceNet 0x2800000000028037 vs0:sys/external/libnet.suprx
SceLibNetCtl 0x2800000000028038 vs0:sys/external/libnetctl.suprx
SceNgsUser 0x2800000000028039 vs0:sys/external/libngs.suprx
ScePaf 0x280000000002803A vs0:sys/external/libpaf.suprx
ScePafWebMapView 0x2800000000020039 vs0:sys/external/libpaf_web_map_view.suprx
ScePerf 0x280000000002803C vs0:sys/external/libperf.suprx
SceLibPgf 0x280000000002803D vs0:sys/external/libpgf.suprx
SceLibPvf 0x280000000002803E vs0:sys/external/libpvf.suprx
SceLibRudp 0x2800000000028043 vs0:sys/external/librudp.suprx
SceSasUser 0x2800000000028044 vs0:sys/external/libsas.suprx
SceAvPlayer 0x280000000002809E vs0:sys/external/libsceavplayer.suprx
SceBeisobmf 0x2800000000028093 vs0:sys/external/libSceBeisobmf.suprx
SceBemp2sys 0x2800000000028094 vs0:sys/external/libSceBemp2sys.suprx
SceCompanionUtil 0x2800000000017002 vs0:sys/external/libSceCompanionUtil.suprx
SceDtcpIp 0x280000000002808D vs0:sys/external/libSceDtcpIp.suprx
SceLibft2 0x2800000000028045 vs0:sys/external/libSceFt2.suprx
SceJpegArm 0x2800000000028046 vs0:sys/external/libscejpegarm.suprx
SceJpegEncArm 0x2800000000028047 vs0:sys/external/libscejpegencarm.suprx
SceLibJson 0x28000000000280AD vs0:sys/external/libSceJson.suprx
SceMp4 0x2800000000028076 vs0:sys/external/libscemp4.suprx
SceLibMp4Recorder 0x28000000000280A4 vs0:sys/external/libSceMp4Rec.suprx
SceMusicExport 0x2800000000028048 vs0:sys/external/libSceMusicExport.suprx
SceNearDialogUtil 0x280000000002809B vs0:sys/external/libSceNearDialogUtil.suprx
SceNearUtil 0x2800000000028049 vs0:sys/external/libSceNearUtil.suprx
ScePhotoExport 0x280000000002804A vs0:sys/external/libScePhotoExport.suprx
ScePromoterUtil 0x2800000000028081 vs0:sys/external/libScePromoterUtil.suprx
SceScreenShot 0x280000000002804B vs0:sys/external/libSceScreenShot.suprx
SceShutterSound 0x280000000002804C vs0:sys/external/libSceShutterSound.suprx
SceSqlite 0x280000000002804D vs0:sys/external/libSceSqlite.suprx
SceTelephonyUtil 0x280000000002808A vs0:sys/external/libSceTelephonyUtil.suprx
SceTeleportClient 0x28000000000280A3 vs0:sys/external/libSceTeleportClient.suprx
SceTeleportServer 0x28000000000280A2 vs0:sys/external/libSceTeleportServer.suprx
SceVideoExport 0x2800000000024001 vs0:sys/external/libSceVideoExport.suprx
SceVideoSearchEmpr 0x2800000000020034 vs0:sys/external/libSceVideoSearchEmpr.suprx
SceLibXml 0x280000000002804F vs0:sys/external/libSceXml.suprx
SceShellSvc 0x2800000000028050 vs0:sys/external/libshellsvc.suprx
SceLibSsl 0x2800000000028051 vs0:sys/external/libssl.suprx
SceSystemGesture 0x2800000000028053 vs0:sys/external/libsystemgesture.suprx
SceUlt 0x2800000000028054 vs0:sys/external/libult.suprx
SceVoice 0x2800000000028055 vs0:sys/external/libvoice.suprx
SceVoiceQoS 0x2800000000028056 vs0:sys/external/libvoiceqos.suprx
SceLiveAreaUtil 0x2800000000028057 vs0:sys/external/livearea_util.suprx
mail_api_for_local_libc 0x28000000000280A0 vs0:sys/external/mail_api_for_local_libc.suprx
SceNearProfile 0x2800000000028058 vs0:sys/external/near_profile.suprx
SceNotificationUtil 0x2800000000028085 vs0:sys/external/notification_util.suprx
SceNpActivityNet 0x2800000000028059 vs0:sys/external/np_activity.suprx
SceNpActivity 0x280000000002805A vs0:sys/external/np_activity_sdk.suprx
SceNpBasic 0x280000000002805B vs0:sys/external/np_basic.suprx
SceNpCommerce2 0x280000000002805C vs0:sys/external/np_commerce2.suprx
SceNpCommon 0x280000000002805D vs0:sys/external/np_common.suprx
SceNpCommonPs4 0x28000000000280A7 vs0:sys/external/np_common_ps4.suprx
SceNpFriendPrivacyLevel 0x280000000002805E vs0:sys/external/np_friend_privacylevel.suprx
SceNpKdc 0x280000000002805F vs0:sys/external/np_kdc.suprx
SceNpManager 0x2800000000028060 vs0:sys/external/np_manager.suprx
SceNpMatching2 0x2800000000028061 vs0:sys/external/np_matching2.suprx
SceNpMessage 0x2800000000028062 vs0:sys/external/np_message.suprx
SceNpMessageContactsPlugin 0x2800000000028074 vs0:sys/external/np_message_contacts.suprx
SceNpMessageDlgImplPlugin 0x2800000000028075 vs0:sys/external/np_message_dialog_impl.suprx
SceNpMessagePadding 0x2800000000028095 vs0:sys/external/np_message_padding.suprx
SceNpPartyGameUtil 0x2800000000028063 vs0:sys/external/np_party.suprx
SceNpScore 0x2800000000028064 vs0:sys/external/np_ranking.suprx
SceNpSignaling 0x280000000002808F vs0:sys/external/np_signaling.suprx
SceNpSnsFacebook 0x2800000000028084 vs0:sys/external/np_sns_facebook.suprx
SceNpTrophy 0x2800000000028065 vs0:sys/external/np_trophy.suprx
SceNpTus 0x2800000000028066 vs0:sys/external/np_tus.suprx
SceNpUtility 0x2800000000028067 vs0:sys/external/np_utility.suprx
SceNpWebApi 0x28000000000280A6 vs0:sys/external/np_webapi.suprx
ScePartyMemberListPlugin 0x280000000002808B vs0:sys/external/party_member_list.suprx
SceDrmPsmKdc 0x280000000002808E vs0:sys/external/psmkdc.suprx
SceLibPspnetAdhoc 0x280000000002808C vs0:sys/external/pspnet_adhoc.suprx
SceSignInExt 0x28000000000280AB vs0:sys/external/signin_ext.suprx
SceSqliteVsh 0x280000000002806E vs0:sys/external/sqlite.suprx
SceStoreCheckoutPlugin 0x280000000002806F vs0:sys/external/store_checkout_plugin.suprx
SceTriggerUtil 0x2800000000024002 vs0:sys/external/trigger_util.suprx
SceWebUIPlugin 0x2800000000028073 vs0:sys/external/web_ui_plugin.suprx
SceAppSettings 0x2800000000020002 vs0:vsh/common/app_settings.suprx
SceAuthPlugin 0x2800000000020003 vs0:vsh/common/auth_plugin.suprx
SceAvContentHandler 0x2800000000020004 vs0:vsh/common/av_content_handler.suprx
SceBackupRestore 0x280000000002002A vs0:vsh/common/backup_restore.suprx
SceContentOperation 0x2800000000020006 vs0:vsh/common/content_operation.suprx
SceDbRecovery 0x2800000000020007 vs0:vsh/common/dbrecovery_plugin.suprx
SceDbSetup 0x2800000000020008 vs0:vsh/common/dbsetup.suprx
SceBEAVCorePlayer 0x280000000002003C vs0:vsh/common/libBEAVCorePlayer.suprx
SceLibFflMp4 0x280000000002000F vs0:vsh/common/libFflMp4.suprx
SceLibical 0x2800000000020044 vs0:vsh/common/libical.suprx
SceLibicalss 0x2800000000020043 vs0:vsh/common/libicalss.suprx
SceLibMarlin 0x280000000002002C vs0:vsh/common/libmarlin.suprx
SceMarlinDownloader 0x2800000000020013 vs0:vsh/common/libmarlindownloader.suprx
SceLibMarlinPb 0x280000000002002D vs0:vsh/common/libmarlin_pb.suprx
SceLibMtp 0x2800000000020014 vs0:vsh/common/libmtp.suprx
SceLibMtpHttp 0x280000000002003A vs0:vsh/common/libmtphttp.suprx
SceLibMtpHttpWrapper 0x280000000002003B vs0:vsh/common/libmtphttp_wrapper.suprx
SceLibFflVuMp4 0x2800000000020037 vs0:vsh/common/libSenvuabsFFsdk.suprx
SceVideoProfiler 0x2800000000020016 vs0:vsh/common/libvideoprofiler.suprx
mail_api_for_local 0x2800000000020038 vs0:vsh/common/mail_api_for_local.suprx
SceMtpr3 0x280000000002001D vs0:vsh/common/mtpr3.suprx
SceMtpClient 0x280000000002001E vs0:vsh/common/mtp_client.suprx
SceNpGriefReport 0x280000000002002F vs0:vsh/common/np_grief_report.suprx
SceAACPromoter 0x2800000000020001 vs0:vsh/common/mms/AACPromoter.suprx
SceBmpPromoter 0x2800000000020005 vs0:vsh/common/mms/bmp_promoter.suprx
SceGifPromoter 0x280000000002000B vs0:vsh/common/mms/gif_promoter.suprx
SceJpegPromoter 0x280000000002000E vs0:vsh/common/mms/jpeg_promoter.suprx
SceMetaGen 0x280000000002001A vs0:vsh/common/mms/meta_gen.suprx
SceMp3Promoter 0x280000000002001B vs0:vsh/common/mms/Mp3Promoter.suprx
SceMsvPromoter 0x280000000002001C vs0:vsh/common/mms/MsvPromoter.suprx
ScePngPromoter 0x2800000000020020 vs0:vsh/common/mms/png_promoter.suprx
SceRiffPromoter 0x2800000000020022 vs0:vsh/common/mms/RiffPromoter.suprx
SceSensMe 0x2800000000020023 vs0:vsh/common/mms/SensMe.suprx
SceTiffPromoter 0x2800000000020027 vs0:vsh/common/mms/tiff_promoter.suprx
SceGameCardInstallerPlugin 0x280000000002003F vs0:vsh/game/gamecard_installer_plugin.suprx
SceGameDataPlugin 0x2800000000020009 vs0:vsh/game/gamedata_plugin.suprx
SceInitialSetup 0x2800000000000014 vs0:vsh/initialsetup/initialsetup.self
SceOnlineStoragePlugin 0x280000000002003E vs0:vsh/online_storage/online_storage_plugin.suprx
SceAuthResetPlugin 0x2800000000020029 vs0:vsh/shell/auth_reset_plugin.suprx
SceIduUpdate 0x280000000002002E vs0:vsh/shell/idu_update_plugin.suprx
SceImePlugin 0x280000000002000C vs0:vsh/shell/ime_plugin.suprx
SceImposeNet 0x280000000002000D vs0:vsh/shell/impose_net_plugin.suprx
SceLibLocationDolceProvide 0x280000000002003D vs0:vsh/shell/liblocation_dolce_provider.suprx
SceLibLocationPermission 0x2800000000020010 vs0:vsh/shell/liblocation_permission.suprx
SceLibLocationProvider 0x2800000000020011 vs0:vsh/shell/liblocation_provider.suprx
SceLsdb 0x2800000000020018 vs0:vsh/shell/livespace_db.suprx
SceLocationPlugin 0x2800000000020019 vs0:vsh/shell/location_dialog_plugin.suprx
SceShell 0x2800000000000001 vs0:vsh/shell/shell.self
SceTelInitialCheck 0x2800000000020025 vs0:vsh/shell/telephony/initial_check/tel_initial_check_plugin.suprx
SceCuiSetUpper 0x2800800000000003 ud0:PSP2UPDATE/cui_setupper.self
ScePsp2Swu 0x2800800000000002 ud0:PSP2UPDATE/psp2swu.self

1.69-1.80 Retail Modules (deprecated list over 3.60 one)

1.69-1.80 Kernel modules

Name Version Path
SceClockgen 1.69 bootfs:clockgen.skprx
SceIdStorage 1.69 bootfs:idstorage.skprx
SceCtrl 1.69 bootfs:ctrl.skprx
SceTouch 1.69 bootfs:touch.skprx
SceMotionDev 1.69 bootfs:motion.skprx
SceCodec 1.69 bootfs:codec.skprx
SceAudio 1.69 bootfs:audio.skprx
SceHpremote 1.69 bootfs:hpremote.skprx
ScePower 1.69 bootfs:power.skprx
SceUsbd 1.69 bootfs:usbd.skprx
SceUdcd 1.69 bootfs:udcd.skprx
SceUsbServ 1.69 bootfs:usbserv.skprx
SceUsbSerial 1.69 bootfs:usbserial.skprx
SceUsbMtp 1.69 bootfs:usbmtp.skprx
SceMtpIfDriver 1.69 bootfs:mtpif.skprx
SceSblPostSsMgr 1.69 bootfs:post_ss_mgr.skprx
SceSblUpdateMgr 1.69 bootfs:update_mgr.skprx
SceRegistryMgr 1.69 bootfs:regmgr.skprx
SceSblFwLoader 1.69 bootfs:fwloader.skprx
SceVeneziaWrapper 1.69 bootfs:vnz_wrapper.skprx
SceError 1.69 bootfs:error.skprx
SceNpDrm 1.69 bootfs:npdrm.skprx
SceUlobjMgr 1.69 bootfs:ulobjmgr.skprx
SceNetPs 1.69 bootfs:net_ps.skprx
SceGps 1.69 bootfs:gps.skprx
SceBbmc 1.69 bootfs:bbmc.skprx
SceWlanBt 1.69 bootfs:wlanbt.skprx
SceBt 1.69 bootfs:bt.skprx
SceUsbstorDriver 1.69 bootfs:usbstor.skprx
SceUsbstorVStorDriver 1.69 bootfs:usbstorvstor.skprx
SceAvcodec 1.69 bootfs:avcodec.skprx
SceAudioin 1.69 bootfs:audioin.skprx
SceNgs 1.69 bootfs:ngs.skprx
SceGpuEs4 1.69 bootfs:gpu_es4.skprx
SceGpuEs4Init 1.69 bootfs:gpuinit_es4.skprx
SceCompat 1.69 bootfs:compat.skprx
SceCamera 1.69 bootfs:camera.skprx
SceCoredump 1.69 bootfs:coredump.skprx
SceAVConfig 1.69 bootfs:av_config.skprx
SceFios2Kernel 1.69 bootfs:fios2.skprx
ScePfsMgr 1.69 bootfs:pfsmgr.skprx
SceAppMgr 1.69 bootfs:appmgr.skprx
SceSysmodule 1.69 bootfs:sysmodule.skprx
SceVshBridge 1.69 bootfs:vshbridge.skprx
SceTty2uart 1.69 bootfs:tty2uart.skprx
SceSblACMgr 1.69 os0:kd/acmgr.skprx
SceSblAuthMgr 1.69 os0:kd/authmgr.skprx
SceKernelBacktrace 1.69 os0:kd/backtrace.skprx
SceKernelBootimage 1.69 os0:kd/bootimage.skprx
SceKernelBusError 1.69 os0:kd/buserror.skprx
SceDbgSdio 1.69 os0:kd/dbgsdio.skprx
SceDbgUsb 1.69 os0:kd/dbgusb.skprx
SceDeci4pCpup 1.69 os0:kd/deci4p_cpup.skprx
SceDeci4pCtrlp 1.69 os0:kd/deci4p_ctrlp.skprx
SceDeci4pDbgp 1.69 os0:kd/deci4p_dbgp.skprx
SceDeci4pDfMgr 1.69 os0:kd/deci4p_dfmgr.skprx
SceDeci4pDrfp 1.69 os0:kd/deci4p_drfp.skprx
SceDeci4pDtracep 1.69 os0:kd/deci4p_dtracep.skprx
SceDeci4pLoadp 1.69 os0:kd/deci4p_loadp.skprx
SceDeci4pPamp 1.69 os0:kd/deci4p_pamp.skprx
SceDeci4pRDrfp 1.69 os0:kd/deci4p_rdrfp.skprx
SceDeci4pSCTtyp 1.69 os0:kd/deci4p_scttyp.skprx
SceDeci4pSDbgp 1.69 os0:kd/deci4p_sdbgp.skprx
SceDeci4pSDeci2p 1.69 os0:kd/deci4p_sdeci2p.skprx
SceDeci4pSDfCtl 1.69 os0:kd/deci4p_sdfctl.skprx
SceDeci4pSDfMgr 1.69 os0:kd/deci4p_sdfmgr.skprx
SceDeci4pSDrfp 1.69 os0:kd/deci4p_sdrfp.skprx
SceDeci4pSTtyp 1.69 os0:kd/deci4p_sttyp.skprx
SceDeci4pTsmp 1.69 os0:kd/deci4p_tsmp.skprx
SceDeci4pTtyp 1.69 os0:kd/deci4p_ttyp.skprx
SceDeci4pUserp 1.69 os0:kd/deci4p_userp.skprx
SceDeci4pVcp 1.69 os0:kd/deci4p_vcp.skprx
SceDisplay 1.69 os0:kd/display.skprx
SceKernelDmacMgr 1.69 os0:kd/dmacmgr.skprx
SceEnumWakeUp 1.69 os0:kd/enum_wakeup.skprx
SceExcpmgr 1.69 os0:kd/excpmgr.skprx
SceExfatfs 1.69 os0:kd/exfatfs.skprx
SceSblGcAuthMgr 1.69 os0:kd/gcauthmgr.skprx
SceGpuEs4CoreDump 1.69 os0:kd/gpucoredump_es4.skprx
SceHdmi 1.69 os0:kd/hdmi.skprx
SceKernelIntrMgr 1.69 os0:kd/intrmgr.skprx
SceIofilemgr 1.69 os0:kd/iofilemgr.skprx
SceLowio 1.69 os0:kd/lowio.skprx
SceMagicGate 1.69 os0:kd/magicgate.skprx
SceMarlinHci 1.69 os0:kd/marlin_hci.skprx
SceSblMgKeyMgr 1.69 os0:kd/mgkeymgr.skprx
SceMgVideo 1.69 os0:kd/mgvideo.skprx
SceKernelModulemgr 1.69 os0:kd/modulemgr.skprx
SceMsif 1.69 os0:kd/msif.skprx
SceOled 1.69 os0:kd/oled.skprx
ScePamgr 1.69 os0:kd/pamgr.skprx
SceSblPcbcBin 1.69 os0:kd/pcbc.skprx
SceProcessmgr 1.69 os0:kd/processmgr.skprx
SceRtc 1.69 os0:kd/rtc.skprx
SceSDbgSdio 1.69 os0:kd/sdbgsdio.skprx
SceSdif 1.69 os0:kd/sdif.skprx
SceSdstor 1.69 os0:kd/sdstor.skprx
SceSblSsSmComm 1.69 os0:kd/sm_comm.skprx
SceSblSmschedProxy 1.69 os0:kd/smsc_proxy.skprx
SceSblSsMgr 1.69 os0:kd/ss_mgr.skprx
SceStdio 1.69 os0:kd/stdio.skprx
SceSyscon 1.69 os0:kd/syscon.skprx
SceSysLibTrace 1.69 os0:kd/syslibtrace.skprx
SceSysmem 1.69 os0:kd/sysmem.skprx
SceSysStateMgr 1.69 os0:kd/sysstatemgr.skprx
SceSystimer 1.69 os0:kd/systimer.skprx
SceKernelThreadMgr 1.69 os0:kd/threadmgr.skprx
SceUsbDevSerial 1.69 os0:kd/usbdev_serial.skprx
SceUsbPspcm 1.69 os0:kd/usbpspcm.skprx
SceUsbstorDriver 1.69 os0:kd/usbstor.skprx
SceUsbstorMg 1.69 os0:kd/usbstormg.skprx
SceUsbstorVStorDriver 1.69 os0:kd/usbstorvstor.skprx
SceVipImage 1.69 os0:kd/vipimg.skprx
SceVeneziaImage 1.69 os0:kd/vnzimg.skprx
SceWlanBtRobinImageAx 1.69 os0:kd/wlanbt_robin_img_ax.skprx
ScePsp2BootConfig 1.69 os0:psp2bootconfig.skprx
SceKernelPsp2Config 1.69 os0:psp2config.skprx
SceSblPcffBin 1.69 vs0:app/NPXS10028/pcff.skprx

1.69-1.80 Secure Kernel

Name Version
SceSysmem 1.69
SceExcpmgr 1.69
SceKernelIntrMgr 1.69
SceKernelBusError 1.69
SceSblSmsched 1.69
SceDriverTzs 1.69

1.69-1.80 User modules

Name Version Path
SceAvcodecUser 1.69 os0:us/avcodec_us.suprx
SceDriverUser 1.69 os0:us/driver_us.suprx
SceGpuEs4User 1.69 os0:us/libgpu_es4.suprx
SceGxm 1.69 os0:us/libgxm_es4.suprx
SceLibKernel 1.69 os0:us/libkernel.suprx

1.69-1.80 System Applications

Name Version Path
SceSafeMode 1.69 os0:ue/safemode.self
SceShell 1.69 vs0:vsh/shell/shell.self
SceInitialSetup 1.69 vs0:vsh/initialsetup/initialsetup.self
SceCuiSetUpper 1.69 host0:cui_setupper.self
ScePsp2Swu 1.69 up0:PSP2UPDATE/psp2swu.self
SceNear 1.69 vs0:app/NPXS10000/eboot.bin
NPXS10001 (Party) 1.69 vs0:app/NPXS10001/eboot.bin
SceStoreBrowser 1.69 vs0:app/NPXS10002/eboot.bin
SceWebBrowser 1.69 vs0:app/NPXS10003/eboot.bin
ScePhotoCam 1.69 vs0:app/NPXS10004/eboot.bin
SceMapViewer 1.69 vs0:app/NPXS10005/eboot.bin
SceFriendsApp 1.69 vs0:app/NPXS10006/eboot.bin
SceTrophy 1.69 vs0:app/NPXS10008/eboot.bin
SceMusicBrowser 1.69 vs0:app/NPXS10009/eboot.bin
SceVideoPlayer 1.69 vs0:app/NPXS10010/eboot.bin
SceRemotePlay 1.69 vs0:app/NPXS10012/eboot.bin
ScePsnMail 1.69 vs0:app/NPXS10014/eboot.bin
SceSettings 1.69 vs0:app/NPXS10015/eboot.bin
SceWebCore 1.69 vs0:app/NPXS10017/eboot.bin
NPXS10018 (Sign up) 1.69 vs0:app/NPXS10018/eboot.bin
NPXS10020 (Notifications) 1.69 vs0:app/NPXS10020/eboot.bin
SceTelReg 1.69 vs0:app/NPXS10021/eboot.bin
ScePhotoExport 1.69 vs0:app/NPXS10023/eboot.bin
SceNearAutoCheckin 1.69 vs0:app/NPXS10025/eboot.bin
CMA 1.69 vs0:app/NPXS10026/eboot.bin
SceGameManual 1.69 vs0:app/NPXS10027/eboot.bin
PSP Emulator 1.69 vs0:app/NPXS10028/eboot.bin
NPXS10029 (Merlin DRM) 1.69 vs0:app/NPXS10029/eboot.bin
NPXS10030 (Quick Signup) 1.69 vs0:app/NPXS10030/eboot.bin
Package Installer 1.69 vs0:app/NPXS10031/eboot.bin
NPXS10032 (Near Utility Background) 1.69 vs0:app/NPXS10032/eboot.bin
NPXS10035 (Store In-Game) 1.69 vs0:app/NPXS10035/eboot.bin
NPXS10036 (AVMediaSrv) 1.69 vs0:app/NPXS10036/eboot.bin
SceWebCore 1.69 vs0:app/NPXS10037/eboot.bin
NPXS10063 (MsgMW) 1.69 vs0:app/NPXS10063/eboot.bin
NPXS10065 (Grief Report Dialog) 1.69 vs0:app/NPXS10065/eboot.bin
NPXS10068 (Update Checker) 1.69 vs0:app/NPXS10068/eboot.bin
ScePsm 1.80 vs0:app/NPXS10074/eboot.bin
ScePsmManual 1.80 vs0:app/NPXS10081/eboot.bin

1.69-1.80 Applications modules

Name Version Path
1.69 vs0:app/NPXS10001/np_party_app.suprx
1.69 vs0:app/NPXS10015/system_settings_core.suprx
1.69 vs0:app/NPXS10017/jx_web_filtering.suprx
1.69 vs0:app/NPXS10017/vita_jsextobj.suprx
1.69 vs0:app/NPXS10021/tel_reg.suprx
1.69 vs0:app/NPXS10037/jx_web_filtering.suprx
1.69 vs0:app/NPXS10037/vita_jsextobj.suprx
1.69 vs0:app/NPXS10065/grief_report_dialog.suprx
1.69 vs0:data/external/webcore/jx_web_filtering.suprx
1.69 vs0:data/external/webcore/silk.suprx
1.69 vs0:data/external/webcore/silk_base.suprx
1.69 vs0:data/external/webcore/silk_mrcommon.suprx
1.69 vs0:data/external/webcore/silk_mrserver.suprx
1.69 vs0:data/external/webcore/silk_webkit.suprx
1.69 vs0:data/external/webcore/vita_jsextobj.suprx
1.69 vs0:data/external/webcore/webcore.suprx
1.69 vs0:data/external/webcore/webcore_server.suprx
1.69 vs0:sys/external/activity_db.suprx
1.69 vs0:sys/external/adhoc_matching.suprx
1.69 vs0:sys/external/apputil.suprx
1.69 vs0:sys/external/audiocodec.suprx
1.69 vs0:sys/external/bgapputil.suprx
1.69 vs0:sys/external/bXCe.suprx
1.69 vs0:sys/external/common_gui_dialog.suprx
1.69 vs0:sys/external/dbrecovery_utility.suprx
1.69 vs0:sys/external/dbutil.suprx
1.69 vs0:sys/external/incoming_dialog.suprx
1.69 vs0:sys/external/ini_file_processor.suprx
1.69 vs0:sys/external/libatrac.suprx
1.69 vs0:sys/external/libc.suprx
1.69 vs0:sys/external/libcdlg.suprx
1.69 vs0:sys/external/libcdlg_cameraimport.suprx
1.69 vs0:sys/external/libcdlg_checkout.suprx
1.69 vs0:sys/external/libcdlg_compat.suprx
1.69 vs0:sys/external/libcdlg_friendlist.suprx
1.69 vs0:sys/external/libcdlg_ime.suprx
1.69 vs0:sys/external/libcdlg_main.suprx
1.69 vs0:sys/external/libcdlg_msg.suprx
1.69 vs0:sys/external/libcdlg_netcheck.suprx
1.69 vs0:sys/external/libcdlg_np_message.suprx
1.69 vs0:sys/external/libcdlg_np_sns_fb.suprx
1.69 vs0:sys/external/libcdlg_np_trophy_setup.suprx
1.69 vs0:sys/external/libcdlg_npeula.suprx
1.69 vs0:sys/external/libcdlg_npprofile.suprx
1.69 vs0:sys/external/libcdlg_photoimport.suprx
1.69 vs0:sys/external/libcdlg_photoreview.suprx
1.69 vs0:sys/external/libcdlg_savedata.suprx
1.69 vs0:sys/external/libclipboard.suprx
1.69 vs0:sys/external/libcodecengine_perf.suprx
1.69 vs0:sys/external/libdbg.suprx
1.69 vs0:sys/external/libfiber.suprx
1.69 vs0:sys/external/libfios2.suprx
1.69 vs0:sys/external/libg729.suprx
1.69 vs0:sys/external/libgxm_dbg_es3.suprx
1.69 vs0:sys/external/libgxm_dbg_es4.suprx
1.69 vs0:sys/external/libhandwriting.suprx
1.69 vs0:sys/external/libhttp.suprx
1.69 vs0:sys/external/libime.suprx
1.69 vs0:sys/external/libipmi_nongame.suprx
1.69 vs0:sys/external/liblocation.suprx
1.69 vs0:sys/external/libmln.suprx
1.69 vs0:sys/external/libmlnapplib.suprx
1.69 vs0:sys/external/libmlndownloader.suprx
1.69 vs0:sys/external/libnaac.suprx
1.69 vs0:sys/external/libnet.suprx
1.69 vs0:sys/external/libnetctl.suprx
1.69 vs0:sys/external/libngs.suprx
ScePaf 1.69 vs0:sys/external/libpaf.suprx
1.69 vs0:sys/external/libperf.suprx
1.69 vs0:sys/external/libpgf.suprx
1.69 vs0:sys/external/libpvf.suprx
1.69 vs0:sys/external/librazorcapture_es3.suprx
1.69 vs0:sys/external/librazorcapture_es4.suprx
1.69 vs0:sys/external/librazorhud_es3.suprx
1.69 vs0:sys/external/librazorhud_es4.suprx
1.69 vs0:sys/external/librudp.suprx
1.69 vs0:sys/external/libsas.suprx
1.69 vs0:sys/external/libSceFt2.suprx
1.69 vs0:sys/external/libscejpegarm.suprx
1.69 vs0:sys/external/libscejpegencarm.suprx
1.69 vs0:sys/external/libscemp4.suprx
1.69 vs0:sys/external/libSceMusicExport.suprx
1.69 vs0:sys/external/libSceNearUtil.suprx
1.69 vs0:sys/external/libScePhotoExport.suprx
ScePromoterUtil 1.69 vs0:sys/external/libScePromoterUtil.suprx
1.69 vs0:sys/external/libSceScreenShot.suprx
1.69 vs0:sys/external/libSceShutterSound.suprx
1.69 vs0:sys/external/libSceSqlite.suprx
1.69 vs0:sys/external/libSceTelephonyUtil.suprx
1.69 vs0:sys/external/libSceVideoExport.suprx
1.69 vs0:sys/external/libSceXml.suprx
1.69 vs0:sys/external/libshacccg.suprx
1.69 vs0:sys/external/libshellsvc.suprx
SceLibSsl 1.69 vs0:sys/external/libssl.suprx
1.69 vs0:sys/external/libsulpha.suprx
1.69 vs0:sys/external/libsystemgesture.suprx
1.69 vs0:sys/external/libult.suprx
1.69 vs0:sys/external/libvoice.suprx
1.69 vs0:sys/external/libvoiceqos.suprx
1.69 vs0:sys/external/livearea_util.suprx
1.69 vs0:sys/external/near_profile.suprx
1.69 vs0:sys/external/notification_util.suprx
1.69 vs0:sys/external/np_activity.suprx
1.69 vs0:sys/external/np_activity_sdk.suprx
1.69 vs0:sys/external/np_basic.suprx
1.69 vs0:sys/external/np_commerce2.suprx
1.69 vs0:sys/external/np_common.suprx
1.69 vs0:sys/external/np_friend_privacylevel.suprx
1.69 vs0:sys/external/np_kdc.suprx
1.69 vs0:sys/external/np_manager.suprx
1.69 vs0:sys/external/np_matching2.suprx
1.69 vs0:sys/external/np_message.suprx
1.69 vs0:sys/external/np_message_contacts.suprx
1.69 vs0:sys/external/np_message_dialog_impl.suprx
1.69 vs0:sys/external/np_party.suprx
1.69 vs0:sys/external/np_ranking.suprx
1.69 vs0:sys/external/np_sns_facebook.suprx
1.69 vs0:sys/external/np_trophy.suprx
1.69 vs0:sys/external/np_tus.suprx
1.69 vs0:sys/external/np_utility.suprx
1.69 vs0:sys/external/sqlite.suprx
1.69 vs0:sys/external/store_checkout_plugin.suprx
1.69 vs0:sys/external/trigger_util.suprx
1.69 vs0:sys/external/ulobj_dbg.suprx
1.69 vs0:sys/external/web_ui_plugin.suprx
1.69 vs0:vsh/common/app_settings.suprx
1.69 vs0:vsh/common/auth_plugin.suprx
1.69 vs0:vsh/common/av_content_handler.suprx
1.69 vs0:vsh/common/backup_restore.suprx
1.69 vs0:vsh/common/content_operation.suprx
1.69 vs0:vsh/common/dbrecovery_plugin.suprx
1.69 vs0:vsh/common/dbsetup.suprx
1.69 vs0:vsh/common/libFflMp4.suprx
1.69 vs0:vsh/common/libmarlin.suprx
1.69 vs0:vsh/common/libmarlin_pb.suprx
1.69 vs0:vsh/common/libmarlindownloader.suprx
1.69 vs0:vsh/common/libmtp.suprx
1.69 vs0:vsh/common/libvideoprofiler.suprx
1.69 vs0:vsh/common/mms/AACPromoter.suprx
1.69 vs0:vsh/common/mms/bmp_promoter.suprx
1.69 vs0:vsh/common/mms/gif_promoter.suprx
1.69 vs0:vsh/common/mms/jpeg_promoter.suprx
1.69 vs0:vsh/common/mms/meta_gen.suprx
1.69 vs0:vsh/common/mms/Mp3Promoter.suprx
1.69 vs0:vsh/common/mms/MsvPromoter.suprx
1.69 vs0:vsh/common/mms/png_promoter.suprx
1.69 vs0:vsh/common/mms/RiffPromoter.suprx
1.69 vs0:vsh/common/mms/SensMe.suprx
1.69 vs0:vsh/common/mms/tiff_promoter.suprx
1.69 vs0:vsh/common/mtp_client.suprx
1.69 vs0:vsh/common/mtpr3.suprx
1.69 vs0:vsh/common/np_grief_report.suprx
1.69 vs0:vsh/common/webcore.suprx
1.69 vs0:vsh/game/gamedata_plugin.suprx
1.69 vs0:vsh/shell/auth_reset_plugin.suprx
1.69 vs0:vsh/shell/idu_update_plugin.suprx
1.69 vs0:vsh/shell/ime_plugin.suprx
1.69 vs0:vsh/shell/impose_net_plugin.suprx
1.69 vs0:vsh/shell/liblocation_permission.suprx
1.69 vs0:vsh/shell/liblocation_provider.suprx
1.69 vs0:vsh/shell/livearea_util_module.suprx
1.69 vs0:vsh/shell/livespace_db.suprx
1.69 vs0:vsh/shell/location_dialog_plugin.suprx
1.69 vs0:vsh/shell/telephony/initial_check/tel_initial_check_plugin.suprx