Временное отключение отпечатка пальца

В устройствах с поддержкой FingerPrintSensor, когда мы перезагружаем устройство, он временно отключает отпечаток пальца и заставляет пользователя разблокировать устройство с помощью пин-кода/пароля/шаблона. Я хочу добиться этой функциональности, поэтому я использую DevicePolicyManger для заблокировать пользовательское устройство.

mDevicePolicyManager.lockNow();

Проблема в том, что он блокирует устройство, но отключает отпечаток пальца только на нескольких устройствах или ПЗУ. У меня есть Redmi Note 3 с пользовательской прошивкой, такой как ОС Lineage и Mokee Rom, он блокирует экран, а также отключает отпечаток пальца. Но с MIUI он просто блокирует устройство, но не отключает отпечаток пальца.

Почему это так себя ведет? Как я могу убедиться, что он отключает аутентификацию по отпечатку пальца на каждом устройстве / ПЗУ, или есть ли другая альтернатива для достижения этого?


person Skyyy    schedule 05.08.2017    source источник


Ответы (3)


Вы можете попробовать использовать setKeyguardDisabledFeatures с параметром KEYGUARD_DISABLE_FINGERPRINT, либо полностью отключающим их, либо просто отключающим при использовании API locknow с повторным включением позже.

Что касается пользовательских ПЗУ, все ли они основаны на одной и той же версии Android? Если это Android 7.0+, я бы посмотрел, использует ли MIUI полное шифрование диска вместо шифрования на основе файлов с прямой загрузкой. Есть некоторые сложности в поведении между этими двумя методами шифрования, и защита ключей привязана к соответствующим ключам шифрования. При перезапуске отпечатки пальцев нельзя использовать, поскольку они не считаются достаточно надежным методом для разблокировки хранилища ключей с аппаратной поддержкой.

person Steve Miskovetz    schedule 07.08.2017
comment
Попробуйте прослушать намерение ACTION_USER_PRESENT. Это должно быть передано после того, как блокировка клавиатуры исчезнет. Затем снова вызовите setKeyguardDisabledFeatures с KEYGUARD_DISABLE_FEATURES_NONE. - person Steve Miskovetz; 08.08.2017

Мой простой ответ заключается в том, чтобы зашифровать устройство, которое теоретически должно принудительно устанавливать пин-код/шаблон при загрузке или перезагрузке, но я не знаю, применимо ли это к каждой ОС. Если вы попробуете, и проблема решится, то ОС/устройству потребуется шифрование/дешифрование, чтобы вести себя определенным образом. Вот с чего я бы начал.

person kbrackson    schedule 05.08.2017

Используйте блокировщик приложений, если у вас есть устройство с отпечатками пальцев, использующее 7.0+, вы можете добавить, какой тип безопасности вы хотите для каждого приложения, встроенный в Android, дополнительное приложение для блокировки приложений не требуется, хотя вы можете использовать его (например, аутентификатор, если вы нужен 2FA) но это не похоже на то, что ты делаешь. Вам не нужно будет помещать это в свое приложение, так как система переопределит этот манифест, если конечный пользователь все равно установит это в настройках> безопасность / отпечаток пальца> шкафчик приложений в системе.

https://i.stack.imgur.com/iYEO2.jpg

Изменить: там, где написано «выберите шифрование для приложения», вы можете указать, хотите ли вы использовать пин-код/шаблон/пароль для приложений.

person kbrackson    schedule 05.08.2017