Revokation

From PS3 Developer wiki
Jump to: navigation, search

Location: CoreOS package 3.56+ . (for decryption you also need keys ofc, its same as spp/pkg/any metadata decryption)

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
SELF_File_Format_and_Decryption
Authentication_IDs

Struct[edit]

typedef header {
 uint32_t type;       /* header type
                       * 3 prg rvk
                       * 4 pkg rvk */
 uint32_t unk_1;      /* Unknown. */
 union {
  struct prg {
   uint64_t version;  /* Version. */
  };
  struct pkg {
   uint64_t unk_0;    /* Unknown. */
  };
 };
 uint32_t entcnt;     /* Number of entries. */
 uint8_t padding[12]; /* Padding. */
} __attribute__((packed)) rvk_HEADER;

revokation items

field offset type notes
self_type 0x00 u32
             *1 -- level 0
             *2 -- level 1 
             *3 -- level 2 
             *4 -- application 
             *5 -- isolated SPU module 
             *6 -- secure loader 
             *8 -- NP-DRM application
flags 0x08 u32 /* enforce/block/ignore/whatever? */
version 0x0c u64
authid 0x0c u64 Authentication_IDs
unknown 0x10 u64 /* enforce/block/ignore/whatever? */


typedef info {
 uint32_t self_type;             /* app type
                                  * 1 level0,
                                  * 2 level1,
                                  * 3 level2,
                                  * 4 application,
                                  * 5 isolated SPU module,
                                  * 6 secure loader,
                                  * 7 unknown, handled by appldr,
                                  * 8 NPDRM app */
 uint32_t flags;                 /* enforce/block/ignore/whatever? */
 uint64_t version;               /* app version */
 uint64_t authid;                /* auth id */
 uint64_t unknown1;              /* enforce/block/ignore/whatever? */
} __attribute__((packed)) rvk_INFO;

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