diff --git a/src/android/camera_capabilities.cpp b/src/android/camera_capabilities.cpp
index d5e79057..bc62a928 100644
--- a/src/android/camera_capabilities.cpp
+++ b/src/android/camera_capabilities.cpp
@@ -447,6 +447,7 @@ int CameraCapabilities::initialize(std::shared_ptr<Camera> camera,
 	orientation_ = orientation;
 	facing_ = facing;
 	minISO_ = minISO;
+	rawBitDepth_ = 16;
 	rawStreamAvailable_ = false;
 	maxFrameDuration_ = 0;
 
@@ -667,7 +668,7 @@ int CameraCapabilities::initializeStreamConfigurations()
 		const PixelFormatInfo &info = PixelFormatInfo::info(mappedFormat);
 		switch (info.colourEncoding) {
 		case PixelFormatInfo::ColourEncodingRAW:
-			if (info.bitsPerPixel != 16)
+			if (info.bitsPerPixel != rawBitDepth_)
 				continue;
 
 			rawStreamAvailable_ = true;
@@ -1335,6 +1336,12 @@ int CameraCapabilities::initializeStaticMetadata()
 	staticMetadata_->addEntry(ANDROID_SENSOR_INFO_MAX_FRAME_DURATION,
 				  maxFrameDuration_);
 
+	/* This is required for FULL. */
+	int whiteLevel = (1 << rawBitDepth_) - 1;
+	staticMetadata_->addEntry(ANDROID_SENSOR_INFO_WHITE_LEVEL,
+				  whiteLevel);
+	availableCharacteristicsKeys_.insert(ANDROID_SENSOR_INFO_WHITE_LEVEL);
+
 	/* Statistics static metadata. */
 	uint8_t faceDetectMode = ANDROID_STATISTICS_FACE_DETECT_MODE_OFF;
 	staticMetadata_->addEntry(ANDROID_STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES,
diff --git a/src/android/camera_capabilities.h b/src/android/camera_capabilities.h
index 7f554c63..2e6595fb 100644
--- a/src/android/camera_capabilities.h
+++ b/src/android/camera_capabilities.h
@@ -71,6 +71,7 @@ private:
 	int facing_;
 	int orientation_;
 	int minISO_;
+	unsigned int rawBitDepth_;
 	bool rawStreamAvailable_;
 	int64_t maxFrameDuration_;
 	camera_metadata_enum_android_info_supported_hardware_level hwLevel_;
