Revoke List: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 38: | Line 38: | ||
* 3 prg rvk | * 3 prg rvk | ||
* 4 pkg rvk */ | * 4 pkg rvk */ | ||
uint32_t unk_1; /* Unknown. */ | |||
union { | union { | ||
struct prg { | struct prg { |
Revision as of 17:57, 6 December 2011
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.
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
Examples
3.56 prog.srvk
00000000 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 contents 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.�...�ÿÿÿÿÿÿÿÿ
Struct
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;
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 */ uint64_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;
3.56 pkg.srvk
00000000 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 ...�...�.�...... 00000210 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ...�............ 1 content 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 ...�.�..........