Module
Version |
World |
Privilege
|
1.69-3.60 |
Non-secure |
Kernel
|
Libraries
Known NIDs
os0:kd/registry.db0
The registry database has a plaintext header and then the remaining text is xor-"encrypted" using the "key" {0x89, 0xFA, 0x95, 0x48, 0xCB, 0x6D, 0x77, 0x9D, 0xA2, 0x25, 0x34, 0xFD, 0xA9, 0x35, 0x59, 0x6E}
. To "decrypt", just xor every 16 byte (after the header) with the "key".
File overview
;#
at beginning of a line comments this line
Exemple: line 5 is always :
;# XXXXXXXX (YYYY/MM/DD HH:mm)
where:
- XXXXXXXX is system software version
- (YYYY/MM/DD HH:mm) is build time
Areas
[ <TYPE>
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:
[BASE
1=REGISTRY/
2=category_version
3=region_no
4=serial_id
5=check_qaf
6=ERROR/
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:
[REG-BAS
/1/2=0:4:1:0:0:0:99:99:0:0:0:0:0:0:1:3473428:
/1/3=0:4:1:0:0:0:99:99:0:0:0:0:0:0:1:0:
/1/4=2:32:0:0:0:0:99:99:0:0:0:0:0:0:129:0:
/1/5=0:4:1:16:44:0:0:0:0:0:0:0:0:0:1:0:
/1/6/7=0:4:1:32:0:0:0:0:0:0:0:0:0:0:1:0:
/1/6/8/9=2:32:0:16416:0:0:99:99:0:0:0:0:0:0:0:0:
/1/6/8/10=2:96:0:16416:0:0:99:99:0:0:0:0:0:0:0:0:
/11/12/13=0:4:1:32:0:0:30:30:0:0:0:0:1:1:1:0:
/11/12/14=1:17:1:32:0:0:30:30:1:0:1:0:0:0:128:0:
/11/12/15=0:4:1:8224:0:0:30:30:1:0:1:0:1:1:1:1:
/11/12/16=0:4:1:8240:0:0:30:30:1:0:1:0:1:1:1:1:
/11/12/17=0:4:1:8224:0:0:30:30:1:0:1:0:0:0:1:1:
/11/12/18=0:4:1:8240:0:0:30:30:0:0:0:0:1:1:1:0:
/11/12/19=0:4:1:32:0:0:30:30:0:0:0:0:1:0:1:0:
/11/12/20=0:4:1:32:0:0:30:30:0:0:0:0:1:0:1:1:
/11/12/21=0:4:1:32:0:0:30:30:0:0:0:0:1:0:1:1:
Format is: <ID>/<ID2>/<ID3>/<ID4>/<ID5>=<value0>:<size>:<value2>:<value3>:<value4>:<value5>:<value6>:<value7>:<value8>:<value9>:<valueA>:<valueB>:<valueC>:<valueD>:<valueE>:<default_value>:
Where IDs are the entries ID, that for human understanding we have to change into entries name.
Example:
/1/2=0:4:1:0:0:0:99:99:0:0:0:0:0:0:1:3473428:
is translated into
/REGISTRY/category_version=0:4:1:0:0:0:99:99:0:0:0:0:0:0:1:3473428:
Values are in decimal, but for understanding we have sometime to translate them to hexadecimal:
/REGISTRY/category_version=0:4:1:0:0:0:0x63:0x63:0:0:0:0:0:0:1:0x350014:
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:
SceRegMgrForDriver
sceRegMgrGetRegVersionForDriver
Version |
NID
|
1.69-3.60 |
0x74A0FB10
|
sceRegMgrIsBlueScreenForDriver
Version |
NID
|
1.69-3.60 |
0x282027B7
|
sceRegMgrResetRegistryLvForDriver
Version |
NID
|
1.69-3.60 |
0x2B5F3E20
|
sceRegMgrGetKeyBinForDriver
Version |
NID
|
1.69-3.60 |
0x0B98D646
|
sceRegMgrGetKeyIntForDriver
Version |
NID
|
1.69-3.60 |
0x16DDF3DC
|
sceRegMgrGetKeyStrForDriver
Version |
NID
|
1.69-3.60 |
0xE188382F
|
sceRegMgrGetKeysForDriver
Version |
NID
|
1.69-3.60 |
0x5B161504
|
sceRegMgrGetInitValsForDriver
Version |
NID
|
1.69-3.60 |
0x3A9DE7C5
|
sceRegMgrGetKeysInfoForDriver
Version |
NID
|
1.69-3.60 |
0x58421DD1
|
sceRegMgrSetKeyBinForDriver
Version |
NID
|
1.69-3.60 |
0x566A1793
|
sceRegMgrSetKeyIntForDriver
Version |
NID
|
1.69-3.60 |
0xD72EA399
|
sceRegMgrSetKeyStrForDriver
Version |
NID
|
1.69-3.60 |
0x41D320C5
|
sceRegMgrSetKeysForDriver
Version |
NID
|
1.69-3.60 |
0x34E550DA
|
sceRegMgrSystemParamGetBinForDriver
Version |
NID
|
3.60 |
0x7FFE2CDF
|
sceRegMgrSystemParamGetIntForDriver
Version |
NID
|
3.60 |
0x347C1BDB
|
sceRegMgrSystemParamGetStrForDriver
Version |
NID
|
3.60 |
0x877ADB3F
|
// 0x37502 : language
// 0x33818 : np_env
sceRegMgrDbBackupForDriver
Version |
NID
|
1.69-3.60 |
0xB68B5422
|
sceRegMgrDbRestoreForDriver
Version |
NID
|
1.69-3.60 |
0xA87D2562
|
sceRegMgrRegisterCallbackForDriver
Version |
NID
|
1.69-3.60 |
0x82A4464D
|
sceRegMgrRegisterDrvErrCallbackForDriver
Version |
NID
|
1.69-3.60 |
0xDDB02D7F
|
sceRegMgrAddRegistryCallbackForDriver
Version |
NID
|
1.69-3.60 |
0xA86F0A71
|
sceRegMgrStartCallbackForDriver
Version |
NID
|
1.69-3.60 |
0xCE84FE2F
|
sceRegMgrStopCallbackForDriver
Version |
NID
|
1.69-3.60 |
0x6A8E2FB4
|
sceRegMgrUnregisterCallbackForDriver
Version |
NID
|
1.69-3.60 |
0xD7BD3607
|
sceRegMgrUnregisterDrvErrCallbackForDriver
Version |
NID
|
1.69-3.60 |
0xD9E6B7BD
|
SceRegMgrServiceForDriver
sceRegMgrSrvCnvRegionStrForDriver
Version |
NID
|
1.69-3.60 |
0x15B4A5C5
|
sceRegMgrSrvCnvRegionIntForDriver
Version |
NID
|
1.69-3.60 |
0x7683FC84
|
sceRegMgrSrvCnvRegionPsCodeForDriver
Version |
NID
|
1.69-3.60 |
0x94D008D2
|
sceRegMgrSrvGetRegionStrForDriver
Version |
NID
|
1.69-3.60 |
0xBC3FE639
|
sceRegMgrSrvGetRegionForDriver
Version |
NID
|
1.69-3.60 |
0xBEC3F77A
|
SceRegMgr
sceRegMgrGetRegVersion
Version |
NID
|
1.69 |
0x74A0FB10
|
sceRegMgrIsBlueScreen
Version |
NID
|
1.69 |
0x282027B7
|
sceRegMgrResetRegistryLv
Version |
NID
|
1.69 |
0x2B5F3E20
|
sceRegMgrGetKeyBin
Version |
NID
|
1.69 |
0xB98D646
|
sceRegMgrGetKeyInt
Version |
NID
|
1.69 |
0x16DDF3DC
|
sceRegMgrGetKeyStr
Version |
NID
|
1.69 |
0xE188382F
|
sceRegMgrGetKeys
Version |
NID
|
1.69 |
0x5B161504
|
sceRegMgrGetInitVals
Version |
NID
|
1.69 |
0x3A9DE7C5
|
sceRegMgrGetKeysInfo
Version |
NID
|
1.69 |
0x58421DD1
|
sceRegMgrSetKeyBin
Version |
NID
|
1.69 |
0x566A1793
|
sceRegMgrSetKeyInt
Version |
NID
|
1.69 |
0xD72EA399
|
sceRegMgrSetKeyStr
Version |
NID
|
1.69 |
0x41D320C5
|
sceRegMgrSetKeys
Version |
NID
|
1.69 |
0x34E550DA
|
sceRegMgrDbBackup
Version |
NID
|
1.69 |
0xB68B5422
|
sceRegMgrDbRestore
Version |
NID
|
1.69 |
0xA87D2562
|
sceRegMgrRegisterCallback
Version |
NID
|
1.69 |
0x82A4464D
|
sceRegMgrRegisterDrvErrCallback
Version |
NID
|
1.69 |
0xDDB02D7F
|
sceRegMgrAddRegistryCallback
Version |
NID
|
1.69 |
0xA86F0A71
|
sceRegMgrStartCallback
Version |
NID
|
1.69 |
0xCE84FE2F
|
sceRegMgrStopCallback
Version |
NID
|
1.69 |
0x6A8E2FB4
|
sceRegMgrUnregisterCallback
Version |
NID
|
1.69 |
0xD7BD3607
|
sceRegMgrUnregisterDrvErrCallback
Version |
NID
|
1.69 |
0xD9E6B7BD
|
SceRegMgrService
sceRegMgrSrvCnvRegionStr
Version |
NID
|
1.69 |
0x15B4A5C5
|
sceRegMgrSrvCnvRegionInt
Version |
NID
|
1.69 |
0x7683FC84
|
sceRegMgrSrvCnvRegionPsCode
Version |
NID
|
1.69 |
0x94D008D2
|
sceRegMgrSrvGetRegionStr
Version |
NID
|
1.69 |
0xBC3FE639
|
sceRegMgrSrvGetRegion
Version |
NID
|
1.69 |
0xBEC3F77A
|
SceRegMgrForGame
sceRegMgrSystemIsBlueScreen
Version |
NID
|
1.69 |
0x169A0D1D
|
sceRegMgrSystemParamGetBin
Version |
NID
|
1.69 |
0x7FFE2CDF
|
sceRegMgrSystemParamGetInt
Version |
NID
|
1.69 |
0x347C1BDB
|
sceRegMgrSystemParamGetStr
Version |
NID
|
1.69 |
0x877ADB3F
|
sceRegMgrSystemParamSetBin
Version |
NID
|
1.69 |
0xD5A73557
|
sceRegMgrSystemParamSetInt
Version |
NID
|
1.69 |
0xC8F73311
|
sceRegMgrSystemParamSetStr
Version |
NID
|
1.69 |
0xCB3246E3
|
SceRegMgrForSDK
sceRegMgrUtilityGetBin
Version |
NID
|
1.69 |
0xEFCFA182
|
sceRegMgrUtilityGetInt
Version |
NID
|
1.69 |
0x8154D696
|
sceRegMgrUtilityGetStr
Version |
NID
|
1.69 |
0x1FE8949E
|
sceRegMgrUtilitySetBin
Version |
NID
|
1.69 |
0x7304DC12
|
sceRegMgrUtilitySetInt
Version |
NID
|
1.69 |
0xB370A2CF
|
sceRegMgrUtilitySetStr
Version |
NID
|
1.69 |
0x4898C1E2
|
SceRegMgrForDebugger
sceRegMgrComSyncKeyValueForDebugger
Version |
NID
|
0.990-3.60 |
0x53970232
|
int sceRegMgrComSyncKeyValueForDebugger(void *a1, void *a2);
sceRegMgrGetKeysForDebugger
Version |
NID
|
0.990-3.60 |
0xC64C67A8
|
int sceRegMgrGetKeysForDebugger(int a1);
sceRegMgrSetKeysForDebugger
Version |
NID
|
0.990-3.60 |
0x810D2F09
|
typedef struct SceRegMgrKeyParamForDebugger { // size is 0x10
SceSize size;
const char *path;
int flags;
union {
int Int;
const char *Str;
void *Bin;
};
} SceRegMgrKeyParamForDebugger;
int sceRegMgrSetKeysForDebugger(const SceRegMgrKeyParamForDebugger *pParam);
SceRegMgrForDebugger_46AC0CCB
Version |
NID
|
1.03-3.60 |
0x46AC0CCB
|
int SceRegMgrForDebugger_46AC0CCB(int a1, SceRegMgrKeyParamForDebugger *a2);
SceRegMgrForDebugger_8E798E47
Version |
NID
|
1.03-3.60 |
0x8E798E47
|
SceRegMgrForDebugger_B9A0BB77
Version |
NID
|
1.03-3.60 |
0xB9A0BB77
|
SceRegMgrForDebugger_D668ABD2
Version |
NID
|
1.03-3.60 |
0xD668ABD2
|
SceRegMgrForDebugger_8AE5757E
Version |
NID
|
1.03 |
not present
|
3.60 |
0x8AE5757E
|
SceRegMgrForDebugger_C588D3E7
Version |
NID
|
1.03 |
not present
|
3.60 |
0xC588D3E7
|
SceRegMgrForTool
sceRegMgrInitRegistryForTool
Version |
NID
|
0.990-3.60 |
0xE6E81558
|
sceRegMgrInitRegistryRegionForTool
Version |
NID
|
0.990-3.60 |
0x0CFA929B
|
SceRegMgrForTool_0B623D0B
Version |
NID
|
3.60 |
0x0B623D0B
|
SceRegMgrForTool_2A76051A
Version |
NID
|
3.60 |
0x2A76051A
|
SceRegMgrForTool_2D415472
Version |
NID
|
3.60 |
0x2D415472
|
SceRegMgrForTool_3AAB71EF
Version |
NID
|
3.60 |
0x3AAB71EF
|
SceRegMgrForTool_4EDF87F9
Version |
NID
|
3.60 |
0x4EDF87F9
|
SceRegMgrForTool_6276E7D8
Version |
NID
|
3.60 |
0x6276E7D8
|
SceRegMgrForTool_6808B7AD
Version |
NID
|
3.60 |
0x6808B7AD
|
SceRegMgrForTool_7B30AC2C
Version |
NID
|
3.60 |
0x7B30AC2C
|
SceRegMgrForTool_B441660B
Version |
NID
|
3.60 |
0xB441660B
|
SceRegMgrForTool_C689E36C
Version |
NID
|
3.60 |
0xC689E36C
|
SceRegMgrForTool_C689E36C
Version |
NID
|
3.60 |
0xF55E6E4F
|