About
KaiserTweak is a little tool that tweaks some of your HTC Kaiser (P4450, TyTN II,
Vario III) registry settings. Making it took several hours of my life, so you
better enjoy it. Note that some tweaks may work on devices other than the
Kaiser, but I've looked at the factory settings from my own Kaiser to get default
values and such, so take care with other devices.
If you like to donate, here's a PayPal button for you:
Download
You can download a ZIP below, containing the KaiserTweak EXE and an XML file
containing the actual tweaks. Unzip it somewhere, and copy both the files to the
same folder on your phone. Then run the EXE, and voila :)
KaiserTweak.zip +- 400kb
Note: Most of the tweaks require a soft-reset to become current. I'd advise
setting your values (changes are applied to the registry on value selection) and
then always doing a soft-reset.
Nika's XML Updates
While I am working on a new version of this site and new features for KaiserTweak itself, Nikagl (from XDA-Developers) is maintaining the KaiserTweak XML file.You may find a newer version of this file in the KaiserTweak XML topic. Note that you should not reply to that topic! Do that in the KaiserTweak discussion topic!
Screenshot
By popular request, here's a screenshot
Tweaks Listing
Call
- Fast Sleep
- Sleep
- Show Battery Icon
- HTC or Windows Mobile Dialer
- Volume Change Beeps
- Ringtone
Text Messages
- Sent Notification
Data (GPRS/EDGE/HSDPA/WIFI)
- Disconnect After
- Always On
- Enabled
- HSDPA
- Wifi standby mode
- Wifi Certificate Message
Bluetooth
- BitPool
- SampleRate
- UseJointStereo
TCP/IP
- TCP Connect Resends
- TCP Data Resends
- TCP Window Size
Security
- Not-certified Warning
Keyboard
- Backlight Timeout
- Slide Wake
Camera
- Save Location
- GPS Photo
- Rotate Bug
- 3MP Panorma Shot (ie. 6MP Camera)
GPS
- Assisted GPS
Power Managment
- Memory Card
- AsyncMac1
- PPTP1
- L2TP1
Notifications
- AC Resume from Suspend
- Battery Resume from Suspend
User Interface
- Window Animation
- Menu Animation
- Vertical Scrollbar Width
- Vertical Scrollbar Button Height
- Horizontal Scrollbar Button Width
- Horizontal Scrollbar Height
- Startup Animation
ClearType
- Landscape
- PocketIE
PocketIE
- Max. Connections
- PIE User Agent CustomBase
- D-Pad Scroll Navigation
TouchFLO
- Sensitivity
- Scroller
- Sound
Today Screen
- Title Bar - Battery / Clock
- Title Bar - Clock Settings
- Date Display
- Wireless Today
HTC Application
- Music Tab
- Music Player for HTC Home Plugin
- Unlock HTC Home
- Scroll, Zoom and Rotate in HTC Album
- X Button in HTC Album
- HTC Home e-mail button
Contacts
- SIM Contacts
Call Log
- Log Clean Period
Locations
- PocketIE Downloads
- Saved Audio
- Saved Video
- Saved Images
Cache
- File System Cache
- File System Filter Cache
- GDI/Font Cache
Tools
- Empty Start Menu
- Default QuickGPS Settings
Credits
I just made the tool, credits for the reghacks go to the good people of
MoDaCo,
xda-developers
and GoT.
Bugs, tweak requests, etc
Please post those here.
If you are requesting addition of a new tweak, please provide as much info as
possible about it, like the relevant registry keys and their settings and what
exactly it does.
KaiserTweak XML format
The KaiserTweak XML file is an XML format with kaisertweak as root. The
root can contain multiple category nodes, which in turn can contain
multiple tweak nodes, in the following way:
<kaisertweak>
<category>
<tweak>
...
</tweak>
<tweak>
...
</tweak>
</category>
<category>
<tweak>
...
</tweak>
<tweak>
...
</tweak>
</category>
</kaisertweak>
Notes on the following documentation:
- Required child nodes and attributes are underlined
- All tags, attributes, and attribute values are lowercase. The default
attribute value (if any) is underlined
Notes on implementation:
Anywhere keys are used, shorthand format is used: Root\Key\Name. Also, the root
may be abbreviated. The following root abbreviations are available:
HKCR: HKEY_CLASSES_ROOT
HKCU: HKEY_CURRENT_USER
HKLM: HKEY_LOCAL_MACHINE
Example:
HKLM\Drivers\BuiltIn\RIL\EnableFastDormantDisplayDuringCall
/kaisertweak/category
Attributes: none
Children: title, tweak
Required: Yes
Defines a category. Categories without any relevant tweaks are not
displayed.
/kaisertweak/category/title
Attributes: none
Children: text
Required: Yes
Defines a category's title.
/kaisertweak/category/tweak
Attributes: version
Children: title, each, device, value, key, description
Required: Yes
Defines a tweak.
/kaisertweak/category/tweak[version]
Values: all, wm5, wm6
Required: No
Defines for which Windows Mobile version the tweak shows up.
/kaisertweak/category/tweak/title
Attributes: none
Children: text
Required: Yes
Defines a tweak's title.
/kaisertweak/category/tweak/each
Attributes: display
Children: text
Required: No
'Repeats' a tweak for multiple registry keys. The displayed tweak title becomes
./tweak/title + ": " + ./tweak/each[display] . The text content of this node is
the key pattern, where the patterning is done with the * (star) character, just
as with filenames, for example:
HKLM\Comm\ConnMgr\Providers\*7C4B7A38-*\Connections\*\AlwaysOn
Ofcourse, when you do this, how do you know the actual key used? You don't, and
this is the only time you are allowed to use the key node without
text content. If you do this, the actual key for this tweak is used. Also
note that you cannot have a key end with a star - there must be a part
after it.
/kaisertweak/category/tweak/each[display]
Values: negative integer
Required: Yes
This attribute defines the text to use for the title of tweak. This is done by
selecting a part of the used key, and appending it to the tweak title. -1
defines the rightmost part of the key, -2 the one left of that, etc.
For example, image the following each node:
<each display="-2">HKLM\Comm\ConnMgr\Providers\*7C4B7A38-*\Connections\*\AlwaysOn</each>
and the following registry entry:
HKLM\Comm\ConnMgr\Providers\{7C4B7A38-XXX-XXX-XXX}\Connections\T-Mobile Internet\AlwaysOn
and a tweak/title of "Always On", would result in this key getting the
title "Always On: T-Mobile Internet". Obviously it only makes sense to use a
value for display that corresponds to a part of the key that has * in
its pattern.
/kaisertweak/category/tweak/device
Attributes: match
Children: text
Required: No
Allows matching by device name (found in Control Panel --> System --> Device
Information --> Identity --> Model). This is "Kaiser" for all TyTN II based
devices. If this node is ommitted, all devices are matched. You may add as
many device nodes as you need.
/kaisertweak/category/tweak/device[match]
Values: is, isnot
Required: No
Defines the matching mode. Note that you can have multiple device nodes,
but you cannot mix the match mode between them, and this wouldn't make sense.
If you use is, only those devices will get the tweak; if you use
isnot, all other devices will get the tweak.
/kaisertweak/category/tweak/value
Attributes: default, disabled, advised, current, custom, value
Children: text
Required: Yes
Multiple value notes define the list of options a user can select.
The text content of the node is the displayed value.
/kaisertweak/category/tweak/value[default]
Values: default
Required: One value node should have this attribute set
Denotes that this is normally the default setting if no tweaking has been done. If for
some reason the value cannot be gotten from the registry, this value will be the
one selected, if no value is found with disabled set.
/kaisertweak/categroy/tweak/value[disabled]
Values: disabled
Required: One value node should have this attribute set
This attribute is almost the same as the default attribute, and they are
usually applied to the same value node. The differences are that this
attribute does not have an indicator in the user interface, has preference over
default for selecting a value when the key could not be read from registry
(or other key matching logic did not work out). You should read the meaning
of this attribute as "the TWEAK is disabled", not "the OPTION is disabled".
For example, if you have a key "HKLM\SomeThing\IsDisabled", the disabled
attribute would be applied to the value which has "Enabled" as description,
not the value that "Disabled" as description. It's confusing sometimes ;)
/kaisertweak/category/tweak/value[advised]
Values: advised
Required: One value node should have this attribute set
Denotes that this is the advised value for this tweak.
/kaisertweak/category/tweak/value[current]
Values: current
Required: If key[type] is folder, one value node
should have this attribute set
This attribute should only be used with a key[type] of folder. The
value attribute and text content of this value node will be
filled with the current folder value in the registry
/kaisertweak/category/tweak/value[custom]
Values: custom
Required: No
This attribute should only be used with a key[type] of folder. When
a user select this attribute, he will be presented with a folder selection screen.
/kaisertweak/category/tweak/value[value]
Values: any
Required: Yes
The value to be read/written to/from the registry. With a key[type] of
folder, you may use %MyDocuments% and %StorageCard% to refer
to the My Documents and Storage Card folders, as they vary between different devices
and languages. Note that these variables do have a heading "\" but not a trailing
one. This way you can concat them together. For example:
%StorageCard%%MyDocuments%\My Files
may become
\Storage Card\My Documents\My Files
/kaisertweak/category/tweak/key
Attributes: type, mode, match, getvalue, action, setvalue, when, whenvalue
Children: text
Required: Yes
Defines rules for reading and writing registry keys. The text content of
this node is the actual registry key, this may only be ommitted when also using
the each node. Use a number of key nodes with different attributes
in a single tweak allows you to do create fairly sophisticated behaviour
(though sometimes what you want to do can be length :))
/kaisertweak/category/tweak/key[type]
Values: dword, string, multistring, folder
Required: No
The type of registry key. Note that folder is a special case of string.
/kaisertweak/category/tweak/key[mode]
Values: both, get, set
Required: No
Defines if this key rule applies to reading (get) the registry, writing
(set) the registry, or both.
/kaisertweak/category/tweak/key[match]
Values: value, exists
Required: No
This attribute is only used when reading from the registry. When set to
value, the actual value is read from the registry, which at least one
key node should do (and usually does, as it's the default attribute
value).
exists has a special meaning. When reading the registry, all key
nodes that have a match attribute of exists are first looked for.
If not all of them are found, the interface selects the value that
has the disabled attribute set, or if there isn't one, the one with the
default attribute set.
/kaisertweak/category/tweak/key[getvalue]
Values: any
Required: No
This attribute is only used when reading from the registry and key[match]
is value. If the getvalue attribute is set, the registry key
must have that value or the value with disabled or default
is set.
/kaisertweak/category/tweak/key[action]
Values: set, empty, delete
Required: No
This attribute is only used when writing to the registry. It defines if we want
to write the user-selected value to the registry, empty the value or delete the key. delete
is usually only used when multiple key nodes are present and have different
when attributes set. empty was added in v0.41, because
KaiserTweak ignores an empty value (this is by design!).
/kaisertweak/category/tweak/key[setvalue]
Values: any
Required: No
This attribute is only used when writing to the registry and key[action] is
set to set. This attribute overrides the user-selected value.
/kaisertweak/category/tweak/key[when]
Values: always, enabled, disabled, value
Required: No
This attribute is used only when writing to the registry. This attribute defines
when this key rule is valid. If this attribute is set to always
(the default) the key rule is always used. When the attribute is set to
enabled the key rule is used when any other value node is selected
than the one which has the disabled attribute (value[disabled!=disabled]).
disabled is the opposite, and is only applied when the value node
with the disabled attribute set is selected (value[disabled==disabled]).
If the attribute is set to value, the rule is only applied if the user
selected a value that matches with whenvalue attribute (value[value==key[whenvalue]]).
/kaisertweak/category/tweak/key[whenvalue]
Values: any
Required: No
See key[when].
/kaisertweak/category/tweak/description
Attributes: none
Children: text
Required: Yes
The description shown for the tweak.
KaiserTweak XML format cheat sheet
I myself always look at this cheat sheet when writing the XML tweaks. It doesn't
explain what does what, but I find it handy to remember the format. I guess if
you read all the above, this will make sense to you:
<kaisertweak>
<category>
<title>Category</title>
<tweak version="[ALL|wm5|wm6]">
<title>Tweak</title>
[<each display="-index">
HKLM\Henk\StartsWith*\*EndsWith\*Contains*\ToBeDisplayedIfDisplayIs-2\Key
</each>]
[<device match="[IS|isnot]">Kaiser</device>]
<value
[default="default"]
[disabled="disabled"]
[advised="advised"]
[current="current"]
[custom="custom"]
value="Registry Value">
Displayed Value
</value>
[<key
mode="[get|set|BOTH]"
type="[DWORD|string|multistring|folder]"
match="[exists|VALUE]"
[getvalue="somevalue"]
action="[SET|empty|delete]"
[setvalue="somevalue"]
when="[ALWAYS|enabled|disabled|value]"
[whenvalue="somevalue"]>
[[HKLM|HKCU|HKCR]\Path\To\Key]
</key>]
<description>Description</description>
</tweak>
<category>
</kaisertweak>
As you can see, I use [ ] around nodes and text values to denote they are not
required, and [onevalue|othervalue|DEFAULTVALUE] as attribute definition. Note
that this doesn't really correspond to actual required nodes, as the requirements
change by using other nodes. Also, any attribute with a default value is by
definition not required. However, you will still find that the above makes
sense in an intuitive way (at least for me :))
Bye bye
- Jorrit Jongma
(aka Chainfire aka BoomSmurf aka a lot of other things depending on the forum ;))