Difference between revisions of "SceSblUpdateMgr"

From Vita Development Wiki
Jump to navigation Jump to search
m (→‎Types: Fix fields of SceSblUsSpkgInfo)
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
See also [[Updater]]. This module performs many platform checks.
  
Many platform checks are performed on the kernel side.
+
== Module ==
  
Also see [[Updater]].
 
 
== Module ==
 
 
This module exists only in the non-secure kernel. The SELF can be found in <code>bootfs:update_mgr.skprx</code>.
 
This module exists only in the non-secure kernel. The SELF can be found in <code>bootfs:update_mgr.skprx</code>.
  
Line 10: Line 8:
 
! Version !! World !! Privilege
 
! Version !! World !! Privilege
 
|-
 
|-
| 1.69-3.60 || Non-secure || Kernel
+
| 0.931-3.740.011 || Non-secure || Kernel
 
|}
 
|}
  
 
== Libraries ==
 
== Libraries ==
This module exports libraries to both kernel and user.
 
  
 
=== Known NIDs ===
 
=== Known NIDs ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Version
+
! Version !! Name !! World !! Visibility !! NID
! Name
 
! World
 
! Visibility
 
! NID
 
 
|-
 
|-
| 0.931-1.69 || SceSblUpdateMgrForKernel || Non-secure || Kernel || 0xC4466E48
+
| 0.931-1.692.000 || SceSblUpdateMgrForKernel || Non-secure || Kernel || 0xC4466E48
 
|-
 
|-
| 0.931-1.69 || SceSblUpdateMgrForDriver || Non-secure || Kernel || 0x0E04CD3D
+
| 0.931-1.692.000 || SceSblUpdateMgrForDriver || Non-secure || Kernel || 0x0E04CD3D
 
|-
 
|-
| 0.931-3.60 || SceSblSsUpdateMgr || Non-secure || User || 0x31406C49
+
| 0.931-3.740.011 || SceSblSsUpdateMgr || Non-secure || User || 0x31406C49
 
|-
 
|-
| 0.990 || SceSblSsUpdateMgrAdditional || Non-secure || User || 0xBDD7A86F
+
| 0.990-1.692.000 || SceSblSsUpdateMgrAdditional || Non-secure || User || 0xBDD7A86F
 
|}
 
|}
  
Line 41: Line 34:
 
typedef struct SceSblUsSpkgInfo { // Size is 0x10 on FW 0.931-0.990
 
typedef struct SceSblUsSpkgInfo { // Size is 0x10 on FW 0.931-0.990
 
SceSize size; // size of this structure
 
SceSize size; // size of this structure
int version;
+
uint32_t version;
int reserved1;
+
uint8_t status[4];
 
int reserved2;
 
int reserved2;
 
} SceSblUsSpkgInfo;
 
} SceSblUsSpkgInfo;
Line 70: Line 63:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-0.940 || 0xD593D613
+
| 0.931-1.692.000 || 0xD593D613
 
|}
 
|}
  
Line 79: Line 72:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-0.940 || 0xBAFCA304
+
| 0.931-1.692.000 || 0xBAFCA304
 
|}
 
|}
  
Line 88: Line 81:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-0.940 || 0xF43372C4
+
| 0.931-1.692.000 || 0xF43372C4
 
|}
 
|}
  
Line 97: Line 90:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-0.940 || 0xB4AC7684
+
| 0.931-1.692.000 || 0xB4AC7684
 
|}
 
|}
  
Line 106: Line 99:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-0.940 || 0xDD90C4B9
+
| 0.931-1.692.000 || 0xDD90C4B9
 
|}
 
|}
  
Line 115: Line 108:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-0.990 || 0xF41138F1
+
| 0.931-1.692.000 || 0xF41138F1
 
|}
 
|}
  
Line 124: Line 117:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-0.990 || 0xE7F5A4C0
+
| 0.931-1.692.000 || 0xE7F5A4C0
 
