SceRegistryMgr

From Vita Development Wiki
Jump to navigation Jump to search

Module

Known NIDs

Version Name World Privilege NID
1.69 SceRegistryMgr Non-secure Kernel 0x609EAF8C
3.60 SceRegistryMgr Non-secure Kernel 0x761F343C

Libraries

Known NIDs

Version Name World Visibility NID
1.69 SceRegMgrForDriver Non-secure Kernel 0xB2223AEB
3.60 SceRegMgrForDriver Non-secure Kernel 0xB2223AEB
1.69 SceRegMgrServiceForDriver Non-secure Kernel 0x12431F66
3.60 SceRegMgrServiceForDriver Non-secure Kernel 0x12431F66
1.69 SceRegMgr Non-secure User 0xC436F916
3.60 SceRegMgr Non-secure User 0xC436F916
1.69 SceRegMgrService Non-secure User 0x23A10D9B
3.60 SceRegMgrService Non-secure User 0x23A10D9B
1.69 SceRegMgrForGame Non-secure User 0x0B351269
3.60 SceRegMgrForGame Non-secure User 0x0B351269
1.69 SceRegMgrForSDK Non-secure User 0x67E45817
3.60 SceRegMgrForSDK Non-secure User 0x67E45817
3.60 SceRegMgrForDebugger Non-secure User 0xCC88EAB1
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 0x74A0FB10
3.60 0x74A0FB10

sceRegMgrIsBlueScreenForDriver

Version NID
1.69 0x282027B7
3.60 0x282027B7

sceRegMgrResetRegistryLvForDriver

Version NID
1.69 0x2B5F3E20
3.60 0x2B5F3E20

sceRegMgrGetKeyBinForDriver

Version NID
1.69 0x0B98D646
3.60 0x0B98D646

sceRegMgrGetKeyIntForDriver

Version NID
1.69 0x16DDF3DC
3.60 0x16DDF3DC

sceRegMgrGetKeyStrForDriver

Version NID
1.69 0xE188382F
3.60 0xE188382F

sceRegMgrGetKeysForDriver

Version NID
1.69 0x5B161504
3.60 0x5B161504

sceRegMgrGetInitValsForDriver

Version NID
1.69 0x3A9DE7C5
3.60 0x3A9DE7C5

sceRegMgrGetKeysInfoForDriver

Version NID
1.69 0x58421DD1
3.60 0x58421DD1

sceRegMgrSetKeyBinForDriver

Version NID
1.69 0x566A1793
3.60 0x566A1793

sceRegMgrSetKeyIntForDriver

Version NID
1.69 0xD72EA399
3.60 0xD72EA399

sceRegMgrSetKeyStrForDriver

Version NID
1.69 0x41D320C5
3.60 0x41D320C5

sceRegMgrSetKeysForDriver

Version NID
1.69 0x34E550DA
3.60 0x34E550DA

sceRegMgrSystemParamGetBinForDriver

Version NID
3.60 0x7FFE2CDF

sceRegMgrSystemParamGetIntForDriver

Version NID
3.60 0x347C1BDB

sceRegMgrSystemParamGetStrForDriver

Version NID
3.60 0x877ADB3F

sceRegMgrDbBackupForDriver

Version NID
1.69 0xB68B5422
3.60 0xB68B5422

sceRegMgrDbRestoreForDriver

Version NID
1.69 0xA87D2562
3.60 0xA87D2562

sceRegMgrRegisterCallbackForDriver

Version NID
1.69 0x82A4464D
3.60 0x82A4464D

sceRegMgrRegisterDrvErrCallbackForDriver

Version NID
1.69 0xDDB02D7F
3.60 0xDDB02D7F

sceRegMgrAddRegistryCallbackForDriver

Version NID
1.69 0xA86F0A71
3.60 0xA86F0A71

sceRegMgrStartCallbackForDriver

Version NID
1.69 0xCE84FE2F
3.60 0xCE84FE2F

sceRegMgrStopCallbackForDriver

Version NID
1.69 0x6A8E2FB4
3.60 0x6A8E2FB4

sceRegMgrUnregisterCallbackForDriver

Version NID
1.69 0xD7BD3607
3.60 0xD7BD3607

sceRegMgrUnregisterDrvErrCallbackForDriver

Version NID
1.69 0xD9E6B7BD
3.60 0xD9E6B7BD

SceRegMgrServiceForDriver

sceRegMgrSrvCnvRegionStrForDriver

Version NID
1.69 0x15B4A5C5
3.60 0x15B4A5C5

sceRegMgrSrvCnvRegionIntForDriver

Version NID
1.69 0x7683FC84
3.60 0x7683FC84

sceRegMgrSrvCnvRegionPsCodeForDriver

Version NID
1.69 0x94D008D2
3.60 0x94D008D2

sceRegMgrSrvGetRegionStrForDriver

Version NID
1.69 0xBC3FE639
3.60 0xBC3FE639

sceRegMgrSrvGetRegionForDriver

Version NID
1.69 0xBEC3F77A
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
         SceRegMgrForDebugger_46AC0CCB: 0x46AC0CCB
         SceRegMgrForDebugger_810D2F09: 0x810D2F09
         SceRegMgrForDebugger_8AE5757E: 0x8AE5757E
         SceRegMgrForDebugger_8E798E47: 0x8E798E47
         SceRegMgrForDebugger_B9A0BB77: 0xB9A0BB77
         SceRegMgrForDebugger_C588D3E7: 0xC588D3E7
         SceRegMgrForDebugger_C64C67A8: 0xC64C67A8
         SceRegMgrForDebugger_D668ABD2: 0xD668ABD2

SceRegMgrForTool

         SceRegMgrForTool_0B623D0B: 0x0B623D0B
         SceRegMgrForTool_0CFA929B: 0x0CFA929B
         SceRegMgrForTool_2A76051A: 0x2A76051A
         SceRegMgrForTool_2D415472: 0x2D415472
         SceRegMgrForTool_3AAB71EF: 0x3AAB71EF
         SceRegMgrForTool_4EDF87F9: 0x4EDF87F9
         SceRegMgrForTool_6276E7D8: 0x6276E7D8
         SceRegMgrForTool_6808B7AD: 0x6808B7AD
         SceRegMgrForTool_7B30AC2C: 0x7B30AC2C
         SceRegMgrForTool_B441660B: 0xB441660B
         SceRegMgrForTool_C689E36C: 0xC689E36C
         SceRegMgrForTool_E6E81558: 0xE6E81558
         SceRegMgrForTool_F55E6E4F: 0xF55E6E4F