Program Vender Id: Difference between revisions
Jump to navigation
Jump to search
CelesteBlue (talk | contribs) No edit summary |
CelesteBlue (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
Temp name was Vendor ID. Official name is program_vender_id. | |||
== PS3 == | == PS3 == | ||
Line 5: | Line 5: | ||
In geohot's makeself it was used as: <code>set_u32(&(output_self_info_header.i_magic), 0x01000002);</code>. | In geohot's makeself it was used as: <code>set_u32(&(output_self_info_header.i_magic), 0x01000002);</code>. | ||
Not directly related to [[Authority ID]], but seems to have many similarities with it ( | 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 [[Hypervisor_Reverse_Engineering#Active_System_Managers_in_HV_dump_3.15|SM ; LPAR's]] and their order suggests hierarchy/permission from high (can do everything) to low (lesser abilities). | ||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
|- | |- | ||
! | ! program_vender_id !! Count !! File type | ||
|- | |- | ||
| 0x00000000 || ? || lv0 / lv1 only before SDK 060 | | 0x00000000 || ? || lv0 / lv1 only before SDK 060 | ||
Line 33: | Line 33: | ||
<source lang="C"> | <source lang="C"> | ||
typedef struct | typedef struct program_vender_id { | ||
uint16_t territory; | uint16_t territory; | ||
uint16_t guest_os_id; | uint16_t guest_os_id; | ||
} | } program_vender_id; | ||
</source> | </source> | ||
Note: first byte is territory value, last byte is guest_os_id. | Note: first byte is territory value, last byte is guest_os_id. ?because of endianness that struct would be wrong then? | ||
=== Territory === | === Territory === | ||
To document. | |||
=== Guest OS ID === | === Guest OS ID === |
Revision as of 16:21, 25 December 2019
Temp name was Vendor ID. Official name is program_vender_id.
PS3
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 |
PSVita
On PSVita always 00 00 00 00.
Structure
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
To document.
Guest OS ID
Guest OS ID | Description |
---|---|
0x0000 | None |
0x0001 | PME |
0x0002 | LV2 |
0x0003 | PS2Emu |
0x0004 | Linux |