This is a virtual HAL implementation that is backed by system properties
instead of actual hardware. It's intended for testing and UI development
on debuggable builds to allow devices to masquerade as alternative device
types and for emulators.
Note: The virtual face HAL feature development will be done in phases. Refer to this doc often for
the latest supported features
## Device Selection
## Supported Devices
You can either run the FakeFaceEngine on a [real device](#actual-device) or a [virtual device/cuttlefish](#getting-started-on-a-virtual-device-cuttlefish). This document should
help you to get started on either one.
The face virtual hal is automatically built in in all debug builds (userdebug and eng) for the latest pixel devices and CF.
The instructions in this doc applies to all
After setting up a device, go ahead and try out [enrolling](#enrolling) & [authenticating](#authenticating)
## Enabling Face Virtual HAL
### Getting started on a Virtual Device (cuttlefish)
On pixel devicse (non-CF), by default (after manufacture reset), Face VHAL is not enabled. Therefore real Face HAL is used.
Face VHAL enabling is gated by the following two AND conditions:
1. The Face VHAL feature flag (as part of Trunk-development strategy) must be tured until the flags life-cycle ends.
2. The Face VHAL must be enabled via sysprop
##Getting Stared
Note, I'm running this via a cloudtop virtual device.
1. Setup cuttlefish on cloudtop, See [this](https://g3doc.corp.google.com/company/teams/android/teampages/acloud/getting_started.md?cl=head) for more details.
2. acloud create --local-image
3. Enter in the shell command to disable hidl
A basic use case for a successful authentication via Face VHAL is given as an exmple below.
### Enabling VHAL
```shell
$ adb root
$ adb shell settings put secure com.android.server.biometrics.AuthService.hidlDisabled 1
$ adb shell device_config put biometrics_framework com.android.server.biometrics.face_vhal_feature true
$ adb shell settings put secure biometric_virtual_enabled 1