diff --git a/src/android/camera_capabilities.cpp b/src/android/camera_capabilities.cpp
index fe81c665..ac3d88b5 100644
--- a/src/android/camera_capabilities.cpp
+++ b/src/android/camera_capabilities.cpp
@@ -934,9 +934,12 @@ int CameraCapabilities::initializeStaticMetadata()
 	staticMetadata_->addEntry(ANDROID_CONTROL_SCENE_MODE_OVERRIDES,
 				  sceneModesOverride);
 
-	uint8_t aeLockAvailable = ANDROID_CONTROL_AE_LOCK_AVAILABLE_FALSE;
-	staticMetadata_->addEntry(ANDROID_CONTROL_AE_LOCK_AVAILABLE,
-				  aeLockAvailable);
+	setMetadata<uint8_t, bool>(
+		staticMetadata_.get(),
+		ANDROID_CONTROL_AE_LOCK_AVAILABLE,
+		controlsInfo, &controls::AeLock,
+		ControlRange::Max,
+		ANDROID_CONTROL_AE_LOCK_AVAILABLE_FALSE);
 
 	uint8_t awbLockAvailable = ANDROID_CONTROL_AWB_LOCK_AVAILABLE_FALSE;
 	staticMetadata_->addEntry(ANDROID_CONTROL_AWB_LOCK_AVAILABLE,
diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
index 98a73b37..1721e0e8 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -784,6 +784,9 @@ int CameraDevice::processControls(Camera3RequestDescriptor *descriptor)
 	if (settings.getEntry(ANDROID_CONTROL_AE_MODE, &entry))
 		controls.set(controls::AeEnable, *entry.data.u8);
 
+	if (settings.getEntry(ANDROID_CONTROL_AE_LOCK, &entry))
+		controls.set(controls::AeLock, *entry.data.u8);
+
 	return 0;
 }
 
@@ -1205,14 +1208,16 @@ CameraDevice::getResultMetadata(const Camera3RequestDescriptor &descriptor) cons
 	resultMetadata->addEntry(ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION,
 				 value32);
 
-	value = ANDROID_CONTROL_AE_LOCK_OFF;
-	resultMetadata->addEntry(ANDROID_CONTROL_AE_LOCK, value);
-
 	if (metadata.contains(controls::AeEnable)) {
 		uint8_t aeMode = metadata.get<bool>(controls::AeEnable);
 		resultMetadata->addEntry(ANDROID_CONTROL_AE_MODE, aeMode);
 	}
 
+	if (metadata.contains(controls::AeLock)) {
+		uint8_t aeLock = metadata.get<bool>(controls::AeLock);
+		resultMetadata->addEntry(ANDROID_CONTROL_AE_LOCK, aeLock);
+	}
+
 	if (settings.getEntry(ANDROID_CONTROL_AE_TARGET_FPS_RANGE, &entry))
 		/*
 		 * \todo Retrieve the AE FPS range from the libcamera metadata.
