Enough brain power to rival a nuclear reactor - 8125, K-JAM, P4300, MDA Vario Software Upgrading

But yet with all the talent on this board...
We can't figure out how to get the damn keyboard light to stay on longer than 5 seconds (8125)... Errrrrrrr
Just my rant! Thanks for stopping by.

5 secs is more then enough for me, if I dont type, I dont need the keyboard light on...and when I start typing, it goes on again....no problem at all

I did some work on this, but without a Wizard I can't test any ideas out.
For anyone interested or with a fusion powered brain, have a look through the battery driver. That's where this is effected on the Universal.
V

Keyboard light
Yeah - I am not a geek, just a user. Having said that, I simply keep my left thumb on the "dot" key and tap it if I need the light. Do I have to say that I tap it again when I want to type a non-special key?
I understand the light is a creature comfort, but, sheesh, the machine is already soooo awesome, this seems like a very trivial complaint.
IMHO
TR

vijay555 said:
I did some work on this, but without a Wizard I can't test any ideas out.
For anyone interested or with a fusion powered brain, have a look through the battery driver. That's where this is effected on the Universal.
V
Click to expand...
Click to collapse
If you need a beta tester for a work around for this let me know. I can load it up and let you know if it works.

something to try
There is a backlight hack in the Univelsal wiki forum Try to do that
wiki.xda-developers.com

vijay555 said:
I did some work on this, but without a Wizard I can't test any ideas out.
For anyone interested or with a fusion powered brain, have a look through the battery driver. That's where this is effected on the Universal.
V
Click to expand...
Click to collapse
Howdy Vj -
I was going to start poking around the Wiz driver soon. Can you point me to any forum posts I can reference on the relevant locations within the Uni driver?

summiter - hi! I spent quite a while disassembling the Universal stuff, because we know that does use the reg key
HKEY_CURRENT_USER\ControlPanel\Backlight\QKeyLedTimeout
to control backlight time.
I traced this back to the battery driver, which also has some other useful stuff. Then I think I got bored, but you can check the Wizard driver to see if it has an equivalent. Otherwise I tried to hook directly into the driver to activate the backlight directly with an IOCTL, but not successful at the time. It doesn't export a function directly to activate the backlight I think.
I did try and it did not work, simulating a keypress, modifying the input queue, and various techniques for spoofing keyboard input, but the backlight is activated by the driver at a hardware level, not because of spoofed keyboard presses. So I think best way is to reverse engineer the driver and hack into the backlight there... but I moved on to other things first...
V

vijay555 said:
summiter - hi! I spent quite a while disassembling the Universal stuff, because we know that does use the reg key
HKEY_CURRENT_USER\ControlPanel\Backlight\QKeyLedTimeout
to control backlight time.
I traced this back to the battery driver, which also has some other useful stuff. Then I think I got bored, but you can check the Wizard driver to see if it has an equivalent. Otherwise I tried to hook directly into the driver to activate the backlight directly with an IOCTL, but not successful at the time. It doesn't export a function directly to activate the backlight I think.
I did try and it did not work, simulating a keypress, modifying the input queue, and various techniques for spoofing keyboard input, but the backlight is activated by the driver at a hardware level, not because of spoofed keyboard presses. So I think best way is to reverse engineer the driver and hack into the backlight there... but I moved on to other things first...
V
Click to expand...
Click to collapse
Wow.... Like I said lots of brain power, and yet the solution to a simple task eludes even the most bright...
As for all current reg hacks none of the work on the 8125.

DXL007: don't know if that's a complement or an insult, but I have to choose my battles: as the famous quote says, this type of stuff is "99% perspiration and 1% inspiration"... I had to do quite a lot of reversing just to get to an educated point of failure Then I just play call of duty until I'm ready to do the next one! And I'm working on several new, unrelated apps first.
But as I said, I don't have a Wizard, and there are a lot of other guys on the board capable of this! But I'll try to have another look when I get time... I tend to drift between projects subject to time.
V

