Capability Flags: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
No edit summary
 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
This is a 32 Bytes that specifies if a SELF has reduced capabilities.
This is a 32-byte buffer that specifies if a SELF has more or less capabilities.


= Plaintext Capability =
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]].


Temp name was Control Flags. Official name is plaintext_capability.
= PS3 =


It is widely used by PS3 lv2. See also [[Capability_Flags]].
== 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"
Line 24: Line 30:
|}
|}


== Structure ==
=== Structure ===


<source lang="C">
<source lang="C">
Line 39: Line 45:
</source>
</source>


= Encrypted Capability =
== Encrypted Capability ==


== PS3 ==
=== Examples ===


{| class="wikitable sortable"
{| class="wikitable sortable"
Line 58: Line 64:
| 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 || ? || {{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 || ? || {{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 || lv1 ||  {{Yes}}
Line 69: Line 75:
|}
|}


* 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
=== 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 ==


== PSVita ==
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

PS Vita[edit | edit source]

Plaintext Capability[edit | edit source]

PS Vita does not use plaintext capability.

Encrypted Capability[edit | edit source]

See [1].