通过 adb 检查 android 设备指纹状态

check android device fingerprint status via adb

我正在使用 appium 自动化 Android 应用程序,我有一个场景需要在可用和不可用的设备上验证指纹。

要获取设备详细信息,如设备 OS 版本、名称等,我正在使用 adb shell 命令,如

adb shell getprop ro.build.version.release

像这样我尝试获取支持指纹的设备的道具,我得到了以下与指纹相关的道具

[ro.bootimage.build.fingerprint]: [google/angler/angler:7.1.2/N2G47O/3852959:user/release-keys]

[ro.vendor.build.fingerprint]: [google/angler/angler:7.1.2/N2G47O/3852959:user/release-keys]

[init.svc.fingerprintd]: [running]

现在需要知道哪个是正确的属性来检查

  1. 指纹选项是否可用
  2. 是否启用了指纹设置(我的意思是至少添加了一根手指)

您列出的前两个属性 [ro.bootimage.build.fingerprint] 和 [ro.vendor.build.fingerprint] 与指纹 reader 设备无关,但与 cryptographic fingerprint of the Android disk image 相关引导分区 (ro.bootimage) 和特定于供应商的软件分区 (ro.vendor)。

属性 [init.svc.fingerprintd] 告诉您指纹守护程序 (fingerprintd) 服务 (svc) 的当前状态 (运行)。这个service is needed to enroll fingerprints and perform other operations (see https://source.android.com/security/authentication/fingerprint-hal).

因此您需要到别处寻找一种方法来检查指纹选项是否可用并已设置。 FingerprintManager API 有一个 public 方法 hasEnrolledFingerprints() 可以用来确定是否至少有一个指纹被登记。您可以在应用程序中调用此 API。

从 adb shell,您可能必须直接调用指纹服务,而不是使用 API (Use Android API functions with ADB)。