DXL007 said:
vijay555 said:
summiter - hi! I spent quite a while disassembling the Universal stuff, because we know that does use the reg key
HKEY_CURRENT_USER\ControlPanel\Backlight\QKeyLedTimeout
to control backlight time.
I traced this back to the battery driver, which also has some other useful stuff. Then I think I got bored, but you can check the Wizard driver to see if it has an equivalent. Otherwise I tried to hook directly into the driver to activate the backlight directly with an IOCTL, but not successful at the time. It doesn't export a function directly to activate the backlight I think.
I did try and it did not work, simulating a keypress, modifying the input queue, and various techniques for spoofing keyboard input, but the backlight is activated by the driver at a hardware level, not because of spoofed keyboard presses. So I think best way is to reverse engineer the driver and hack into the backlight there... but I moved on to other things first...
V
Click to expand...
Click to collapse
Wow.... Like I said lots of brain power, and yet the solution to a simple task eludes even the most bright...
As for all current reg hacks none of the work on the 8125.
Click to expand...
Click to collapse
VJ handled your message quite gentlemanly. I on the other hand think you should take your sense of entitlement elsewhere.

vijay555 and summiter,
I hope DXL007 meant this more as encouregment than it came across, but I hope you guys realize that the vast majority of the people on this forum appreciate what you do for us and don't feel it's something you owe us. There aren't many people that can and will provide such useful software and information and not expect an arm and a leg for it. Mainly because of the two of you my 8125 is the perfect pda and keeps getting better.
Thanks,
Mike H

summiter said:
DXL007 said:
vijay555 said:
summiter - hi! I spent quite a while disassembling the Universal stuff, because we know that does use the reg key
HKEY_CURRENT_USER\ControlPanel\Backlight\QKeyLedTimeout
to control backlight time.
I traced this back to the battery driver, which also has some other useful stuff. Then I think I got bored, but you can check the Wizard driver to see if it has an equivalent. Otherwise I tried to hook directly into the driver to activate the backlight directly with an IOCTL, but not successful at the time. It doesn't export a function directly to activate the backlight I think.
I did try and it did not work, simulating a keypress, modifying the input queue, and various techniques for spoofing keyboard input, but the backlight is activated by the driver at a hardware level, not because of spoofed keyboard presses. So I think best way is to reverse engineer the driver and hack into the backlight there... but I moved on to other things first...
V
Click to expand...
Click to collapse
Wow.... Like I said lots of brain power, and yet the solution to a simple task eludes even the most bright...
As for all current reg hacks none of the work on the 8125.
Click to expand...
Click to collapse
VJ handled your message quite gentlemanly. I on the other hand think you should take your sense of entitlement elsewhere.
Click to expand...
Click to collapse
LOL...I always like messages like this. Yeah, it's a simple task so it must be that these "experts" are all lazy and liars. Takes me back to the old days (yesterday?) when a Pocket PC could do anything a laptop could do but the evil Microsoft hid all the features in the registry. Yep, whatever you say and good luck with that. :lol:

Related

Tilt Sensor Not-Quite-SDK

