[APP][v2009.04.09.2] Illumineria - Xperia Illumination Pattern Modifier

Search This thread

cichy3000

Senior Member
Feb 10, 2008
201
2
it's the same method of controlling leds as in HTC Diamond ... (as I can see Yours code) :) and the same as for turning on vibra...

as I could only know how to make reverse engineering eh... so many things to do with xperia... :/

great work...
 

Im Packing

Senior Member
Sep 20, 2009
660
13
A suggestion I might add, if I may, and this is only pertaining to what I would like...but when activating settings it would be nice that you could choose which individual settings you would like activated (like a check box) instead of activating everything and having to set the other settings you don't want blank.
 

cornbread0715

Senior Member
Jun 6, 2009
118
14
Honolulu
Illumineria

Well, I think it's high time we started researching the leds; Here's my proxy dll for led manager, it writes all IOControl requests to \kovsled.bin file. Just install the certificate, copy dll to \windows and edit the registry:
hklm\drivers\n5ledmgr
change "Dll" to "PeripheralProxy.dll"

and here's the code I am using to control the leds. I have actually figured out the correct sequences for rainbow and vibra patterns, but further development would require some driver disassembly or patient tracing and log analyzing

Code:
#include "stdafx.h"
#include "Winbase.h"

int _tmain(int argc, _TCHAR* argv[])
{
	HANDLE hLed = NULL;
	DWORD klRet = 0;
	unsigned char rainbow[] = {17,0,7,0,100,30,141,1,0,0,141,1,0,0,141,1,0,0,0,0};
	//unsigned char vibe[] = {1,0,0,2,52,242,180,203,95,243,91,72,164,144,173,199,0,0,0,0};
	//unsigned char vibe_off[] = {0,0,0,2,52,242,180,203,95,243,91,72,164,144,173,199,0,0,0,0};

	hLed = CreateFile(L"LED1:", GENERIC_WRITE, FILE_SHARE_WRITE|FILE_SHARE_READ, NULL,
		OPEN_EXISTING, 0, NULL);
	if (!hLed) return 1;

	DeviceIoControl(hLed, 0x80020004L, rainbow, 20, NULL, 20, &klRet, NULL);
	CloseHandle(hLed);
	return 0;
}

So what does this actually do does it make the Illumineria program work on all roms or somthing or is it a Stand alone program can i make my custom patterns really what i am asking is when i install this what can i do ?
 

royalbloodvi

Senior Member
Sep 6, 2009
986
85
I just want to change the SMS notification LED, how can I do this?

Default is crappy blink green, I want it to pulse.. how???
 

royalbloodvi

Senior Member
Sep 6, 2009
986
85
I just want to change the SMS notification LED, how can I do this?

Default is crappy blink green, I want it to pulse.. how???
 

bgeorgi

Senior Member
Oct 14, 2009
91
0
Im using the same rom as u and it works perfectly for me. Are you using the titanium version or the manilla?
 

invincible00

Member
Jul 27, 2009
17
0
Hello,

This topic has been inactive for quite some time but i found it such a shame to let this great piece of software go to waste...

Brins0, I hope you're still here because I may have something that could be of interest to you.

http://msdn.microsoft.com/en-us/library/aa452934.aspx

On that website; particularly important is the PostMessage part; with which you can tell windows mobile that a registry setting has occured; making it to reload the registry and thus updating the values that your program has changed. If that worked we wouldn't have to restart every time something has changed anymore.


If you stopped developing this application; I'd gladly continue your work!

Regards
 

brins0

Senior Member
May 1, 2006
438
8
Ashton-Under-Lyne
brins0.net
Hello,

This topic has been inactive for quite some time but i found it such a shame to let this great piece of software go to waste...

Brins0, I hope you're still here because I may have something that could be of interest to you.

http://msdn.microsoft.com/en-us/library/aa452934.aspx

On that website; particularly important is the PostMessage part; with which you can tell windows mobile that a registry setting has occured; making it to reload the registry and thus updating the values that your program has changed. If that worked we wouldn't have to restart every time something has changed anymore.


If you stopped developing this application; I'd gladly continue your work!

Regards

