AcDisplay
AcDisplay copied to clipboard
Having to enter password instead of fingerprint on Nexus 6P CM13
When activating the lockscreen mode, trying to unlock the phone with the fingerprint reader, the normal CM lockscreen prompts for the password. This normally happens every 24 hours or so, but when using AcDisplay, it happens almost every hour.
I can confirm this happens for OnePlus 3T as well. The reason, as I understand, is Android's security policy of disabling fingerprint unlocks whenever the screen was locked by an app. Please verify that the issue only happens when you let AcDisplay turn off your screen (timeout).
@AChep are there any plans to fix this? There are some tricks for rooted phones I understand. Perhaps add them as an option? I moved back to stock lock screen without AcDisplay because of this issue :cry:
Unfortunately I don't really want to add another workaround and see it patched in next Android version. Sorry, guys.
Would it ever be patched though? As I understand, it has been there since 5.0, and being a security policy, it is unlikely it can be removed without exposing some vulnerability. Just mentioning.
Also, It may help to keep this issue open, for others who may stumble here.
Thanks!
Nova Launcher works around this by changing screen timeout to 5 seconds, showing a black screen and preventing touch interacting while screen is on. When screen locks, the screen timeout goes back to default and the security policy doesn't kick in, so we can use the fingerprint scanner. This is even better in amoled phones. Seems trivial to implement.
flasd's comment really should be implemented as a workaround. Please take this into consideration ACdisplay team. Show a pitch black #000 screen, Change screen timeout to 5 seconds, till it locks. Change it back to default.
This is what nova does. And it's wonderful.
@AChep could you do something like:
// pseudocode
if (userPref.respectSecurityPolicy) {
android.provider.Settings.System.putInt(getContentResolver(),
Settings.System.SCREEN_OFF_TIMEOUT, 5);
ui.beBlack();
onDeviceTimeout(
android.provider.Settings.System.putInt(getContentResolver(),
Settings.System.SCREEN_OFF_TIMEOUT, default);
);
} else {
// from source MainActivity.java 227
DevicePolicyManager dpm = (DevicePolicyManager)
getSystemService(Context.DEVICE_POLICY_SERVICE);
dpm.lockNow();
}
I don't really want to add another workaround and see it patched in next Android version. Sorry, guys.
I understand that creating a workaround for it to be patched by the next version of android sucks, but nowadays almost all new phones have fingerprint scanners and this security policy is a real deal breaker for the app.
And, (I'm not an Android developer) it seems easy to implement, 30 minutes, maybe? I'd love to help testing it.
If I was better with java i'd create a pull request, ow well.
Thanks for the attention though.
@AChep Any news on this? Currently AcDisplay can't be used on new phones (>Nougat) because when it turns off the screen, it does so by locking the device (which then prevents it from being unlocked by fingerprint). Nova Launcher solved this long ago, as it's mentioned above.