SceRegistryMgr

From Vita Development Wiki
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>:

value-type:             0:int 1:str 2:bin
value-size:             size
some-bool:              unknown
some-value:             field7_0xe (field_0x12: 0x40/field7_0xe: 0x1000)
value-allow-env:        field9_0x11 (retail=qaf:4|1/devmode=qaf:8|2/no-devmode=qaf:0x20|0x10)
some-bool:              field_0x12: 1
some-value:             field8_0x10 (only 0 0x28 0x63 0x1E)
some-value:             field8_0x10 (only 0 0x28 0x63 0x1E)
bool-allow-non-utility: field_0x12: 2
bool-allow-utility:     field_0x12: 4
some-bool:              field_0x12: 8
some-bool:              field_0x12: 0x10
bool-qaf-bypass:        qaf
bool-devmode-only:      devmode_only
some-value:             field16_0x18
init-value:             field18_0x1c

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

SystemParam table

Id Path Readable Writeable
0x00229142 /CONFIG/SYSTEM/button_assign Yes No
0x00037502 /CONFIG/SYSTEM/language Yes No
0x00088776 /CONFIG/DATE/date_format Yes No
0x00668503 /CONFIG/DATE/time_format Yes No
0x00100591 /CONFIG/DATE/time_zone Yes No
0x00760538 /CONFIG/DATE/summer_time Yes No
0x00186122 /CONFIG/SECURITY/PARENTAL/passcode Yes No
0x00598438 /CONFIG/SYSTEM/username Yes No
0x00450F32 /CONFIG/NP/account_id Yes No
0x0081649F /CONFIG/BROWSER/ADDIN/TRENDMICRO/tm_service Yes Yes
0x00068303 /CONFIG/BROWSER/ADDIN/TRENDMICRO/tm_ec_ttl Yes Yes
0x001B2292 /CONFIG/BROWSER/ADDIN/TRENDMICRO/tm_ec_ttl_update_time Yes Yes
0x00872621 /CONFIG/BROWSER/ADDIN/TRENDMICRO/tm_service_sub_status Yes Yes
0x00156489 /CONFIG/NP/debug_ingame_commerce2 Yes No
0x00033818 /CONFIG/NP/env Yes No
0x003CB6A4 /DEVENV/TOOL/gpi_switch Yes No
0x000B73CD /CONFIG/NP/debug Yes No
0x000A0495 /CONFIG/NP/nav_only Yes No
0x000B6ECD /CONFIG/NP/np_ad_clock_diff Yes No
0x000D18E5 /CONFIG/NP/np_geo_filtering Yes No
0x00313905 /CONFIG/NP2/test_patch Yes No
0x00646A8E /CONFIG/NP2/tpps_proxy_server Yes No
0x0022B191 /CONFIG/NP2/tpps_proxy_port Yes No
0x008EB468 /CONFIG/NP2/tpps_proxy_user_name Yes No
0x00168B9B /CONFIG/NP2/tpps_proxy_password Yes No
0x006FF829 /CONFIG/NP2/tpps_proxy_flag Yes No
0x00612B3E /CONFIG/BROWSER/web_security_status Yes Yes
0x003317A1 /CONFIG/NP2/trophy_setup_dialog_debug Yes No
0x008F94F9 /CONFIG/NP/country Yes No
0x00134C03 /CONFIG/NET/pspnet_adhoc_ssid_prefix Yes No
0x00683DCD /CONFIG/SYSTEM/key_pad Yes No
0x008E3939 /CONFIG/MUSIC/MUSIC_APP/impose_audio_balance Yes No
0x00146E23 /CONFIG/GAME/show_debug_info Yes No
0x00424500 /CONFIG/GAME/fake_sdslot_broken Yes No
0x0051F6AE /CONFIG/SPECIFIC/idu_mode Yes No
0x00154A2C /CONFIG/GAME/fake_free_space Yes No
0x0025CE9A /CONFIG/GAME/fake_free_space_quota Yes No
0x005F6737 /CONFIG/NP2/TWITTER/access_token Yes Yes
0x0091F34F /CONFIG/NP2/TWITTER/access_token_secret Yes Yes
0x0093C981 /CONFIG/PSM/revocation_check_req Yes No
0x007C9764 /CONFIG/NP2/fake_plus Yes No
0x00971FA1 /CONFIG/SHELL/voice_priority Yes No
0x00563BFE /CONFIG/NET/ssl_cert_ignorable Yes No
0x008D89EB /CONFIG/NP2/TELEPORT/wol_target_mac_address Yes Yes
0x004E7A16 /CONFIG/NP2/TELEPORT/target_name Yes Yes
0x00987180 /CONFIG/NP2/TELEPORT/initial_target Yes Yes
0x000504E4 /CONFIG/NP2/TELEPORT/passcode_client Yes Yes
0x0036F14E /CONFIG/NP2/TELEPORT/enable_media_transfer Yes No
0x002FDFB4 /CONFIG/DISPLAY/hdmi_out_scaling_ratio Yes No
0x004F7E60 /CONFIG/PS4LINK/counter Yes Yes
0x0094E320 /CONFIG/PS4LINK/keys Yes Yes
0x009623D0 /CONFIG/GAME/fake_no_memory_card Yes No
0x007D12C4 /CONFIG/GAME/fake_contents_max Yes No
0x0089C9CF /CONFIG/SECURITY/PARENTAL/store_start_control Yes No
0x007F9315 /CONFIG/DATE/is_summer_time Yes No
0x00988B81 /CONFIG/PSNOW/app_cached_url Yes No

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