Playstation Update Package (PUP): Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(Minor Cleanup) |
||
Line 1: | Line 1: | ||
'''PUP''' (Playstation Update Package) files are packages which contain the files used to update a PSP or PS3 system. | '''PUP''' (Playstation Update Package) files are packages which contain the files used to update a PSP or PS3 system. | ||
Line 8: | Line 5: | ||
= Header = | = Header = | ||
{| | {| class="wikitable" | ||
|- | |- | ||
! Offset | ! Offset | ||
Line 70: | Line 67: | ||
The file table consists of a number of file entries determined by '''File Count''', with the format below: | The file table consists of a number of file entries determined by '''File Count''', with the format below: | ||
{| | {| class="wikitable" | ||
|- | |- | ||
! Offset | ! Offset | ||
Line 100: | Line 97: | ||
=== Filename IDs === | === Filename IDs === | ||
{| | {| class="wikitable" | ||
|- | |- | ||
! File Entry ID | ! File Entry ID | ||
Line 140: | Line 137: | ||
The hash entry format is: | The hash entry format is: | ||
{| | {| class="wikitable" | ||
|- | |- | ||
! Offset | ! Offset | ||
Line 162: | Line 159: | ||
| Unknown | | Unknown | ||
|} | |} | ||
= Files = | |||
Here is an example of the files stored in a PUP, This is from firmware version 3.55 | |||
PSUPDATE.PUP | |||
├── dots.txt | |||
├── license.txt | |||
├── ps3swu.self | |||
├── update_files.tar | |||
│ ├── BDIT_FIRMWARE_PACKAGE.pkg | |||
│ │ ├── content | |||
│ │ ├── info0 | |||
│ │ └── info1 | |||
│ ├── BDPT_FIRMWARE_PACKAGE_301R.pkg | |||
│ │ ├── content | |||
│ │ ├── info0 | |||
│ │ └── info1 | |||
│ ├── BDPT_FIRMWARE_PACKAGE_302R.pkg | |||
│ │ ├── content | |||
│ │ ├── info0 | |||
│ │ └── info1 | |||
│ ├── BDPT_FIRMWARE_PACKAGE_303R.pkg | |||
│ │ ├── content | |||
│ │ ├── info0 | |||
│ │ └── info1 | |||
│ ├── BDPT_FIRMWARE_PACKAGE_304R.pkg | |||
│ │ ├── content | |||
│ │ ├── info0 | |||
│ │ └── info1 | |||
│ ├── BDPT_FIRMWARE_PACKAGE_306R.pkg | |||
│ │ ├── content | |||
│ │ ├── info0 | |||
│ │ └── info1 | |||
│ ├── BDPT_FIRMWARE_PACKAGE_308R.pkg | |||
│ │ ├── content | |||
│ │ ├── info0 | |||
│ │ └── info1 | |||
│ ├── BLUETOOTH_FIRMWARE.pkg | |||
│ │ ├── content | |||
│ │ │ ├── RC29_firmware_footer.dfu | |||
│ │ │ ├── usb8780-5.0.1-A1-A2.dfu | |||
│ │ │ └── usb8781-20.0.12.0.dfu | |||
│ │ ├── info0 | |||
│ │ └── info1 | |||
│ ├── CORE_OS_PACKAGE.pkg | |||
│ │ ├── aim_spu_module.self | |||
│ │ ├── appldr | |||
│ │ ├── creserved_0 | |||
│ │ ├── default.spp | |||
│ │ ├── emer_init.self | |||
│ │ ├── eurus_fw.bin | |||
│ │ ├── hdd_copy.self | |||
│ │ ├── isoldr | |||
│ │ ├── lv0 | |||
│ │ ├── lv1ldr | |||
│ │ ├── lv1.self | |||
│ │ ├── lv2_kernel.self | |||
│ │ ├── lv2ldr | |||
│ │ ├── manu_info_spu_module.self | |||
│ │ ├── mc_iso_spu_module.self | |||
│ │ ├── me_iso_spu_module.self | |||
│ │ ├── sb_iso_spu_module.self | |||
│ │ ├── sc_iso.self | |||
│ │ ├── sdk_version | |||
│ │ ├── spp_verifier.self | |||
│ │ ├── spu_pkg_rvk_verifier.self | |||
│ │ ├── spu_token_processor.self | |||
│ │ ├── spu_utoken_processor.self | |||
│ │ └── sv_iso_spu_module.self | |||
│ ├── dev_flash_''XXX''.tar.aa.''DATE/TIME'' | |||
│ ├── dev_flash3_''XXX''.tar.aa.''DATE/TIME'' | |||
│ ├── MULTI_CARD_FIRMWARE.pkg | |||
│ │ ├── content | |||
│ │ ├── info0 | |||
│ │ └── info1 | |||
│ ├── RL_FOR_PACKAGE.img | |||
│ ├── RL_FOR_PROGRAM.img | |||
│ ├── SYS_CON_FIRMWARE_01000006.pkg | |||
│ │ ├── content | |||
│ │ ├── info0 | |||
│ │ └── info1 | |||
│ ├── SYS_CON_FIRMWARE_01010303.pkg | |||
│ │ ├── content | |||
│ │ ├── info0 | |||
│ │ └── info1 | |||
│ ├── SYS_CON_FIRMWARE_01020302 | |||
│ │ ├── content | |||
│ │ ├── info0 | |||
│ │ └── info1 | |||
│ ├── SYS_CON_FIRMWARE_01030302.pkg | |||
│ │ ├── content | |||
│ │ ├── info0 | |||
│ │ └── info1 | |||
│ ├── SYS_CON_FIRMWARE_01040402.pkg | |||
│ │ ├── content | |||
│ │ ├── info0 | |||
│ │ └── info1 | |||
│ ├── SYS_CON_FIRMWARE_01050002.pkg | |||
│ │ ├── content | |||
│ │ ├── info0 | |||
│ │ └── info1 | |||
│ ├── SYS_CON_FIRMWARE_01050101.pkg | |||
│ │ ├── content | |||
│ │ ├── info0 | |||
│ │ └── info1 | |||
│ ├── SYS_CON_FIRMWARE_S1_00010002083E0832.pkg | |||
│ │ ├── content | |||
│ │ ├── info0 | |||
│ │ └── info1 | |||
│ └── UPL.xml.pkg | |||
│ ├── content | |||
│ ├── info0 | |||
│ └── info1 | |||
├── update_files.tar | |||
├── update_flags.txt | |||
├── version.txt | |||
└── vsh.tar |
Revision as of 07:04, 8 April 2011
PUP (Playstation Update Package) files are packages which contain the files used to update a PSP or PS3 system.
The HMAC key used to verify the packages has been released. Look around for "pup-hmac"
Header
Offset | Length | Type | Information |
---|---|---|---|
0x0 | 0x8 | unsigned long | Magic |
0x8 | 0x8 | unsigned long | Package Version |
0x10 | 0x8 | unsigned long | Image Version |
0x18 | 0x8 | unsigned long | File Count |
0x20 | 0x8 | unsigned long | Header Length |
0x28 | 0x8 | unsigned long | File Length |
0x30 | 0x20 * File Count | File Table | File Table |
0x30 + (0x20 * File Count) | 0x20 * File Count | Hash Table | Hash Table |
0x30 + (0x40 * File Count) | 0x14 | bytes | Header Hash |
0x44 + (0x40 * File Count) | 0xC | bytes | Unknown |
File Table
The file table consists of a number of file entries determined by File Count, with the format below:
Offset | Length | Type | Information |
---|---|---|---|
0x0 | 0x8 | unsigned long | Entry ID |
0x8 | 0x8 | unsigned long | Data Offset |
0x10 | 0x8 | unsigned long | Data Length |
0x18 | 0x8 | unsigned long | Unknown |
Filename IDs
File Entry ID | Filename |
---|---|
0x100 | ps3version.txt |
0x101 | resource.txt |
0x102 | shop.txt |
0x103 | pup_data.txt |
0x104 | patch_build.txt |
0x200 | ps3swu.self |
0x201 | vsh.tar |
0x202 | dots.txt |
0x203 | patch_data.pkg |
0x300 | update_files.tar |
Hash Table
The hash table contains a hash entry for every file inside the PUP.
The hash entry format is:
Offset | Length | Type | Information |
---|---|---|---|
0x0 | 0x8 | unsigned long | File Entry ID |
0x8 | 0x14 | bytes | HMAC-SHA1 hash |
0x1C | 0x4 | unsigned int | Unknown |
Files
Here is an example of the files stored in a PUP, This is from firmware version 3.55
PSUPDATE.PUP ├── dots.txt ├── license.txt ├── ps3swu.self ├── update_files.tar │ ├── BDIT_FIRMWARE_PACKAGE.pkg │ │ ├── content │ │ ├── info0 │ │ └── info1 │ ├── BDPT_FIRMWARE_PACKAGE_301R.pkg │ │ ├── content │ │ ├── info0 │ │ └── info1 │ ├── BDPT_FIRMWARE_PACKAGE_302R.pkg │ │ ├── content │ │ ├── info0 │ │ └── info1 │ ├── BDPT_FIRMWARE_PACKAGE_303R.pkg │ │ ├── content │ │ ├── info0 │ │ └── info1 │ ├── BDPT_FIRMWARE_PACKAGE_304R.pkg │ │ ├── content │ │ ├── info0 │ │ └── info1 │ ├── BDPT_FIRMWARE_PACKAGE_306R.pkg │ │ ├── content │ │ ├── info0 │ │ └── info1 │ ├── BDPT_FIRMWARE_PACKAGE_308R.pkg │ │ ├── content │ │ ├── info0 │ │ └── info1 │ ├── BLUETOOTH_FIRMWARE.pkg │ │ ├── content │ │ │ ├── RC29_firmware_footer.dfu │ │ │ ├── usb8780-5.0.1-A1-A2.dfu │ │ │ └── usb8781-20.0.12.0.dfu │ │ ├── info0 │ │ └── info1 │ ├── CORE_OS_PACKAGE.pkg │ │ ├── aim_spu_module.self │ │ ├── appldr │ │ ├── creserved_0 │ │ ├── default.spp │ │ ├── emer_init.self │ │ ├── eurus_fw.bin │ │ ├── hdd_copy.self │ │ ├── isoldr │ │ ├── lv0 │ │ ├── lv1ldr │ │ ├── lv1.self │ │ ├── lv2_kernel.self │ │ ├── lv2ldr │ │ ├── manu_info_spu_module.self │ │ ├── mc_iso_spu_module.self │ │ ├── me_iso_spu_module.self │ │ ├── sb_iso_spu_module.self │ │ ├── sc_iso.self │ │ ├── sdk_version │ │ ├── spp_verifier.self │ │ ├── spu_pkg_rvk_verifier.self │ │ ├── spu_token_processor.self │ │ ├── spu_utoken_processor.self │ │ └── sv_iso_spu_module.self │ ├── dev_flash_XXX.tar.aa.DATE/TIME │ ├── dev_flash3_XXX.tar.aa.DATE/TIME │ ├── MULTI_CARD_FIRMWARE.pkg │ │ ├── content │ │ ├── info0 │ │ └── info1 │ ├── RL_FOR_PACKAGE.img │ ├── RL_FOR_PROGRAM.img │ ├── SYS_CON_FIRMWARE_01000006.pkg │ │ ├── content │ │ ├── info0 │ │ └── info1 │ ├── SYS_CON_FIRMWARE_01010303.pkg │ │ ├── content │ │ ├── info0 │ │ └── info1 │ ├── SYS_CON_FIRMWARE_01020302 │ │ ├── content │ │ ├── info0 │ │ └── info1 │ ├── SYS_CON_FIRMWARE_01030302.pkg │ │ ├── content │ │ ├── info0 │ │ └── info1 │ ├── SYS_CON_FIRMWARE_01040402.pkg │ │ ├── content │ │ ├── info0 │ │ └── info1 │ ├── SYS_CON_FIRMWARE_01050002.pkg │ │ ├── content │ │ ├── info0 │ │ └── info1 │ ├── SYS_CON_FIRMWARE_01050101.pkg │ │ ├── content │ │ ├── info0 │ │ └── info1 │ ├── SYS_CON_FIRMWARE_S1_00010002083E0832.pkg │ │ ├── content │ │ ├── info0 │ │ └── info1 │ └── UPL.xml.pkg │ ├── content │ ├── info0 │ └── info1 ├── update_files.tar ├── update_flags.txt ├── version.txt └── vsh.tar