|}
 
|}
  
Line 133: Line 126:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-0.990 || 0x87AC6E73
+
| 0.931-1.692.000 || 0x87AC6E73
 
|}
 
|}
  
Line 142: Line 135:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-0.990 || 0x2D69BFDC
+
| 0.931-1.692.000 || 0x2D69BFDC
 
|}
 
|}
  
Line 151: Line 144:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-0.990 || 0x45B91736
+
| 0.931-1.692.000 || 0x45B91736
 
|}
 
|}
  
Line 160: Line 153:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-0.990 || 0x99D57D18
+
| 0.931-1.692.000 || 0x99D57D18
 
|}
 
|}
  
Line 169: Line 162:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-0.990 || 0xAE7D3BF5
+
| 0.931-1.692.000 || 0xAE7D3BF5
 
|}
 
|}
  
Line 178: Line 171:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-0.990 || 0xEEC71CCC
+
| 0.931-1.692.000 || 0xEEC71CCC
 
|}
 
|}
  
Line 189: Line 182:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-0.990 || 0x266820E9
+
| 0.931-1.692.000 || 0x266820E9
 
|}
 
|}
  
Line 200: Line 193:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-0.990 || 0x6ACEF44D
+
| 0.931-1.692.000 || 0x6ACEF44D
 
|}
 
|}
  
Only return 0.
+
Only returns 0.
  
 
<source lang="C">int SceSblUpdateMgrForDriver_6ACEF44D(void);</source>
 
<source lang="C">int SceSblUpdateMgrForDriver_6ACEF44D(void);</source>
Line 211: Line 204:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-0.990 || 0x64ECC81A
+
| 0.931-1.692.000 || 0x64ECC81A
 
|}
 
|}
  
Line 220: Line 213:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-0.990 || 0x7CC73839
+
| 0.931-1.692.000 || 0x7CC73839
 
|}
 
|}
  
Line 227: Line 220:
 
int sceSblUsGetApplicableVersionForDriver(int type, void *versionBuf);
 
int sceSblUsGetApplicableVersionForDriver(int type, void *versionBuf);
 
</source>
 
</source>
 +
 +
=== SceSblUpdateMgrForDriver_C8D235C4 ===
 +
{| class="wikitable"
 +
! Version !! NID
 +
|-
 +
| 0.996.090-1.692.000 || 0xC8D235C4
 +
|}
  
 
== SceSblSsUpdateMgrAdditional ==
 
== SceSblSsUpdateMgrAdditional ==
  
This library was not present on FW 0.931, and was removed before FW 3.60. Its functions were moved to SceSblSsUpdateMgr library.
+
This library was not present on FW 0.931, and was removed since FW 1.80. Its functions were moved to SceSblSsUpdateMgr library.
  
 
=== sceSblUsInformUpdateStartedForUser ===
 
=== sceSblUsInformUpdateStartedForUser ===
Line 236: Line 236:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.990 || 0x1E40A14E
+
| 0.990-1.692.000 || 0x1E40A14E
 
|}
 
|}
  
Example value 300 for unk_number.
+
Example of value for unk_number: 300.
  
 
<source lang="C">int sceSblUsInformUpdateStartedForUser(SceUInt32 nTask, int unk_number, const char *message, SceSize messageLength);</source>
 
<source lang="C">int sceSblUsInformUpdateStartedForUser(SceUInt32 nTask, int unk_number, const char *message, SceSize messageLength);</source>
Line 247: Line 247:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.990 || 0x3A917CCE
+
| 0.990-1.692.000 || 0x3A917CCE
 
|}
 
|}
  
Line 256: Line 256:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.990 || 0x4734B987
+
| 0.990-1.692.000 || 0x4734B987
 
|}
 
|}
  
Line 265: Line 265:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.990 || 0xA870D285
+
| 0.990-1.692.000 || 0xA870D285
 
|}
 
