Hi guys, as the title says it's a work in progress, so please don't flame.
I was tired of waiting for the Trackpad2Unlock mod for GB-Sense roms to come, so i decided to give it a shot.
When i was on RCMix HD, i flashed a v1.84 update.zip to enable the trackpad2unlock feature.
So i unziped that file, and noticed that it only replaces the original HTCLockscreen.apk by another one.
I then decompiled both of them to see what were the differences.
Quick md5 hashes showed that only one file was modified: HtcLockScreen.smali
I then compared the original and modified files:
Original:
Code:
.line 800
.local v0, msg:Landroid/os/Message;
const/16 v1, 0x14
if-eq p1, v1, :cond_3e
const/16 v1, 0x13
if-eq p1, v1, :cond_3e
const/16 v1, 0x15
if-eq p1, v1, :cond_3e
const/16 v1, 0x16
if-eq p1, v1, :cond_3e
.line 804
iget-object v1, p0, Lcom/htc/lockscreen/HtcLockScreen;->mReminderView:Lcom/htc/lockscreen/HtcLSViewInterface;
if-eqz v1, :cond_3e
.line 805
iget-object v1, p0, Lcom/htc/lockscreen/HtcLockScreen;->mReminderView:Lcom/htc/lockscreen/HtcLSViewInterface;
invoke-interface {v1, p1, p2}, Lcom/htc/lockscreen/HtcLSViewInterface;->onKeyDown(ILandroid/view/KeyEvent;)V
:cond_3e
move v1, v4
.line 809
goto :goto_20
.end method
Modified:
Code:
.line 801
.local v0, msg:Landroid/os/Message;
const v1, 0x17
if-ne p1, v1, :cond_2d
invoke-virtual {p0}, Lcom/htc/lockscreen/HtcLockScreen;->goToUnlockScreen()V
:cond_2d
const/16 v1, 0x14
if-eq p1, v1, :cond_46
const/16 v1, 0x13
if-eq p1, v1, :cond_46
const/16 v1, 0x15
if-eq p1, v1, :cond_46
const/16 v1, 0x16
if-eq p1, v1, :cond_46
.line 805
iget-object v1, p0, Lcom/htc/lockscreen/HtcLockScreen;->mReminderView:Lcom/htc/lockscreen/HtcLSViewInterface;
if-eqz v1, :cond_46
.line 806
iget-object v1, p0, Lcom/htc/lockscreen/HtcLockScreen;->mReminderView:Lcom/htc/lockscreen/HtcLSViewInterface;
invoke-interface {v1, p1, p2}, Lcom/htc/lockscreen/HtcLSViewInterface;->onKeyDown(ILandroid/view/KeyEvent;)V
:cond_46
move v1, v4
.line 810
goto :goto_20
.end method
Basically it just inserts another check for var 0x17 (trackpad?) and then unlock the lockscreen if true.
So i did manage to update the Gingerbread Sense HTCLockscreen with this little hack.
No more need to slide down to disable the lockscreen, pressing down the Trackpad does it.
However... it doesn't wake the phone through the trackpad.
We still need to press Power :-/
To make a long story short, i managed to get tp2unlock, but not tp2Wake&Unlock...
I did try several other methods, like this one but with no go:
http://forum.xda-developers.com/showthread.php?t=683902
So if someone wanna give a hand... Feel free, the whole community is waiting for this mod.
Thanks for reading and your help
PS:
Provided in the link are the uncompiled files for
v1.84 original (the original RCmixHD a2sd htclockscreen.apk files)
v1.84 modified (the modified version to enable trackpad 2 wake and unlock)
gb sense tp2u (the modified Gingerbread Sense version to enable trackpad 2 unlock).
Edit:
I forgot to provide the HTCLockscreen.apk, just push it (with QtADB!) to system/app/.
nice work at least this is a start and maybe some who nows a little bit more will help
I don't think it depends on framework settings. As I developed AOSP for other device it was always a matter of editing keylayout file with adding/removing WAKE flag. Maybe just adding that flag to PROPER keycode will solve this? I tried but without success.
What else - I'd like to point you to frameworks/policies/base - there are files that describes some power management.
Delete... Wrong tread..
KameoRE said:
To make a long story short, i managed to get tp2unlock, but not tp2Wake&Unlock...
I did try several other methods, like this one but with no go:
http://forum.xda-developers.com/showthread.php?t=683902
So if someone wanna give a hand... Feel free, the whole community is waiting for this mod.
Click to expand...
Click to collapse
Why don't you try with this one
Good work...
but i think that are 2 things needed...the changed lockscreen and this trackpad to wake up...maybe try the same way with the file from this thread:
http://forum.xda-developers.com/showthread.php?t=696907
with kind regards...Alex
bg_man said:
Why don't you try with this one
Click to expand...
Click to collapse
I did does it work reliably for you? over a week now with this mod and ~50% fail rate
I'm using CoolAcesv2 rom and looking at the inputs with the adb shell and the getevent command, seems like for the trackpad is still needed the curcial-oj.kl file as described here http://forum.xda-developers.com/showthread.php?p=7236745#post7236745.
This is what i got:
Code:
add device 1: /dev/input/event9
name: "compass"
add device 2: /dev/input/event8
name: "curcial-oj"
add device 3: /dev/input/event7
name: "dummy_keypad"
add device 4: /dev/input/event6
name: "lightsensor-level"
add device 5: /dev/input/event5
name: "bravo-keypad"
add device 6: /dev/input/event4
name: "proximity"
add device 7: /dev/input/event3
name: "synaptics-rmi-touchscreen"
add device 8: /dev/input/event2
name: "projector-Keypad"
add device 9: /dev/input/event1
name: "projector_input"
add device 10: /dev/input/event0
name: "h2w headset"
/dev/input/event8: 0001 0110 00000001
Btw i already pushed the curcial-oj.kl in the phone but it doesn't do anything so i beleive it need the modded apk too.
I hope this helped a bit.
I did try it... Here are my tests so far:
- created, edited and pushed system/usr/keylayout/curcial-oj.kl with the following, and it doesn't work.
Code:
key 272 DPAD_CENTER WAKE_DROPPED
- also edited the system/usr/keylayout/bravo-keypad.kl with the same line, no go.
Gonna dig with other tests, there must be a way to get the code to trigger the power button.
Once i get it, i think that i can replicate the snippet and get this to work.
Wish me luck.
Good luck mate
If you look around there are a couple of threads where people have tried editing curcial-oj.kl and bravo-keypad.kl which seems to have no effect on trackpad. WAKE_DROPPED when added to menu or home in bravo-keypad.kl does give an unreliable wakeup but half the time it doesn't work. General consensus seemed to be GB uses a different location
Thanks Ziggy.
In fact when i edit my bravo-keypad.kl, it works all the time with Power or Home or Menu, but not a single time (and believe me, i tried like 25 times in a row) with the Trackpad.
key 102 HOME WAKE_DROPPED
key 139 MENU WAKE_DROPPED
key 158 BACK
key 217 SEARCH
key 272 DPAD_CENTER WAKE_DROPPED
key 107 ENDCALL WAKE_DROPPED
key 116 POWER WAKE_DROPPED
Click to expand...
Click to collapse
I'll investigate a little bit more.
Well thats a step in the right direction
Could you please upload your bravo-keypad.kl with reliable menu home wake, myself and several others all have it working, but unreliably. Have you tried it for over 24H, for me if the phone has been recently used it seems to work but after a prolonged period in standby it generally seems to fail
KameoRE said:
Thanks Ziggy.
In fact when i edit my bravo-keypad.kl, it works all the time with Power or Home or Menu, but not a single time (and believe me, i tried like 25 times in a row) with the Trackpad.
I'll investigate a little bit more.
Click to expand...
Click to collapse
Can you share that file which works all the time for Menu button? That's all I need and it will solve my problem.. Can you do that? Thanks in advance..
Ok, bad news, you guys are right.
If the phone is off for a while (more than 2-3 minutes), the keys don't wake the phone.
As if they were not power supplied.
Looks like a powersave function, sorry guys.
We still stuck to the same position.
Anyway i tried decompiling other android files to check which one triggers the PowerOn function, but haven't found it yet.
Anyone got a clue (i tried Rosie/SystemUI/Core/AndroidPolicy...)?
I think it's obviously hidden very well (Damn HTC and their lack of sensible ergonomic design)
I did notice NeoPhyTe.x360's latest GB rom had "Wake UP desde Menu, unlock Trackpad" listed in the Features: sadly about 20mins after i queried this it was changed to "Wake UP from Menu" whether that's the same unreliable mod we have i don't know can't be arsed to flash just for that
But hey even more people will be looking for it now
Yep, hopefully we might found it.
Just noticed Neo's back, so gonna give his Ginger-ReflexS/SenseHD rom a try.
I think you are right about power save disabling menu wake when i put the phone on charge after 20 mins menu wake is still working
So presumably default setting is only Power button has power all the time maybe that's a solution allowing power to menu /trackpad always
ziggy1001 said:
I did does it work reliably for you? over a week now with this mod and ~50% fail rate
Click to expand...
Click to collapse
I've played with it but for half an hour.
I've found the GB still not stable enough and decide to wait for official HTC release.
So you are seems to be right.
Little update.
I managed to debug which functions are called when the relevant button is pressed (power and all the others enabled in bravo-keypad.ki but 272):
For example, while pressing Power (keycode 26 or $1a), i get this:
WindowManager - interceptKeyBeforeQueue keycode=26 screenIsOn=false keyguardActive=true
KeyguardViewMediator - wakeWhenReadyLocked(26)
InputDispatcher - notifyKey - deviceId=0x0, source=0x101, policyFlags=0x32000002, action=0x0, flags=0x9, keyCode=0x1a, scanCode=0x74, metaState=0x0, eventTime=5904047125987
Click to expand...
Click to collapse
Then it triggers other functions (turn lights on...) and then enable the lockscreen.
However, when i press the Trackpad, all i get is this:
InputDispatcher - notifyMotion - eventTime=1313024185481, deviceId=0x20000, source=0x10004, policyFlags=0x2000000, action=0x0, flags=0x0, metaState=0x0, edgeFlags=0x0, xPrecision=6.000000, yPrecision=6.000000, downTime=1313024185481
InputDispatcher - Pointer 0: id=0, x=0.000000, y=0.000000, pressure=1.000000, size=0.000000, touchMajor=0.000000, touchMinor=0.000000, toolMajor=0.000000, toolMinor=0.000000, orientation=0.000000
InputDispatcher - notifyMotion - eventTime=1313162113375, deviceId=0x20000, source=0x10004, policyFlags=0x2000000, action=0x1, flags=0x0, metaState=0x0, edgeFlags=0x0, xPrecision=6.000000, yPrecision=6.000000, downTime=1313024185481
InputDispatcher - Pointer 0: id=0, x=0.000000, y=0.000000, pressure=0.000000, size=0.000000, touchMajor=0.000000, touchMinor=0.000000, toolMajor=0.000000, toolMinor=0.000000, orientation=0.000000
Click to expand...
Click to collapse
Which looks like a motion/sensor tracking routine...
It got me puzzled, i really don't know where to go from here... :-/
Full debug log for Power button down here:
Code:
WindowManager - interceptKeyBeforeQueue keycode=26 screenIsOn=false keyguardActive=true
KeyguardViewMediator - wakeWhenReadyLocked(26)
dalvikvm - --- called into dvmAbstractMethodStub
InputManager-JNI - An exception was thrown by callback 'interceptKeyBeforeQueueing'.
InputManager-JNI - java.lang.AbstractMethodError: abstract method not implemented
InputManager-JNI - at com.android.server.PowerManagerService.getProximitySensorActive(PowerManagerService.java)
InputManager-JNI - at com.android.internal.policy.impl.PhoneWindowManager.interceptKeyBeforeQueueing(PhoneWindowManager.java:2749)
InputManager-JNI - at com.android.server.WindowManagerService$InputMonitor.interceptKeyBeforeQueueing(WindowManagerService.java:5255)
InputManager-JNI - at com.android.server.InputManager$Callbacks.interceptKeyBeforeQueueing(InputManager.java:404)
InputManager-JNI - at dalvik.system.NativeStart.run(Native Method)
InputDispatcher - notifyKey - deviceId=0x0, source=0x101, policyFlags=0x32000002, action=0x0, flags=0x9, keyCode=0x1a, scanCode=0x74, metaState=0x0, eventTime=5904047125987
LightsService - [LedInfo] setLight_native light=2 colorARGB=-11447983 flashMode=0 onMS=0 offMS=0 brightnessMode=0
lights - set_light_buttons_func: on=5329233 brightness=81
power - *** set_screen_state 1
SensorService - noteStartSensor: uid = 0x3e8, handle = 0x4
LightsService - [LedInfo] setLight_native light=0 colorARGB=-11447983 flashMode=0 onMS=0 offMS=0 brightnessMode=1
WindowManager - interceptKeyBeforeQueue keycode=26 screenIsOn=true keyguardActive=true
InputDispatcher - notifyKey - deviceId=0x0, source=0x101, policyFlags=0x2000002, action=0x1, flags=0x8, keyCode=0x1a, scanCode=0x74, metaState=0x0, eventTime=5904147369869
SurfaceFlinger - Screen about to return, flinger = 0x319288
LightsService - [LedInfo] setLight_native light=2 colorARGB=-8355712 flashMode=0 onMS=0 offMS=0 brightnessMode=0
lights - set_light_buttons_func: on=8421504 brightness=128
LightsService - [LedInfo] setLight_native light=1 colorARGB=-16777216 flashMode=0 onMS=0 offMS=0 brightnessMode=0
WindowManager - needSensorRunningLp, mCurrentAppOrientation =1
HtcLockScreen2.0 - HtcLockScreen: onResume
something new here? because this problem does not yet use Gingerbread Sense 2.1 ROM's for long time
The problem hangs boot! Help!
Install android 2.2 for instructions.
Androida stitch boot and reboot the phone vibrates 2 times, there is a white screen with white letters and black penguin after 1-2 seconds stops and load weight. Tried everything possible nbh, who collected himself in atools. In general the white screen with white penguin only works on kernel 2.6.32 with the following parameters polaris-240x320-Froyo-1-2.6.32.
SCREEN: hxtp://i56.tinypic.com/1y3ebt.jpg (hxtp ->http)
Black screen with the penguin got the normal parameters of polaris-240x320-Froyo-3-2.6.32 but the download just hangs like a white screen. At the core of 2.6.25 for all pereprobovanyh me Parameter only color bars. What's the problem? Who knows how to solve it?
Decided to hold a small exeperimental. I had an old build android-1.5-2009-07-09, which run in the past from Presov to small exeperimental. I had an old build android-1.5-2009-07-09, which run in the past out of Haret normal, with a black boot. This assembly contains:
1) with parameters default.tht
(# Alloctest 0x2000
set RAMSIZE 0x08000000
set MTYPE 1723
set KERNEL zImage
set initrd initrd.gz
#
# The following kernel parameters are useful
# Ppp.username - The username used to connect to the network when dialing
# Ppp.password - The password used to connect to the network when dialing
# Ppp.apn - Set apn of your provider
# Ppp.nostart - Set ppp.nostart = 1 to disable starting the ppp connection on boot
# Msm_sdcc.msmsdcc_fmax - The maximum frequency (in Hz) used by the SD controller
# Pm.sleep_mode - The mode used when the phone is off
# 0 = Power Collapse Suspend, 1 = Power Collapse, 2 = Apps Sleep,
# 3 = Slow Clock and Wait for Interrupt 4 = Wait for Interrupt
# Default is 1, use one for best power savings
# Board-htcpolaris.panel_type - Panel type used to power the panel off and on
# 0 = Don't power off the panel (Default)
# 1 2 = Sony = Topoly 3 = Topoly (probably just the same as 2)
# Lcd.density - Defaults to 160, 128, shows more on screen
#
set cmdline "board-htcpolaris.panel_type = 0 ppp.apn = wxw.vodafone.net.nz ppp.username = none ppp.password = none pm.sleep_mode = 1 mddi.width = 324 mddi.height = 432 no_console_suspend board-htcpolaris -battery.battery_capacity = 1350 mddi_client_vogue.vsync = 0 "
bottles)
2) haret.ehe,
3) initrd.gz,
4) resources.zip,
5) system.img,
6) zImage
Try to start the assembly with diabetes. In the beginning is all fine, black boot, but then hangs up and says: Varning ---
sisten.img not found on the CD.
It's weird, because sisten.img lies on CD.
Poshamaniv to build its atools Fail default with the following parameters:
set RAMSIZE 0x07300000
set MTYPE 1723
set KERNEL zImage
set initrd initrd.lzma
set cmdline "no_console_suspend board-htcpolaris-battery.battery_capacity = 1350 ppp.nostart = 0 hw3d.version = 1 mddi.width = 324 mddi.height = 432 clock-7x00.mddi = 0xa51 board-htcpolaris.panel_type = a board-htcpolaris . no_boot_vibration = 1 mddi_client_vogue.vsync = 0 sys_partition = / sdcard / andboot / system.img data_partition = / sdcard / andboot / data.img fstype = 2 "
boot
Try to run the assembly Froyo [2.2.2] My Modified Fresh Froyo Release 20-2-2011 with these parameters is out of Haret. The loader is still a white background. That's what vydalood Haret. This assembly contains: hxtp://i53.tinypic.com/20z9y8k.jpg (hxtp ->http)
Those who have any ideas? Why download the old version, so good with black boot and Froyo not?
I climbed a lot of forums and for some reason or where there is no answer to this question, although people with the same problem there. I have a broken display and I replaced it with a new one, after that there was such key problems.
On one of the branches of the forum says that they say it is because the display problem and needed origenalny. But after analyzing all available information, I think that probably in problemma HARD-SPL 2.20Olix!!! This SPL does not support the display non-origenalnogo.
I think that this key problems to be solved, because sooner or later and your display may break mashines and I think you do not want to buy origenalny display for $ 50-100 for this old devaysa.
By this I beg you, help me to find someone who could create a new HARD-SPL for HTC Polaris. Maybe someone knows and understands the programming and be able to make himself SPL. Please respond to all!