Autor Wątek: jasność ekranu/deasemblacja dll'ki systemowej  (Przeczytany 2918 razy)

karpik

  • Gość
jasność ekranu/deasemblacja dll'ki systemowej
« dnia: Czwartek, 30 Kwiecień 2009, 12:35 »
cześć, mam 2 połączone ze sobą pytania,

od 2 tygodni szukam rozwiązania które pozwoli mi zmienić jasność ekranu w c++/c#
okazuje się że nie jest to takie łatwe jak myślałem ponieważ każdy producent inaczej rozwiązuje kwestie związane z ekranem
ja pracuje na MIO p360/p560.

wartości jasności ekranu trzymane są w rejestrze, zmiana ich nie powoduje reakcji ekranu,
wiem że musi być jakiś "event" którym należy powiadomić system żeby wczytał rejestr, znalezione przeze mnie nazwy eventów ("BackLightChanged" itp)
nie działały a miękki reset nie wchodzi w grę.

moim kolejnym podejściem jest wykorzystanie dll'ki która jest częścią systemu \\Windows\Backlight.dll (na różnych urządzeniach się różnie nazywa)
jednak jest ona chroniona i nie wiem jak się do niej dostać...

z tego co się domyślam to muszę zrzucić ROM na PC i jakoś wyodrębnić poszukiwany plik po czym go deasemblować?

macie jakieś pomysły? porady?
deadline mi się zbliża dużymi krokami, ani ludzie na forach MSDN ani na XDA nie byli w stanie pomóc (albo nie probówali), a odpowiedź z supportu MIO była gorzej niż idiotyczna.

Offline Sainti

  • GZU
  • Core
  • ****
  • Podziękowań: 101
  • Lumia 920
Odp: jasność ekranu/deasemblacja dll'ki systemowej
« Odpowiedź #1 dnia: Czwartek, 30 Kwiecień 2009, 12:54 »
Zerknij może na MVBklight. W readme do tego programu (albo w wątku na xda) autor wspomina coś o DeviceIoControl. Dostać do dll możesz się chyba za pomocą IDAPro (też znalezione w opisie programu).


karpik

  • Gość
Odp: jasność ekranu/deasemblacja dll'ki systemowej
« Odpowiedź #2 dnia: Czwartek, 30 Kwiecień 2009, 13:32 »
ok dzięki za pomoc,

zainstalowałem MVBacklight ale nie znam ustawień,
żeby je zdobyć muszę się dostać do tej systmowej dllki, ściągnałem IDAPro i nadal nie wiem jak uzyskać dostęp do pliku "Backlight.dll"
nie mogę go skopiować ani odczytać...

IDA używa windowsa do "znalezienia pliku" a przez exploratora nie widać katalogu "windows" na urządzeniu...

jak wyciągnąć dll'ke systemową z PDA na PC ???


Offline globalbus

  • GZU
  • Core
  • ****
  • Podziękowań: 77
  • N900 + Zest
Odp: jasność ekranu/deasemblacja dll'ki systemowej
« Odpowiedź #3 dnia: Czwartek, 30 Kwiecień 2009, 13:37 »
zrzuć rom (np starym dumprom od mamaich'a lub bepe)

Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Podziękowań: 140
  • Samsung Note 4
Odp: jasność ekranu/deasemblacja dll'ki systemowej
« Odpowiedź #4 dnia: Czwartek, 30 Kwiecień 2009, 14:12 »
Do deasemblacji zrzuć obraz romu, wtedy IDA połapie wszystkie zależności...

Co do samego problemu: nie wiem, ale zacząłbym szukać od SystemParametersInfo...
ale mam jakieś dziwne wrażenie, że to będzie jakiś adres na GPIO... :/


karpik

  • Gość
Odp: jasność ekranu/deasemblacja dll'ki systemowej
« Odpowiedź #5 dnia: Czwartek, 30 Kwiecień 2009, 14:22 »
udało mi się wreszcie dostać do tych plików dll przez RomExtractor (z xda)

teraz tylko trzeba wygrzebać z asemblera potrzebne informacje,
nie do końca wiem gdzie szukać ustawień potrzebnych do działania MVBacklight...

karpik

  • Gość
Odp: jasność ekranu/deasemblacja dll'ki systemowej
« Odpowiedź #6 dnia: Piątek, 01 Maj 2009, 09:54 »
mam te dllki i nadal nie udało mi się zmienić jasności ekranu,
nie mogę znaleźć wartość dla MVBacklight

ustawienia MVBacklight (domyślne), niby wykrył że urządzenie to P360...
[attachment=1]
[attachment=2]
btw. na moim AsusieP552 też nie udało mi się sprawić by działał...

załączam pliki DLL z MIO,
rozumiem że jedyne zależności między plikami DLL to te wykryte przez "IMPORT" ?
ponieważ "ekran" zmiany jasności BacklightAP.cpl nie korzysta z Backlight.dll...
[attachment=3]
[attachment=4]

najbardziej irytuje mnie fakt że w znalazłem nazwę eventu który wszyscy podają w postach i jasności "BackLightChangedEvent"
jest on zarówno w BacklightAP.cpl jak i jedo odpowiedniku na Asusie - Brightness.exe.

mam napisaną aplikacje w C# która zmienia rejestr i robi "AutoReset" na tym evencie (kod sprawdził mi MVP na MSDN Forums i powiedział że jest ok)
najwidoczniej Microsoft coś zmienił od Windowsa 6.1 i należy zrobić coś jeszcze po zmianie rejestru
niestety nie umiem wyciągnąć z asemblera co...