The ConfigurationRegistry is a centralized storage spot for relatively small low-security configuration items; large complicated items (like the list of channels, stored programs, or schedule recordings) are stored in separate files, and a few high-security items such as the unit serial number and the username & password used for PPP dialups, are kept in the FlashData storage area.
The registry can be viewed as a tree, much like a hierarchical filesystem: a key is analogous to a directory; it is either a rootkey or it has a parent key; it has a name; it can contain children, both key and val. A val is analogous to a file (but is much smaller); it is contained inside a key, it has a name, it has a type, and it has a value.
There are three rootkeys, keys which have no parents: Hardware
, SysConfig
and Software
. The Hardware
tree appears to be static; early in the setup process, a copy of the Gaea or Plymouth Hardware
tree is made (See GaeaVsPlymouth?). The SysConfig
and Software
trees are much more dynamic. The division between SysConfig
and Software
doesn't actually appear to be very clear.
When a registry item is referred to in a format like SysConfig/Tweak/DisableSoftwareDownload
, that actually means the DisableSoftwareDownload
val inside the Tweak
key inside the SysConfig
rootkey.
The registry is stored on disk in the user/Registry
directory, with one file per rootkey -- gaea.reg
, software.reg
and sysconfig.reg
. The files are XML; for example (contrived, to show the full range of observed formats):
<?xml version="1.0" standalone="yes"?>
<registry rootkey="SysConfig">
<key name="NetworkUpdateTime">
<key name="DeviceIdentity">
<val name="UniqueID" type="binary">00000000000000000000000000000001</val>
</key>
<val name="OpenUpdateWindowSecond" type="value32">7200</val>
<val name="CloseUpdateWindowSecond" type="value32">21600</val>
<val name="RetryDelaySeconds" type="value32">900</val>
<val name="Anytime" type="value32">1</val>
<val name="Weights" type="string">3600,10;3600,15;3600,40;3600,35;</val>
</key>
</registry>
The DeviceIdentity
key isn't actually a child of the NetworkUpdateTime
child, and there are quite a few more children of the SysConfig
rootkey.
In some settings, a parenthesised format is used instead of the XML. A whole tree is enclosed in parenthesis, and each key is represented by its name followed by a parenthesised representation of its tree. Inside a tree, val names and values are each enclosed in single quotes, with a character between them representing type (S
for string, N
for value32 (number), B
for binary); child key trees come after any val entries. There is no whitespace used at all, outside string values. Inside string values, single quotes or backslashes are backslash-escaped.
The rootkey shown above would be represented as shown below, except whitespace has been added to help visibility; the root of the tree itself is not named in this representation, it must be known some other way.
(
NetworkUpdateTime (
'OpenUpdateWindowSecond' N '7200'
'CloseUpdateWindowSecond' N '21600'
'RetryDelaySeconds' N '900'
'Anytime' N '1'
'Weights' S '3600,10;3600,15;3600,40;3600,35;'
Device Identity (
'UniqueID' B '00000000000000000000000000000001'
)
)
This form is used for the RnsShellCommands request and to generate & check the signatures in the SysConfig/ AuthCtl registry key.
You can read and write the files with extract_rtv, and edit them with any text editor. Be careful, of course, and keep backups.
If you have PtvioShell access, you can use the regedit
command:
Usage: regedit show "keyname"
regedit showall "keyname"
regedit create "keyname"
regedit delete "keyname" [valuename]
regedit setstr "keyname" "valuename" "string"
regedit setval "keyname" "valuename" value
regedit save "keyname" "filename"
regedit load "keyname" "filename"
regedit init
regedit flush
The sample registry files attached are slightly edited -- a few values have been replaced with =X=s.
-- ToddLarason - 10 Jul 2002
Revision r1.3 - 14 Jul 2003 - 18:53 GMT - TWikiGuest
|
Copyright © 2001 by the contributing authors.
All material on this collaboration tool is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback.
|
|