Camera: Turn off torch at provider startup
Flashlight could be stuck at ON after system_server crashes
(which results in cameraserver to restart).
As a workaround, turn flash off at the provider start.
Alternative considered: restart HAL process when cameraserver
restarts. However, even with that, some device still fails to
turn off flashlight.
Test: Camera CTS, kill system_server with flash on
Bug: 247038031
Change-Id: I8a49ce8a541dc0537348dc16b3b48b96b10c89f6
diff --git a/services/camera/libcameraservice/common/aidl/AidlProviderInfo.cpp b/services/camera/libcameraservice/common/aidl/AidlProviderInfo.cpp
index ef68f28..6d35391 100644
--- a/services/camera/libcameraservice/common/aidl/AidlProviderInfo.cpp
+++ b/services/camera/libcameraservice/common/aidl/AidlProviderInfo.cpp
@@ -550,6 +550,11 @@
"ANDROID_FLASH_INFO_STRENGTH_MAXIMUM_LEVEL tags: %s (%d)", __FUNCTION__,
strerror(-res), res);
}
+
+ // b/247038031: In case of system_server crash, camera_server is
+ // restarted as well. If flashlight is turned on before the crash, it
+ // may be stuck to be on. As a workaround, set torch mode to be OFF.
+ interface->setTorchMode(false);
} else {
mHasFlashUnit = false;
}