Editing Revoke List

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
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 17: Line 15:
= 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 hypervisor.<br>
So this is basically a list of additional checks for the hv.<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: [[Keys]], [[Program Authority Id]].
See also: [[keys]], [[Program Authority Id]].


== Struct ==
== Struct ==
Line 32: Line 30:
<source lang="C">
<source lang="C">
  typedef header {
  typedef header {
   uint32_t type;         /* 3 ps3 prog rvk, 4 ps3 pkg rvk, 5 psvita prog rvk */
   uint32_t type;       /* 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;     /* Revoke List Version */
     uint64_t version; /* Version */
   };
   };
   struct pkg {
   struct pkg {
Line 42: Line 40:
   };
   };
   };
   };
   uint32_t entry_count;   /* Number of entries */
   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 ==
=== Revoke list entries ===


<source lang="C">
<source lang="C">
Line 63: Line 61:
! field !! offset !! type !! notes
! field !! offset !! type !! notes
|-
|-
| program_type || 0x00 || u32 || See [[Program Type]].
| program_type || 0x00 || u32 ||
|-
|-
| flags || 0x04 || u32 || enforce/block/ignore/whatever?
| flags || 0x08 || u32 || enforce/block/ignore/whatever?
|-
|-
| version || 0x8 || u64 || program version
| version || 0x0c || u64 || program version
|-
|-
| program_authority_id || 0x10 || u64 || See [[Program Authority Id]].
| program_authority_id || 0x0C || u64 || [[Program Authority Id]]
|-
|-
| unknown ||0x18 || u64 || enforce/block/ignore/whatever?
| unknown ||0x10 || u64 || enforce/block/ignore/whatever?
|}
|}


Line 159: Line 157:
  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............




Please note that all contributions to PS3 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS3 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)