SceRegistryMgr

From Vita Development Wiki
Revision as of 18:21, 9 September 2022 by CelesteBlue (talk | contribs)
Jump to navigation Jump to search

Module

Version World Privilege
1.69-3.60 Non-secure Kernel

Libraries

Known NIDs

Version Name World Visibility NID
1.69-3.60 SceRegMgrForDriver Non-secure Kernel 0xB2223AEB
1.69 -3.60 SceRegMgrServiceForDriver Non-secure Kernel 0x12431F66
1.69-3.60 SceRegMgr Non-secure User 0xC436F916
1.69-3.60 SceRegMgrService Non-secure User 0x23A10D9B
1.69-3.60 SceRegMgrForGame Non-secure User 0x0B351269
1.69-3.60 SceRegMgrForSDK Non-secure User 0x67E45817
0.990-3.60 SceRegMgrForDebugger Non-secure User 0xCC88EAB1
0.990-3.60 SceRegMgrForTool Non-secure User 0x1F121C9E

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

Comments

;# 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:

  • 0x1000: VOLATILE

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-3.65 0x169A0D1D

sceRegMgrSystemParamGetBin

Version NID
1.69-3.65 0x7FFE2CDF
SceInt32 sceRegMgrSystemParamGetBin(SceRegMgrSystemParam paramId, SceChar8* buf, SceSize bufSize);

sceRegMgrSystemParamGetInt

Version NID
1.69-3.65 0x347C1BDB
SceInt32 sceRegMgrSystemParamGetInt(SceRegMgrSystemParam paramId, SceInt32* value);

sceRegMgrSystemParamGetStr

Version NID
1.69-3.65 0x877ADB3F
SceInt32 sceRegMgrSystemParamGetStr(SceRegMgrSystemParam paramId, SceChar8* buf, SceSize bufSize);

sceRegMgrSystemParamSetBin

Version NID
1.69-3.65 0xD5A73557
SceInt32 sceRegMgrSystemParamSetBin(SceRegMgrSystemParam paramId, const SceChar8* buf, SceSize bufSize);

sceRegMgrSystemParamSetInt

Version NID
1.69-3.65 0xC8F73311
SceInt32 sceRegMgrSystemParamSetInt(SceRegMgrSystemParam paramId, SceInt32 value);

sceRegMgrSystemParamSetStr

Version NID
1.69-3.65 0xCB3246E3
SceInt32 sceRegMgrSystemParamSetStr(SceRegMgrSystemParam paramId, const SceChar8 *buf, SceSize bufSize);

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);

sceRegMgrRequestFromHostForDebugger

Version NID
1.03-3.60 0x46AC0CCB

Used by SceDeci4pTsmp.

Used to copy DevKit's XML to host PC, to read DevKit's XML, and more commands.

int sceRegMgrRequestFromHostForDebugger(int cmd, void *pParam);

SceRegMgrForDebugger_8E798E47

Version NID
1.03-3.60 0x8E798E47
int SceRegMgrForDebugger_8E798E47(void);

SceRegMgrForDebugger_B9A0BB77

Version NID
1.03-3.60 0xB9A0BB77
int SceRegMgrForDebugger_B9A0BB77(void);

SceRegMgrForDebugger_D668ABD2

Version NID
1.03-3.60 0xD668ABD2

Get some data from DevKit's XML.

int SceRegMgrForDebugger_D668ABD2(int *a1);

SceRegMgrForDebugger_8AE5757E

Version NID
1.03 not present
3.60 0x8AE5757E

Get some data from DevKit's XML.

int SceRegMgrForDebugger_8AE5757E(int *a1);

SceRegMgrForDebugger_C588D3E7

Version NID
1.03 not present
3.60 0xC588D3E7
int SceRegMgrForDebugger_C588D3E7(void);

SceRegMgrForTool

sceRegMgrInitRegistryForTool

Version NID
0.990-3.60 0xE6E81558
int sceRegMgrInitRegistryForTool(int a1);

sceRegMgrInitRegistryRegionForTool

Version NID
0.990-3.60 0x0CFA929B
int sceRegMgrInitRegistryRegionForTool(int a1, int a2);

SceRegMgrForTool_0B623D0B

Version NID
3.60 0x0B623D0B
int SceRegMgrForTool_0B623D0B(void);

SceRegMgrForTool_2A76051A

Version NID
3.60 0x2A76051A
int SceRegMgrForTool_2A76051A(int a1, int a2);

SceRegMgrForTool_2D415472

Version NID
3.60 0x2D415472
int SceRegMgrForTool_2D415472(int a1, int a2);

SceRegMgrForTool_3AAB71EF

Version NID
3.60 0x3AAB71EF
int SceRegMgrForTool_3AAB71EF(int a1, int a2);

SceRegMgrForTool_4EDF87F9

Version NID
3.60 0x4EDF87F9
int SceRegMgrForTool_4EDF87F9(int a1, int a2, int a3);

SceRegMgrForTool_6276E7D8

Version NID
3.60 0x6276E7D8
int SceRegMgrForTool_6276E7D8(int a1, int a2, int a3, int a4);

SceRegMgrForTool_6808B7AD

Version NID
3.60 0x6808B7AD
int SceRegMgrForTool_6808B7AD(void);

SceRegMgrForTool_7B30AC2C

Version NID
3.60 0x7B30AC2C
int SceRegMgrForTool_7B30AC2C(int a1, int a2, int a3);

SceRegMgrForTool_B441660B

Version NID
3.60 0xB441660B
int SceRegMgrForTool_B441660B(int a1, int a2);

SceRegMgrForTool_C689E36C

Version NID
3.60 0xC689E36C
int SceRegMgrForTool_C689E36C(int a1, int a2, int a3, int a4);

SceRegMgrForTool_F55E6E4F

Version NID
3.60 0xF55E6E4F
int SceRegMgrForTool_F55E6E4F(int a1);