Add support for external lazy camera HALs
The lazy camera provider HAL will be started when
a device is attached (USB hotplug) or opened and
then shut down when there are no active clients using it.
When a USB device is unplugged, the provider removes the camera
devices associated with it.
Test: atest CtsCameraTestCases
Test: atest cameraservice_test
Test: -Boot device with/without camera attached.
-(plug-in camera)
-Open app that uses camera
-adb shell ps | grep camera
-> shows "android.hardware.camera.provider@2.7-external-service-lazy"
- Close app and wait 5-10 seconds
- adb shell ps | grep camera
-> does not show "android.hardware.camera.provider@2.7-external-service-lazy"
Bug: 191248460
Change-Id: I5eba8392f17919ed26c1d888cedb4c5428e881c4
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
index b3db66b..7795fa3 100644
--- a/services/camera/libcameraservice/CameraService.cpp
+++ b/services/camera/libcameraservice/CameraService.cpp
@@ -2333,6 +2333,13 @@
doUserSwitch(/*newUserIds*/ args);
break;
}
+ case ICameraService::EVENT_USB_DEVICE_ATTACHED:
+ case ICameraService::EVENT_USB_DEVICE_DETACHED: {
+ // Notify CameraProviderManager for lazy HALs
+ mCameraProviderManager->notifyUsbDeviceEvent(eventId,
+ std::to_string(args[0]));
+ break;
+ }
case ICameraService::EVENT_NONE:
default: {
ALOGW("%s: Received invalid system event from system_server: %d", __FUNCTION__,