Revoke List

From PS3 Developer wiki
Jump to: navigation, search

Revoke list is a Certified File

Location[edit]

PS3[edit]

CoreOS package 3.56+.

RL_FOR_PACKAGE.img/RL_FOR_PROGRAM.img, pkg.srvk/prog.srvk

PSVita[edit]

slb2:prog_rvk.srvk

Decryption[edit]

See Certified_File#Decryption

= Stucture

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 hv.
example: if (sce type == 4 & authid = x) then do what flags tell, related with version etc.

See also: keys, Program Authority Id.

Struct[edit]

 typedef header {
  uint32_t type;       /* type: 3 ps3 prog rvk, 4 ps3 pkg rvk, 5 psvita prog rvk */
  uint32_t unk;
  union {
   struct prog {
    uint64_t version;  /* 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]

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
flags 0x08 u32 enforce/block/ignore/whatever?
version 0x0c u64 program version
program_authority_id 0x0C u64 Program Authority Id
unknown 0x10 u64 enforce/block/ignore/whatever?

Examples[edit]

= PS3[edit]

3.56 prog.srvk[edit]

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 56 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 03 00 56 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 03 00 56 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 03 00 56 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 03 00 56 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 03 00 56 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]

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]

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]

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]

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]

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............