Register virtual camera as a lazy service

Patched and fixed from ag/25223334.

Test: atest VirtualCameraTest
Bug: 270352264
Bug: 301023410
Change-Id: Iee3c7592f2211856fe83040e92e8d6ab1a4a21f8
diff --git a/services/camera/virtualcamera/main.cc b/services/camera/virtualcamera/main.cc
index b7e9c38..43b0219 100644
--- a/services/camera/virtualcamera/main.cc
+++ b/services/camera/virtualcamera/main.cc
@@ -49,16 +49,16 @@
 
   auto aidlBinder = defaultProvider->asBinder();
   AIBinder_forceDowngradeToLocalStability(aidlBinder.get());
-  binder_exception_t ret =
-      AServiceManager_addService(aidlBinder.get(), serviceName.c_str());
+  binder_exception_t ret = AServiceManager_registerLazyService(
+      aidlBinder.get(), serviceName.c_str());
   LOG_ALWAYS_FATAL_IF(
       ret != EX_NONE,
       "Error while registering virtual camera provider service: %d", ret);
 
   std::shared_ptr<VirtualCameraService> virtualCameraService =
       ndk::SharedRefBase::make<VirtualCameraService>(defaultProvider);
-  ret = AServiceManager_addService(virtualCameraService->asBinder().get(),
-                                   kVirtualCameraServiceName);
+  ret = AServiceManager_registerLazyService(
+      virtualCameraService->asBinder().get(), kVirtualCameraServiceName);
   LOG_ALWAYS_FATAL_IF(ret != EX_NONE,
                       "Error while registering virtual camera service: %d", ret);
 
diff --git a/services/camera/virtualcamera/virtual_camera.hal.rc b/services/camera/virtualcamera/virtual_camera.hal.rc
index fd86965..a8bb61d 100644
--- a/services/camera/virtualcamera/virtual_camera.hal.rc
+++ b/services/camera/virtualcamera/virtual_camera.hal.rc
@@ -5,3 +5,7 @@
     capabilities SYS_NICE
     rlimit rtprio 10 10
     task_profiles CameraServiceCapacity CameraServicePerformance
+    interface aidl virtual_camera
+    interface aidl android.hardware.camera.provider.ICameraProvider/virtual/0
+    oneshot
+    disabled