|}
  
Example (name, value) couples: ("SdkVersion", 0x3600011), ("ScVersion", ?).
+
Example of (name, value) couples:
 +
<pre>
 +
("SdkVersion", 0x1692000)
 +
("ScVersion", ?).
 +
</pre>
  
 
<source lang="C">int sceSblUsSetSwInfoIntForUser(const char *name, SceSize nameLength, SceUInt32 value);</source>
 
<source lang="C">int sceSblUsSetSwInfoIntForUser(const char *name, SceSize nameLength, SceUInt32 value);</source>
Line 276: Line 280:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.990 || 0x8C7255C8
+
| 0.990-1.692.000 || 0x8C7255C8
 
|}
 
|}
  
 +
Example of (name, value) couples:
 +
<pre>
 
SysRevision: "sys-revision"
 
SysRevision: "sys-revision"
 
 
SysBuildNumber: "sys-build-number"
 
SysBuildNumber: "sys-build-number"
 
 
VshRepository: "vsh-repository-path"
 
VshRepository: "vsh-repository-path"
 
 
VshRevision: "vsh-revision"
 
VshRevision: "vsh-revision"
 
 
VshBuildNumber: "vsh-build-number"
 
VshBuildNumber: "vsh-build-number"
 +
</pre>
  
 
<source lang="C">int sceSblUsSetSwInfoStrForUser(const char *name, SceSize nameLength, const char *value, SceSize valueLength);</source>
 
<source lang="C">int sceSblUsSetSwInfoStrForUser(const char *name, SceSize nameLength, const char *value, SceSize valueLength);</source>
Line 295: Line 298:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.990 || 0xF157E34A
+
| 0.990-1.692.000 || 0xF157E34A
 
|}
 
|}
  
Line 306: Line 309:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-3.60 || 0x8E834565
+
| 0.931-3.740.011 || 0x8E834565
 
|}
 
|}
  
Line 319: Line 322:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-3.60 || 0xC725E3F0
+
| 0.931-3.740.011 || 0xC725E3F0
 
|}
 
|}
  
Line 332: Line 335:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-3.60 || 0x1825D954
+
| 0.931-3.740.011 || 0x1825D954
 
|}
 
|}
  
Line 346: Line 349:
 
// 5: LED OFF
 
// 5: LED OFF
 
// 6: LED INIT
 
// 6: LED INIT
// 7: ?
+
// 7: sceKernelPowerTick(flag)
// 8: ?
+
// 8: Checks if CP is enabled by DIP switch 194.
  
 
int sceSblUsPowerControlForUser(int mode, int flag);
 
int sceSblUsPowerControlForUser(int mode, int flag);
Line 356: Line 359:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-3.60 || 0x8E3EC2E1
+
| 0.931-3.740.011 || 0x8E3EC2E1
 
|}
 
|}
  
Line 367: Line 370:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-3.60 || 0x6F5EDBF4
+
| 0.931-3.740.011 || 0x6F5EDBF4
 
|}
 
|}
  
path max len : 0x3FF bytes
+
path max len: 0x3FF bytes
  
 
<source lang="C">int sceSblUsVerifyPupForUser(const char *path);</source>
 
<source lang="C">int sceSblUsVerifyPupForUser(const char *path);</source>
Line 380: Line 383:
 
| 0.990 || not present
 
| 0.990 || not present
 
|-
 
|-
| 3.60 || 0xB19366CB
+
| 3.60-3.740.011 || 0xB19366CB
 
|}
 
|}
  
path max len : 0x3FF, path len >= 0x400 : error
+
path max len: 0x3FF bytes
  
 
<source lang="C">int sceSblUsVerifyPupAdditionalSignForUser(const char *path);</source>
 
<source lang="C">int sceSblUsVerifyPupAdditionalSignForUser(const char *path);</source>
Line 391: Line 394:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.940-3.60 || 0x9BE17A06
+
| 0.940-3.740.011 || 0x9BE17A06
 
