Turning off the Camera Swipe after Lolipop

I was recently asked this question about Lockscreen Policy working on Lolipop.

With Lolipop, lockscreen widgets are deprecated. However, lockscreen policy enforcement should still work, but it’s has gotten a lot more complicated. The disable widgets flag is no longer valid.

Trying to run lockscreen policy results in the following error in logcat:
12-17 14:36:02.622: W/DevicePolicyManagerService(545): admin com.wordpress.chislonchow.deviceadminkeyguard has null trust agent feature set; all will be disabled

Trust agents provide automatic unlock capability to Android, such as face, bluetooth or proximity unlock. I haven’t looked more deeply into it, but it is going to take more work to understand the new lockscreen flags and the trust agent integration to set the flags to disable the lockscreen camera, which does look like it is possible to do, even if it as as drastic as turing off trust agents in the lockscreen altogether (setting KEYGUARD_DISABLE_TRUST_AGENTS to 0 bypasses this logic).

For more reading, see the Android developer reference docs for DevicePolicyManager.


Privacy Policy for My Apps Without Statistics

I do not externally collect any information about you or your usage patterns.

THE SERVICES AND SOFTWARE ARE PROVIDED “AS IS”, AT YOUR OWN RISK, WITHOUT EXPRESS OR IMPLIED WARRANTY OR CONDITION OF ANY KIND. WE ALSO DISCLAIM ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. I will have no responsibility for any harm to your computer system, loss or corruption of data, or other harm that results from your access to or use of the Services or Software.

This privacy policy was last updated on December 4, and may change from time to time without further notice. It is your responsibility to ensure that you understand the terms of this Privacy Policy. You should periodically check this page for any changes to the current policy.

My Accessibility Applications for Android

Here are some accessibility applications I wrote, available on the Android platform via the Google Play Store under the Productivity category. Please note that some of these applications are version or hardware specific, and may not be available for download for your device.

All these applications are free to download from the Google Play Store.

Plane Mode Tweaker

Description: Enables or disables WiFi and/or bluetooth while in airplane mode.

Also affects airplane mode triggering of WiFi and/or bluetooth. Particularly useful for disabling cell radio hardware while maintaining network connectivity.

Target: Android 2.1 and up

No Long-Press Call

Description: Disables functionality of performing a long-press on the call button.

A hardware call button is available on older Android devices, as well as bluetooth headsets. Default Android behavior will result in launching of the voice dialer app or other applications assigned to this intent. This may vary depending on the manufacturer. As most newer devices are lacking the the call button, I have elected to make it unavailable past Android 2.3.7.

Target: Android 1.6 – 2.3.7

No Long-Press Search

Description: Disables functionality of performing a long-press on the search button.

A hardware call button is available on older Android devices, as well as bluetooth headsets. Default Android behavior will result in launching of the voice search app. This may vary depending on the manufacturer.

Target: Android 1.6 and up


Description: Allows changing of Android system font size permanently.

Google has made this functionality available since Android 4.0, but not all manufacturers have made this available. Original Android sizes for reference: 85% (tiny), 100% (normal), 115% (large), and 130% (huge). This application actually adds a few more to pick from: 55%, 70%, and 145%. This application may result in some application layout issues. I personally recommend setting a size of 145% for users with poor eyesight. Some manufacturers have not made this feature available, or have customized Android in such a way that it does not take advantage of this setting. System menus, stock user interface elements are affected system-wide by this setting.

Target: Android 4.0 and up

Lockscreen Policy

Description: Disable widgets and/or camera access on the lockscreen.

Starting from Android 4.2, the lockscreen includes widgets and a camera interface from the lockscreen. Both of these features are accessible before disengaging the lockscreen. This application allows the user to disable one or both of these features. While this does reduce functionality of the lockscreen, it simplifies it and makes the device easier to use. (Formerly named Lockscreen Features Policy)

Target: Any Android 4.2 device

Legacy Launcher for Android

Legacy Launcher for Android is a free open-source replacement home screen application. It is based on ADW Launcher Free (Cyanogenmod branch). 

If you have an older device and want to customize your home screen, but the original ADW Launcher Free did not suit your needs, give this a try. It offers some minor advantages and customizations over the original ADW Launcher Free (1.3.3). Some of the new features include an improved launcher lock, sensible preferences screens, and resizable icon fonts. It comes as barebones and clean as possible on its default settings.

If you are having trouble with the updated ADW Launcher, Legacy Launcher might suit your needs. This launcher does not have the newest features found in launchers based on Honeycomb and beyond.

To configure the application, hit the ‘Home’ button on your device, followed by the ‘Menu’ button and start ‘Setup Launcher’ to begin.

You may now access the built-in user-guide from ‘Launcher Setup’->’Guide’. 

