Program Vender Id
Jump to navigation Jump to search
Temp name was Vendor ID. Official name is program_vender_id.
PS3[edit | edit source]
In geohot's makeself it was used as: set_u32(&(output_self_info_header.i_magic), 0x01000002);.
Not directly related to Authority ID, but for PS3, it seems to have many similarities with it (program_vender_id = 2nd-9th bytes of program_authority_id). It seems also related to SM ; LPAR's and their order suggests hierarchy/permission from high (can do everything) to low (lesser abilities).
| program_vender_id | Count | File type |
|---|---|---|
| 0x00000000 | ? | lv0 / lv1 only before SDK 060 |
| 0x33000077 | ? | *ldr / lv0 / lv1 only on SDK 060 |
| 0xFF000000 | 16 | lv1.self's |
| 0x07000001 | 180 | iso spu self's |
| 0x05000002 | 17 | lv2_kernel.self's |
| 0x02000003 | 45 | ps2_emu self's |
| 0x01000002 | 6147 | CoreOs / dev_flash files / Games |
PS Vita and PS4[edit | edit source]
On PS Vita and PS4 the Program Vender Id area is always zeroed so this section has maybe been replaced by padding.
Structure[edit | edit source]
typedef struct program_vender_id { uint16_t territory; uint16_t guest_os_id; } program_vender_id; Note: first byte is territory value, last byte is guest_os_id. ?because of endianness that struct would be wrong then?
Territory[edit | edit source]
To document.
Guest OS ID[edit | edit source]
| Guest OS ID | Description |
|---|---|
| 0x0000 | None |
| 0x0001 | PME |
| 0x0002 | LV2 |
| 0x0003 | PS2Emu |
| 0x0004 | Linux |