SLB2: Difference between revisions

From PS4 Developer wiki
Jump to navigation Jump to search
(Add note about new data that I found)
 
(2 intermediate revisions by 2 users not shown)
Line 42: Line 42:


SLB2 files are parsed by many executables:
SLB2 files are parsed by many executables:
* PS4 [[Southbridge]] EMC IPL to extract C0028001 and C0020001 (EAP related) from sflash0s0x32b
* PS4 [[Southbridge]] EMC IPL to extract C0028001 (EMC IPL) and C0020001 (EMC IPL information) from sflash0s0x32b (inactive partition).


== Other notes ==
== Other notes ==
It looks like newer (confirmed for OFW 7.55 and above) SLB2 files have some data between 0x200 and 0x270 which doesn't affect any unpacking tool but affects the unpacking on the PS4. The file gets recognised as corrupted if that data isn't there.
It looks like newer (confirmed for OFW 7.55 and above) SLB2 files have some data between 0x200 and 0x270 which doesn't affect any unpacking tool but affects the unpacking on the PS4. The file gets recognised as corrupted if that data isn't there. This data is present in the `recovery` images but not in the `update` images.
 
-Other note
Newer updates seems to have  New data exactly before the start of the PS4UPDATE.PUP file
It has the same effect as the  one between 0x200 and 0x270
{{Software}}
{{Software}}
<noinclude>[[Category:Main]]</noinclude>
<noinclude>[[Category:Main]]</noinclude>

Latest revision as of 13:15, 10 February 2024

Structure[edit | edit source]

PS4 SLB PUP container format - SKFU
/* SLB2 structure is little endian */
 
struct SceSlb2Entry {
	uint32_t fileStartSector;
	uint32_t fileSizeInByte;
	uint32_t reserved[2]; // padding for alignment
	char     fileName[32];
} __attribute__((packed));
 
struct SceSlb2Header {
	uint32_t magic; // "SLB2"
	uint32_t version; // ex: 1
	uint32_t flags; // ex: 0
	uint32_t entryNum;
	uint32_t sizeInSector;
	uint32_t reserved[3]; // padding for alignment
	struct SceSlb2Entry entryList[0];
} __attribute__((packed));

Unpacking[edit | edit source]

Usage[edit | edit source]

SLB2 files are parsed by many executables:

  • PS4 Southbridge EMC IPL to extract C0028001 (EMC IPL) and C0020001 (EMC IPL information) from sflash0s0x32b (inactive partition).

Other notes[edit | edit source]

It looks like newer (confirmed for OFW 7.55 and above) SLB2 files have some data between 0x200 and 0x270 which doesn't affect any unpacking tool but affects the unpacking on the PS4. The file gets recognised as corrupted if that data isn't there. This data is present in the `recovery` images but not in the `update` images. -Other note Newer updates seems to have New data exactly before the start of the PS4UPDATE.PUP file It has the same effect as the one between 0x200 and 0x270