Revoke List: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
(Added MD5's extracted from .PUP's - Credits to Judge for his time consuming work. Much respect.)
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Software]]
Revoke list is a [[Certified File]].
Location: CoreOS package 3.56+ . (for decryption you also need keys ofc, its same as spp/pkg/any metadata decryption)
 
= Location =
 
== PS3 ==
 
CoreOS package 3.56+.
 
RL_FOR_PACKAGE.img/RL_FOR_PROGRAM.img, pkg.srvk/prog.srvk
 
== PSVita ==
 
In SLB2 partition in PUP and in eMMC:
 
slb2:prog_rvk.srvk
 
= Decryption =
 
See [[Certified_File#Decryption]].
 
= 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 hv.<br>
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>
Example: if (sce type == 4 & authid = x) then do what flags tell, related with version etc.<br>


See also: <br>
See also: [[Keys]], [[Program Authority Id]].
[[keys]]<br>
[[SELF_File_Format_and_Decryption]]<br>
[[Authentication_IDs]]<br>


==Struct==
== Struct ==


<source lang="C">
  typedef header {
  typedef header {
   uint32_t type;       /* header type
   uint32_t type;         /* 3 ps3 prog rvk, 4 ps3 pkg rvk, 5 psvita prog rvk */
                        * 3 prg rvk
   uint32_t unk;
                        * 4 pkg rvk */
   uint32_t unk_1;     /* Unknown. */
   union {
   union {
   struct prg {
   struct prog {
     uint64_t version; /* Version. */
     uint64_t version;     /* Revoke List Version */
   };
   };
   struct pkg {
   struct pkg {
     uint64_t unk_0;   /* Unknown. */
     uint64_t unk_pkg_rvk; /* To check */
   };
   };
   };
   };
   uint32_t entcnt;     /* Number of entries. */
   uint32_t entry_count;   /* Number of entries */
   uint8_t padding[12]; /* Padding. */
   uint8_t padding[0xC];
} __attribute__((packed)) rvk_HEADER;
} __attribute__((packed)) rvk_header;
</source>
 
== Revoke list entries ==
 
<source lang="C">
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;
</source>


revokation items
{| class="wikitable"
{| class="wikitable"
|-
|-
! field !! offset !! type !! notes
! field !! offset !! type !! notes
|-
|-
|self_type || 0x00 ||u32 ||
| program_type || 0x00 || u32 || See [[Program Type]].
              *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? */
| flags || 0x04 || u32 || enforce/block/ignore/whatever?
|-
|-
|version || 0x0c ||u64 ||  
| version || 0x8 || u64 || program version
|-
|-
|authid || 0x0c ||u64 || [[Authentication_IDs]]
| program_authority_id || 0x10 || u64 || See [[Program Authority Id]].
|-
|-
|unknown ||0x10 ||u64 || /* enforce/block/ignore/whatever? */
| unknown ||0x18 || u64 || enforce/block/ignore/whatever?
|}
|}


= Examples =


typedef info {
== PS3 =
  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 ==
=== 3.56 prog.srvk ===


=== 3.56 prog.srvk ===
  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 03 00 56 00 00 00 00  ...�...�.�.V....
  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 03 00 56 00 00 00 00  ...�...�.�.V.... e.g. lv2
  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 03 00 56 00 00 00 00  ...�...�.�.V.... e.g. vsh
  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 03 00 56 00 00 00 00  ...�...�.�.V....  
  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 03 00 56 00 00 00 00  ...�...�.�.V.... e.g. sys_init_osd
  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 03 00 56 00 00 00 00  ...�...�.�.V.... e.g. sys_audio
  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  ...�...�.�......
  000002D0  10 70 00 04 00 00 00 01 FF FF FF FF FF FF FF FF  �p.�...�ÿÿÿÿÿÿÿÿ
  000002D0  10 70 00 04 00 00 00 01 FF FF FF FF FF FF FF FF  �p.�...�ÿÿÿÿÿÿÿÿ


=== 3.41 trvk_prog0 ===
=== 3.41 trvk_prog0 ===
 
  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 03 00 41 00 00 00 00  ...�...�.�.A....
  00000200  00 00 00 04 00 00 00 01 00 03 00 41 00 00 00 00  ...�...�.�.A....
Line 107: Line 114:
  000002D0  10 70 00 04 00 00 00 01 FF FF FF FF FF FF FF FF  �p.�...�ÿÿÿÿÿÿÿÿ
  000002D0  10 70 00 04 00 00 00 01 FF FF FF FF FF FF FF FF  �p.�...�ÿÿÿÿÿÿÿÿ


=== 3.55 trvk_prog1 ===
=== 3.55 trvk_prog1 ===
 
  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 03 00 55 00 00 00 00  ...�...�.�.U....
  00000200  00 00 00 04 00 00 00 01 00 03 00 55 00 00 00 00  ...�...�.�.U....
Line 124: Line 132:
  000002D0  10 70 00 04 00 00 00 01 FF FF FF FF FF FF FF FF  �p.�...�ÿÿÿÿÿÿÿÿ
  000002D0  10 70 00 04 00 00 00 01 FF FF FF FF FF FF FF FF  �p.�...�ÿÿÿÿÿÿÿÿ


=== 3.56 pkg.srvk ===


=== 3.56 pkg.srvk ===
  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 03 00 00 00 02 00 01 00 00 00 00 00 00  ...�...�.�...... 1.0 version
  00000200  00 00 00 03 00 00 00 02 00 01 00 00 00 00 00 00  ...�...�.�...... 1.0 version
Line 133: Line 141:


=== trvk_pkg0 ===
=== trvk_pkg0 ===
  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 03 00 00 00 02 00 02 00 30 00 00 00 00  ...�...�.�.0....  2.3 version
  00000200  00 00 00 03 00 00 00 02 00 02 00 30 00 00 00 00  ...�...�.�.0....  2.3 version
Line 142: Line 151:


=== trvk_pkg1 ===
=== trvk_pkg1 ===
  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 03 00 00 00 02 00 02 00 30 00 00 00 00  ...�...�.�.0.... 2.3 version
  00000200  00 00 00 03 00 00 00 02 00 02 00 30 00 00 00 00  ...�...�.�.0.... 2.3 version
Line 150: Line 160:
  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............


== tvrk_prg0/1 MD5s ==
This MD5 value persists during the transition from the PUP to the Flash.
{| class="wikitable"
|-
! Firmware !! MD5
|-
| 4.31 || 7B84CFFB3DB4DB6C4F2ED264C5C413B0
|-
| 4.30 || 38F41739F715A890598F3523FB56130C
|-
| 4.25_DEX || 7543C580101650016F52D921BB3D9C4E
|-
| 4.25 || 7251547BB7C1F60F211FF991BF88083F
|-
| 4.21 || D27D88B0FA283458896439924C1364D1
|-
| 4.20 || 06B819050E072F00E1CFBADA14D11042
|-
| 4.10/4.11 || 1D364CE8487B2398A9E895C5C87748D9
|-
| 4.00 || A30722F12FA0872D87A156F85424013E
|-
| 3.73 || 7342AFF50A0CE981DFFB07ABA742CC38
|-
| 3.72 || D2BE1629D2EB07F540A6735824B73537
|-
| 3.70 || 59FBBD39CC17406E34F19C09F3DD9D64
|-
| 3.66/3.66_DEX || AEEEF0B234E004DA7B9F10B80D51C137
|-
| 3.65 || E6C2B57E1BC810A9473448971775AF78
|-
| 3.61 || 969702263EF47B8CAA3745FE1BF9B22D
|-
| 3.60/3.60_DEX || 38F60E2302C0ABEB88EF8058FBF45480
|-
| 3.56_2 || 3369B79830062846EAD00BA82546C06C
|-
| 3.56_1 || B89DB85F620A44535B874744F5823CE1
|-
| 3.55/3.55_DEX || 9A3060D30A25DCE7686AA415A1857319
|-
| 3.50_DEX || D7B99A10B7968C2E9710ABAE2CC765DD
|-
| 3.50 || C67C0E8750BE22D781C5168FE631145F
|-
| 3.42 || 15C630F1EF0F70F968829783F34BBB4F
|-
| 3.41_2/3.41_DEX || B9FA9B2128677D0A0147BB1779A846AC
|-
| 3.40 || 7B558127CCA04DC3031453AEAEA36066
|-
| 3.30 || E4B49673D8DFCFB8D1004D65F25E9A95
|-
| 3.21 || 006CF0D4FA748A746B0FB2EF8B9F4462
|-
| 3.15/3.15_DEX || B3D7874BF265BEA925531D4B6FD84575
|-
| 3.10 || D80CBA5A722EA10BD1EE452BBB9DE7C6
|-
| 3.01 || 05029C4F31921A5B1E5199F586AC0099
|-
| 3.00 || EED1F52FEE408C5E9AAFA6797DC6C1EA
|-
| 2.80 || 7C25D70ADE0FD709D182A9E07445E4EB
|-
| 2.76 || 9E0C34B1C6DFCF85E86C254249F222FA
|-
| 2.70 || 3534B73AD8417A35D5DC8B371B45A171
|-
| 2.60 || A34DB715070E75B3F7A76B48D7F3939D
|-
| 2.53 || EEBBAE430CE7A723C1769F77914FFC75
|-
| 2.52 || 63E0721BD4C712738B8CFDEFE7A16D6D
|-
| 2.50 || AE6BD7BCAE934DF1D4A0364E8FFD8D2C
|-
| 2.43 || 784C73FCA1FB0BBB9162585586701895
|-
| 2.42 || E73F305D7386AD65ECA1737DDB20C212
|-
| 2.41 || AF62192A127780A7F3FF74F497F2166B
|-
| 2.40 || 592085BF608BA98CDCD97F83D0585D8B
|-
| 2.36 || 30AEEDE2A064039CA6523CB81897ABB9
|-
| 2.35 || 53FDFB27E75A071DA477E4E23BF5D95D
|-
| 2.30 || 1DA4956E0716A221770700910B326DB6
|-
| 2.20 || 6EC24DA67B34757552536F5A64031DE3
|-
| 2.17 || EBBEA9B7483468A5651E85508E6F9DDE
|-
| 2.10 || E5C8EF3D07917BC13C7E25BFB3181E22
|-
| 2.01 || 0EF35CA6AE3B364CD43FBA5F7832B8D1
|-
| 2.00 || FC8C4389D17004220F2EB30909608066
|-
| 1.93 || 0928C14E96D725C2FB161A42A3F44428
|-
| 1.92 || F06A8BBFBA08A4C648C8DA67DB4A4B36
|-
| 1.90 || 9362B499D8FC74972E2C0CB401E85526
|-
| 1.82 || 2C16DDCF3F130295DA202E6DDCC2A224
|-
| 1.81 || FAD825B3EEF1BDD213C74B58E8D695B8
|-
| 1.80 || C22F1C41342904C33A93B2BCC7A9514B
|-
| 1.70 || A039F8EBDC1993860EEA11B126377EAF
|-
| 1.60 || CAAC5DE89DAA2D79DB60F5972F2D7805
|-
| 1.54 || CB006FCF62FA064254E877F2BDEB463D
|-
| 1.51 || 2643A3185DEFACC75F5C410BFDBFBA26
|-
| 1.50 || 905694B5FFA1F0E49E4860E581B5653E
|-
| 1.32 || E86E439B43E079DBC6759638A9B84891
|-
| 1.31 || 88D6850F99F3BA51FA6BB37FABC1A800
|-
| 1.30 || 0DB00E61FA8134640800F2EFBCE6F8F9
|-
| 1.11 || 410451085E6305BABE8D94FFF89F6C5C
|-
| 1.10 || FC0D846FD88982FB81564D7475590716
|-
| 1.02 || 60A4B20FB5B6E09E700E799244C1BC46
|-
|}
== tvrk_pkg0/1 MD5s ==
This MD5 value does '''NOT''' persist during the transition from the PUP to the Flash.


{| class="wikitable"
{{Reverse engineering}}
|-
{{Flash}}
! Firmware !! MD5
{{File Formats}}
|-
<noinclude>[[Category:Main]]</noinclude>
| 4.25_DEX || 6AB35C1F02B584AE84474D7ABECD6BDA
|-
| 4.20/4.21/4.25/4.30/4.31 || CCB14FE47C09CF4585127CFF2CE72693
|-
| 4.10/4.11 || B73491D0783489FEE31847261364ED41
|-
| 4.00 || BCBBD3B8F0D6F50AE45B06EC53E1DF3F
|-
| 3.70/3.72/3.73 || 3947F77FD2E2F997E1E03823C446FB60
|-
| 3.66/3.66_DEX || DE8E6C172782047479638C1EFEAF0F51
|-
| 3.65 || EA38E7F4598F5A20F3D5CBA0114AC727
|-
| 3.61 || 16ADE352DAEDDA3FA63A202C767B4C7A
|-
| 3.60/3.60_DEX || FF273E1B10617FA053435672844A229D
|-
| 3.56_2 || A38264BAF9A6BDA0E5B1B2E32E2B6A28
|-
| 3.56_1 || E93A19A2DFE59DDA3C299EA3B9A7F045
|-
| 3.55_DEX || 3F807A034B6DCB21F53929B5D0570541
|-
| 3.50_DEX || 27B27ACD2075A04CF277C0335538157D
|-
| 3.50/3.55 || 9C050BB7146E394413804E9E1E9F7FA6
|-
| 3.41_DEX || 89B8674638DD06611C3D6946CC0231AE
|-
| 3.40/3.41_2/3.42 || E080E353F2D9A1548E3014D2DC6B4BBD
|-
| 3.30 || BC3A89D6F7D66B64376C0DFF13D6B867
|-
| 3.21 || 7BCF9B229FD7AF99F7AF955243129354
|-
| 3.15/3.15_DEX || 9589EB7F93B5371E0CB60D454C67ADFA
|-
| 3.10 || EC0945F3AEA4A71A2E5E43C5A8ECD594
|-
| 3.01 || A7826026D5403024810EDC1E4DD77A52
|-
| 3.00 || 95108E059B65E5C1CE6A4A8089089A60
|-
| 2.80 || 32F5E69E8DE7B87DACC84A92E7025559
|-
| 2.76 || CDF88CA39FA271D25C18A2FBE5F9F7BE
|-
| 2.70 || 22E2A99BA76E56F0957A7CF9FB145978
|-
| 2.60 || F36B3654D90C1578362A8A1510D0BBDD
|-
| 2.53 || DC0D0B66621C6DFB6704DBF28C58352C
|-
| 2.52 || 26401229922C74D4C87D0DF003D235F1
|-
| 2.50 || 22EFAB44D5CC3D7BA3AF05A4C283E1DA
|-
| 2.43_LEAKED_JIG || 50AF53AF6D53F84D6D92EA6EFC5671DD
|-
| 2.43 || 98BCA0307B2843A815176804947B68E0
|-
| 2.42 || 93B7BE6B8302848FA27EBB8C3E01AE4B
|-
| 2.41 || 505D3CFFFEA7E6085DB5A92C08BFD9BC
|-
| 2.40 || 8DA31A5EDBE973EF0B054E34304F3BC4
|-
| 2.36 || FFD0D46F1B1675DA9A5A9E00AF5D71DD
|-
| 2.35 || B6E9AB2CCE06F244FE6BFED3C8244082
|-
| 2.30 || 95CF8B4D7C88396AD71B2837909DD847
|-
| 2.20 || 02DB8CA8361CEC854DFB339644A5D997
|-
| 2.17 || EC9DD3B077A4F42B42AF20A82E07A1EB
|-
| 2.10 || EBDB8D9CF82DC1F53ED1EAAC39851F6F
|-
| 2.01 || 18B410877F6F962E92B7AECD91B1CF0C
|-
| 2.00 || 4FCEFA3CFB8D731E90B53FC949151C91
|-
| 1.93 || 36AD871B0BB839C02CB4BDDBE52FEFEA
|-
| 1.92 || B594EA4DB3B3A3D1FB02E0B2B6EE2201
|-
| 1.90 || A11A6F728B0086E9082BAD0506C58B94
|-
| 1.82 || 653434FF27E82FAA04FFA038784A1E7B
|-
| 1.81 || C03376C49B7D028094C340E7369CE912
|-
| 1.80 || A17466375FC6B6E2E8D8B0F223012F85
|-
| 1.70 || 3FAB9C9B2C13DAD1D634493F04C60609
|-
| 1.60 || 29B657AB7327CD1F00B701AE6B7BC179
|-
| 1.54 || 5D2516B29A9C2E56C3E1C5F2F5883FF0
|-
| 1.51 || 39BB79DED88187372F06B2F5D393D777
|-
| 1.50 || 847F9F54A392BCC3F059F2352F4E844C
|-
| 1.32 || D08A3FD2C5B8468C4980BCA014EAA47A
|-
| 1.31 || C01D8294B4F319DF0CD1CA6CC4480826
|-
| 1.30 || 7111A00520ACE60D17BB23709F5EC4EC
|-
| 1.11 || 6D49077177812D9D6FCD289FD1EDED90
|-
| 1.10 || EA03F7AC248C5B5228D8B40B13A27AE8
|-
| 1.02 || B7829DD4B09C25B6918BA78BDEACF07F

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