I contacted HTC and asked them if they had a tilt sensor SDK, or had plans to release one, and they basically said "no". So, I decided to see what I could come up with to get tilt response integrated into my little pet-project, and to my surprise, managed to figure out how to get some basic data out of the existing tilt sensor DLL on the Diamond.
If you'd like, you can see my "hello world"-level app using the tilt sensor here on my blog. I've included the source so others can play with the few tidbits I've figured out. The app itself is pretty boring, it'll really only be of interest to developers looking to integrate tilt into their app, and even then, it's still a boring app =)
If accessing the tilt sensor is well known, feel free to ignore me.
Well done, thats great!
You should also probably look at this and talk to CharlyV, he might be able to add some info.
http://forum.xda-developers.com/showthread.php?t=403939
That's great news !
Now developers might use such information to release usefull applications and funny games !
Yes, I was wondering, for my car I use the G-tech for acceleration-measurement.
Is this sensor sensitive / good enough to also do those kind of things?
Also, navigation programs can be a lot more precise by knowing when accelerating, cornering or braking.
Riel said:
Yes, I was wondering, for my car I use the G-tech for acceleration-measurement.
Is this sensor sensitive / good enough to also do those kind of things?
Click to expand...
Click to collapse
Good question: I might try to write some sort of logging program and see what kind of data I can get out of a car trip. That's a bit off for now.
Also, I made a minor update the project, I determined a few more of the unknown values that the API returns.
perhaps you or some other guys are capable to work with some tools mentioned in this post??
http://forum.xda-developers.com/showpost.php?p=2373447&postcount=56
Is there any chance to develop a calibration tool for this sensor?? Mine drifts to lower-left and thats annoying because Opera always means, I rotate my phone :-(
Thank you
I updated the project to include a sample of how to use the event driven notification of different orientations that Opera uses (instead of polling the sensor constantly to determine the current orientation).
I'll have to do some digging to see if there's any way to calibrate the sensor. It'd be nice (mine is a bit off too), but I don't see anything immediatly obvious.
Perfect news!
I hope there are devs, who will make apps or games for this. My idea of a new game is "Black Circle".
(Side in German bug game in English, dont worry)
http://spiele.isnichwahr.de/r432-spin-the-black-circle.html
What do you tink about it?
I wrote a managed wrapper based on Scott's work:
http://blog.enterprisemobile.com/2008/07/using-htc-diamonds-sensor-sdk-from-managed-code/
I think it would be possible to calibrate the sensor by replacing the HTCSensorSDK.dll with one that acts as a pass through to the real thing. Then it could "massage" the returned values with calibration adjustments.
Teeter -> HTCSensorSDK.dll (one we roll that tweaks values) -> RealHTCSensorSDK.dll (the real DLL)
I don't think that the DLL is replaceable unless the device is flashed with a new ROM.
Thoughts?

request :) Toch Diamond as a pc gamecontroller

