diff --git a/biometrics/fingerprint/aidl/default/fingerprint-example.rc b/biometrics/fingerprint/aidl/default/fingerprint-example.rc index 10db00d0f5..ee4713c158 100644 --- a/biometrics/fingerprint/aidl/default/fingerprint-example.rc +++ b/biometrics/fingerprint/aidl/default/fingerprint-example.rc @@ -2,8 +2,6 @@ service vendor.fingerprint-example /vendor/bin/hw/android.hardware.biometrics.fi 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 0e672b10ab..7df015b381 100644 --- a/biometrics/fingerprint/aidl/default/main.cpp +++ b/biometrics/fingerprint/aidl/default/main.cpp @@ -28,8 +28,10 @@ int main() { std::shared_ptr hal = ndk::SharedRefBase::make(); 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); + AServiceManager_forceLazyServicesPersist(true); ABinderProcess_joinThreadPool(); return EXIT_FAILURE; // should not reach