|}
 
|}
  
path max len : 0x3FF
+
path max len: 0x3FF bytes
  
 
<source lang="C">int sceSblUsVerifyPupHeaderForUser(const char *path);</source>
 
<source lang="C">int sceSblUsVerifyPupHeaderForUser(const char *path);</source>
Line 402: Line 405:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-3.60 || 0xD47FD33E
+
| 0.931-3.740.011 || 0xD47FD33E
 
|}
 
|}
  
Line 413: Line 416:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-3.60 || 0x95FC1A0A
+
| 0.931-3.740.011 || 0x95FC1A0A
 
|}
 
|}
  
Line 424: Line 427:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-3.60 || 0xC6CDEB8D
+
| 0.931-3.740.011 || 0xC6CDEB8D
 
|}
 
|}
  
path max len : 0x3FF bytes
+
path max len: 0x3FF bytes
  
 
<source lang="C">int sceSblUsVerifyPupWatermarkForUser(const char *path);</source>
 
<source lang="C">int sceSblUsVerifyPupWatermarkForUser(const char *path);</source>
Line 435: Line 438:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-3.60 || 0x6E8DDAC4
+
| 0.931-3.740.011 || 0x6E8DDAC4
 
|}
 
|}
  
Line 444: Line 447:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-3.60 || 0x1A39F6EE
+
| 0.931-3.740.011 || 0x1A39F6EE
 
|}
 
|}
  
Line 453: Line 456:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-3.60 || 0xC1792A1C
+
| 0.931-3.740.011 || 0xC1792A1C
 
|}
 
|}
  
Line 462: Line 465:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-3.60 || 0x4897AD56
+
| 0.931-3.740.011 || 0x4897AD56
 
|}
 
|}
  
Line 475: Line 478:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-3.60 || 0x4C06F41C
+
| 0.931-3.740.011 || 0x4C06F41C
 
|}
 
|}
  
Line 484: Line 487:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-3.60 || 0xBD677F5A
+
| 0.931-3.740.011 || 0xBD677F5A
 
|}
 
|}
  
Line 493: Line 496:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-3.60 || 0xF403143E
+
| 0.931-3.740.011 || 0xF403143E
 
|}
 
|}
  
Line 502: Line 505:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-3.60 || 0xBED8DFC7
+
| 0.931-3.740.011 || 0xBED8DFC7
 
|}
 
|}
  
Not implemented: does nothing.
+
Check if the current process is system privileged.
 
 
<source lang="C">
 
int sceSblUsCheckSystemIntegrityForUser(void) {
 
int state;
 
 
 
if (sceSblACIsSystemProgramForKernel(0) == 0)
 
return 0x800F022C;
 
 
 
ENTER_SYSCALL(state);
 
EXIT_SYSCALL(state);
 
 
 
return 0;
 
}
 
</source>
 
  
<source lang="C">int sceSblUsCheckSystemIntegrityForUser(void);</source>
+
<source lang="C">SceInt32 sceSblUsCheckSystemIntegrityForUser(void);</source>
  
 
=== sceSblUsGetApplicableVersionForUser ===
 
=== sceSblUsGetApplicableVersionForUser ===
Line 527: Line 516:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-3.60 || 0x3ADD4B7A
+
| 0.931-3.740.011 || 0x3ADD4B7A
 
|}
 
|}
  
 
<source lang="C">
 
<source lang="C">
// type must be 1 or 9 else "builtin revoke list cannot be found"
+
// type must be 1 or 9 else returns error "builtin revoke list cannot be found"
 
int sceSblUsGetApplicableVersionForUser(int type, void *versionBuf);
 
int sceSblUsGetApplicableVersionForUser(int type, void *versionBuf);
 
</source>
 
</source>
Line 541: Line 530:
 
| 0.990 || not present
 
| 0.990 || not present
 
|-
 