Hi all,
It would be nice to use the gsen of the diamond as a game controller for custom made games on the pc(like the wii).
Is this possible
+1
interesting idea
but i don't think it ll be easy....
kenshironanto said:
+1
interesting idea
but i don't think it ll be easy....
Click to expand...
Click to collapse
No I don't think it would be easy...
that's why I ask it the pro's!!!
nice idea. Bluetooth connection to the PC?
lol... just the idea of pairing a device on Bluetooth with Windows...
Can't imagine the phone side to be too hard - my first shot would probably be WLAN since that's the easiest way to get some connection working. Once you have that simply passing gsen / dpad / buttons (maybe even touchscreen input?) to the PC should be rather trivial.
The harder part is probably to write a gamepad driver for windows that interprets that input data and transforms it to DirectInput compliant information.
While I certainly know how to do the phone side - I am somewhat unsure about the PC side. The last time I did some driver coding is AGES away. I don't even know if opening a TCP/IP socket from inside a driver is possible/a good idea. Maybe one would need a daemon-like user space program to read the input from the network and feed it to the driver...
Would acualy ge a freaking awsome Ide toward an playstation 3.
And acualy a computer.
i don`t know if this is fake or not, but check it out:
http://www.youtube.com/watch?v=79xeREnZ_7Q&feature=related
called niime i think =)
pureevil said:
i don`t know if this is fake or not, but check it out:
http://www.youtube.com/watch?v=79xeREnZ_7Q&feature=related
called niime i think =)
Click to expand...
Click to collapse
cooooll
it would be awesome if diamond can do that
pureevil said:
i don`t know if this is fake or not, but check it out:
http://www.youtube.com/watch?v=79xeREnZ_7Q&feature=related
called niime i think =)
Click to expand...
Click to collapse
Geez I wish I had time to look into that - if their stuff was open source I am sure we could leverage about 90% of their XP driver implementation (which most likely they managed pretty well)...
do we need to remake drivers?
you can get Python (program used) for PocketPC, and it just bluetooth on to PC with NiiMe software....
testing now...
while they seem to use python on a S60 phone - this doesn't directly translate to doing the same thing on a WiMo diamond... The fact that they released their source under the GPL makes reusing their PC software a viable option though.
Speaking of GPL source - has anyone found their code available for download on their site?
Okay guys - you got me as far as installing a devel enviroment and writing a simple gsen SDK based test app now - if there's someone willing to spend some time on the PC DirectInput driver side I'm sure we can get somewhere with this...
This.Would.Be.Awesome. !!!!!!!
if this works, I gonna get a diamond other than orbit 2
pureevil said:
i don`t know if this is fake or not, but check it out:
http://www.youtube.com/watch?v=79xeREnZ_7Q&feature=related
called niime i think =)
Click to expand...
Click to collapse
nice, i didn't know that this exist. So asking here for the request whasn't as stupid as i tought!!!
+1 for up!
Hey
I'm currently working on a little client-server (TCP/IP) thingie to at least get GSensor data from the Diamond to the PC - once that is done there's still the very ugly part of writing a DirectInput driver that acts like a gamepad...
If anyone wants to take over the driver-writing part things would progress much more quickly I guess
Sadly I don't have too much spare time at the moment to spend on the matter though.
Cheers,
Alex
a gsensor keyboard emulator could control for example
FLUX the game. (3d tube flying), by senden keystrokes
to windows` keyboardhandler
whoever does figure this out will be the man. when it does happen i just hope it will do the job for the cdma version coming to telus on or around august 6th
I have a .NET client/server pair running in an WiMo6 emulator now sending what could actually be GSen data at a fairly decent rate. Not considering the GSensor it's pretty much phone independent.
And if anyone tells me how to get rid of the files VS2k5 places on my Diamond for debugging the application I'll try the same thing with a real GSensor I am just tired of hard-resetting my Diamond in order to clean up the mess done by the development environment...
Cheers,
Alex
Edit: Okay, I tested it on my diamond by simply copying over the two required files (no debugging possible though) and transferring GSen data either via ActiveSync (say Bluetooth) or WLAN works nicely. But I'm afraid it's necessary to keep the device awake to avoid lags (does the diamond reduce CPU speed on standby?).

$ 100 Reward for Vibration Application for Hardware Keyboard

Hardware Keyboard - $ 100 Reward
100 USD PRIZE MONEY
Dear All,
I love my X1. The only thing I am not happy with is the (lack of) tactile feedback on the Hardware Keyboard of the X1. As there is little to no 'feel' to when you press the hardware keys.
There is an application out there from Snailslug which produces a small vibration whenever the touchscreen keyboard is pressed... see the following link: http://forum.xda-developers.com/showthread.php?t=450256
Now I am looking for the same thing with the HW keyboard. If anyone out there is up to creating an application (with a very small footprint) that produces a small vibration (around 25ms) after each key on the hardware keyboard is pressed, I will give that person 100 USD as a big thank you. To make it fair, here are the rules:
- Deadline: 31st of August (not that someone comes two years later and wants a prize for an application I dont need anymore
- First application that does not slow down my X1 and provides the requested result will be rewarded
Thanks and all the best,
why did you open a new thread? http://forum.xda-developers.com/showthread.php?t=544306
He want to pay a total reward of $200... I guess...
Or not?
the reward is $100. this thread was created as the last title wasn't 'clear enough' as to what the subject is about. good luck with the application. 100 bucks are waiting
go to advanced edit and change the title of the thread if thats all u wanted to change btw
Next time I know ;-)
............
Was anyone able to come up with an application? Shouldnt be that difficult for those that are able to programm
http://forum.xda-developers.com/showthread.php?t=425063
Maybe this will work...
If so, I want my 100 USD!
casklaverstijn said:
http://forum.xda-developers.com/showthread.php?t=425063
Maybe this will work...
If so, I want my 100 USD!
Click to expand...
Click to collapse
That's different. He wants feedback for when the hardware keyboard is pressed, not the screen.
Features:
- Vibrate always on touch events (mouse down, or mouse up)
- Vibrate only if SIP is active
- Vibrate on Key press (hardware keys)
- Adjustable vibration (duration in ms)
- configuration over command line parameters
- fully event based, so only battery consumption while vibrating
- No runtimes needed (pure C++ application)
- Works with WM 5+ (not 2003)
Click to expand...
Click to collapse
I think this will do it, but i think the dev has stopt al long time ago. But it has the features WDM wants.
Oh..the 100USD is for the Developer...lol
this should be entirely possible and maybe even easy to do, IMO
matthewpapa said:
this should be entirely possible and maybe even easy to do, IMO
Click to expand...
Click to collapse
so expect an app from you then?
Actually I'm not sure this is that easy to do at all.
I thought ok I'll take a look so created a new device application in visual studio, getting the device to vibrate is easy, this is well documented.
Trapping key events when you have a form / control with focus is also easy. The problem comes when you want to trap key events without having a form or focus.
I've read several posts online pointing to coredll.dll, but nothing definitive.
Lol you need a hook. Sure this exists on WinMo just like on desktop Win.
Great comments guys. Looks like there are at least a few willing to put some thought and effort in this. any chance of one of you coming up with the application anytime soon?
Firefall! said:
Lol you need a hook. Sure this exists on WinMo just like on desktop Win.
Click to expand...
Click to collapse
I know I need a hook, which hook, which dll, documented where, that being my point.
I'll have another look at this tonight.
richard.ian.brown said:
I know I need a hook, which hook, which dll, documented where, that being my point.
I'll have another look at this tonight.
Click to expand...
Click to collapse
You never stated so. There is not much to such a hook actually I would create the app myself if I had the means. That's about 5 lines of code, just make the device shake and pass the key on. The only trouble you will run into is that the keys seem to be hooked already, so you have to make sure you don't mess with that and prioritize your function.
Thanks Firewall. Is there anyone out there that would be able to write a few lines of code. It appears to be simple enough, if you can programm (which I cannot) which is why i am asking the pros here ;-)

I Need Ideas - Raphael Programming

Hello all,
I recently started a course here at Purdue University on Mobile Software development (Windows Mobile).
I need some ideas for programs I should write. Please reply to this thread or PM me if you'd like.
I have experience with C#, VB, C++, and C, among other languages.
Thanks
Jason Flittner
how about a dedicated xda forum app?
How about a sports ticker. I'm still surprised there isn't one yet.
BTW, I think I saw a xda app when I was poking around the other night.
I'm trying to think of ideas but my minds drawing a blank...
Here's the XDApp
Gonna expose my nerdiness here, but you asked...
How about an app that accesses the D&D Insider online compendium of rules and data? Not sure what would be involved, but I'm betting that there's no API available, so it'll probably never happen.
OTOH, it would be nice to see a really high quality dice-rolling app that takes full advantage of the g-sensor and the hardware accelerated graphics...something that looks like dice inside a tumbler, you know? Maybe start with a really slick Yahtzee-style game, and build up to polyhedral dice for us game-geeks?
I'd be happy to provide you with some guidelines for building. I'm sure we could find you a suitably good graphics guy, too, if you're not up to that part (I could do that, in a pinch).
I want my phone to do this:
But until then, I would like to see an ap like Skype, but for mobile that will easily switch you from cellular network to VOIP.
I have two ideas:
#1 - I don't know if this is even possible, but an application that turns on WIFI and/or Bluetooth in a receive only mode briefly every few seconds and listens for user selected devices in range and then performs user selected actions.
The idea is that the it would use less power than leaving WIFI and/or Bluetooth on all the time, but when I get in range of my wifi router at home, it turn WIFI fully on and sync my phone. Or when I'm in range of the WiFi at work, it could turn my ringer to vibrate. Or when I get into the car, it detect my Bluetooth stero, connects to it, and opens the music player.
#2 - Probably simpler than #1, a program that turns WiFi and/or Bluetooth on automatically when the phone is plugged into a charger and then performs specific user defined actions, similar to idea #1.
I don't know if programs like this already exist, but I haven't found them.
Dylan
I like these ideas, please keep them coming. I am not sure what the requirements will be as far as our programming projects are concerned but from what I understand I have alot of freedom in project choices!
I am in another robotics programming class working with the iRobot Creates and I was thinking it would be really sweet to program something that could allow the 2 to interact in some way/shape/form!
I am also very excited about GPS technology I wouldn't mind programming something that would utilize the GPS or triangulation!
Thanks for the contributions all, please keep them coming!
~JFlitt
With all that programing skill you could create some pretty neat apps.
Ive always liked the windows desktop interface.
How about a windows xp-like launcher?
Complete with movable desktop icons, windows, etc.
I am aware that wisbar advance desktop allows you to do this, but alot of those skins are a hassle, and they are not very complete. Plus they dont exactly take advantage of any 3d graphic drivers..
But anyways back to the point, with a windows xp desktop like interface it would be easier to use the phone.
I would not have to stretch my thumb all the way to the top left of the phone.
Oh and you could possibly utilize the touch pros capacitive touch panel for controlling the mouse.
You could also get google android working with more functionality. I am aware that there is work being done on it, but someone with so much programing knowledge could really speed up the project.(Im android crazy)
Or, if all that is too much to complete in limited time, then how about an application that will allow multi touch using the touch panel?
And also, resistive touch screens are supposedly multi touch capable.
I hope i gave you enough ideas.
Good luck.
madfatter said:
how about a dedicated xda forum app?
Click to expand...
Click to collapse
ye s a facebook like app
But would love to see a app recreate the zoombar
on my tp
VOIP
Hi,
I have an idea and it is possible.
how about having an app on your phone to configure your SIP provider settings in it ( 5 different proxy ) and then when you want to dial a number, you can right click on it and chose " voip dial ".
Skype already gives you a the menu for skype calls when u right click on your contact .
if you can add a menu to TF3D settings->communication->VOIP and we can add 5 different proxy in it and we can activate more than one proxy at the same time in order to RECEIVE AND DIAL voip calls from our phone it would be awesome since microsoft is not allowing this kind of apps on marketplace .
Tnx
Thunder
a good "made for raphael" nes or snes emulator would be great since all the other ones out there are out dated and seem to work grat on old phones but are horribly laggy on the touch pro...wierd... the only good one ive found is a jap build of nester (nesterj4u) built for an hp phone or pda im not sure but the keyboard slides out to the right so landscape mode is upside down when i want to use the keyboard >_<
a good streaming media app thats a bit easyer to use than the one that comes with the phone would be great with some tv links on it like surfthechannel or tvdome would be great.
a youporn app to copliment the youtube app would be awsome
hmmm a good compass that simply points north (true or magnetic) with degrees would be awsome for when i drop mine on the roof trying to point my sat.
a simple freeware level would also be awsome since ive only found trialware levels so far
an hourglass would be a fun pointless app for when i get bored of pouring digital beer.
a goofy clip art picture editor could be fun just to mess with. maybe with some fish eye lens and carnival mirror opptions would be fun.
a free streaming radio app would be cool too....
sorry for the long list cant sleep ... figured the more ideas the better
ps. im not sure if any of these already exist havent checked lately so if anyone know if they do feal free to point me in the right direction it would be greatly appreciated
ok, I'm gonna try to have this make sense, but no guarantees. how about a simple titanium plugin framework? something that **doesn't** use mortscript? as mscript is good for certain things, it's not for others. this way there is an easier way for developers to make new plugins for it without having to use a slow scripting language. does that make any sense?
How about a talking GPS
I was out on my mountain bike today. I have a Garmin unit on the handle bars for navigation and listening to music from my Touch Pro in my pocket.
I was riding a fast downhill section through the some trees when I realized I was taking my eyes off the trail to make sure I was still on course.
I've used this http://www.basicgps.co.uk/ for Geocaching but it can only take you to one waypoint at a time. You can't use it to follow a route.
How about making an application which can steer you along a route using voice commands.
(Tomtom and others can only do this on roads, not off-road)
mixture of gps and accelerometer
well can u create an app the tells u ur speed while u are travelling like there is one app which does it in i phone it uses motion sensing and gps there are apis for both you can code it in c# with .net fw 3.5 and if u require help i am available i too know c# .
sound control
What about an app. that would control all of the sound feature such as the ear speaker,speaker phone speaker,and possibily microphone independitly,like bass,trebl,vol. That way a person could tailor the phone to sound the way they want it to sound when they are talking on it or whatever.
Just a thought.
Programing Ideas
A project that I have been toying with is a "Now" button for the calendar. Those of us in consulting need a simple and quick way to insert the current time in the Start Time and End Time field, which ever is selected. I've not been successful so far.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HARDWARE: AT&T HTC FUZE (Raphael)
Hard-SPL: AT&T
ROM: AT&T
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
How about that app the iPhone has where you can transfer contacts by putting the phones next to each other and shaking it to transfer or sliding it across to the other phone.
All for now will think of more
*edit* Forget this its kind of pointless when we can send contacts via sms/IR beam
How about the ability to use our Fuze's as remote controls like you could with PDA's, open your garage door, turn on your 360 or TV, forgot to turn your laptop off, send it a signal to shut down from anywhere
There're some cool applications on Android. One application changes the ringtone based on GPS location. It sets ringtone to loud at home, lower the volume in office and automatically sets the phone to vibration when you are in a theater.
Another application is about setting alarm based on location. You can set an alarm about buying some stuff in a store, next time when you pass by the store, alarm goes off.

Rewrite button driver

I was wondering, would it be feasible to rewrite the button driver to customize the X1 buttons? I mean even higher level than a key hook. Key hooks are annoying because they interfere with other apps that want to set key hooks. Hot keys are useful, but another application can come along and steal your hotkey. I want to modify the X1 buttons at a much higher level.
One thing for instance about the panel button i have always wanted to know. The panel manager sends out button code 0x00EA. Even if this event is suppressed by a key hook, the panel manager still opens. So I wonder what part of the OS is responsible for this? Is there a button driver dll that can be overwritten? Is the button driver built into the OEMXipKernel (but possibly overwrite-able at the ROM cooking level)?
Basically I want to know if it is possible to rewrite the button driver that actually detects the hardware interrupts from the keyboard/buttons and sends key press events to the OS. Does anyone know if this is possible? People have rewritten/modified things such as the battery and even display drivers. Is this in the same category?
yes there is keboard dll
keypad.dll it "supports" panel manager button, ok, arrows & everything else...
if U could write something like thi, it would be great... i think... I'm maniac of very useful Xperia buttons (there is no other device like sex1, which has so many buttons on front panel... ! it's just great !)
giving users possibility to bind actions (win lock, new process, win key, esc, ok, OK/Close, back, home, etc... to any ! button would be great !), swapping, changing them, different actions for different screens ... GREAT !! I can see !!
I was thinking long time ago about doing such of thing but has no idea how to modify existing keypad.dll (no such great programmer skills) or create new one but in "low level type" ... (interfacing hardware ? :/ noooo idea... ! )
If You'd like my help i could create advanced GUI Configurator of program...
cichy3000 said:
yes there is keboard dll
keypad.dll it "supports" panel manager button, ok, arrows & everything else...
if U could write something like thi, it would be great... i think... I'm maniac of very useful Xperia buttons (there is no other device like sex1, which has so many buttons on front panel... ! it's just great !)
giving users possibility to bind actions (win lock, new process, win key, esc, ok, OK/Close, back, home, etc... to any ! button would be great !), swapping, changing them, different actions for different screens ... GREAT !! I can see !!
I was thinking long time ago about doing such of thing but has no idea how to modify existing keypad.dll (no such great programmer skills) or create new one but in "low level type" ... (interfacing hardware ? :/ noooo idea... ! )
If You'd like my help i could create advanced GUI Configurator of program...
Click to expand...
Click to collapse
Yes it really annoys me that manufacturers dont like to let you modify buttons anymore. I wrote X1BC to modify the buttons but I am tired of higher level methods of trapping keys. I want to go straight to the source.
Let me start taking a look at keypad.dll. I see in my ROM kitchen that it exists as a file (not a module) in OEM drivers. I want to see what the effect of cooking a ROM without it is. Also I will look at references to it in the registry and try to examine dll exports (going to google for software to do this; any free PE analyzers?).
So keypad.dll imports coredll.dll and ossvcs.dll. It exports KBD_Close, KBD_Deinit, KBD_IOControl, KBD_Init, KBD_Open, KBD_PowerDown, and KBD_PowerUp. I dont know what parameters those functions should take though. I want to write a keypad.dll and replace the old one to see when these functions are called.
Found this:
http://read.pudn.com/downloads120/sourcecode/embed/511498/HID/CLIENTS/KBDHID/kbd.cpp__.htm
i cross my fingers... thats sounds great... maybe you can little inspire from X2 keyboard layout maybe dll...
Well.. I dont have an X2 to test that with. :-/
Before I can start experimenting with overwriting the keyboard driver, I need to know how to properly sign drivers. I know that without being signed properly a driver will cause the device not to boot. Can someone tell me how I sign my home cooked driver?
*edit*
Well, keypad.dll doesnt seem to be the low level *driver*. Its just a service. Found this by searching keypad.dll into my kitchen:
Code:
[HKEY_LOCAL_MACHINE\Services\Keypad]
"Prefix"="KBD"
"Dll"="keypad.dll"
"Index"=dword:1
"Order"=dword:15
"Flags"=dword:00010000 ; DEVFLAGS_TRUSTEDCALLERONLY
"DisableKeyLight"=dword:0
"DisableGhostKeyDetect"=dword:0
"ActionDebounceTimeout"=dword:64 ; 100ms
So perhaps my dll doesnt need to signed. I dont even need to replace the old dll. Just point it to my own dll. I just changed "Dll"= to something else and rebooted. Device boots just fine but now the buttons do nothing. Good sign .
some time ago I've accidentally replaced HTC Diamond keypad.dll with Xperia's one (well... i didn't know that with cab that I made, was included keypad.dll didn't notice that ) ... the only issue that came after this change was "no keyboard effect", after I installed one more time the dll but with the right one... the issue gone ...
Just as interesting for what's new? Sorry for my curiosity ... Thank you
I have only done basic experimentation so far. First changed keypad.dll to something else in the registry (something that didnt exist) and as expected the buttons stopped working. I have written a dll to replace it that exports the same functions and made it log every time a function is called. I get attached to many processes and receive some calls to KBD_Init and KBD_IOControl. Nothing in particular corresponds with when a button is pushed yet, but that is probably because I need to respond to KBD_Init by initializing the keyboard. Have not been able to work on it for a while but hopefully I will next week, as I am on winter break from school. Thanks for your interest!
Jon
so we have (via Dependency Walker ):
KBD_Close
KBD_Deinit
KBD_IOControl
KBD_Init
KBD_Open
KBD_PowerDown
KBD_PowerUp
and we don't know how to use them (what arguments to use)... so what can we do with it ? guessing parameters ?
cichy3000 said:
so we have (via Dependency Walker ):
KBD_Close
KBD_Deinit
KBD_IOControl
KBD_Init
KBD_Open
KBD_PowerDown
KBD_PowerUp
and we don't know how to use them (what arguments to use)... so what can we do with it ? guessing parameters ?
Click to expand...
Click to collapse
Look at the link in post 5. Hopefully they are the same. What I am going to do next when I have time is understand that code.
So it looks like those are just the standard exported functions necessary for a service dll. The real meat of what the dll does probably has nothing to do with them. What I need to know is how to recieve keypress info from the keyboard driver and how to inject key events into the OS. Can I just use keybd_event funtion to send key events?..
Looks like I found an answer to that. From MSDN:
http://msdn.microsoft.com/en-us/library/ms646304(VS.85).aspx
The keybd_event function synthesizes a keystroke. The system can use such a synthesized keystroke to generate a WM_KEYUP or WM_KEYDOWN message. The keyboard driver's interrupt handler calls the keybd_event function.
Is keypad.dll the interrupt handler? Or is that something else? It must be. Because if I kill the keypad service no button events get through. I dont see how missing that service would kill the keybd_event function. Off to experiment.
If keybd_event proves to be the correct way to send key events the last question is how to receive interrupts from the keyboard.
I have learned loads over the past day. I Now fully understand the role of keypad.dll it must register to receive the interrupt and use keybd_event to sent keys to the OS. Through disassembly of keypad.dll I have also learned that this role is not simple. This dll has a LOT of code. I dont think I will be able to reproduce everything it does.
I have a new idea however. All I need to do is intercept calls from keypad.dll and decide what to really send and call keybd_event myself. I still achieve the goal of catching key events before 3rd party apps. I can think of two ways to achieve this. One would be to patch keypad.dll to call my own routine instead of keybd_event. Another would by to leave the stock keypad.dll and hook the keybd_event API at runtime. While I have learned loads at how to disassemble dlls and read the assembly, I do not yet know how to modify the import table. On the flipside I do not fully know how to hook APIs. Any help? I would like to go the modify import table route as this seems infinitely simpler.
keyboard driver successfully hooked.
The most reliable button reprogrammer is under way.
Program in private beta.
http://forum.xda-developers.com/showthread.php?p=5272353

Categories

Resources