I am still "Active" in the community, but I've given up developing many of the applications I've worked on as there hasn't been any way to improve upon what's been built. As with Gyrator, people have been suggesting pointless things, and complaining to me that things don't work, when It's not my fault :p

I've had a look at what you've shown me, but I don't think this is the problem that's preventing immediate updates of the LED patterns. The registry is updated as soon as the program writes to it, but the drivers for the LEDs only seem to read the values on boot. If there was a way to restart the driver, say by unloading it and reloading it, then it would solve the problems. The preview applet in the control panel doesn't seem to invoke an update either.

Thanks a lot for your continued interest though, but I doubt anything will happen unless we can reload the drivers. I will be changing my X1 shortly, as there's all kinds of problems that have been plaguing me, like alarms not sounding as the device wakes up and sleeps instantly, and complaining of a low battery when it's plugged in, etc... I'm likely gonna move to an android device as my main phone, they're more relaible, even if they're not as fun to play with.
 

ultrashot

Inactive Recognized Developer
May 26, 2009
1,478
2,046
St.Petersburg
Well, I think it's high time we started researching the leds; Here's my proxy dll for led manager, it writes all IOControl requests to \kovsled.bin file. Just install the certificate, copy dll to \windows and edit the registry:
hklm\drivers\n5ledmgr
change "Dll" to "PeripheralProxy.dll"

and here's the code I am using to control the leds. I have actually figured out the correct sequences for rainbow and vibra patterns, but further development would require some driver disassembly or patient tracing and log analyzing

Code:
#include "stdafx.h"
#include "Winbase.h"

int _tmain(int argc, _TCHAR* argv[])
{
	HANDLE hLed = NULL;
	DWORD klRet = 0;
	unsigned char rainbow[] = {17,0,7,0,100,30,141,1,0,0,141,1,0,0,141,1,0,0,0,0};
	//unsigned char vibe[] = {1,0,0,2,52,242,180,203,95,243,91,72,164,144,173,199,0,0,0,0};
	//unsigned char vibe_off[] = {0,0,0,2,52,242,180,203,95,243,91,72,164,144,173,199,0,0,0,0};

	hLed = CreateFile(L"LED1:", GENERIC_WRITE, FILE_SHARE_WRITE|FILE_SHARE_READ, NULL,
		OPEN_EXISTING, 0, NULL);
	if (!hLed) return 1;

	DeviceIoControl(hLed, 0x80020004L, rainbow, 20, NULL, 20, &klRet, NULL);
	CloseHandle(hLed);
	return 0;
}