|-
| 3.60 || 0x9FC8E905
+
| 1.000.071-3.740.011 || 0x9FC8E905
 
|}
 
|}
  
Line 552: Line 541:
 
| 0.990 || not present
 
| 0.990 || not present
 
|-
 
|-
| 3.60 || 0xD0CB50AC
+
| 1.000.071-3.740.011 || 0xD0CB50AC
 
|}
 
|}
  
Line 563: Line 552:
 
| 0.990 || not present
 
| 0.990 || not present
 
|-
 
|-
| 3.60 || 0x2A02DCFB
+
| 1.000.071-3.740.011 || 0x2A02DCFB
 
|}
 
|}
  
Line 574: Line 563:
 
| 0.990 || not present
 
| 0.990 || not present
 
|-
 
|-
| 3.60 || 0x157AD4AD
+
| 1.000.071-3.740.011 || 0x157AD4AD
 
|}
 
|}
  
Line 585: Line 574:
 
| 0.990 || not present
 
| 0.990 || not present
 
|-
 
|-
| 3.60 || 0xFE930747
+
| 1.000.071-3.740.011 || 0xFE930747
 
|}
 
|}
  
Line 596: Line 585:
 
| 0.990 || not present
 
| 0.990 || not present
 
|-
 
|-
| 3.60 || 0x92A8002B
+
| 1.000.071-3.740.011 || 0x92A8002B
 
|}
 
|}
  
 
<source lang="C">int sceSblUsSetSwInfoBinForUser(char *str1, SceSize len1, char *str2, SceSize len2);</source>
 
<source lang="C">int sceSblUsSetSwInfoBinForUser(char *str1, SceSize len1, char *str2, SceSize len2);</source>
 +
 +
[[Category:ARM]]
 +
[[Category:Kernel]]
 +
[[Category:Modules]]
 +
[[Category:Library]]

Latest revision as of 20:50, 27 December 2023

See also Updater. This module performs many platform checks.

Module

This module exists only in the non-secure kernel. The SELF can be found in bootfs:update_mgr.skprx.

Version World Privilege
0.931-3.740.011 Non-secure Kernel

Libraries

Known NIDs

Version Name World Visibility NID
0.931-1.692.000 SceSblUpdateMgrForKernel Non-secure Kernel 0xC4466E48
0.931-1.692.000 SceSblUpdateMgrForDriver Non-secure Kernel 0x0E04CD3D
0.931-3.740.011 SceSblSsUpdateMgr Non-secure User 0x31406C49
0.990-1.692.000 SceSblSsUpdateMgrAdditional Non-secure User 0xBDD7A86F

Types

typedef char SceUpdateMode;

typedef struct SceSblUsSpkgInfo { // Size is 0x10 on FW 0.931-0.990
	SceSize size; // size of this structure
	uint32_t version;
	uint8_t status[4];
	int reserved2;
} SceSblUsSpkgInfo;

typedef struct SceKernelSpackageArgs { // Size is 0x2C on FW 0.931
  SceSize arg_size; // Size of this structure
  SceUInt32 package_type;
  void *addr;
  SceSize size;
  SceUInt32 flags;
  char unk[0x8];
  SceUInt32 seq_no;
  SceUInt32 result;
  SceUInt32 progress;
  SceUInt32 written_rates;
} SceKernelSpackageArgs;

SceSblUpdateMgrForKernel

SceSblUpdateMgrForKernel functions and NIDs are exactly identical to SceSblUpdateMgrForDriver.

SceSblUpdateMgrForDriver

sceSblUsVerifyPupForDriver

Version NID
0.931-1.692.000 0xD593D613
int sceSblUsVerifyPupForDriver(const char *path);

sceSblUsVerifyPupHeaderForDriver

Version NID
0.931-1.692.000 0xBAFCA304
int sceSblUsVerifyPupHeaderForDriver(const char *path);

sceSblUsVerifyPupSegmentForDriver

