The main idea behind this app can be considered as an extended version of 'Smart Lock' introduced by Google in Lollipop. The development of this app started before Google announced L during I/O 14, though.
We are in different environments at different times, and might prefer different security levels in each environment.
Using this app, you can define different environments and assign different passwords to each of them.
App will detect environment changes automatically and presents you the assigned password whenever you want to unlock the phone!
What's an Environment?
Wi-Fi networks, Bluetooth devices and Location areas (geofences) can be used to define environments.
Specifying multiple parameters for an environment checks for all of them.
Assigning a password to an environment is done at the time of creating an environment. Support for more password types are coming in the future.
- Lollipop style lockscreen with notifications for Jellybean and KitKat (can be disabled)
- Restricted profiles - Set up restricted profiles for your friends/family and limit access to apps. You can assign a different password to each restricted profile (password, pin, pattern or none).
- Intelligent environment overlap resolution. But you always have the option to override it manually.
- Material Design, and smooth animations. (See screenshots below)
- The app uses admin privileges to set system password, so it comes with the security of Stock lock screen
- Pattern lock is supported. If you have root, stock pattern lock will be used. Please see Post #3 for more details. If you do not have root, a built-in pattern library is used (it still sets a user-defined master password in the background so that lockscreen is actually secure). But this built-in pattern is not guaranteed to work in every device.
- The core functionality is working, but this is still a work in progress. Please report bugs, crashes etc in this thread. Logcat will be highly appreciated!
The source code is Licensed under the Apache License, Version 2.0. Link to Github repository: https://github.com/aravindsagar/SmartLockScreen/
1. My screen froze while on lock screen. How to recover?
Ans: Try rebooting the phone by long pressing power button. Upon reboot, try master password first, if it does not work, try passwords which you've set for different environments. Try to reproduce the problem, and send us a logcat.
2. How to uninstall the app?
Ans: First open SmartLockScreen Settings, delete all environments, and set passphrase for unknown environment as None. Then go to Settings -> Security -> Device Administrators, uncheck SmartLockScreen there. Now uninstall the app just like any other app. Please come back to this thread and post why you uninstalled it, what's missing/what's bothering you.
3. Can you add fingerprint sensor support?
Ans: I'm looking into it. Till Lollipop, there's no standard API or structure for fingerprint sensors, so parts of the implementation will have to be device specific or manufacturer specific. That being said, I'm trying to add support to Samsung devices first.
Also, things should improve with Android M, since fingerprint APIs will become standardized with it.
FAQs will be updated when certain questions get frequently asked.
Aravind Sagar, V Priyan
This is our first ever app, so it did take some time for learning and implementing everything properly. Sincere thanks to:
- Dr. Gourinath Banda, IIT Indore, for his guidance
- XDA, StackOverflow, developer.android.com, Android App Development Course by Udacity and many other great sites with abundant resources for learning.
- cardslib by Gabriele Mariotti - https://github.com/gabrielemariotti/cardslib
- Android System Bar Tint, by Jeff Gilfelt - https://github.com/jgilfelt/SystemBarTint
- Android CropImage by Lorenzo Villani - https://github.com/lvillani/android-cropimage
- GitHub, for providing their Micro plan for free for students.
SmartLockScreen for Android, App for all devices (see above for details)
Status: Alpha v3.0