Support multiple displays in fingerprint VHAL
Bug: 348076336
Test: atest android.hardware.biometrics.fingerprint.* -c
Test: atest BiometricsE2eTests:BiometricPromptAuthSuccessTest
Change-Id: Ia0e26e41b951cf00d8d098983a05f3916b12af5c
diff --git a/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngine.h b/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngine.h
index 362d0df..bb8fd40 100644
--- a/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngine.h
+++ b/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngine.h
@@ -53,7 +53,7 @@
void getAuthenticatorIdImpl(ISessionCallback* cb);
void invalidateAuthenticatorIdImpl(ISessionCallback* cb);
void resetLockoutImpl(ISessionCallback* cb, const keymaster::HardwareAuthToken& /*hat*/);
- bool getSensorLocationConfig(SensorLocation& out);
+ bool getSensorLocationConfig(std::vector<SensorLocation>& out);
virtual ndk::ScopedAStatus onPointerDownImpl(int32_t pointerId, int32_t x, int32_t y,
float minor, float major);
@@ -62,9 +62,9 @@
virtual ndk::ScopedAStatus onUiReadyImpl();
- virtual SensorLocation getSensorLocation();
+ virtual void getSensorLocation(std::vector<SensorLocation>& loc);
- virtual SensorLocation defaultSensorLocation();
+ virtual void getDefaultSensorLocation(std::vector<SensorLocation>&) {}
virtual void fingerDownAction();
diff --git a/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineRear.h b/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineRear.h
index 14d5399..12091ee 100644
--- a/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineRear.h
+++ b/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineRear.h
@@ -23,6 +23,8 @@
// A fake engine that is backed by system properties instead of hardware.
class FakeFingerprintEngineRear : public FakeFingerprintEngine {
+ static SensorLocation defaultSensorLocation[];
+
public:
FakeFingerprintEngineRear() : FakeFingerprintEngine() {}
~FakeFingerprintEngineRear() {}
diff --git a/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineSide.h b/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineSide.h
index 67a3ebc..aa09327 100644
--- a/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineSide.h
+++ b/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineSide.h
@@ -24,14 +24,12 @@
// A fake engine that is backed by system properties instead of hardware.
class FakeFingerprintEngineSide : public FakeFingerprintEngine {
public:
- static constexpr int32_t defaultSensorLocationX = 0;
- static constexpr int32_t defaultSensorLocationY = 600;
- static constexpr int32_t defaultSensorRadius = 150;
+ static SensorLocation defaultLocation[];
+
+ void getDefaultSensorLocation(std::vector<SensorLocation>& sensorLocation) override;
FakeFingerprintEngineSide();
~FakeFingerprintEngineSide() {}
-
- virtual SensorLocation defaultSensorLocation() override;
};
} // namespace aidl::android::hardware::biometrics::fingerprint
diff --git a/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineUdfps.h b/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineUdfps.h
index 2270eca..75f1971 100644
--- a/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineUdfps.h
+++ b/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineUdfps.h
@@ -40,7 +40,7 @@
ndk::ScopedAStatus onUiReadyImpl() override;
- SensorLocation defaultSensorLocation() override;
+ void getDefaultSensorLocation(std::vector<SensorLocation>& sensorLocation) override;
void updateContext(WorkMode mode, ISessionCallback* cb, std::future<void>& cancel,
int64_t operationId, const keymaster::HardwareAuthToken& hat);
diff --git a/biometrics/fingerprint/aidl/default/include/VirtualHal.h b/biometrics/fingerprint/aidl/default/include/VirtualHal.h
index 5488383..dd77888 100644
--- a/biometrics/fingerprint/aidl/default/include/VirtualHal.h
+++ b/biometrics/fingerprint/aidl/default/include/VirtualHal.h
@@ -63,13 +63,16 @@
::ndk::ScopedAStatus setSensorLocation(
const ::aidl::android::hardware::biometrics::fingerprint::SensorLocation& in_loc)
override;
- ::ndk::ScopedAStatus setNavigationGuesture(bool in_v) override;
+ ::ndk::ScopedAStatus setNavigationGesture(bool in_v) override;
::ndk::ScopedAStatus setDetectInteraction(bool in_v) override;
::ndk::ScopedAStatus setDisplayTouch(bool in_v) override;
::ndk::ScopedAStatus setControlIllumination(bool in_v) override;
::ndk::ScopedAStatus getFingerprintHal(
std::shared_ptr<::aidl::android::hardware::biometrics::fingerprint::IFingerprint>*
_aidl_return);
+ binder_status_t dump(int fd, const char** args, uint32_t nargs);
+ binder_status_t handleShellCommand(int in, int out, int err, const char** args,
+ uint32_t numArgs);
private:
OptIntVec intVec2OptIntVec(const std::vector<int32_t>& intVec);