[APP] LockPicker - disable Exchange lock screen (OPEN SOURCED)

Search This thread

j0bro

Senior Member
May 28, 2006
393
97
45
Eindhoven
Update: I decided to discontinue work on LockPicker and therefore open source it. Find the code here. If anyone manages to make this work on Android 2.2+, please let me know!

Disables the Exchange lock screen when it's part of the server's security policy.

Works on HTC Sense only.
NOTE: Froyo is not supported!

Changelog:
v0.95: Added Wildfire (QVGA) support, automatic account detection, added korean translation, fixed chinese translation
v0.94: Android 1.5+ compatible
v0.93: Added es,fr,de,nl,cn
v0.92: Notifications optional
v0.91: fixed FC on startup
v0.9: initial release

Search for Market > Applications > Tools > LockPicker

chart


My thanks go to tamburylar for his find which inspired me to create the app!
 
Last edited:

alias_neo

Senior Member
Jun 9, 2006
2,080
205
London
Nice

Hey, thanks for creating this.

I know there are a few people out there that will appreciate it.

Unfortunately I can't give feedback myself since my exchange server, although asks for me to enable security doesn't ever enforce it, so I never get the lock screen problem.

Good work though and I hope it comes in useful for the other guys that aren't as lucky with their server.
 

j0bro

Senior Member
May 28, 2006
393
97
45
Eindhoven
Hey, thanks for creating this.

I know there are a few people out there that will appreciate it.

Unfortunately I can't give feedback myself since my exchange server, although asks for me to enable security doesn't ever enforce it, so I never get the lock screen problem.

Good work though and I hope it comes in useful for the other guys that aren't as lucky with their server.
Hey, no problem. Creating the icons was probably the most work!
It is idle under normal circumstances and consumes next to no resources, only a tiny amount of memory to run the service.
Only when the server pushes the policy again, it will quickly disable the lock screen and go back to sleep ;)
 

alias_neo

Senior Member
Jun 9, 2006
2,080
205
London
Great

Hey, no problem. Creating the icons was probably the most work!
It is idle under normal circumstances and consumes next to no resources, only a tiny amount of memory to run the service.
Only when the server pushes the policy again, it will quickly disable the lock screen and go back to sleep ;)

Nicely done. It'll be interesting to see how people get on with it. The security enforcement seems to be a massive annoyance for those suffering from it.
 

gudge

Senior Member
Sep 20, 2009
173
7
Hi all,

I just whipped an app together that disables the Exchange lock screen as soon as the server has enforced its policy by using a background service and an observer on the system setting. This requires no polling, scripting, etc. and survives reboots/enforcements.

Search for Market > Applications > Tools > LockPicker

Any comments/issues are appreciated :)

Sounds great, but I don't see it in the marketplace ?

BTW, is it just for the stock exchange client, or will this work with Touchdown etc

Thanks
 

an0therus3r

Senior Member
Oct 19, 2009
465
21
Hi all,

I just whipped an app together that disables the Exchange lock screen as soon as the server has enforced its policy by using a background service and an observer on the system setting. This requires no polling, scripting, etc. and survives reboots/enforcements.

Search for Market > Applications > Tools > LockPicker

Any comments/issues are appreciated :)

Thanks, works perfect ;)
 

abats

Senior Member
Nov 13, 2006
166
2
Utrecht
www.episode-alert.com
Downloaded this for my Milestone running 2.1. At first it seemed to work. After I rebooted though the application forcecloses (right at boot). When I start the application after booting it seems to keep running (though I'm not sure if I can actually see the service in my task manager) but does nothing to prevent me from having to enter that stupid password : (

I'm happy to help if I can do anything to help you with this issue. Don't know if it's possible to access log files on Android and perhaps send it or something.
 

abats

Senior Member
Nov 13, 2006
166
2
Utrecht
www.episode-alert.com
Found out how to log errors in application. Here is a piece of the log file relating to lockpicker:

Code:
I/ActivityManager( 1281): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=nl.fotoniq.android.lockpicker/.LockPicker }
I/ActivityManager( 1281): Displayed activity nl.fotoniq.android.lockpicker/.LockPicker: 329 ms (total 329 ms)
I/NotificationService( 1281): enqueueToast pkg=nl.fotoniq.android.lockpicker [email protected] duration=0
I/NotificationService( 1281): enqueueToast pkg=nl.fotoniq.android.lockpicker [email protected] duration=0
E/LockPickerService( 1837): Setting not found
E/LockPickerService( 1837): android.provider.Settings$SettingNotFoundException: lockscreen.lockexchange.enable
E/LockPickerService( 1837): at android.provider.Settings$System.getInt(Settings.java:656)
E/LockPickerService( 1837): at nl.fotoniq.android.lockpicker.LockPickerService.disableExchangeLockscreen(LockPickerService.java:101)
E/LockPickerService( 1837): at nl.fotoniq.android.lockpicker.LockPickerService.onStartCommand(LockPickerService.java:67)
E/LockPickerService( 1837): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2873)
E/LockPickerService( 1837): at android.app.ActivityThread.access$3500(ActivityThread.java:119)
E/LockPickerService( 1837): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1926)
E/LockPickerService( 1837): at android.os.Handler.dispatchMessage(Handler.java:99)
E/LockPickerService( 1837): at android.os.Looper.loop(Looper.java:123)
E/LockPickerService( 1837): at android.app.ActivityThread.main(ActivityThread.java:4363)
E/LockPickerService( 1837): at java.lang.reflect.Method.invokeNative(Native Method)
E/LockPickerService( 1837): at java.lang.reflect.Method.invoke(Method.java:521)
E/LockPickerService( 1837): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
E/LockPickerService( 1837): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
E/LockPickerService( 1837): at dalvik.system.NativeStart.main(Native Method)