A guide for the original ADW Launcher is also available here.

Google Play Store Link to Legacy Launcher


Legacy Launcher supports many features of ADW Launcher Free, including but not limited to:

  • choose between 1-7 home screens (press Menu on Home Screen->Edit Desktop)
  • modify layout (rows/columns) of desktop workspace
  • modify layout (rows/columns) of application tray/drawer
  • resizable widgets
  • screen previews on multi-touch
  • ADW Launcher Theme support
  • ADWNotifier support
  • launcher rotations (disabled by default, not recommended)
  • scrollable widgets
  • application catalog groups for application tray

Added tweaks by me include:

  • launcher lockdown (desktop icons and widgets, long-press actions, with simple password support
  • reorganized preferences, including the ability to see what your selections are within the preference screen for colors and numbers
  • ability to disable multi-touch screen previews completely
  • ability to tune application tray performance
  • improved support for different sized screens (in-progress)
  • customization of drawer, folder, and desktop font sizes
  • sortable folder icons
  • simplified animations
  • only lock middle dock button
  • ability to rearrange icon order within folders
  • widget resizer changes
  • desktop screen editor changes
  • built-in user guide
  • graphic resources optimized for LDPI screens
  • dock icon selection/press highlights
  • adding widgets does not result in a force-close under Android 2.1
  • other bug fixes

Unfortunately, I have elected to remove some features, including:

  • desktop hidden dockbar
  • original ADW desktop icon fly-in animations
  • all translations other than English
  • double-tap gesture in home screen

Preferences quick glance

This is a quick run-down of the preferences layout for your reference:

Desktop: desktop/workspace/home screen settings

Application Tray: application tray/grid/drawer settings

Dock: the icon tray at the bottom of the desktop

UI Components: global notifications, icon highlights, trash can settings

System: status bar, home persistence, orientation, cache settings

Launcher Lock: enable/disable lock, lock password, clear lock password


This application has not undergone rigorous testing, so it may do terrifying things to your device. Please don’t blame me if anything goes wrong. That’s why there is a ‘beta’ label on it.

Only tested on Android 2.1, 2.2, and 2.3 devices. It is not available to later versions Android since the updated launcher code is better for those versions.

More screenshots and videos


A lot of previous work had gone into this ADW Launcher as an open-source project. It perhaps was the most popular replacement home application in the Android Play store for quite some time. I currently am an active user of the paid version, ADW Launcher EX.

I have been a long-time user of Anderweb’s launcher from xda-developers, since the days of the first Android device ever, the G1. Since ADW was originally meant to run on the slowest official Android device with all its hardware constraints, it runs relatively well on more advanced devices.

However, ADW Launcher Free had two glaring flaws for me to use it for setting up devices for others, especially those new to Android:

  1. complexity of the preference screens: I could never remember where a preference is, because the layout does not make logical sense. I personally think this is still an issue in the EX version, The free version EX is based on was worse.
  2. a partially implemented icon/widget locking mechanism: the lock only works for icons and widgets on the home screen. It is very easy to move things around by accident. The only workaround in preventing drawer icons from being placed on the desktop is to fill up the entire desktop with icons or widgets, which doesn’t really make sense. (issue #37 in the ADW Launcher bug tracker since August 2010)

The original ADW Launcher Free has not been updated since December 2010 as of the writing of this application, and saw an update in October 2012 that caused some rather drastic changes in behavior.

Relevant references/links

Github: Cyanogenmod ADW Launcher

Github: Color Picker by attenzione

Google code: ADW Launcher issue list

Google code: ADW Launcher Guide

Gerrit code review: Cyanogenmod

Open-Source Legacy Launcher

Opensource Github: https://github.com/chislon/LegacyLauncher

This is my first time trying Git, so the commits will look a bit funny. Let me know if you run into any problems. To compile the Android launcher based on AOSP Launcher2, you need a modified SDK platform allowing the use of hidden APIs. I use a modified Android 2.3.3 platform.

I threw it under the same Apache 2.0 license that ADW was originally based on.

Future of this project

This wasn’t an application I wrote from scratch. I don’t think I’ll ever give it full support, because I didn’t write most of it and wont be able to actually troubleshoot said issues without some significant time investment.

If you are working on a similar project or would like to port over any features, I am open to submitting the code in part or in full.

How you can help

You can always let me know via email if interested.

Item 1 – Test

Even if I can’t fix all the problems, you can report them and I will see if I can try to fix them.

Item 2 – Translate

I would like to have this application translated. I don’t think this will prove to be terribly difficult to do, since many of the strings are available via the Cyanogenmod github project. But since I have completely redone the preferences layout, it requires a significant amount of time to port the everything over.

Item 3 – Review and rate

Because that’s just nice?

That’s it for now!

(last updated August 6, 2012)