SceRegistryMgr

os0:kd/registry.db0
The registry database has a plaintext header and then the remaining text is xor-"encrypted" using the "key". To "decrypt", just xor every 16 byte (after the header) with the "key".

Comments
at beginning of a line comments this line

Exemple: line 5 is always :

where:
 * XXXXXXXX is system software version
 * (YYYY/MM/DD HH:mm) is build time

Areas
line starts a registry area

Possible values:
 * BASE: table of ID <-> name
 * REG-BAS: Base
 * REG-J1: Japan
 * REG-UC2: USA/Canada
 * REG-AU3: Australia/New Zealand
 * REG-CEK: United Kingdom
 * REG-CEL: Europe
 * REG-KR2: Korea
 * REG-E12: South Asia
 * REG-TW1: Taiwan
 * REG-RU3: Russia
 * REG-MX2: Mexico
 * REG-CN9: China
 * REG-DEX: DEX (TestKit)
 * REG-TOL: TOOL (DevKit)
 * REG-BAS_D: Base Dolce (PS TV)
 * REG-TOL_D: TOOL Dolce (DevKit in PS TV Emulation mode)

When PSVita is initialized at first boot, it first applies base registry, then it applies registry of the console's region / tyoe.

entries ID <-> entries name table
Example:

There are 2 types of registry entries:
 * categories (folders): they are uppercase and end with
 * keys: they are lowercase and do not end with

Registry entries
Example:

Format is:

Where IDs are the entries ID, that for human understanding we have to change into entries name.

Example:

is translated into

Values are in decimal, but for understanding we have sometime to translate them to hexadecimal:

We can see that size is 4 bytes and that default value is 0x350014 aka version 3.500.14.

More values
Found by reversing old modules.


 * 0x00: UP DATE
 * 0x10: FACTORY
 * 0x20: SYSTEM
 * 0x30: DEBUG
 * 0x40: REGION
 * default: ERROR!!

and on another flag level:
 * 0x1000: VOLATILE