Seems lockpicker can't find the settings on my device or something.
 

j0bro

Senior Member
May 28, 2006
393
97
45
Eindhoven
Found out how to log errors in application. Here is a piece of the log file relating to lockpicker:

Code:
I/ActivityManager( 1281): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=nl.fotoniq.android.lockpicker/.LockPicker }
I/ActivityManager( 1281): Displayed activity nl.fotoniq.android.lockpicker/.LockPicker: 329 ms (total 329 ms)
I/NotificationService( 1281): enqueueToast pkg=nl.fotoniq.android.lockpicker [email protected] duration=0
I/NotificationService( 1281): enqueueToast pkg=nl.fotoniq.android.lockpicker [email protected] duration=0
E/LockPickerService( 1837): Setting not found
E/LockPickerService( 1837): android.provider.Settings$SettingNotFoundException: lockscreen.lockexchange.enable
E/LockPickerService( 1837): at android.provider.Settings$System.getInt(Settings.java:656)
E/LockPickerService( 1837): at nl.fotoniq.android.lockpicker.LockPickerService.disableExchangeLockscreen(LockPickerService.java:101)
E/LockPickerService( 1837): at nl.fotoniq.android.lockpicker.LockPickerService.onStartCommand(LockPickerService.java:67)
E/LockPickerService( 1837): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2873)
E/LockPickerService( 1837): at android.app.ActivityThread.access$3500(ActivityThread.java:119)
E/LockPickerService( 1837): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1926)
E/LockPickerService( 1837): at android.os.Handler.dispatchMessage(Handler.java:99)
E/LockPickerService( 1837): at android.os.Looper.loop(Looper.java:123)
E/LockPickerService( 1837): at android.app.ActivityThread.main(ActivityThread.java:4363)
E/LockPickerService( 1837): at java.lang.reflect.Method.invokeNative(Native Method)
E/LockPickerService( 1837): at java.lang.reflect.Method.invoke(Method.java:521)
E/LockPickerService( 1837): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
E/LockPickerService( 1837): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
E/LockPickerService( 1837): at dalvik.system.NativeStart.main(Native Method)

Seems lockpicker can't find the settings on my device or something.
Seems to me that you either don't use the integrated Exchange client of Android 2.1 or your Exchange server doesn't enforce the lockscreen as part of its policy. Makes any sense?

I'll include a check for the setting in the next version, thanks.
 

abats

Senior Member
Nov 13, 2006
166
2
Utrecht
www.episode-alert.com
Seems to me that you either don't use the integrated Exchange client of Android 2.1 or your Exchange server doesn't enforce the lockscreen as part of its policy. Makes any sense?

I'll include a check for the setting in the next version, thanks.

I use the integrated exchange client, there is nothing else on Milestone 2.1. My account is set up through accounts->corporate etc etc.

My company does enforce the lockscreen, there is no way for me to get around it. Before this I used a windows mobile phone and it was forced on there aswell. Big difference is unlocking on a windows mobile device was much faster.

If there is more I can do to help you track the behaviour on my phone of this application please let me know.
 

j0bro

Senior Member
May 28, 2006
393
97
45
Eindhoven
I use the integrated exchange client, there is nothing else on Milestone 2.1. My account is set up through accounts->corporate etc etc.

My company does enforce the lockscreen, there is no way for me to get around it. Before this I used a windows mobile phone and it was forced on there aswell. Big difference is unlocking on a windows mobile device was much faster.

If there is more I can do to help you track the behaviour on my phone of this application please let me know.
Ahh wait, it is integrated in HTC Sense rather than Android 2.1 itself; this may explain why it wouldn't work on your Motorola. Any luck with LogCat output?
 

pulser_g2

Admin Emeritus / Senior Recognized Developer
Nov 27, 2009
19,537
11,595
I don't know exactly how you app is meant to work, but there are differences between Vanilla Android and HTC's Sense mail. AFAIK, they don't use the same frameworks, so changes that affect the HTC one will probably be designed to patch over an HTC change. I don't know about vanilla, but I think the app would need to be designed for this.
 

j0bro

Senior Member
May 28, 2006
393
97
45
Eindhoven
It's giving me a FC on this ROM after reboot
http://forum.xda-developers.com/showthread.php?t=654030

But after that it seems to work fine again.

An example of what anon2122 ment i guess ?
Yup saw that happening as well; found out that it is illegal to log with a tag of more than 23 characters. The logic/humor of this requirement escapes me though :confused:
Check for an update shortly in which I will have fixed this.

EDIT: update is on the Market right now.
 
Last edited:

Top Liked Posts