Version NID
0.931-1.692.000 0xF43372C4
int sceSblUsVerifyPupSegmentForDriver(const char *path);

sceSblUsVerifyPupSegmentByIdForDriver

Version NID
0.931-1.692.000 0xB4AC7684
int sceSblUsVerifyPupSegmentByIdForDriver(const char *path, void *arg2, int seg_id, int arg4);

sceSblUsVerifyPupWatermarkForDriver

Version NID
0.931-1.692.000 0xDD90C4B9
int sceSblUsVerifyPupWatermarkForDriver(const char *path);

sceSblUsUpdateSpackageForDriver

Version NID
0.931-1.692.000 0xF41138F1
int sceSblUsUpdateSpackageForDriver(int package_type, void *kaddr, SceSize size, uint32_t flags, int *pRequestId);

sceSblUsInspectSpackageForDriver

Version NID
0.931-1.692.000 0xE7F5A4C0
int sceSblUsInspectSpackageForDriver(int package_type, void *kaddr, SceSize size, uint32_t flags, int *pRequestId);

sceSblUsExtractSpackageForDriver

Version NID
0.931-1.692.000 0x87AC6E73
int sceSblUsExtractSpackageForDriver(int package_type, void *kaddr, SceSize size, uint32_t flags, int *pRequestId);

sceSblUsAllocateBufferForDriver

Version NID
0.931-1.692.000 0x2D69BFDC
int sceSblUsAllocateBufferForDriver(SceSize size, void **kaddr);

sceSblUsReleaseBufferForDriver

Version NID
0.931-1.692.000 0x45B91736
int sceSblUsReleaseBufferForDriver(void *kaddr);

sceSblUsGetStatusForDriver

Version NID
0.931-1.692.000 0x99D57D18
int sceSblUsGetStatusForDriver(int node_type, int requestId, uint32_t *seq_no, uint32_t *result, uint32_t *progress, uint32_t *written_rates);

sceSblUsGetSpkgInfoForDriver

Version NID
0.931-1.692.000 0xAE7D3BF5
int sceSblUsGetSpkgInfoForDriver(int package_type, SceSblUsSpkgInfo *pInfo);

sceSblUsGetUpdateModeForDriver

Version NID
0.931-1.692.000 0xEEC71CCC

Get UpdateMode from Ernie NVS.

int sceSblUsGetUpdateModeForDriver(SceUpdateMode *mode);

sceSblUsSetUpdateModeForDriver

Version NID
0.931-1.692.000 0x266820E9

Set UpdateMode to Ernie NVS.

int sceSblUsSetUpdateModeForDriver(SceUpdateMode mode);

SceSblUpdateMgrForDriver_6ACEF44D

Version NID
0.931-1.692.000 0x6ACEF44D

Only returns 0.

int SceSblUpdateMgrForDriver_6ACEF44D(void);

sceSblUsPowerControlForDriver

Version NID
0.931-1.692.000 0x64ECC81A
int sceSblUsPowerControlForDriver(int mode, int flag);

sceSblUsGetApplicableVersionForDriver

Version NID
0.931-1.692.000 0x7CC73839
// type must be 1 or 9 else "builtin revoke list cannot be found"
int sceSblUsGetApplicableVersionForDriver(int type, void *versionBuf);

SceSblUpdateMgrForDriver_C8D235C4

Version NID
0.996.090-1.692.000 0xC8D235C4

SceSblSsUpdateMgrAdditional

This library was not present on FW 0.931, and was removed since FW 1.80. Its functions were moved to SceSblSsUpdateMgr library.

sceSblUsInformUpdateStartedForUser

Version NID
0.990-1.692.000 0x1E40A14E

Example of value for unk_number: 300.

int sceSblUsInformUpdateStartedForUser(SceUInt32 nTask, int unk_number, const char *message, SceSize messageLength);

sceSblUsInformUpdateOngoingForUser

