Modules
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.010, 6 on PS Vita FWs 0.940-3.740.011. |
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 |
---|---|---|
?0x20? | SCE_MODULE_ATTR_CANT_SHARE | |
?0x10? | SCE_MODULE_ATTR_CAN_RELOCATE | |
?0x8? | SCE_MODULE_ATTR_CAN_RESTART | |
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 i.e. module that stays in memory til poweroff. Such a module cannot be unloaded. |
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.
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.010-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.010-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.010-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.010-3.740.011 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.010-3.740.011 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 SceLibcParam { // size is 0x1C on FW 0.930, 0x30 on FWs 1.80-1.81, 0x38 on FWs 2.00-3.740.011 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; typedef struct SceProcessParam { // size is 0x20 on FW 0.895, 0x2C on FW 0.931.010, 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.010, 5 on FW 0.945, 6 on FW 3.60 SceUInt32 sdk_version; // ex: 0x00895000 on FW 0.895.000, 0x00931010 on FW 0.931.010 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;
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;
reftable
(Variable/function-address imports)
Variable imports are handled differently from function imports. While the entry in the function import table points to an import thunk, the entry in the variable import table points to a so-called reftable
(probably reference table). If an imported function is used for other purposes than a function call, a reftable
can also be generated for this function.
For example, the following C code verifies if a weakly imported function has been successfully bound to before calling it:
//NOTE: this may work with non-loosely imported functions but is non-sensical: //Modulemgr will never start a module if non-loose imports can't be bound, //so the check will always evaluate to true for such functions. //(The exception is app modules (e.g. eboot.bin) since ALL their imports are considered loose) if (&loose_import_func != NULL) { loose_import_func(); }
There are two reftable
formats corresponding to the two executable formats supported by the OS.
Prx1 format
Prx1 is the old format of exectuables. These executables use either the standard ELF types ET_EXEC
and ET_REL
, or the legacy 0xFFA5 (ET_SCE_PSP2RELEXEC
) as the value in the ELF header's e_type
.
In this format, the reftable
is simply an array of Prx1RefInfo
s terminated by a NULL entry.
//8 bytes typedef struct Prx1RefInfo { //N.B. bit fields are in little-endian order //For example, reltype occupies bits 7-0 of the SceUInt32 SceUInt32 reltype:8; //Relocation type (r_type) SceUInt32 addend:24; //Relocation addend (r_addend) - sign-extended to 32-bits void* P; //Virtual address where the reference lies } Prx1RefInfo; typedef struct ScePrx1RefTable { Prx1RefInfo info[]; } ScePrx1RefTable; //Sample code to walk Prx1 reftable void walk_Prx1_reftable(ScePrx1RefTable* pTable) { unsigned* infoptr = (unsigned*)&reftable->info; while (*infoptr != 0) { Prx1RefInfo* info = (Prx1RefInfo*)infoptr; //...do something with info... infoptr += sizeof(Prx1RefInfo)/sizeof(unsigned); } }
Prx2 format
Prx2 is the new format of executables, in use since firmware ?0.940?. These executables use 0xFE00 (ET_SCE_EXEC
) or 0xFE04 (ET_SCE_RELEXEC
) as e_type
.
In this format, a 32-bit value is prepended to the table and there are two possible forms for refinfo
instead of a single one.
There are two revisions of the reftable
that change the meaning of this 32-bit value (note that the size
includes the 32-bit value in it):
Bit mask | Header text |
---|---|
New firmwares | |
0xF0000000 | Must be 0 |
0x0FFFFFF0 | reftable size (in bytes)
|
0x0000000F | Reftable version? Must be 0 |
Old firmwares | |
0xFFFF0000 | Unused |
0x0000FFF0 | reftable size (in bytes)
|
0x0000000F | Reftable version? Must be 0 |
//8 bytes typedef struct Prx2RefInfoForm1 { SceUInt32 form:4; //1 SceUInt32 segment:4; //Segment where reference lies SceUInt32 reltype:8; //Relocation type (r_type) SceUInt32 addend:16; //Relocation addend (r_addend) - sign-extended to 32-bits SceUInt32 offset; //Offset where reference lies in segment (r_offset) } Prx2RefInfoForm1; //12 bytes typedef struct Prx2RefInfoForm2 { SceUInt32 form:4; //2 SceUInt32 segment:4; //Segment where reference lies SceUInt32 reltype:8; //Relocation type (r_type) SceUInt32 unused:16; //Unused (padding) SceInt32 addend; //Relocation addend (r_addend) SceUInt32 offset; //Offset where reference lies in segment (r_offset) } Prx2RefInfoForm2; typedef struct ScePrx2RefTable_old { //Used until firmware ?.?? SceUInt32 version:4; //Must be 0 SceUInt32 size:12; SceUInt32 unused:16; unsigned char info[/* size - sizeof(SceUInt32) */]; } ScePrx2RefTable_old; typedef struct ScePrx2RefTable { //Used since firmware ?.?? SceUInt32 version:4; //Must be 0 SceUInt32 size:24; SceUInt32 unk0_28:4; //Must be 0 unsigned char info[/* size - sizeof(SceUInt32) */]; } ScePrx2RefTable; //Sample code to walk Prx2 reftable void walk_Prx2_reftable(ScePrx2RefTable* pTable) { /*assert(pTable->unk0_28 == 0); //for new format only */ assert(pTable->version == 0); unsigned size = pTable->size; unsigned* infoptr = (unsigned*)pTable->info; unsigned* maxptr = (unsigned*)(pTable->info + size); while(infoptr < maxptr) { unsigned form = *infoptr & 0xF; unsigned infosize; switch(form) { case 1: infosize = sizeof(Prx2RefInfoForm1); Prx2RefInfoForm1* info = (Prx2RefInfoForm1*)infoptr; //...do something with info... break; case 2: infosize = sizeof(Prx2RefInfoForm2); Prx2RefInfoForm2* info = (Prx2RefInfoForm2*)infoptr; //...do something with info... break; default: assert(0); } infoptr += size/sizeof(unsigned); } assert(infoptr == maxptr); }
Function reftable
s
To obtain the pointer to a function's associated reftable
, use the following code:
void* get_function_reftable(SceLibStubTable_xxx* libstub, int function_index) { uintptr_t import_thunk = (uintptr_t)libstub->func_entry_table[function_index]; //Import thunks are made of 3 ARM instructions (4 bytes each) //and a 4-byte pointer to the reftable (may be NULL) return *(void**)(import_thunk + 3 * 4); }
Library attribute
Library attribute flags are ORed together and identified as follows:
Bit | Name | Comments |
---|---|---|
0x8000 | ?MAIN_EXPORT? | Set for main NONAME export. |
0x4000 | SYSCALL_EXPORT | In kernel modules only. Allow syscall export to usermode. |
0x2000 | PLUGIN_LINK | Lets the library's exports table be managed on-the-fly by the module itself. If used together with --plugin-header option, switches armlibgen.exe to some special mode, making it generate headers for use with SceLibKernel#sceKernelLinkFunctionTable. It also requires function prototypes to be defined in the EMD file. On PS3, it seems to indicate a non-PRX library (like "stdc" or "allocator") that comes from somewhere else (LV2?). |
0x8 | LOOSE_IMPORT | ?Set when the library has the WEAK_EXPORT flag in its exporting module.? |
0x4 | NOLINK_EXPORT | |
0x2 | WEAK_EXPORT | ?kernel non-driver export? |
0x1 | AUTO_EXPORT | Makes the library importable. Should be set unless it is the main 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 |
Program Authority Id
Bit mask | program-authority-id | Description |
---|---|---|
0xFFF0000000000000 | 0x2100000000000000 | Game |
0xFFF0000000000000 | 0x2200000000000000 | ?Non-Game? |
0xFFF0000000000000 | 0x2800000000000000 | KBL |
0xFFF0000000000000 | 0x2E00000000000000 | Security Module |
0xFFFFFFFF00000000 | 0x2F00000000000000 | fSELF |
0x20000 | 0x20000 | ?System module? |
0xFFF8000000000000 | 0x2808000000000000 | is ThreadAccessLevel::Kernel's next do-anything and has very risky permissions. |
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 |
---|---|---|
manu_updater_peri2 | 0x2800800000000001 | ux0:/psp2diag.self |
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.
Bootloader modules
Version | Name | program-authority-id | Path | Description |
---|---|---|---|---|
1.03-3.74 | kernel_boot_loader | 0x2E00000000000001 | slb0:kernel_boot_loader.self | Installed on release |
Security modules
Version | Name | program-authority-id | Path | Description |
---|---|---|---|---|
1.03-3.74 | kprx_auth_sm | 0x2E00000000000002 | slb0:kprx_auth_sm.self | Installed on release |
1.03-3.74 | update_service_sm | 0x2E00000000000004 | os0:sm/update_service_sm.self | Installed on release |
1.03-3.74 | qaf_sm | 0x2E00000000000005 | os0:sm/qaf_sm.self | Installed on release |
1.03-3.74 | pm_sm | 0x2E00000000000006 | os0:sm/pm_sm.self | Installed on release |
1.03-3.74 | aimgr_sm | 0x2E00000000000007 | os0:sm/aimgr_sm.self | Installed on release |
1.03-3.74 | compat_sm | 0x2E00000000000008 | os0:sm/compat_sm.self | Installed on release |
? | applier_sm | 0x2E00000000000009 | os0:sm/applier_sm.self | Installed on release |
1.03-3.74 | act_sm | 0x2E0000000000000A | os0:sm/act_sm.self | Installed on release |
1.03-3.74 | mgkm_sm | 0x2E0000000000000B | os0:sm/mgkm_sm.self | Installed on release |
1.03-3.74 | encdec_w_portability_sm | 0x2E0000000000000C | os0:sm/encdec_w_portability_sm.self | Installed on release |
1.03-3.74 | gcauthmgr_sm | 0x2E0000000000000D | os0:sm/gcauthmgr_sm.self | Installed on release |
1.03-3.74 | rmauth_sm | 0x2E0000000000000E | os0:sm/rmauth_sm.self | Installed on release |
1.03-3.74 | utoken_sm | 0x2E0000000000000F | os0:sm/utoken_sm.self | Installed on release |
1.03-3.74 | spkg_verifier_sm_w_key | 0x2E00000000000010 | os0:sm/spkg_verifier_sm_w_key.self | Installed on release |
? | pm_sm | ? | sd0:sm/pm_sm_sd.self | Possibly used in diagnosis |
Kernel modules
Version | Name | program-authority-id | Path |
---|---|---|---|
2.60 | SceDiagBridge | 0x2809000000000002 | ux0:/kd/diagbridge.skprx |
2.60 | SceSblFirstImageWriter | 0x2809000000000002 | ux0:/kd/first_image_writer.skprx |
1.04-2.060.011 | ScePsp2BootConfig | 0x2808000000020059 | os0:psp2config.skprx |
1.04-3.74 | ScePsp2BootConfig | 0x280800000002005B | os0:psp2bootconfig.skprx |
2.100.081-3.74 | SceKernelPsp2Config | 0x2808000000020059 | os0:psp2config_dolce.skprx |
2.100.081-3.74 | SceKernelPsp2Config | 0x2808000000020059 | os0:psp2config_vita.skprx |
3.60-3.74 | SceSblACMgr | 0x2808000000020002 | os0:kd/acmgr.skprx |
3.60-3.74 | SceSblAuthMgr | 0x2808000000020007 | os0:kd/authmgr.skprx |
1.04-3.60 | SceKernelBootimage | 0x2808000000020060 | os0:kd/bootimage.skprx |
3.60-3.74 | SceKernelBusError | 0x280800000002000D | os0:kd/buserror.skprx |
3.60-3.74 | SceCrashDump | 0x2808000000020064 | os0:kd/crashdump.skprx |
3.60-3.74 | SceDisplay | 0x2808000000020014 | os0:kd/display.skprx |
3.60-3.74 | SceKernelDmacMgr | 0x2808000000020015 | os0:kd/dmacmgr.skprx |
3.60-3.74 | SceEnumWakeUp | 0x280800000002005C | os0:kd/enum_wakeup.skprx |
3.60-3.74 | SceExcpmgr | 0x2808000000020017 | os0:kd/excpmgr.skprx |
3.60-3.74 | SceExfatfs | 0x2808000000020018 | os0:kd/exfatfs.skprx |
3.60-3.74 | SceSblGcAuthMgr | 0x280800000002005E | os0:kd/gcauthmgr.skprx |
3.60-3.74 | SceGpuEs4CoreDump | 0x280800000002001F | os0:kd/gpucoredump_es4.skprx |
3.60-3.74 | SceHdmi | 0x2808000000020022 | os0:kd/hdmi.skprx |
3.60-3.74 | SceKernelIntrMgr | 0x2808000000020025 | os0:kd/intrmgr.skprx |
3.60-3.74 | SceIofilemgr | 0x2808000000020026 | os0:kd/iofilemgr.skprx |
3.60-3.74 | SceKrm | 0x280800000002006E | os0:kd/krm.skprx |
3.60-3.74 | SceLcd | 0x2808000000020066 | os0:kd/lcd.skprx |
3.60-3.74 | SceLowio | 0x2808000000020028 | os0:kd/lowio.skprx |
3.60-3.74 | SceMagicGate | 0x2808000000000201 | os0:kd/magicgate.skprx |
3.60-3.74 | SceMarlinHci | 0x280800000002005F | os0:kd/marlin_hci.skprx |
3.60-3.74 | SceSblMgKeyMgr | 0x2808000000000201 | os0:kd/mgkeymgr.skprx |
3.60-3.74 | SceMgVideo | 0x2808000000000202 | os0:kd/mgvideo.skprx |
3.60-3.74 | SceKernelModulemgr | 0x280800000002002A | os0:kd/modulemgr.skprx |
3.60-3.74 | SceMsif | 0x280800000002002C | os0:kd/msif.skprx |
3.63-3.74 | SceNetPs (dev) | 0x280800000002002E | os0:kd/net_ps_dev.skprx |
3.60-3.74 | SceOled | 0x2808000000020031 | os0:kd/oled.skprx |
3.60-3.74 | SceSblPcbcBin | 0x2808000000000100 | os0:kd/pcbc.skprx |
3.60-3.74 | SceProcessmgr | 0x2808000000020036 | os0:kd/processmgr.skprx |
3.60-3.74 | SceRtc | 0x2808000000020039 | os0:kd/rtc.skprx |
3.60-3.74 | SceSdif | 0x280800000002003B | os0:kd/sdif.skprx |
3.60-3.74 | SceSdstor | 0x280800000002003C | os0:kd/sdstor.skprx |
3.60-3.74 | SceSblSmschedProxy | 0x280800000002003E | os0:kd/smsc_proxy.skprx |
3.60-3.74 | SceSblSsSmComm | 0x280800000002003D | os0:kd/sm_comm.skprx |
3.60-3.74 | SceSblSsMgr | 0x280800000002003F | os0:kd/ss_mgr.skprx |
3.60-3.74 | SceSyscon | 0x2808000000020043 | os0:kd/syscon.skprx |
3.60-3.74 | SceSysmem | 0x2808000000020044 | os0:kd/sysmem.skprx |
3.60-3.74 | SceSysStateMgr | 0x2808000000020046 | os0:kd/sysstatemgr.skprx |
3.60-3.74 | SceSystimer | 0x2808000000020047 | os0:kd/systimer.skprx |
3.60-3.74 | SceKernelThreadMgr | 0x2808000000020048 | os0:kd/threadmgr.skprx |
3.60-3.74 | SceUsbPspcm | 0x2808000000020063 | os0:kd/usbpspcm.skprx |
3.60-3.74 | SceUsbstorDriver | 0x2808000000020061 | os0:kd/usbstor.skprx |
3.60-3.74 | SceUsbstorMg | 0x2808000000000203 | os0:kd/usbstormg.skprx |
3.60-3.74 | SceUsbstorVStorDriver | 0x2808000000020062 | os0:kd/usbstorvstor.skprx |
3.60-3.74 | SceVipImage | 0x2808000000020052 | os0:kd/vipimg.skprx |
3.60-3.74 | SceVeneziaImage | 0x2808000000020054 | os0:kd/vnzimg.skprx |
3.60-3.74 | SceWlanBtRobinImageAx | 0x2808000000020057 | os0:kd/wlanbt_robin_img_ax.skprx |
3.60-3.74 | SceDeci4pCpup | 0x280800000001000C | os0:kd/deci4p_cpup.skprx |
3.60-3.74 | SceDeci4pCtrlp | 0x2808000000010016 | os0:kd/deci4p_ctrlp.skprx |
3.60-3.74 | SceDeci4pDbgp | 0x2808000000010001 | os0:kd/deci4p_dbgp.skprx |
3.60-3.74 | SceDeci4pDfMgr | 0x2808000000010008 | os0:kd/deci4p_dfmgr.skprx |
3.60-3.74 | SceDeci4pDrfp | 0x2808000000010000 | os0:kd/deci4p_drfp.skprx |
3.60-3.74 | SceDeci4pDtracep | 0x2808000000010010 | os0:kd/deci4p_dtracep.skprx |
3.60-3.74 | SceDeci4pLoadp | 0x280800000001000A | os0:kd/deci4p_loadp.skprx |
3.60-3.74 | SceDeci4pPamp | 0x280800000001000B | os0:kd/deci4p_pamp.skprx |
3.60-3.74 | SceDeci4pRDrfp | 0x2808000000010014 | os0:kd/deci4p_rdrfp.skprx |
3.60-3.74 | SceDeci4pSCTtyp | 0x2808000000010097 | os0:kd/deci4p_scttyp.skprx |
3.60-3.74 | SceDeci4pSDbgp | 0x2808000000010081 | os0:kd/deci4p_sdbgp.skprx |
3.60-3.74 | SceDeci4pSDeci2p | 0x2808000000010083 | os0:kd/deci4p_sdeci2p.skprx |
3.60-3.74 | SceDeci4pSDfCtl | 0x2808000000010093 | os0:kd/deci4p_sdfctl.skprx |
3.60-3.74 | SceDeci4pSDfMgr | 0x2808000000010088 | os0:kd/deci4p_sdfmgr.skprx |
3.60-3.74 | SceDeci4pSDrfp | 0x2808000000010080 | os0:kd/deci4p_sdrfp.skprx |
3.60-3.74 | SceDeci4pSTtyp | 0x2808000000010089 | os0:kd/deci4p_sttyp.skprx |
3.60-3.74 | SceDeci4pTmcp | 0x2808000000010017 | os0:kd/deci4p_tmcp.skprx |
3.60-3.74 | SceDeci4pTsmp | 0x280800000001000F | os0:kd/deci4p_tsmp.skprx |
3.60-3.74 | SceDeci4pTtyp | 0x2808000000010009 | os0:kd/deci4p_ttyp.skprx |
3.60-3.74 | SceDeci4pUserp | 0x2808000000010011 | os0:kd/deci4p_userp.skprx |
3.60-3.74 | SceDeci4pVcp | 0x2808000000010012 | os0:kd/deci4p_vcp.skprx |
3.60-3.74 | SceSblPcffBin | 0x2808000000000101 | vs0:app/NPXS10028_pcff.skprx |
3.60 | SceAppMgr | None | bootfs:appmgr.skprx |
3.60 | SceAudio | None | bootfs:audio.skprx |
3.60 | SceAudioin | None | bootfs:audioin.skprx |
3.60 | SceAVConfig | None | bootfs:av_config.skprx |
3.60 | SceAvcodec | None | bootfs:avcodec.skprx |
3.60 | SceBbmc | None | bootfs:bbmc.skprx |
3.60 | SceBt | None | bootfs:bt.skprx |
3.60 | SceCamera | None | bootfs:camera.skprx |
3.60 | SceCameraDummy | None | bootfs:camera_dummy.skprx |
3.60 | SceClockgen | None | bootfs:clockgen.skprx |
3.60 | SceCodec | None | bootfs:codec.skprx |
3.60 | SceCodec | None | bootfs:codec_cx.skprx |
3.60 | SceCompat | None | bootfs:compat.skprx |
3.60 | SceCoredump | None | bootfs:coredump.skprx |
3.60 | SceCtrl | None | bootfs:ctrl.skprx |
3.60 | SceDs3 | None | bootfs:ds3.skprx |
3.60 | SceError | None | bootfs:error.skprx |
3.60 | SceFios2Kernel | None | bootfs:fios2.skprx |
3.60 | SceGps | None | bootfs:gps.skprx |
3.60 | SceGpuEs4 | None | bootfs:gpu_es4.skprx |
3.60 | SceGpuEs4Init | None | bootfs:gpuinit_es4.skprx |
3.60 | SceHid | None | bootfs:hid.skprx |
3.60 | SceHpremote | None | bootfs:hpremote.skprx |
3.60 | SceIdStorage | None | bootfs:idstorage.skprx |
3.60 | SceKrm | None | bootfs:krm.skprx |
3.60 | SceMotionDev | None | bootfs:motion.skprx |
3.60 | SceMotionDevDummy | None | bootfs:motion_dummy.skprx |
3.60 | SceMtpIfDriver | None | bootfs:mtpif.skprx |
3.60 | SceNetPs | None | bootfs:net_ps.skprx |
3.60 | SceNgs | None | bootfs:ngs.skprx |
3.60 | SceNpDrm | None | bootfs:npdrm.skprx |
3.60 | ScePfsMgr | None | bootfs:pfsmgr.skprx |
3.60 | SceSblPostSsMgr | None | bootfs:post_ss_mgr.skprx |
3.60 | ScePower | None | bootfs:power.skprx |
3.60 | SceRegistryMgr | None | bootfs:regmgr.skprx |
3.60 | SceSysmodule | None | bootfs:sysmodule.skprx |
3.60 | SceTouch | None | bootfs:touch.skprx |
3.60 | SceTouchDummy | None | bootfs:touch_dummy.skprx |
3.60 | SceTty2uart | None | bootfs:tty2uart.skprx |
3.60 | SceUdcd | None | bootfs:udcd.skprx |
3.60 | SceUlobjMgr | None | bootfs:ulobjmgr.skprx |
3.60 | SceUsbMass | None | bootfs:umass.skprx |
3.60 | SceSblUpdateMgr | None | bootfs:update_mgr.skprx |
3.60 | SceUsbEtherRtl | None | bootfs:usb_ether_rtl.skprx |
3.60 | SceUsbEtherSmsc | None | bootfs:usb_ether_smsc.skprx |
3.60 | SceUsbAudio | None | bootfs:usbaudio.skprx |
3.60 | SceUsbd | None | bootfs:usbd.skprx |
3.60 | SceUsbMtp | None | bootfs:usbmtp.skprx |
3.60 | SceUsbPspcm | None | bootfs:usbpspcm.skprx |
3.60 | SceUsbSerial | None | bootfs:usbserial.skprx |
3.60 | SceUsbServ | None | bootfs:usbserv.skprx |
3.60 | SceUsbstorDriver | None | bootfs:usbstor.skprx |
3.60 | SceUsbstorVStorDriver | None | bootfs:usbstorvstor.skprx |
3.60 | SceCodecEngineWrapper | None | bootfs:vnz_wrapper.skprx |
3.60 | SceVshBridge | None | bootfs:vshbridge.skprx |
3.60 | SceWlanBt | None | bootfs:wlanbt.skprx |
User modules and apps
Version | Name | program-authority-id | Path |
---|---|---|---|
3.60 | ScePsp2Swu | 0x2800800000000002 | ud0:PSP2UPDATE/psp2swu.self |
3.60 | SceSafeMode | 0x2800000000000015 | os0:ue/safemode.self |
3.60 | SceCuiSetUpper | 0x2800800000000003 | os0:ue/cui_setupper.self |
3.60 | SceAvcodecUser | 0x2800000000028005 | os0:us/avcodec_us.suprx |
3.60 | SceDriverUser | 0x280000000002800A | os0:us/driver_us.suprx |
3.60 | SceGpuEs4User | 0x280000000002802A | os0:us/libgpu_es4.suprx |
3.60 | SceGxm | 0x2800000000028030 | os0:us/libgxm_es4.suprx |
3.60 | SceLibKernel | 0x2800000000028034 | os0:us/libkernel.suprx |
3.60 | SceNear | 0x2800000000000027 | vs0:app/NPXS10000/eboot.bin |
3.60 | SceParty | 0x2800000000000026 | vs0:app/NPXS10001/eboot.bin |
3.60 | SceNpPartyAppUtil | 0x280000000002001F | vs0:app/NPXS10001/np_party_app.suprx |
3.60 | SceStoreBrowser | 0x280000000000001C | vs0:app/NPXS10002/eboot.bin |
3.60 | SceWebBrowser | 0x2800000000000025 | vs0:app/NPXS10003/eboot.bin |
3.60 | ScePhotoCam | 0x2800000000000018 | vs0:app/NPXS10004/eboot.bin |
3.60 | SceFriend | 0x280000000000001A | vs0:app/NPXS10006/eboot.bin |
3.60 | SceTrophy | 0x280000000000001B | vs0:app/NPXS10008/eboot.bin |
3.60 | SceMusicBrowser | 0x2800000000000011 | vs0:app/NPXS10009/eboot.bin |
3.60 | SceVideoPlayer | 0x280000000000001E | vs0:app/NPXS10010/eboot.bin |
3.60 | SceRemotePlay | 0x2800000000000012 | vs0:app/NPXS10012/eboot.bin |
3.60 | ScePS4Link | 0x280000000000700A | vs0:app/NPXS10013/eboot.bin |
3.60 | gaikai_player | 0x2800000000020045 | vs0:app/NPXS10013/gaikai-player.suprx |
3.60 | SceSecondScreen | 0x2800000000020046 | vs0:app/NPXS10013/libSceSecondScreen.suprx |
3.60 | ScePsnMail | 0x2800000000000020 | vs0:app/NPXS10014/eboot.bin |
3.60 | SceSettings | 0x2800000000000010 | vs0:app/NPXS10015/eboot.bin |
3.60 | SceSystemSettingsCore | 0x2800000000020024 | vs0:app/NPXS10015/system_settings_core.suprx |
3.60 | SceSignup | 0x2800000000000019 | vs0:app/NPXS10018/eboot.bin |
3.60 | SceTelRegMain | 0x2800000000000029 | vs0:app/NPXS10021/eboot.bin |
3.60 | SceTelReg | 0x2800000000020026 | vs0:app/NPXS10021/tel_reg.suprx |
3.60 | ScePhotoExport | 0x2800000000000016 | vs0:app/NPXS10023/eboot.bin |
3.60 | SceNearAutoLocation | 0x280000000000002B | vs0:app/NPXS10024/eboot.bin |
3.60 | SceNearAutoCheckin | 0x280000000000002C | vs0:app/NPXS10025/eboot.bin |
3.60 | SceContentManager | 0x280000000000002D | vs0:app/NPXS10026/eboot.bin |
3.60 | SceGameManual | 0x2800000000000022 | vs0:app/NPXS10027/eboot.bin |
3.60 | ScePspemu | 0x2800000000000013 | vs0:app/NPXS10028/eboot.bin |
3.60 | SceMarlinBgMtp | 0x280000000000002A | vs0:app/NPXS10029/eboot.bin |
3.60 | fake_package_installer | 0x280000000000002E | vs0:app/NPXS10031/eboot.bin |
3.60 | SceNearUtilService | 0x280000000000002F | vs0:app/NPXS10032/eboot.bin |
3.60 | SceAvMediaService | 0x2800000000000031 | vs0:app/NPXS10036/eboot.bin |
3.60 | SceMsgMiddleWare | 0x2800000000000021 | vs0:app/NPXS10063/eboot.bin |
3.60 | SceGriefReportDialogApp | 0x2800000000000034 | vs0:app/NPXS10065/eboot.bin |
3.60 | SceGriefReportDialog | 0x2800000000020030 | vs0:app/NPXS10065/grief_report_dialog.suprx |
3.60 | SceEmailApp | 0x2800000000000035 | vs0:app/NPXS10072/eboot.bin |
3.60 | SceEmailEngine | 0x2800000000020035 | vs0:app/NPXS10072/email_engine.suprx |
3.60 | SceEmailBg | 0x2800000000000037 | vs0:app/NPXS10073/eboot.bin |
3.60 | SceCrashReport | 0x2800000000000036 | vs0:app/NPXS10077/eboot.bin |
3.60 | SceComboPlay | 0x2800000000000040 | vs0:app/NPXS10078/eboot.bin |
3.60 | SceDailyCheckerBg | 0x2800000000000039 | vs0:app/NPXS10079/eboot.bin |
3.60 | swagner | 0x2800000000000041 | vs0:app/NPXS10080/eboot.bin |
3.60 | ScePsmManual | 0x2800000000000038 | vs0:app/NPXS10081/eboot.bin |
3.60 | SceWebKitProcess | 0x2800000000008005 | vs0:app/NPXS10083/eboot.bin |
3.60 | SceWebKitProcessMini | 0x2800000000008005 | vs0:app/NPXS10084/eboot.bin |
3.60 | SceVideoStreaming | 0x2800000000000044 | vs0:app/NPXS10085/eboot.bin |
3.60 | SceCalendar | 0x2800000000000042 | vs0:app/NPXS10091/eboot.bin |
3.60 | SceCalendarBg | 0x2800000000000043 | vs0:app/NPXS10092/eboot.bin |
3.60 | SceKidsApp | 0x2800000000000046 | vs0:app/NPXS10094/eboot.bin |
3.60 | ScePanorama | 0x2800000000000045 | vs0:app/NPXS10095/eboot.bin |
3.60 | SceStitcherCoreAdapter | 0x2800000000020041 | vs0:app/NPXS10095/stitch_core_prx.suprx |
3.60 | SceStitchAdapter | 0x2800000000020042 | vs0:app/NPXS10095/stitch_prx.suprx |
3.60 | ScePS4Link | 0x280000000000700A | vs0:app/NPXS10098/eboot.bin |
3.60 | gaikai_player | 0x2800000000020045 | vs0:app/NPXS10098/gaikai-player.suprx |
3.60 | SceHostCollaboService | 0x2800000000000047 | vs0:app/NPXS10100/eboot.bin |
3.60 | SceBgCopyResultBrowser | 0x2800000000000048 | vs0:app/NPXS10101/eboot.bin |
3.60 | SceWebFiltering | 0x280000000002807F | vs0:data/external/webcore/jx_web_filtering.suprx |
3.60 | ScePsp2Compat | 0x2800000000028097 | vs0:data/external/webcore/ScePsp2Compat.suprx |
3.60 | SceWebKit | 0x2800000000028099 | vs0:data/external/webcore/SceWebKitModule.suprx |
3.60 | SceLibVitaJSExtObj | 0x280000000002807E | vs0:data/external/webcore/vita_jsextobj.suprx |
3.60 | SceActivityDb | 0x2800000000028001 | vs0:sys/external/activity_db.suprx |
3.60 | SceNetAdhocMatching | 0x2800000000028002 | vs0:sys/external/adhoc_matching.suprx |
3.60 | SceAppUtil | 0x2800000000028003 | vs0:sys/external/apputil.suprx |
3.60 | SceAppUtilExt | 0x28000000000280A5 | vs0:sys/external/apputil_ext.suprx |
3.60 | SceAudiocodec | 0x2800000000028004 | vs0:sys/external/audiocodec.suprx |
3.60 | SceAvcdecForPlayer | 0x28000000000280AC | vs0:sys/external/avcdec_for_player.suprx |
3.60 | SceBgAppUtil | 0x2800000000028086 | vs0:sys/external/bgapputil.suprx |
3.60 | ScebXCe | 0x2800000000028007 | vs0:sys/external/bXCe.suprx |
3.60 | SceCommonGuiDialog | 0x2800000000028008 | vs0:sys/external/common_gui_dialog.suprx |
3.60 | SceDbrecoveryUtility | 0x2800000000028080 | vs0:sys/external/dbrecovery_utility.suprx |
3.60 | SceDbutil | 0x2800000000028009 | vs0:sys/external/dbutil.suprx |
3.60 | SceFriendSelect | 0x28000000000280AE | vs0:sys/external/friend_select.suprx |
3.60 | SceIncomingDialog | 0x2800000000028087 | vs0:sys/external/incoming_dialog.suprx |
3.60 | SceIniFileProcessor | 0x280000000002800C | vs0:sys/external/ini_file_processor.suprx |
3.60 | SceAtrac | 0x2800000000028083 | vs0:sys/external/libatrac.suprx |
3.60 | SceLibc | 0x280000000002800E | vs0:sys/external/libc.suprx |
3.60 | SceCommonDialog | 0x280000000002800F | vs0:sys/external/libcdlg.suprx |
3.60 | SceCalendarDialogPlugin | 0x28000000000280AA | vs0:sys/external/libcdlg_calendar_review.suprx |
3.60 | SceCamImportDialogPlugin | 0x2800000000028079 | vs0:sys/external/libcdlg_cameraimport.suprx |
3.60 | SceCheckoutDialogPlugin | 0x2800000000028010 | vs0:sys/external/libcdlg_checkout.suprx |
3.60 | SceCompanionDialogPlugin | 0x2800000000017003 | vs0:sys/external/libcdlg_companion.suprx |
3.60 | SceCompatDialogPlugin | 0x280000000002807C | vs0:sys/external/libcdlg_compat.suprx |
3.60 | SceCrossCtlDialogPlugin | 0x2800000000028090 | vs0:sys/external/libcdlg_cross_controller.suprx |
3.60 | SceFriendListDialogPlugin | 0x2800000000028011 | vs0:sys/external/libcdlg_friendlist.suprx |
3.60 | SceFriendList2DialogPlugin | 0x28000000000280A8 | vs0:sys/external/libcdlg_friendlist2.suprx |
3.60 | SceNpGameCustomDataDPlugin | 0x28000000000280B1 | vs0:sys/external/libcdlg_game_custom_data.suprx |
3.60 | SceNpGameCustomDataDlgImpl | 0x28000000000280B2 | vs0:sys/external/libcdlg_game_custom_data_impl.suprx |
3.60 | SceImeDialogPlugin | 0x2800000000028012 | vs0:sys/external/libcdlg_ime.suprx |
3.60 | SceInvitationDlgPlugin | 0x28000000000280AF | vs0:sys/external/libcdlg_invitation.suprx |
3.60 | SceInvitationDlgImplPlugin | 0x28000000000280B0 | vs0:sys/external/libcdlg_invitation_impl.suprx |
3.60 | SceCommonDialogMain | 0x2800000000028013 | vs0:sys/external/libcdlg_main.suprx |
3.60 | SceMsgDialogPlugin | 0x2800000000028015 | vs0:sys/external/libcdlg_msg.suprx |
3.60 | SceNearDialogPlugin | 0x280000000002809F | vs0:sys/external/libcdlg_near.suprx |
3.60 | SceNetCheckDialogPlugin | 0x2800000000028017 | vs0:sys/external/libcdlg_netcheck.suprx |
3.60 | SceNpEulaDialogPlugin | 0x2800000000028089 | vs0:sys/external/libcdlg_npeula.suprx |
3.60 | SceNpProfile2DialogPlugin | 0x28000000000280A9 | vs0:sys/external/libcdlg_npprofile2.suprx |
3.60 | SceNpMessageDialogPlugin | 0x280000000002801A | vs0:sys/external/libcdlg_np_message.suprx |
3.60 | SceNpSnsFbDialogPlugin | 0x2800000000028082 | vs0:sys/external/libcdlg_np_sns_fb.suprx |
3.60 | SceTrophySetupDialogPlugin | 0x280000000002801B | vs0:sys/external/libcdlg_np_trophy_setup.suprx |
3.60 | ScePhotoImportDialogPlugin | 0x280000000002801C | vs0:sys/external/libcdlg_photoimport.suprx |
3.60 | ScePhotoReviewDialogPlugin | 0x280000000002801D | vs0:sys/external/libcdlg_photoreview.suprx |
3.60 | ScePocsDialogPlugin | 0x2800000000020040 | vs0:sys/external/libcdlg_pocketstation.suprx |
3.60 | SceRemoteOSKDialogPlugin | 0x2800000000017004 | vs0:sys/external/libcdlg_remote_osk.suprx |
3.60 | SceSaveDataDialogPlugin | 0x280000000002801E | vs0:sys/external/libcdlg_savedata.suprx |
3.60 | SceTwitterDialogPlugin | 0x2800000000028096 | vs0:sys/external/libcdlg_twitter.suprx |
3.60 | SceTwLoginDialogPlugin | 0x280000000002809A | vs0:sys/external/libcdlg_tw_login.suprx |
3.60 | SceVideoImportDialogPlugin | 0x28000000000280B3 | vs0:sys/external/libcdlg_videoimport.suprx |
3.60 | SceClipboard | 0x2800000000028020 | vs0:sys/external/libclipboard.suprx |
3.60 | SceLibDbg | 0x2800000000028023 | vs0:sys/external/libdbg.suprx |
3.60 | SceFiber | 0x2800000000028024 | vs0:sys/external/libfiber.suprx |
3.60 | SceLibFios2 | 0x2800000000028026 | vs0:sys/external/libfios2.suprx |
3.60 | SceLibG729 | 0x2800000000028027 | vs0:sys/external/libg729.suprx |
3.60 | SceLibGameUpdate | 0x28000000000280A1 | vs0:sys/external/libgameupdate.suprx |
3.60 | SceHandwriting | 0x280000000002807A | vs0:sys/external/libhandwriting.suprx |
3.60 | SceLibHttp | 0x2800000000028032 | vs0:sys/external/libhttp.suprx |
3.60 | SceIme | 0x2800000000028033 | vs0:sys/external/libime.suprx |
3.60 | SceIpmiNonGameApp | 0x2800000000028088 | vs0:sys/external/libipmi_nongame.suprx |
3.60 | SceLibLocation | 0x2800000000028036 | vs0:sys/external/liblocation.suprx |
3.60 | SceLibLocationExtension | 0x280000000002809C | vs0:sys/external/liblocation_extension.suprx |
3.60 | SceLibLocationFactory | 0x2800000000028092 | vs0:sys/external/liblocation_factory.suprx |
3.60 | SceLibLocationInternal | 0x2800000000028091 | vs0:sys/external/liblocation_internal.suprx |
3.60 | SceLibMarlin | 0x280000000002002C | vs0:sys/external/libmln.suprx |
3.60 | MarlinAppLib | 0x2800000000024003 | vs0:sys/external/libmlnapplib.suprx |
3.60 | SceMarlinDownloader | 0x2800000000020031 | vs0:sys/external/libmlndownloader.suprx |
3.60 | SceAacenc | 0x2800000000028078 | vs0:sys/external/libnaac.suprx |
3.60 | SceNet | 0x2800000000028037 | vs0:sys/external/libnet.suprx |
3.60 | SceLibNetCtl | 0x2800000000028038 | vs0:sys/external/libnetctl.suprx |
3.60 | SceNgsUser | 0x2800000000028039 | vs0:sys/external/libngs.suprx |
3.60 | ScePaf | 0x280000000002803A | vs0:sys/external/libpaf.suprx |
3.60 | ScePafWebMapView | 0x2800000000020039 | vs0:sys/external/libpaf_web_map_view.suprx |
3.60 | ScePerf | 0x280000000002803C | vs0:sys/external/libperf.suprx |
3.60 | SceLibPgf | 0x280000000002803D | vs0:sys/external/libpgf.suprx |
3.60 | SceLibPvf | 0x280000000002803E | vs0:sys/external/libpvf.suprx |
3.60 | SceLibRudp | 0x2800000000028043 | vs0:sys/external/librudp.suprx |
3.60 | SceSasUser | 0x2800000000028044 | vs0:sys/external/libsas.suprx |
3.60 | SceAvPlayer | 0x280000000002809E | vs0:sys/external/libsceavplayer.suprx |
3.60 | SceBeisobmf | 0x2800000000028093 | vs0:sys/external/libSceBeisobmf.suprx |
3.60 | SceBemp2sys | 0x2800000000028094 | vs0:sys/external/libSceBemp2sys.suprx |
3.60 | SceCompanionUtil | 0x2800000000017002 | vs0:sys/external/libSceCompanionUtil.suprx |
3.60 | SceDtcpIp | 0x280000000002808D | vs0:sys/external/libSceDtcpIp.suprx |
3.60 | SceLibft2 | 0x2800000000028045 | vs0:sys/external/libSceFt2.suprx |
3.60 | SceJpegArm | 0x2800000000028046 | vs0:sys/external/libscejpegarm.suprx |
3.60 | SceJpegEncArm | 0x2800000000028047 | vs0:sys/external/libscejpegencarm.suprx |
3.60 | SceLibJson | 0x28000000000280AD | vs0:sys/external/libSceJson.suprx |
3.60 | SceMp4 | 0x2800000000028076 | vs0:sys/external/libscemp4.suprx |
3.60 | SceLibMp4Recorder | 0x28000000000280A4 | vs0:sys/external/libSceMp4Rec.suprx |
3.60 | SceMusicExport | 0x2800000000028048 | vs0:sys/external/libSceMusicExport.suprx |
3.60 | SceNearDialogUtil | 0x280000000002809B | vs0:sys/external/libSceNearDialogUtil.suprx |
3.60 | SceNearUtil | 0x2800000000028049 | vs0:sys/external/libSceNearUtil.suprx |
3.60 | ScePhotoExport | 0x280000000002804A | vs0:sys/external/libScePhotoExport.suprx |
3.60 | ScePromoterUtil | 0x2800000000028081 | vs0:sys/external/libScePromoterUtil.suprx |
3.60 | SceScreenShot | 0x280000000002804B | vs0:sys/external/libSceScreenShot.suprx |
3.60 | SceShutterSound | 0x280000000002804C | vs0:sys/external/libSceShutterSound.suprx |
3.60 | SceSqlite | 0x280000000002804D | vs0:sys/external/libSceSqlite.suprx |
3.60 | SceTelephonyUtil | 0x280000000002808A | vs0:sys/external/libSceTelephonyUtil.suprx |
3.60 | SceTeleportClient | 0x28000000000280A3 | vs0:sys/external/libSceTeleportClient.suprx |
3.60 | SceTeleportServer | 0x28000000000280A2 | vs0:sys/external/libSceTeleportServer.suprx |
3.60 | SceVideoExport | 0x2800000000024001 | vs0:sys/external/libSceVideoExport.suprx |
3.60 | SceVideoSearchEmpr | 0x2800000000020034 | vs0:sys/external/libSceVideoSearchEmpr.suprx |
3.60 | SceLibXml | 0x280000000002804F | vs0:sys/external/libSceXml.suprx |
3.60 | SceShellSvc | 0x2800000000028050 | vs0:sys/external/libshellsvc.suprx |
3.60 | SceLibSsl | 0x2800000000028051 | vs0:sys/external/libssl.suprx |
3.60 | SceSystemGesture | 0x2800000000028053 | vs0:sys/external/libsystemgesture.suprx |
3.60 | SceUlt | 0x2800000000028054 | vs0:sys/external/libult.suprx |
3.60 | SceVoice | 0x2800000000028055 | vs0:sys/external/libvoice.suprx |
3.60 | SceVoiceQoS | 0x2800000000028056 | vs0:sys/external/libvoiceqos.suprx |
3.60 | SceLiveAreaUtil | 0x2800000000028057 | vs0:sys/external/livearea_util.suprx |
3.60 | mail_api_for_local_libc | 0x28000000000280A0 | vs0:sys/external/mail_api_for_local_libc.suprx |
3.60 | SceNearProfile | 0x2800000000028058 | vs0:sys/external/near_profile.suprx |
3.60 | SceNotificationUtil | 0x2800000000028085 | vs0:sys/external/notification_util.suprx |
3.60 | SceNpActivityNet | 0x2800000000028059 | vs0:sys/external/np_activity.suprx |
3.60 | SceNpActivity | 0x280000000002805A | vs0:sys/external/np_activity_sdk.suprx |
3.60 | SceNpBasic | 0x280000000002805B | vs0:sys/external/np_basic.suprx |
3.60 | SceNpCommerce2 | 0x280000000002805C | vs0:sys/external/np_commerce2.suprx |
3.60 | SceNpCommon | 0x280000000002805D | vs0:sys/external/np_common.suprx |
3.60 | SceNpCommonPs4 | 0x28000000000280A7 | vs0:sys/external/np_common_ps4.suprx |
3.60 | SceNpFriendPrivacyLevel | 0x280000000002805E | vs0:sys/external/np_friend_privacylevel.suprx |
3.60 | SceNpKdc | 0x280000000002805F | vs0:sys/external/np_kdc.suprx |
3.60 | SceNpManager | 0x2800000000028060 | vs0:sys/external/np_manager.suprx |
3.60 | SceNpMatching2 | 0x2800000000028061 | vs0:sys/external/np_matching2.suprx |
3.60 | SceNpMessage | 0x2800000000028062 | vs0:sys/external/np_message.suprx |
3.60 | SceNpMessageContactsPlugin | 0x2800000000028074 | vs0:sys/external/np_message_contacts.suprx |
3.60 | SceNpMessageDlgImplPlugin | 0x2800000000028075 | vs0:sys/external/np_message_dialog_impl.suprx |
3.60 | SceNpMessagePadding | 0x2800000000028095 | vs0:sys/external/np_message_padding.suprx |
3.60 | SceNpPartyGameUtil | 0x2800000000028063 | vs0:sys/external/np_party.suprx |
3.60 | SceNpScore | 0x2800000000028064 | vs0:sys/external/np_ranking.suprx |
3.60 | SceNpSignaling | 0x280000000002808F | vs0:sys/external/np_signaling.suprx |
3.60 | SceNpSnsFacebook | 0x2800000000028084 | vs0:sys/external/np_sns_facebook.suprx |
3.60 | SceNpTrophy | 0x2800000000028065 | vs0:sys/external/np_trophy.suprx |
3.60 | SceNpTus | 0x2800000000028066 | vs0:sys/external/np_tus.suprx |
3.60 | SceNpUtility | 0x2800000000028067 | vs0:sys/external/np_utility.suprx |
3.60 | SceNpWebApi | 0x28000000000280A6 | vs0:sys/external/np_webapi.suprx |
3.60 | ScePartyMemberListPlugin | 0x280000000002808B | vs0:sys/external/party_member_list.suprx |
3.60 | SceDrmPsmKdc | 0x280000000002808E | vs0:sys/external/psmkdc.suprx |
3.60 | SceLibPspnetAdhoc | 0x280000000002808C | vs0:sys/external/pspnet_adhoc.suprx |
3.60 | SceSignInExt | 0x28000000000280AB | vs0:sys/external/signin_ext.suprx |
3.60 | SceSqliteVsh | 0x280000000002806E | vs0:sys/external/sqlite.suprx |
3.60 | SceStoreCheckoutPlugin | 0x280000000002806F | vs0:sys/external/store_checkout_plugin.suprx |
3.60 | SceTriggerUtil | 0x2800000000024002 | vs0:sys/external/trigger_util.suprx |
3.60 | SceWebUIPlugin | 0x2800000000028073 | vs0:sys/external/web_ui_plugin.suprx |
3.60 | SceAppSettings | 0x2800000000020002 | vs0:vsh/common/app_settings.suprx |
3.60 | SceAuthPlugin | 0x2800000000020003 | vs0:vsh/common/auth_plugin.suprx |
3.60 | SceAvContentHandler | 0x2800000000020004 | vs0:vsh/common/av_content_handler.suprx |
3.60 | SceBackupRestore | 0x280000000002002A | vs0:vsh/common/backup_restore.suprx |
3.60 | SceContentOperation | 0x2800000000020006 | vs0:vsh/common/content_operation.suprx |
3.60 | SceDbRecovery | 0x2800000000020007 | vs0:vsh/common/dbrecovery_plugin.suprx |
3.60 | SceDbSetup | 0x2800000000020008 | vs0:vsh/common/dbsetup.suprx |
3.60 | SceBEAVCorePlayer | 0x280000000002003C | vs0:vsh/common/libBEAVCorePlayer.suprx |
3.60 | SceLibFflMp4 | 0x280000000002000F | vs0:vsh/common/libFflMp4.suprx |
3.60 | SceLibical | 0x2800000000020044 | vs0:vsh/common/libical.suprx |
3.60 | SceLibicalss | 0x2800000000020043 | vs0:vsh/common/libicalss.suprx |
3.60 | SceLibMarlin | 0x280000000002002C | vs0:vsh/common/libmarlin.suprx |
3.60 | SceMarlinDownloader | 0x2800000000020013 | vs0:vsh/common/libmarlindownloader.suprx |
3.60 | SceLibMarlinPb | 0x280000000002002D | vs0:vsh/common/libmarlin_pb.suprx |
3.60 | SceLibMtp | 0x2800000000020014 | vs0:vsh/common/libmtp.suprx |
3.60 | SceLibMtpHttp | 0x280000000002003A | vs0:vsh/common/libmtphttp.suprx |
3.60 | SceLibMtpHttpWrapper | 0x280000000002003B | vs0:vsh/common/libmtphttp_wrapper.suprx |
3.60 | SceLibFflVuMp4 | 0x2800000000020037 | vs0:vsh/common/libSenvuabsFFsdk.suprx |
3.60 | SceVideoProfiler | 0x2800000000020016 | vs0:vsh/common/libvideoprofiler.suprx |
3.60 | mail_api_for_local | 0x2800000000020038 | vs0:vsh/common/mail_api_for_local.suprx |
3.60 | SceMtpr3 | 0x280000000002001D | vs0:vsh/common/mtpr3.suprx |
3.60 | SceMtpClient | 0x280000000002001E | vs0:vsh/common/mtp_client.suprx |
3.60 | SceNpGriefReport | 0x280000000002002F | vs0:vsh/common/np_grief_report.suprx |
3.60 | SceAACPromoter | 0x2800000000020001 | vs0:vsh/common/mms/AACPromoter.suprx |
3.60 | SceBmpPromoter | 0x2800000000020005 | vs0:vsh/common/mms/bmp_promoter.suprx |
3.60 | SceGifPromoter | 0x280000000002000B | vs0:vsh/common/mms/gif_promoter.suprx |
3.60 | SceJpegPromoter | 0x280000000002000E | vs0:vsh/common/mms/jpeg_promoter.suprx |
3.60 | SceMetaGen | 0x280000000002001A | vs0:vsh/common/mms/meta_gen.suprx |
3.60 | SceMp3Promoter | 0x280000000002001B | vs0:vsh/common/mms/Mp3Promoter.suprx |
3.60 | SceMsvPromoter | 0x280000000002001C | vs0:vsh/common/mms/MsvPromoter.suprx |
3.60 | ScePngPromoter | 0x2800000000020020 | vs0:vsh/common/mms/png_promoter.suprx |
3.60 | SceRiffPromoter | 0x2800000000020022 | vs0:vsh/common/mms/RiffPromoter.suprx |
3.60 | SceSensMe | 0x2800000000020023 | vs0:vsh/common/mms/SensMe.suprx |
3.60 | SceTiffPromoter | 0x2800000000020027 | vs0:vsh/common/mms/tiff_promoter.suprx |
3.60 | SceGameCardInstallerPlugin | 0x280000000002003F | vs0:vsh/game/gamecard_installer_plugin.suprx |
3.60 | SceGameDataPlugin | 0x2800000000020009 | vs0:vsh/game/gamedata_plugin.suprx |
3.60 | SceInitialSetup | 0x2800000000000014 | vs0:vsh/initialsetup/initialsetup.self |
3.60 | SceOnlineStoragePlugin | 0x280000000002003E | vs0:vsh/online_storage/online_storage_plugin.suprx |
3.60 | SceAuthResetPlugin | 0x2800000000020029 | vs0:vsh/shell/auth_reset_plugin.suprx |
3.60 | SceIduUpdate | 0x280000000002002E | vs0:vsh/shell/idu_update_plugin.suprx |
3.60 | SceImePlugin | 0x280000000002000C | vs0:vsh/shell/ime_plugin.suprx |
3.60 | SceImposeNet | 0x280000000002000D | vs0:vsh/shell/impose_net_plugin.suprx |
3.60 | SceLibLocationDolceProvide | 0x280000000002003D | vs0:vsh/shell/liblocation_dolce_provider.suprx |
3.60 | SceLibLocationPermission | 0x2800000000020010 | vs0:vsh/shell/liblocation_permission.suprx |
3.60 | SceLibLocationProvider | 0x2800000000020011 | vs0:vsh/shell/liblocation_provider.suprx |
3.60 | SceLsdb | 0x2800000000020018 | vs0:vsh/shell/livespace_db.suprx |
3.60 | SceLocationPlugin | 0x2800000000020019 | vs0:vsh/shell/location_dialog_plugin.suprx |
3.60 | SceShell | 0x2800000000000001 | vs0:vsh/shell/shell.self |
3.60 | SceTelInitialCheck | 0x2800000000020025 | vs0:vsh/shell/telephony/initial_check/tel_initial_check_plugin.suprx |