Revoke List: Difference between revisions
Jump to navigation
Jump to search
CelesteBlue (talk | contribs) (→Struct) |
|||
(2 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
Revoke list is a [[Certified File]] | Revoke list is a [[Certified File]]. | ||
= Location = | = Location = | ||
Line 10: | Line 10: | ||
== PSVita == | == PSVita == | ||
In SLB2 partition in PUP and in eMMC: | |||
slb2:prog_rvk.srvk | slb2:prog_rvk.srvk | ||
Line 15: | Line 17: | ||
= Decryption = | = Decryption = | ||
See [[Certified_File#Decryption]] | See [[Certified_File#Decryption]]. | ||
= Stucture | = Stucture = | ||
Contains includes/excludes to be checked by lv1/hypervisor.<br> | Contains includes/excludes to be checked by lv1/hypervisor.<br> | ||
Fetched by Updating process to NAND/NOR-Flash as trvk_prg0/1 and trvk_pkg0/1.<br> | Fetched by Updating process to NAND/NOR-Flash as trvk_prg0/1 and trvk_pkg0/1.<br> | ||
So this is basically a list of additional checks for the | So this is basically a list of additional checks for the hypervisor.<br> | ||
Example: if (sce type == 4 & authid = x) then do what flags tell, related with version etc.<br> | |||
See also: [[ | See also: [[Keys]], [[Program Authority Id]]. | ||
== Struct == | == Struct == | ||
Line 30: | Line 32: | ||
<source lang="C"> | <source lang="C"> | ||
typedef header { | typedef header { | ||
uint32_t type; | uint32_t type; /* 3 ps3 prog rvk, 4 ps3 pkg rvk, 5 psvita prog rvk */ | ||
uint32_t unk; | uint32_t unk; | ||
union { | union { | ||
struct prog { | struct prog { | ||
uint64_t version; | uint64_t version; /* Revoke List Version */ | ||
}; | }; | ||
struct pkg { | struct pkg { | ||
Line 40: | Line 42: | ||
}; | }; | ||
}; | }; | ||
uint32_t entry_count; | uint32_t entry_count; /* Number of entries */ | ||
uint8_t padding[0xC]; | uint8_t padding[0xC]; | ||
} __attribute__((packed)) rvk_header; | } __attribute__((packed)) rvk_header; | ||
</source> | </source> | ||
== Revoke list entries == | |||
<source lang="C"> | <source lang="C"> | ||
Line 61: | Line 63: | ||
! field !! offset !! type !! notes | ! field !! offset !! type !! notes | ||
|- | |- | ||
| program_type || 0x00 || u32 || | | program_type || 0x00 || u32 || See [[Program Type]]. | ||
|- | |- | ||
| flags || | | flags || 0x04 || u32 || enforce/block/ignore/whatever? | ||
|- | |- | ||
| version || | | version || 0x8 || u64 || program version | ||
|- | |- | ||
| program_authority_id || | | program_authority_id || 0x10 || u64 || See [[Program Authority Id]]. | ||
|- | |- | ||
| unknown || | | unknown ||0x18 || u64 || enforce/block/ignore/whatever? | ||
|} | |} | ||
Line 79: | Line 81: | ||
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | ||
00000200 00 00 00 04 00 00 00 01 00 | 00000200 00 00 00 04 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... | ||
00000210 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ 6 items | 00000210 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ 6 items | ||
00000220 00 00 00 03 00 00 00 01 00 | 00000220 00 00 00 03 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... e.g. lv2 | ||
00000230 00 00 00 00 00 00 00 02 FF FF FF FF FF FF FF FF .......�ÿÿÿÿÿÿÿÿ | 00000230 00 00 00 00 00 00 00 02 FF FF FF FF FF FF FF FF .......�ÿÿÿÿÿÿÿÿ | ||
00000240 00 00 00 04 00 00 00 01 00 | 00000240 00 00 00 04 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... e.g. vsh | ||
00000250 10 70 00 05 FF 00 00 01 FF FF FF FF FF FF FF FF �p.�ÿ..�ÿÿÿÿÿÿÿÿ | 00000250 10 70 00 05 FF 00 00 01 FF FF FF FF FF FF FF FF �p.�ÿ..�ÿÿÿÿÿÿÿÿ | ||
00000260 00 00 00 04 00 00 00 01 00 | 00000260 00 00 00 04 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... | ||
00000270 10 70 00 05 FE 00 00 01 FF FF FF FF FF FF FF FF �p.�þ..�ÿÿÿÿÿÿÿÿ | 00000270 10 70 00 05 FE 00 00 01 FF FF FF FF FF FF FF FF �p.�þ..�ÿÿÿÿÿÿÿÿ | ||
00000280 00 00 00 04 00 00 00 01 00 | 00000280 00 00 00 04 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... e.g. sys_init_osd | ||
00000290 10 70 00 05 FD 00 00 01 FF FF FF FF FF FF FF FF �p.�ý..�ÿÿÿÿÿÿÿÿ | 00000290 10 70 00 05 FD 00 00 01 FF FF FF FF FF FF FF FF �p.�ý..�ÿÿÿÿÿÿÿÿ | ||
000002A0 00 00 00 04 00 00 00 01 00 | 000002A0 00 00 00 04 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... e.g. sys_audio | ||
000002B0 10 70 00 05 FC 00 00 01 FF FF FF FF FF FF FF FF �p.�ü..�ÿÿÿÿÿÿÿÿ | 000002B0 10 70 00 05 FC 00 00 01 FF FF FF FF FF FF FF FF �p.�ü..�ÿÿÿÿÿÿÿÿ | ||
000002C0 00 00 00 04 00 00 00 03 00 01 00 00 00 00 00 00 ...�...�.�...... | 000002C0 00 00 00 04 00 00 00 03 00 01 00 00 00 00 00 00 ...�...�.�...... | ||
Line 157: | Line 159: | ||
00000240 00 00 00 01 00 00 00 00 00 00 00 03 00 00 00 02 ...�.......�...� | 00000240 00 00 00 01 00 00 00 00 00 00 00 03 00 00 00 02 ...�.......�...� | ||
00000250 00 02 00 30 00 00 00 00 00 00 00 00 00 00 00 00 .�.0............ | 00000250 00 02 00 30 00 00 00 00 00 00 00 00 00 00 00 00 .�.0............ | ||
Latest revision as of 05:04, 15 July 2022
Revoke list is a Certified File.
Location[edit | edit source]
PS3[edit | edit source]
CoreOS package 3.56+.
RL_FOR_PACKAGE.img/RL_FOR_PROGRAM.img, pkg.srvk/prog.srvk
PSVita[edit | edit source]
In SLB2 partition in PUP and in eMMC:
slb2:prog_rvk.srvk
Decryption[edit | edit source]
See Certified_File#Decryption.
Stucture[edit | edit source]
Contains includes/excludes to be checked by lv1/hypervisor.
Fetched by Updating process to NAND/NOR-Flash as trvk_prg0/1 and trvk_pkg0/1.
So this is basically a list of additional checks for the hypervisor.
Example: if (sce type == 4 & authid = x) then do what flags tell, related with version etc.
See also: Keys, Program Authority Id.
Struct[edit | edit source]
typedef header {
uint32_t type; /* 3 ps3 prog rvk, 4 ps3 pkg rvk, 5 psvita prog rvk */
uint32_t unk;
union {
struct prog {
uint64_t version; /* Revoke List Version */
};
struct pkg {
uint64_t unk_pkg_rvk; /* To check */
};
};
uint32_t entry_count; /* Number of entries */
uint8_t padding[0xC];
} __attribute__((packed)) rvk_header;
Revoke list entries[edit | edit source]
typedef rvk_entry {
uint32_t program_type;
uint32_t flags;
uint64_t version;
uint64_t program_authority_id;
uint64_t unknown;
} __attribute__((packed)) rvk_entry;
field | offset | type | notes |
---|---|---|---|
program_type | 0x00 | u32 | See Program Type. |
flags | 0x04 | u32 | enforce/block/ignore/whatever? |
version | 0x8 | u64 | program version |
program_authority_id | 0x10 | u64 | See Program Authority Id. |
unknown | 0x18 | u64 | enforce/block/ignore/whatever? |
Examples[edit | edit source]
= PS3[edit | edit source]
3.56 prog.srvk[edit | edit source]
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000200 00 00 00 04 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... 00000210 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ 6 items 00000220 00 00 00 03 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... e.g. lv2 00000230 00 00 00 00 00 00 00 02 FF FF FF FF FF FF FF FF .......�ÿÿÿÿÿÿÿÿ 00000240 00 00 00 04 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... e.g. vsh 00000250 10 70 00 05 FF 00 00 01 FF FF FF FF FF FF FF FF �p.�ÿ..�ÿÿÿÿÿÿÿÿ 00000260 00 00 00 04 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... 00000270 10 70 00 05 FE 00 00 01 FF FF FF FF FF FF FF FF �p.�þ..�ÿÿÿÿÿÿÿÿ 00000280 00 00 00 04 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... e.g. sys_init_osd 00000290 10 70 00 05 FD 00 00 01 FF FF FF FF FF FF FF FF �p.�ý..�ÿÿÿÿÿÿÿÿ 000002A0 00 00 00 04 00 00 00 01 00 04 00 89 00 00 00 00 ...�...�.�.V.... e.g. sys_audio 000002B0 10 70 00 05 FC 00 00 01 FF FF FF FF FF FF FF FF �p.�ü..�ÿÿÿÿÿÿÿÿ 000002C0 00 00 00 04 00 00 00 03 00 01 00 00 00 00 00 00 ...�...�.�...... 000002D0 10 70 00 04 00 00 00 01 FF FF FF FF FF FF FF FF �p.�...�ÿÿÿÿÿÿÿÿ
3.41 trvk_prog0[edit | edit source]
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000200 00 00 00 04 00 00 00 01 00 03 00 41 00 00 00 00 ...�...�.�.A.... 00000210 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ 00000220 00 00 00 03 00 00 00 01 00 03 00 41 00 00 00 00 ...�...�.�.A.... 00000230 00 00 00 00 00 00 00 02 FF FF FF FF FF FF FF FF .......�ÿÿÿÿÿÿÿÿ 00000240 00 00 00 04 00 00 00 01 00 03 00 41 00 00 00 00 ...�...�.�.A.... 00000250 10 70 00 05 FF 00 00 01 FF FF FF FF FF FF FF FF �p.�ÿ..�ÿÿÿÿÿÿÿÿ 00000260 00 00 00 04 00 00 00 01 00 03 00 41 00 00 00 00 ...�...�.�.A.... 00000270 10 70 00 05 FE 00 00 01 FF FF FF FF FF FF FF FF �p.�þ..�ÿÿÿÿÿÿÿÿ 00000280 00 00 00 04 00 00 00 01 00 03 00 41 00 00 00 00 ...�...�.�.A.... 00000290 10 70 00 05 FD 00 00 01 FF FF FF FF FF FF FF FF �p.�ý..�ÿÿÿÿÿÿÿÿ 000002A0 00 00 00 04 00 00 00 01 00 03 00 41 00 00 00 00 ...�...�.�.A.... 000002B0 10 70 00 05 FC 00 00 01 FF FF FF FF FF FF FF FF �p.�ü..�ÿÿÿÿÿÿÿÿ 000002C0 00 00 00 04 00 00 00 03 00 01 00 00 00 00 00 00 ...�...�.�...... 000002D0 10 70 00 04 00 00 00 01 FF FF FF FF FF FF FF FF �p.�...�ÿÿÿÿÿÿÿÿ
3.55 trvk_prog1[edit | edit source]
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000200 00 00 00 04 00 00 00 01 00 03 00 55 00 00 00 00 ...�...�.�.U.... 00000210 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ 00000220 00 00 00 03 00 00 00 01 00 03 00 55 00 00 00 00 ...�...�.�.U.... 00000230 00 00 00 00 00 00 00 02 FF FF FF FF FF FF FF FF .......�ÿÿÿÿÿÿÿÿ 00000240 00 00 00 04 00 00 00 01 00 03 00 55 00 00 00 00 ...�...�.�.U.... 00000250 10 70 00 05 FF 00 00 01 FF FF FF FF FF FF FF FF �p.�ÿ..�ÿÿÿÿÿÿÿÿ 00000260 00 00 00 04 00 00 00 01 00 03 00 55 00 00 00 00 ...�...�.�.U.... 00000270 10 70 00 05 FE 00 00 01 FF FF FF FF FF FF FF FF �p.�þ..�ÿÿÿÿÿÿÿÿ 00000280 00 00 00 04 00 00 00 01 00 03 00 55 00 00 00 00 ...�...�.�.U.... 00000290 10 70 00 05 FD 00 00 01 FF FF FF FF FF FF FF FF �p.�ý..�ÿÿÿÿÿÿÿÿ 000002A0 00 00 00 04 00 00 00 01 00 03 00 55 00 00 00 00 ...�...�.�.U.... 000002B0 10 70 00 05 FC 00 00 01 FF FF FF FF FF FF FF FF �p.�ü..�ÿÿÿÿÿÿÿÿ 000002C0 00 00 00 04 00 00 00 03 00 01 00 00 00 00 00 00 ...�...�.�...... 000002D0 10 70 00 04 00 00 00 01 FF FF FF FF FF FF FF FF �p.�...�ÿÿÿÿÿÿÿÿ
3.56 pkg.srvk[edit | edit source]
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000200 00 00 00 03 00 00 00 02 00 01 00 00 00 00 00 00 ...�...�.�...... 1.0 version 00000210 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ 1 items 00000220 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 02 ...�.......�...� 00000230 00 00 00 08 00 05 00 00 00 00 00 00 00 00 00 00 ...�.�..........
trvk_pkg0[edit | edit source]
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000200 00 00 00 03 00 00 00 02 00 02 00 30 00 00 00 00 ...�...�.�.0.... 2.3 version 00000210 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ 2 Items 00000220 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 02 ...�.......�...� 00000230 00 02 00 30 00 00 00 00 00 00 00 00 00 00 00 00 .�.0............ 00000240 00 00 00 01 00 00 00 00 00 00 00 03 00 00 00 02 ...�.......�...� 00000250 00 02 00 30 00 00 00 00 00 00 00 00 00 00 00 00 .�.0............
trvk_pkg1[edit | edit source]
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000200 00 00 00 03 00 00 00 02 00 02 00 30 00 00 00 00 ...�...�.�.0.... 2.3 version 00000210 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ 2 Items 00000220 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 02 ...�.......�...� 00000230 00 02 00 30 00 00 00 00 00 00 00 00 00 00 00 00 .�.0............ 00000240 00 00 00 01 00 00 00 00 00 00 00 03 00 00 00 02 ...�.......�...� 00000250 00 02 00 30 00 00 00 00 00 00 00 00 00 00 00 00 .�.0............
|
|