Capability Flags: Difference between revisions
mNo edit summary |
CelesteBlue (talk | contribs) (→PSVita) |
||
(17 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
= Capability Flags = | This is a 32-byte buffer that specifies if a SELF has more or less capabilities. | ||
Capability is stored either as plaintext in [[SELF_-_SPRX#Supplemental_Header_Table|SELF Supplemental Header]] (SELF and PS3 only) or encrypted in the [[Certified_File#Optional_Header_Table|Certified File Optional Header]]. | |||
= PS3 = | |||
== Plaintext Capability == | |||
Official name is plaintext_capability as well as Control Flags according to 0.80 lv2 -> Control Flags might be something else then???. | |||
It is widely used by PS3 lv2. | |||
=== Examples === | |||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
|- | |- | ||
! Long Value !! Short Notation !! Type !! [[Whitelisting]] | |||
|- | |||
| 0000000000000000000000000000000000000000000000000000000000000000 || 00 00 00 00 00 00 00 00 00 00 00 00 || lv1::PLAINTEXT_CAPABILITY_DEFAULT || {{Yes}} | |||
|- | |||
| 0000000000000000000000000000000000000000000000000000000000000000 || 00 00 00 00 00 00 00 00 00 00 00 00 || lv2::PLAINTEXT_CAPABILITY_DEFAULT || {{Yes}} | |||
|- | |||
| 0000000000000000000000000000000000000000000000000000000000000003 || 00 00 00 00 00 00 00 00 00 00 00 03 || ? || {{Yes}} | |||
|- | |||
| 4000000000000000000000000000000000000000000000000000000000000000 || 40 00 00 00 00 00 00 00 00 00 00 00 || Root Flags || {{Yes}} | |||
|- | |||
| 4000000000000000000000000000000000000000000000000000000000000002 || 40 00 00 00 00 00 00 00 00 00 00 02 || Root Flags + debug_mode_capability flags (vsh) || {{Yes}} | |||
|- | |||
| 4000000000000000000000000000000000000000000000000000000000000004 || 40 00 00 00 00 00 00 00 00 00 00 04 || Root flags + product_mode_capability flags || {{Yes}} | |||
|} | |||
=== Structure === | |||
<source lang="C"> | |||
struct { // Size is 0x20 bytes | |||
uint32_t ctrl_flag1; // 0x80000000(all?), 0x40000000(root), 0x20000000(dbg), 0x00000000(normal?) | |||
uint32_t unknown2; | |||
uint32_t unknown3; | |||
uint32_t unknown4; | |||
uint32_t unknown5; | |||
uint32_t unknown6; | |||
uint32_t unknown7; // ex: 0, 8, 9, 0xC | |||
uint32_t unknown8; // ex: 0(normal_mode), 1, 2(debug_mode), 4(product_mode) | |||
} plaintext_capability; | |||
</source> | |||
== Encrypted Capability == | |||
=== Examples === | |||
{| class="wikitable sortable" | |||
! Long Value !! Short Notation !! Type !! [[Whitelisting]] | ! Long Value !! Short Notation !! Type !! [[Whitelisting]] | ||
|- | |- | ||
Line 12: | Line 59: | ||
|- | |- | ||
| 00000000000000000000000000000000000000000000003B0000000000002000 || 00 00 00 00 00 00 00 3B 00 00 00 00 00 00 20 00 || ? || {{Yes}} | | 00000000000000000000000000000000000000000000003B0000000000002000 || 00 00 00 00 00 00 00 3B 00 00 00 00 00 00 20 00 || ? || {{Yes}} | ||
|- | |||
| 00000000000000000000000000000000000000000000003B0000000000020000 || 00 00 00 00 00 00 00 3B 00 00 00 00 00 02 00 00 || BluRay || {{unknown}} | |||
|- | |- | ||
| 00000000000000000000000000000000000000000000003B0000000100000000 || 00 00 00 00 00 00 00 3B 00 00 00 01 00 00 00 00 || ? || {{Yes}} | | 00000000000000000000000000000000000000000000003B0000000100000000 || 00 00 00 00 00 00 00 3B 00 00 00 01 00 00 00 00 || ? || {{Yes}} | ||
|- | |- | ||
| 00000000000000000000000000000000000000000000003B0000000100002000 || 00 00 00 00 00 00 00 3B 00 00 00 01 00 00 20 00 || | | 00000000000000000000000000000000000000000000003B0000000100002000 || 00 00 00 00 00 00 00 3B 00 00 00 01 00 00 20 00 || HDDGame || {{Yes}} | ||
|- | |- | ||
| 00000000000000000000000000000000000000000000003B0000000100040000 || 00 00 00 00 00 00 00 3B 00 00 00 01 00 04 00 00 || | | 00000000000000000000000000000000000000000000003B0000000100040000 || 00 00 00 00 00 00 00 3B 00 00 00 01 00 04 00 00 || DiscGame || {{Yes}} | ||
|- | |- | ||
| 00000000000000000000000000000000000000000000007B0000000100000000 || 00 00 00 00 00 00 00 7B 00 00 00 01 00 00 00 00 || lv1 || {{Yes}} | | 00000000000000000000000000000000000000000000007B0000000100000000 || 00 00 00 00 00 00 00 7B 00 00 00 01 00 00 00 00 || lv1 || {{Yes}} | ||
Line 24: | Line 73: | ||
|- | |- | ||
| 00000000000000000000000000000000000000000000007B0000000100116000 || 00 00 00 00 00 00 00 7B 00 00 00 01 00 11 60 00 || ? || {{Yes}} | | 00000000000000000000000000000000000000000000007B0000000100116000 || 00 00 00 00 00 00 00 7B 00 00 00 01 00 11 60 00 || ? || {{Yes}} | ||
|} | |} | ||
=== Structure === | |||
appldr | |||
0x17 = 0x78 | |||
xsetting | |||
0x17 = 0x3B | |||
0x1B = 0x01 | |||
0x1D = 0x02 | |||
ps3swu | |||
0x17 = 0x7B | |||
0x1B = 0x01 | |||
0x1D = 0x11 | |||
0x1E = 0x60 | |||
lv2 | |||
0x17 = 0x7B | |||
0x1B = 0x01 | |||
lv1 | |||
0x17 = 0x7B | |||
0x1B = 0x01 | |||
libfs | |||
0x17 = 0x7B | |||
0x1B = 0x01 | |||
icolaunch | |||
0x17 = 0x3B | |||
0x1B = 0x01 | |||
0x1D = 0x04 | |||
hddcopy | |||
0x17 = 0x7B | |||
0x1B = 0x01 | |||
0x1D = 0x08 | |||
flowers | |||
0x17 = 0x3B | |||
0x1B = 0x01 | |||
0x1E = 0x20 | |||
fdm_spu | |||
0x17 = 0x38 | |||
emu_drm | |||
0x17 = 0x3B | |||
0x1D = 0x02 | |||
bdj | |||
0x0F = 0x01 //qa-bdp type1 | |||
0x17 = 0x27 | |||
0x1D = 0x02 | |||
swagner | |||
0x0F = 0x02 //qa-bdp type2 | |||
0x17 = 0x3F | |||
0x1D = 0x02 | |||
--------------------- | |||
0x0C = 0x00000001 / 0x00000002 // qa_bdp_type_flags<br> | |||
0x14 = 0x00000038 / 0x0000003B / 0x00000078 / 0x0000007B / 0x00000027<br> | |||
0x18 = 0x00000001 <br> | |||
0x1C = 0x00002000 / 0x00020000 / 0x00040000 / 0x00080000 / 0x00116000<br> | |||
0x14: | |||
#define CAP_FLAG_REFTOOL 0x08 // DEH | |||
#define CAP_FLAG_DEBUG 0x10 // DEX | |||
#define CAP_FLAG_RETAIL 0x20 // CEX | |||
#define CAP_FLAG_SYSDBG 0x40 // ARCADE | |||
Some more cap flags from appldr 3.56 whitelist: | |||
https://web.archive.org/web/20161126102609/http://pastie.org/3090973 | |||
https://web.archive.org/web/20161126102716/http://pastie.org/3090976 | |||
* https://web.archive.org/web/*/https://playstationhax.xyz/forums/topic/2341-solution-blu-ray-playback-in-dex-mode-0x800299d2-fix/ for 0x3B 00 00 00 00 00 02 00 00 | |||
= PS Vita = | |||
== Plaintext Capability == | |||
PS Vita does not use plaintext capability. | |||
== Encrypted Capability == | |||
See [https://wiki.henkaku.xyz/vita/SceSblACMgr#Capability]. | |||
{{File Formats}}<noinclude>[[Category:Main]]</noinclude> | {{File Formats}}<noinclude>[[Category:Main]]</noinclude> |
Latest revision as of 20:48, 30 June 2023
This is a 32-byte buffer that specifies if a SELF has more or less capabilities.
Capability is stored either as plaintext in SELF Supplemental Header (SELF and PS3 only) or encrypted in the Certified File Optional Header.
PS3[edit | edit source]
Plaintext Capability[edit | edit source]
Official name is plaintext_capability as well as Control Flags according to 0.80 lv2 -> Control Flags might be something else then???.
It is widely used by PS3 lv2.
Examples[edit | edit source]
Long Value | Short Notation | Type | Whitelisting |
---|---|---|---|
0000000000000000000000000000000000000000000000000000000000000000 | 00 00 00 00 00 00 00 00 00 00 00 00 | lv1::PLAINTEXT_CAPABILITY_DEFAULT | Yes |
0000000000000000000000000000000000000000000000000000000000000000 | 00 00 00 00 00 00 00 00 00 00 00 00 | lv2::PLAINTEXT_CAPABILITY_DEFAULT | Yes |
0000000000000000000000000000000000000000000000000000000000000003 | 00 00 00 00 00 00 00 00 00 00 00 03 | ? | Yes |
4000000000000000000000000000000000000000000000000000000000000000 | 40 00 00 00 00 00 00 00 00 00 00 00 | Root Flags | Yes |
4000000000000000000000000000000000000000000000000000000000000002 | 40 00 00 00 00 00 00 00 00 00 00 02 | Root Flags + debug_mode_capability flags (vsh) | Yes |
4000000000000000000000000000000000000000000000000000000000000004 | 40 00 00 00 00 00 00 00 00 00 00 04 | Root flags + product_mode_capability flags | Yes |
Structure[edit | edit source]
struct { // Size is 0x20 bytes
uint32_t ctrl_flag1; // 0x80000000(all?), 0x40000000(root), 0x20000000(dbg), 0x00000000(normal?)
uint32_t unknown2;
uint32_t unknown3;
uint32_t unknown4;
uint32_t unknown5;
uint32_t unknown6;
uint32_t unknown7; // ex: 0, 8, 9, 0xC
uint32_t unknown8; // ex: 0(normal_mode), 1, 2(debug_mode), 4(product_mode)
} plaintext_capability;
Encrypted Capability[edit | edit source]
Examples[edit | edit source]
Long Value | Short Notation | Type | Whitelisting |
---|---|---|---|
00000000000000000000000000000000000000000000001B0000000100000000 | 00 00 00 00 00 00 00 1B 00 00 00 01 00 00 00 00 | ? | No |
00000000000000000000000000000000000000000000001B0000000100100000 | 00 00 00 00 00 00 00 1B 00 00 00 01 00 10 00 00 | ? | Yes |
0000000000000000000000000000000000000000000000380000000100002000 | 00 00 00 00 00 00 00 38 00 00 00 01 00 00 20 00 | ? | Yes |
00000000000000000000000000000000000000000000003B0000000000002000 | 00 00 00 00 00 00 00 3B 00 00 00 00 00 00 20 00 | ? | Yes |
00000000000000000000000000000000000000000000003B0000000000020000 | 00 00 00 00 00 00 00 3B 00 00 00 00 00 02 00 00 | BluRay | Unknown |
00000000000000000000000000000000000000000000003B0000000100000000 | 00 00 00 00 00 00 00 3B 00 00 00 01 00 00 00 00 | ? | Yes |
00000000000000000000000000000000000000000000003B0000000100002000 | 00 00 00 00 00 00 00 3B 00 00 00 01 00 00 20 00 | HDDGame | Yes |
00000000000000000000000000000000000000000000003B0000000100040000 | 00 00 00 00 00 00 00 3B 00 00 00 01 00 04 00 00 | DiscGame | Yes |
00000000000000000000000000000000000000000000007B0000000100000000 | 00 00 00 00 00 00 00 7B 00 00 00 01 00 00 00 00 | lv1 | Yes |
00000000000000000000000000000000000000000000007B0000000100000000 | 00 00 00 00 00 00 00 7B 00 00 00 01 00 00 00 00 | lv2_kernel | Yes |
00000000000000000000000000000000000000000000007B0000000100116000 | 00 00 00 00 00 00 00 7B 00 00 00 01 00 11 60 00 | ? | Yes |
Structure[edit | edit source]
appldr
0x17 = 0x78
xsetting
0x17 = 0x3B 0x1B = 0x01 0x1D = 0x02
ps3swu
0x17 = 0x7B 0x1B = 0x01 0x1D = 0x11 0x1E = 0x60
lv2
0x17 = 0x7B 0x1B = 0x01
lv1
0x17 = 0x7B 0x1B = 0x01
libfs
0x17 = 0x7B 0x1B = 0x01
icolaunch
0x17 = 0x3B 0x1B = 0x01 0x1D = 0x04
hddcopy
0x17 = 0x7B 0x1B = 0x01 0x1D = 0x08
flowers
0x17 = 0x3B 0x1B = 0x01 0x1E = 0x20
fdm_spu
0x17 = 0x38
emu_drm
0x17 = 0x3B 0x1D = 0x02
bdj
0x0F = 0x01 //qa-bdp type1 0x17 = 0x27 0x1D = 0x02
swagner
0x0F = 0x02 //qa-bdp type2 0x17 = 0x3F 0x1D = 0x02
0x0C = 0x00000001 / 0x00000002 // qa_bdp_type_flags
0x14 = 0x00000038 / 0x0000003B / 0x00000078 / 0x0000007B / 0x00000027
0x18 = 0x00000001
0x1C = 0x00002000 / 0x00020000 / 0x00040000 / 0x00080000 / 0x00116000
0x14:
#define CAP_FLAG_REFTOOL 0x08 // DEH #define CAP_FLAG_DEBUG 0x10 // DEX #define CAP_FLAG_RETAIL 0x20 // CEX #define CAP_FLAG_SYSDBG 0x40 // ARCADE
Some more cap flags from appldr 3.56 whitelist:
https://web.archive.org/web/20161126102609/http://pastie.org/3090973
https://web.archive.org/web/20161126102716/http://pastie.org/3090976
- https://web.archive.org/web/*/https://playstationhax.xyz/forums/topic/2341-solution-blu-ray-playback-in-dex-mode-0x800299d2-fix/ for 0x3B 00 00 00 00 00 02 00 00
PS Vita[edit | edit source]
Plaintext Capability[edit | edit source]
PS Vita does not use plaintext capability.
Encrypted Capability[edit | edit source]
See [1].
|