Version NID
0.990-1.692.000 0x3A917CCE
int sceSblUsInformUpdateOngoingForUser(SceUInt32 nTask, SceUInt32 percentage);

sceSblUsInformUpdateFinishedForUser

Version NID
0.990-1.692.000 0x4734B987
int sceSblUsInformUpdateFinishedForUser(SceUInt32 nTask, const char *message, SceSize messageLength);

sceSblUsSetSwInfoIntForUser

Version NID
0.990-1.692.000 0xA870D285

Example of (name, value) couples:

("SdkVersion", 0x1692000)
("ScVersion", ?).
int sceSblUsSetSwInfoIntForUser(const char *name, SceSize nameLength, SceUInt32 value);

sceSblUsSetSwInfoStrForUser

Version NID
0.990-1.692.000 0x8C7255C8

Example of (name, value) couples:

SysRevision: "sys-revision"
SysBuildNumber: "sys-build-number"
VshRepository: "vsh-repository-path"
VshRevision: "vsh-revision"
VshBuildNumber: "vsh-build-number"
int sceSblUsSetSwInfoStrForUser(const char *name, SceSize nameLength, const char *value, SceSize valueLength);

sceSblUsSetSwInfoBinForUser

Version NID
0.990-1.692.000 0xF157E34A
int sceSblUsSetSwInfoBinForUser(const char *name, SceSize nameLength, const void *value, SceSize valueLength);

SceSblSsUpdateMgr

sceSblUsGetUpdateModeForUser

Version NID
0.931-3.740.011 0x8E834565

Temp name was sceSblSsUpdateMgrGetBootMode.

Get UpdateMode from Ernie NVS.

int sceSblUsGetUpdateModeForUser(SceUpdateMode *mode);

sceSblUsSetUpdateModeForUser

Version NID
0.931-3.740.011 0xC725E3F0

Temp name was sceSblSsUpdateMgrSetBootMode.

Set UpdateMode to Ernie NVS.

int sceSblUsSetUpdateModeForUser(SceUpdateMode mode);

sceSblUsPowerControlForUser

Version NID
0.931-3.740.011 0x1825D954

Temp name was sceSblSsUpdateMgrSendCommand.

// Modes:
// 0: reboot target and/or CP with or without CP update. flag = 2 -> reboot CP, flag = 5 -> reboot Ernie
// 1: shutdown target. flag 5 = shutdown Ernie
// 2: sceKernelPowerLock(0)
// 3: sceKernelPowerUnlock(0)
// 4: LED ON
// 5: LED OFF
// 6: LED INIT
// 7: sceKernelPowerTick(flag)
// 8: Checks if CP is enabled by DIP switch 194.

int sceSblUsPowerControlForUser(int mode, int flag);

sceSblUsGetSpkgInfoForUser

Version NID
0.931-3.740.011 0x8E3EC2E1

Temp name was sceSblSsUpdateMgrGetSpkgInfo.

int sceSblUsGetSpkgInfoForUser(int package_type, SceSblUsSpkgInfo *pInfo);

sceSblUsVerifyPupForUser

Version NID
0.931-3.740.011 0x6F5EDBF4

path max len: 0x3FF bytes

int sceSblUsVerifyPupForUser(const char *path);

sceSblUsVerifyPupAdditionalSignForUser

Version NID
0.990 not present
3.60-3.740.011 0xB19366CB

path max len: 0x3FF bytes

int sceSblUsVerifyPupAdditionalSignForUser(const char *path);

sceSblUsVerifyPupHeaderForUser

Version NID
0.940-3.740.011 0x9BE17A06

path max len: 0x3FF bytes

int sceSblUsVerifyPupHeaderForUser(const char *path);

sceSblUsVerifyPupSegmentForUser

Version NID
0.931-3.740.011 0xD47FD33E

path max len: 0x3FF bytes

int sceSblUsVerifyPupSegmentForUser(const char *path, SceUInt64 segment_index);

