Make virtual fingerprint Hal as a lazy Hal
so that the Hal service can start dynamically as needed
by vts test and others
Bug: 262630839
Test: atest VtsHalBiometricsFingerprintTargetTest:IFingerprint/Fingerprint
Change-Id: I58dfa3b49bade3bbd89c3a8f6cd884c632e9eae4
diff --git a/biometrics/fingerprint/aidl/default/fingerprint-example.rc b/biometrics/fingerprint/aidl/default/fingerprint-example.rc
index 10db00d..80985e8 100644
--- a/biometrics/fingerprint/aidl/default/fingerprint-example.rc
+++ b/biometrics/fingerprint/aidl/default/fingerprint-example.rc
@@ -2,8 +2,7 @@
class hal
user nobody
group nobody
+ interface aidl android.hardware.biometrics.fingerprint.IFingerprint/virtual
+ oneshot
disabled
-on property:ro.vendor.fingerprint_virtual_hal_start=true
- enable vendor.fingerprint-example
-on property:persist.vendor.fingerprint.virtual.type=*
- enable vendor.fingerprint-example
+
diff --git a/biometrics/fingerprint/aidl/default/main.cpp b/biometrics/fingerprint/aidl/default/main.cpp
index 0e672b1..11bce15 100644
--- a/biometrics/fingerprint/aidl/default/main.cpp
+++ b/biometrics/fingerprint/aidl/default/main.cpp
@@ -28,7 +28,8 @@
std::shared_ptr<Fingerprint> hal = ndk::SharedRefBase::make<Fingerprint>();
const std::string instance = std::string(Fingerprint::descriptor) + "/virtual";
- binder_status_t status = AServiceManager_addService(hal->asBinder().get(), instance.c_str());
+ binder_status_t status =
+ AServiceManager_registerLazyService(hal->asBinder().get(), instance.c_str());
CHECK_EQ(status, STATUS_OK);
ABinderProcess_joinThreadPool();