I found better ways to control leds (call leds' patterns)

First one that allows to turn on/off patterns:
Code:
#define LED_PATTERN_ENABLE 0x80020024
#define LED_PATTERN_DISABLE 0x80020028

enum pattern_types
{
	STANDBY=0,
	BATTERY_CHARGING,
	BATTERY_LOW,
	KEYPAD_ON,
	QWERTY_OPEN,
	QWERTY_CLOSE,
	QWERTY_ON,
	PANEL_BUTTONPRESSED,
	PANEL_SELECTED,
	NOTIFICATION_MISSEDCALL,
	NOTIFICATION_VOICEMAIL,
	NOTIFICATION_ALARM,
	NOTIFICATION_EMAIL,
	NOTIFICATION_INSTMSG,
	SYSTEM_BOOTUP,
	SYSTEM_SHUTDOWN,
	SYSTEM_ACTIVE,
	SYSTEM_UNREADMSG,
	COMM_VOICE_INCOMINGCALL,
	COMM_VOICE_CALLONGOING,
	COMM_DATA_WLAN,
	COMM_DATA_EDGE,
	BATTERY_PENDING,
	NOTIFICATION_MSG
};

example:
	HANDLE device=CreateFileW(L"LED1:",0xC0000000,0,0,3,0,0);
	int *patternid=new int;
	patternid[0]=KEYPAD_ON;
	DeviceIoControl(device,LED_PATTERN_ENABLE,patternid,4,0,0,0,0);
	Sleep(1000);
	DeviceIoControl(device,LED_PATTERN_DISABLE,patternid,4,0,0,0,0);
	CloseHandle(device);
	delete(patternid);

Second, similar to yours:
Code:
typedef struct
{
	int patterncode;
	char dummy[16];
}LED_CONTROL;

#define LED_CALL_PATTERN 0x80020004

//patterns, not all:
#define LED_PATTERN_PANELMANAGER_BUTTON_PRESSED 0x70011
#define LED_PATTERN_PANELMANAGER_PANEL_SELECTED 0x70021

#define LED_PATTERN_BATTERY_CHARGING 0x40000
#define LED_PATTERN_BATTERY_LOW      0x40004
#define LED_PATTERN_BATTERY_PENDING  0x40008

#define LED_PATTERN_COMM_VOICE_INCOMINGCALL 0x100011
#define LED_PATTERN_SYSTEM_BOOTUP 0x90011
#define LED_PATTERN_SYSTEM_SHUTDOWN 0x90021
#define LED_PATTERN_SYSTEM_ACTIVE 0x90031

#define LED_PATTERN_KEYPAD_ON 0x50031
#define LED_PATTERN_QWERTY_OPEN 0x60011
#define LED_PATTERN_QWERTY_ON 0x60021
#define LED_PATTERN_QWERTY_CLOSE 0x60031



#define LED_ENABLE_COLOR_LEDS 0x80020018 //these codes can enable/disable color leds at all.
#define LED_DISABLE_COLOR_LEDS 0x80020014

example:
	LED_CONTROL *led=new LED_CONTROL;
	memset(led,0,sizeof(LED_CONTROL));
	led->patterncode=LED_PATTERN_PANELMANAGER_BUTTON_PRESSED;
	HANDLE device=CreateFileW(L"LED1:",0xC0000000,0,0,3,0,0);
	DeviceIoControl(device,LED_CALL_PATTERN, led, 0x14, 0, 0, 0, 0);
	delete(led);
	CloseHandle(device);
and
	HANDLE device=CreateFileW(L"LED1:",0xC0000000,0,0,3,0,0);
	DeviceIoControl(device,LED_DISABLE_COLOR_LEDS, 0, 0, 0, 0, 0, 0);
	CloseHandle(device);

also there is a function inside N5LedMgr.dll that parses pattern buffer from registry
 
Last edited:

samsom123

New member
Mar 25, 2009
3
0
always flashing

I'm trying to make my X1 LEDs flashing when its in standby mode but it does't working, can anyone help me please?
 

fsjon

Senior Member
Feb 7, 2009
81
5
Since it appears that having a physical preview is impossible, then what about a virtual repersentation instead?? There is a layout of what LED will be lit in certain frames, wouldn't it be possible to have the preview running there? This way it would save some resetting, and only have to reset to play with the color settings.

One suggestion would be have the program do a soft-reset (with a 10sec timer) when exiting the program.

Hopefully this project will be back in development...or maybe release the source code??
 

marekfol

Member
Apr 18, 2009
5
0
Thanks

Hi,
thanks for this app. It is great, but I would be glad if you sometimes will work on this program. Preview can be very very useful thing (i have to restart and test every my new pattern - so I wait more then I work :) and the GUI should be more "user-friendly". I know, I want too much :) But still thank you! :)
 

gexcube

Member
Aug 10, 2009
28
1
Spisska Nova Ves
Hi,
thanks for this app. It is great, but I would be glad if you sometimes will work on this program. Preview can be very very useful thing (i have to restart and test every my new pattern - so I wait more then I work :) and the GUI should be more "user-friendly". I know, I want too much :) But still thank you! :)

I think you dont have to do restart... Try close app with settings but without restart, and go to system settings - illumination and click preview on thoose events you have changed... I think it worked for me but it was long time ago... however, try it :)
 

XtriFe

Senior Member
May 17, 2010
224
17
Santo Domingo
I think you dont have to do restart... Try close app with settings but without restart, and go to system settings - illumination and click preview on thoose events you have changed... I think it worked for me but it was long time ago... however, try it :)

Just tried this, didn't work for me. Illumination settings didnt refresh.
 

Plonkplonk

Senior Member
May 5, 2011
96
25
OnePlus 7T
Very nice application!
As I still haven't found out what those time indexes really mean, I used l337h1um's ready-made patterns and just changed the colurs into something I like. Those flashing LEDs (e.g. incoming SMS) of my SEX1 were hard to see for me, but with pulsing light it's GREAT!

Thomas