Patch WebOS Bypassing Lock Screen

From WebOS Internals
Revision as of 05:43, 30 September 2009 by Roto (talk | contribs) (Added information to help bypass password security.)
Jump to navigation Jump to search

About

The 1.1 update allowed me to connect to Exchange (EAS) with a policy enforced. Of course, having my screen lock every single time I turn off the screen seems a little harsh. The policy asks for a 10-minute timeout, but the way it's implemented in WebOS, the screen locks whenever the screen turns off. Note that this same hack appears to work with WebOS 1.2.0 as released on 9/28/2009, but has to be reapplied after you upgrade.

Below is a very insecure hack to automatically unlock the screen by faking the key presses for your actual passcode. It's insecure because you actually have to put your real passcode into the code. Still, here it is.

1.2

Simple Pin

In 1.2 the location changed.

Edit

/usr/palm/applications/com.palm.app.phone/app/controllers/pin-assistant.js

After line 161

160: Mojo.Log.error( "PhoneApp: PinAssistant#onDeviceLockModeChanged CAUGHT EXCEPTION: %j" , e);}" 
161: }

add the following lines, replacing 1,2,3,4 with your own passcode digits.

162: this.updatePinFields('1');
163: this.updatePinFields('2');
164: this.updatePinFields('3');
165: this.updatePinFields('4');


Password

This is a similar hack for those with the EAS password security policy in place, but I am looking into a way to disable the lock altogether. This is a good start though, as it removes the need for the keyboard by pre-filling the password field so just tapping the "Done" button unlocks the phone.

Edit the same file:

/usr/palm/applications/com.palm.app.phone/app/controllers/pin-assistant.js

At line 58 change this:

this.passwordModel = { };

to this:

this.passwordModel = {
     value: "PASSWORD"
};

Where PASSWORD is your device's password. Reboot the phone or restart Luna to ensure the change goes into effect.

1.1

Edit

/usr/palm/applications/com.palm.app.phone/app/controllers/pin-assistant.js

After line 71 "this.controller.listen('password', ..." add the following lines, replacing 1,2,3,4 with your own passcode digits.

this.updatePinFields('1');
this.updatePinFields('2');
this.updatePinFields('3');
this.updatePinFields('4');

What you've done is edit the "setup" function to do everything it already does to prepare the screen unlock application, then automatically key in your passcode.

Reboot, and your screen should automatically unlock as soon as you slide it open.

Should work like a charm!