暂时禁用指纹

Temporarily disabling fingerprint

在启用了 FingerPrintSensor 的设备中,当我们重新启动设备时,它会暂时禁用指纹并强制用户使用 pin/password/pattern 解锁设备。我想实现此功能,所以我使用 DevicePolicyManger 锁定用户设备。

mDevicePolicyManager.lockNow();

问题是它确实锁定了设备,但仅在少数设备或 ROM 中禁用了指纹。我有 Redmi Note 3 和 Custom rom like lineage OS 和 Mokee Rom 它锁定屏幕并禁用指纹。但是对于 MIUI 它只是锁定设备但不会禁用指纹。

为什么会这样?我如何确保它禁用每个 device/rom 的指纹身份验证,或者是否有其他替代方法来实现此目的?

我的简单回答是加密设备,理论上应该在启动或重启时强制 pin/pattern,但我不知道这是否适用于每个 OS。如果您尝试并解决了问题,那么 OS/device 将要求 encryption/decryption 以某种方式运行。这就是我要开始的地方。

使用 app locker,如果您有使用 7.0 + 的指纹设备,那么您可以在应用程序的基础上添加您想要的安全类型,Android 原生,但不需要额外的 app locker 应用程序您可以使用一个(如果您需要 2FA,则可以使用身份验证器),但听起来不像您那样做。您不需要将它放在您的应用程序中,因为如果最终用户在系统内的设置>security/fingerprint>app locker 中设置它,系统将覆盖该清单。

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

编辑:它说 "choose your encryption for app" 你可以指定是否要 pin/pattern/password 应用

您可以尝试将 setKeyguardDisabledFeatures 与 KEYGUARD_DISABLE_FINGERPRINT 设置为完全禁用它们或仅在您使用锁定时禁用它们 API,稍后重新启用它。

至于自定义ROM,它们都是基于相同版本的Android吗?如果它们是 Android 7.0+,我会看看 MIUI 是否使用全盘加密而不是直接启动的基于文件的加密。这两种加密方法之间的行为有些复杂,并且键盘锁安全性与各自的加密密钥相关联。重新启动时,无法使用指纹,因为它们被认为不够强大,无法解锁硬件支持的密钥库。