Editing PUP
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
PUP (Playstation Update Package) is the file format of the PSP, PS3, PSVita, PS4, and PS5 system software update packages. It contains updated firmware and files for devices such as the GameOS, Syscon, Wi-Fi, Bluetooth, Communication Processor, Southbridge, | PUP (Playstation Update Package) is the file format of the PSP, PS3, PSVita, PS4, and PS5 system software update packages. It contains updated firmware and files for devices such as the GameOS, Syscon, Wi-Fi, Bluetooth, Communication Processor, Southbridge, BD drive, and more. | ||
== PUP Structure == | == PUP Structure == | ||
PS4 update files differ from previous | PS4 update files differ from previous consoles in that they embed multiple PUP fragments. The "main" file that's distributed and downloaded to the console is an SLB2-packed (or "BLS") file which contains PUP fragment files. On retail and testkits, it typically contains two PUPs (`PS4UPDATE1.PUP` and `PS4UPDATE2.PUP`), while devkits may have four. These PUP files are similar in structure to Signed ELFs (SELFs). Each update fragment is responsible for containing different sets of firmware and files. | ||
* PS4UPDATE1 is the "core" update file and contains updates for GameOS/x86 kernel and | * PS4UPDATE1 is the "core" update file and contains updates for GameOS/x86 kernel and libraries, BluRay, EAP, EMC, Syscon, SAMU, and other firmware stored on the SPI flash. | ||
* PS4UPDATE2 contains the `system_ex` partition of system | * PS4UPDATE2 contains the `system_ex` partition of system apps. | ||
* PS4UPDATE3 ( | * PS4UPDATE3 (devkits) contains the preinstall image for devkit files. | ||
* PS4UPDATE4 ( | * PS4UPDATE4 (devkits) contains a seemingly empty preinstall part 2 image (maybe reserved?). | ||
All | All update fragments contain the EULA, the Orbis Software Updater (orbis_swu), and a watermark. | ||
=== File Header === | === File Header === | ||
The file header for the main PUP file is an SLB2 file. Each | The file header for the main PUP file is an SLB2 file. Each pup fragment packed into it has the following header (note: after the initial 0x10 bytes, the remaining 0x10 bytes are encrypted along with the metadata that follows it). | ||
<source lang="c"> | <source lang="c"> | ||
Line 60: | Line 60: | ||
</source> | </source> | ||
In most cases (ie. "data" segments as opposed to info segments), the segment ID indicates the type of firmware or file to update (see | In most cases (ie. "data" segments as opposed to info segments), the segment ID indicates the type of firmware or file to update (see: "Indices" table). In the case of info segments, the segment ID points to the index of the "data" segment it contains information for. Info segments are typically only seen when the file or firmware utilizes block-based segments. | ||
=== PUP Info === | === PUP Info === | ||
Line 102: | Line 102: | ||
=== Decrypter (first step) === | === Decrypter (first step) === | ||
* [https://github.com/idc/ps4-pup_decrypt ps4-pup_decrypt by idc] | |||
* [https://github.com/idc/ps4-pup_decrypt ps4-pup_decrypt by idc | |||
=== Unpacker (second step) === | === Unpacker (second step) === | ||
* [https://github.com/ | * [https://github.com/idc/ps4-pup_unpack ps4-pup-unpack by idc] | ||
* [https://github.com/Zer0xFF/ps4-pup-unpacker ps4-pup-unpacker by Zer0xFF] (based on ps4-pup-unpack by idc) | |||
* [https://github.com/Zer0xFF/ps4-pup-unpacker ps4-pup-unpacker by Zer0xFF | |||
== Indices == | == Indices == | ||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
|- | |- | ||
Line 128: | Line 120: | ||
| 3 || 3 || WIFI FW || {{no}} || torus2 Aeolia A2 || [[0.910.040]] || || || -- | | 3 || 3 || WIFI FW || {{no}} || torus2 Aeolia A2 || [[0.910.040]] || || || -- | ||
|- | |- | ||
| 4 || 4 || | | 4 || 4 || SAM IPL || {{yes}} || sflash0s1.cryptx2/b 1st SOCUID || [[0.910.040]] || || (Confirmed by anon) Same body as 0x23 || [[CXD90026G]] | ||
|- | |- | ||
| 5 || 5 || COREOS || {{no}} || secure_modules || [[0.910.040]] || || || GEN1,2,3 Universal | | 5 || 5 || COREOS || {{no}} || secure_modules || [[0.910.040]] || || || GEN1,2,3 Universal | ||
Line 160: | Line 152: | ||
| 0x22 || 34 || WIFI FW || {{no}} || torus2 || 2.00 || || || ?? | | 0x22 || 34 || WIFI FW || {{no}} || torus2 || 2.00 || || || ?? | ||
|- | |- | ||
| 0x23 || 35 || | | 0x23 || 35 || SAM IPL || {{yes}} || sflash0s1.cryptx2/b 2nd SOCUID || 2.00 || || (Confirmed by anon) Same body as 0x04 || [[CXD90026AG]] | ||
|- | |- | ||
| 0x24 || 36 || EMC IPL || {{no}} || sflash0s0x32/b Baikal B1 || 3.00 || || || [[CXD90046GG]] | | 0x24 || 36 || EMC IPL || {{no}} || sflash0s0x32/b Baikal B1 || 3.00 || || || [[CXD90046GG]] | ||
Line 166: | Line 158: | ||
| 0x25 || 37 || EAP KBL || {{no}} || sflash0s0x33 Baikal B1 || 3.00 || || Same body as 0x2B and 0x21 || [[CXD90046GG]] | | 0x25 || 37 || EAP KBL || {{no}} || sflash0s0x33 Baikal B1 || 3.00 || || Same body as 0x2B and 0x21 || [[CXD90046GG]] | ||
|- | |- | ||
| 0x26 || 38 || | | 0x26 || 38 || SAM IPL || {{yes}} || sflash0s1.cryptx2/b 3rd SOCUID || 3.00 || || (Confirmed by anon) Same body as 0x2D and 0x32 || [[CXD90037G]] | ||
|- | |- | ||
| 0x27 || 39 || | | 0x27 || 39 || SAM IPL || {{yes}} || sflash0s1.cryptx2/b 4th SOCUID || 3.00 || || (Confirmed by anon) Same body as 0x31 || [[CXD90043GB]] | ||
|- | |- | ||
| 0x28 || 40 || EMC IPL || {{no}} || sflash0s0x32/b Baikal 1st Revision || 3.00 || || Same body as 0x2C || | | 0x28 || 40 || EMC IPL || {{no}} || sflash0s0x32/b Baikal 1st Revision || 3.00 || || Same body as 0x2C || | ||
Line 178: | Line 170: | ||
| 0x2C || 44 || EMC IPL || {{no}} || sflash0s0x32/b Baikal2 1st Revision || 4.00 || || Same body as 0x28 || | | 0x2C || 44 || EMC IPL || {{no}} || sflash0s0x32/b Baikal2 1st Revision || 4.00 || || Same body as 0x28 || | ||
|- | |- | ||
| 0x2D || 45 || | | 0x2D || 45 || SAM IPL || {{yes}} || sflash0s1.cryptx2/b 5th SOCUID || 4.50 || || (Confirmed by anon) Same body as 0x26 and 0x32 || [[CXD90044GB]] | ||
|- | |- | ||
| 0x2E || 46 || EMC IPL || {{no}} || sflash0s0x32/b Belize2 3rd Revision? || 5.00 || || || | | 0x2E || 46 || EMC IPL || {{no}} || sflash0s0x32/b Belize2 3rd Revision? || 5.00 || || || | ||
Line 184: | Line 176: | ||
| 0x30 || 48 || WIFI FW || {{no}} || sflash0s0x38 trooper Belize 2 A0 || 5.00 || || || -- | | 0x30 || 48 || WIFI FW || {{no}} || sflash0s0x38 trooper Belize 2 A0 || 5.00 || || || -- | ||
|- | |- | ||
| 0x31 || 49 || | | 0x31 || 49 || SAM IPL || {{yes}} || sflash0s1.cryptx2/b 6th SOCUID || 5.50 || || (Confirmed by anon) Same body as 0x27 || [[CXD90051GB]] | ||
|- | |- | ||
| 0x32 || 50 || | | 0x32 || 50 || SAM IPL || {{yes}} || sflash0s1.cryptx2/b 7th SOCUID || 6.50 || || (Confirmed by anon) Same body as 0x26 and 0x2D || [[CXD90055GB]] | ||
|- | |- | ||
| 0x101 || 257 || EULA.XML || {{no}} || Sony Agreement XML || 1.00 || || || Universal | | 0x101 || 257 || EULA.XML || {{no}} || Sony Agreement XML || 1.00 || || || Universal | ||
Line 200: | Line 192: | ||
| 0xD00 || 3328 || SYSCON FW || {{no}} || sc_fw_update0 firmware (4000XXXX) || [[0.915.010]] || || || Universal Syscon | | 0xD00 || 3328 || SYSCON FW || {{no}} || sc_fw_update0 firmware (4000XXXX) || [[0.915.010]] || || || Universal Syscon | ||
|- | |- | ||
| 0xD01 || 3329 || BLURAY | | 0xD01 || 3329 || BLURAY FW || {{no}} || bluray firmware (all revisions) (4XXR) || [[0.920.030]] || || || Universal Bluray | ||
|- | |- | ||
| 0xD02 || 3330 || USB SATA BRIDGE FW || {{no}} || | | 0xD02 || 3330 || USB SATA BRIDGE FW || {{no}} || usb sata bridge firmware (da0) || 1.00 || || || [[MB86C311B]] | ||
|- | |- | ||
| 0xD07 || 3335 || SYSCON PATCH || {{no}} || sc_fw_update0 patch (4001XXXX) || 2.50 Test/Retail || || || Universal Syscon | | 0xD07 || 3335 || SYSCON PATCH || {{no}} || sc_fw_update0 patch (4001XXXX) || 2.50 Test/Retail || || || Universal Syscon | ||
Line 208: | Line 200: | ||
| 0xD08 || 3336 || SYSCON FW || {{no}} || sc_fw_update0 firmware (4000XXXX) || 1.00 Devkit || || || Universal Syscon | | 0xD08 || 3336 || SYSCON FW || {{no}} || sc_fw_update0 firmware (4000XXXX) || 1.00 Devkit || || || Universal Syscon | ||
|- | |- | ||
| 0xD09 || 3337 || COMMUNICATION PROCESSOR FW || {{no}} || cpfirm || 3.50 Devkit || || || Neo | | 0xD09 || 3337 || COMMUNICATION PROCESSOR FW || {{no}} || cpfirm || 3.50 Devkit || || || Neo Devkit Component (unknown) | ||
|- | |- | ||
|} | |} |