sceSblUsVerifyPupSegmentByIdForUser

Version NID
0.931-3.740.011 0x95FC1A0A

path max len: 0x3FF bytes

int sceSblUsVerifyPupSegmentByIdForUser(const char *path, uint64_t seg_id);

sceSblUsVerifyPupWatermarkForUser

Version NID
0.931-3.740.011 0xC6CDEB8D

path max len: 0x3FF bytes

int sceSblUsVerifyPupWatermarkForUser(const char *path);

sceSblUsUpdateSpackageForUser

Version NID
0.931-3.740.011 0x6E8DDAC4
int sceSblUsUpdateSpackageForUser(int package_type, SceKernelSpackageArgs *args, int *pRequestId);

sceSblUsInspectSpackageForUser

Version NID
0.931-3.740.011 0x1A39F6EE
int sceSblUsInspectSpackageForUser(int package_type, SceKernelSpackageArgs *args, int *pRequestId);

sceSblUsExtractSpackageForUser

Version NID
0.931-3.740.011 0xC1792A1C
int sceSblUsExtractSpackageForUser(int package_type, SceKernelSpackageArgs *args, int *pRequestId);

sceSblUsGetExtractSpackageForUser

Version NID
0.931-3.740.011 0x4897AD56
// node_type must be 0, 1 or 2

int sceSblUsGetExtractSpackageForUser(int node_type, int requestId, SceKernelSpackageArgs *args);

sceSblUsAllocateBufferForUser

Version NID
0.931-3.740.011 0x4C06F41C
int sceSblUsAllocateBufferForUser(SceSize size, void **uaddr);

sceSblUsReleaseBufferForUser

Version NID
0.931-3.740.011 0xBD677F5A
int sceSblUsReleaseBufferForUser(void *uaddr);

sceSblUsGetStatusForUser

Version NID
0.931-3.740.011 0xF403143E
int sceSblUsGetStatusForUser(int node_type, int requestId, SceKernelSpackageArgs *args);

sceSblUsCheckSystemIntegrityForUser

Version NID
0.931-3.740.011 0xBED8DFC7

Check if the current process is system privileged.

SceInt32 sceSblUsCheckSystemIntegrityForUser(void);

sceSblUsGetApplicableVersionForUser

Version NID
0.931-3.740.011 0x3ADD4B7A
// type must be 1 or 9 else returns error "builtin revoke list cannot be found"
int sceSblUsGetApplicableVersionForUser(int type, void *versionBuf);

sceSblUsInformUpdateStartedForUser

Version NID
0.990 not present
1.000.071-3.740.011 0x9FC8E905
int sceSblUsInformUpdateStartedForUser(int number1, int number2, const char *str, SceSize len);

sceSblUsInformUpdateOngoingForUser

Version NID
0.990 not present
1.000.071-3.740.011 0xD0CB50AC
int sceSblUsInformUpdateOngoingForUser(int number1, int number2);

sceSblUsInformUpdateFinishedForUser

Version NID
0.990 not present
1.000.071-3.740.011 0x2A02DCFB
int sceSblUsInformUpdateFinishedForUser(int number, const char *str, SceSize len);

sceSblUsSetSwInfoIntForUser

Version NID
0.990 not present
1.000.071-3.740.011 0x157AD4AD
int sceSblUsSetSwInfoIntForUser(char *str, SceSize len, SceUInt32 number);

sceSblUsSetSwInfoStrForUser

Version NID
0.990 not present
1.000.071-3.740.011 0xFE930747
int sceSblUsSetSwInfoStrForUser(char *str1, SceSize len1, char *str2, SceSize len2);

sceSblUsSetSwInfoBinForUser

Version NID
0.990 not present
1.000.071-3.740.011 0x92A8002B
int sceSblUsSetSwInfoBinForUser(char *str1, SceSize len1, char *str2, SceSize len2);