Program Vender Id: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
No edit summary
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
Located at SELF offset 0x78.
Temp name was Vendor ID. Official name is program_vender_id.


For some reason it was named [[SELF_File_Format_and_Decryption#App_Info|vendor_id]] there.
== PS3 ==


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 [[Authentication IDs]], but seems to have many simularities with it (vendorid=2nd-9th bytes of authid), 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).
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"
|-
|-
! VendorID !! count !! filetype
! program_vender_id !! Count !! File type
|-
|-
| 0x33000077 || ? || ldr/lv0/lv1 on/since 0.85.060
| 0x00000000 || ? || lv0 / lv1 only before SDK 060
|-
| 0x33000077 || ? || *ldr / lv0 / lv1 only on SDK 060
|-
|-
| 0xFF000000 || 16 || lv1.self's
| 0xFF000000 || 16 || lv1.self's
Line 22: Line 24:
|-
|-
| 0x01000002 || 6147 || CoreOs / dev_flash files / Games
| 0x01000002 || 6147 || CoreOs / dev_flash files / Games
|}
== PSVita ==
On PSVita always 00 00 00 00.
== Structure ==
<source lang="C">
typedef struct program_vender_id {
  uint16_t territory;
  uint16_t guest_os_id;
} program_vender_id;
</source>
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 ===
{| class="wikitable sortable"
|-
! Guest OS ID !! Description
|-
| 0x0000 || None
|-
| 0x0001 || PME
|-
| 0x0002 || LV2
|-
| 0x0003 || PS2Emu
|-
|-
| 0x0004 || Linux
|}
|}


Note: first byte is territory value, last byte is guest_os_id.


{{Development}}<noinclude>[[Category:Main]]</noinclude>
{{Development}}<noinclude>[[Category:Main]]</noinclude>

Latest revision as of 17:23, 25 December 2019

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

PSVita[edit | edit source]

On PSVita always 00 00 00 00.

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