(AKA "How to wrest rights to your SIP from EzInput"
If you're a tweak addict like me and want to squeeze every drop of performance from your device, or if you're simply annoyed with HTC's eye-candy keyboard and want to shove it where the sun don't shine, then read on. You'll be surprised at how much faster and more responsive your device will be with all the hogware that's been leeching your resources gone forever The Situation
Almost all HTC devices come bundled with EzInput, their "solution" to a keyboard replacement, set as the default input method. In keeping with HTC's tradition of hiding as much of the underlying OS
as sanely possible, many of their newer devices don't play nice when it comes to replacing EzInput with a favored SIP. It just won't
step down from the throne.
Consequentially, users are either forced to swallow the EzInput pill or use their SIP of choice alongside, which is an expensive choice to say the least. Recently, the latter is not even possible without breaking basic keyboard functionality — from wrong symbols being printed instead of the commanded ones to EzInput chiming in from time to time just to remind you it's still alive and well in the background. Not to mention the extra fuel burned to carry all that excess baggage.The Goal
This tutorial will show you how to put EzInput in cold storage and get you reacquainted with your favorite SIP. Even though I will be using Swype as an example in this tutorial, this method should work with any other SIP as well (even the original Windows Mobile keyboard, which incidentally has much
more practical functionality to it than EzInput).The DisclaimerWarning
: In this tutorial we will be using SKTools
to make some Registry modifications, which could be disastrous if not done correctly. Make sure you have performed a full
system backup before continuing, in case things go awry down the road.
It goes without saying that we at PPCWarez shall NOT
be held responsible for whatever that happens (or doesn't happen) as a result of this tutorial! Proceed at your own peril The Convention
I will be using the "arrowed" convention, where an arrow sign (→) is used to indicate a sequence of related actions that should be done one after the other. This saves me from having to type out each and every instruction. For example: 'From the main menu, select "File → Tools → Print..." ' would mean selecting the "File", then the "Tools", and finally the "Print..." menu items in succession.
Also, this tutorial assumes that you select "Yes" or similarly agree when prompted with a confirmation dialog.Step 1: Dispatching the royal guardsThis step will ensure that we have EzInput ready to hand over the crown to our new queen.
From the Start Menu, click "Settings". If you come to the "Settings" tab that's part of your Home Screen, then click "Menu → All Settings" to get to the real
"Settings" Control Panel. From here, select "Personal → Input" and make sure "Touch Input" is selected in the "Input Method" list before clicking on "Options":
At HTC's "Text Input Settings", de-select/turn off all the options and then click "Done". Select the remaining option tabs (2 and 3 in the picture above) and ensure all their respective options are unchecked
before closing this dialog by clicking "OK".
Next, start SKTools and select the "Registry Explorer" applet. Double-click "HKEY_LOCAL_MACHINE → Software → HTC → ezsip". Ensure these values are all zero (0) in the "Data" column (you might need to scroll horizontally a little bit to view this column) (If any of these values don't exist, you need to create it by clicking "Action → New → DWORD"):
You can change an item's value by double-clicking on it and entering a new value.
Next, set the "IsOtherSip" value to 1 and close the "Registry Explorer" applet by selecting "Tools → Main menu".Step 2: Usurping the throneHere we will make our new queen...well, queen.
Back at SKTools, click "Category → All" to make the "Input Methods" applet visible and then select it:
Ensure that your favorite SIP is listed in there as "Enabled" (if it's "Disabled", click and hold on it and select "Enable/Disable" at the popup menu). Then, click and hold on it and select "Set as default". If your SIP isn't listed in there at all, it's either incompatible with your device or wasn't installed properly — try reinstalling it again.
Next, locate "Touch Input" in the list and click and hold on it. Select "Registry Explorer" at the popup menu and double-click the "IsSIPInputMethod" folder at the following dialog. Change the value of "Default" to 0:
Close the "Input Methods" applet by selecting "Tools → Main menu".
Scroll a bit further down and click on the "Services" applet. Locate "HTCSipSrvc" in the list, click and hold on it and select "Manual" at the popup menu. This prevents the HTC SIP Service (EzInput's watchdog) from starting automatically on subsequent reboots of your device:
Exit SKTools and soft-reset your device to complete the takeover.
Depending on your device configuration (and your SIP of choice), most of you should be all done and ready to go at this point; for the rest of us there will be some cases where suddenly we find the wrong symbols being printed or HTC's word suggestions still popping up during typing! Seems EzInput's back with a vengeance...let's go to the next step.Step 3: Hiring the assassinHere we assert our authority by method of (what else?) sweet political assassination.
What's happening is that when we set an SIP as the default input method using SKTools, It's CLSID is written to the key "HKEY_CURRENT_USER\ControlPanel\Sip\DefaultIm" — apparently this key is being policed by some other service that rejects this change (and thereby reverts to the old value of EzInput's CLSID) if it somehow finds our new CLSID "unsuitable" for some reason.WARNING
: DO NOT
manually change this key as it can cause your device to lockup during boot; the only feasible way out then is a hard-reset!
So, our SIP was never set to default at system level in the first place, but it does appear to hold the position thanks to SKTool's startup link that was also created when we set the SIP as default. But what happens then is a conflict where both our SIP and EzInput think they're the default, hence EzInput's interference with our keypresses.
This is because when EzInput thinks it's the default IM, the crucial key "IsOtherSip" that we modified earlier on will revert to "0" upon soft-reset; so we need something to keep it at "1".
A convenient and transparent solution would be to install MortScript and insert a one-line script in the "\Windows\Startup" folder that writes to "IsOtherSip" upon each startup. This keeps EzInput out of the way.
I've written such a script for your perusal; for those of you who already have MortScript installed just download the "Kill_EZ.mscr" file and put it in the "\Windows\Startup" folder. For those of you who don't have MortScript you can download the CAB version that installs everything for you; you don't have to do anything else.
That concludes our tutorial (at least until we find another rival to conquer
), have fun and stay safe!