diff --git a/api/current.txt b/api/current.txt
index 86f1a3b525839..cba55355c0d27 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -15829,6 +15829,7 @@ package android.hardware.camera2 {
field public static final int HOT_PIXEL_MODE_HIGH_QUALITY = 2; // 0x2
field public static final int HOT_PIXEL_MODE_OFF = 0; // 0x0
field public static final int INFO_SUPPORTED_HARDWARE_LEVEL_3 = 3; // 0x3
+ field public static final int INFO_SUPPORTED_HARDWARE_LEVEL_EXTERNAL = 4; // 0x4
field public static final int INFO_SUPPORTED_HARDWARE_LEVEL_FULL = 1; // 0x1
field public static final int INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY = 2; // 0x2
field public static final int INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED = 0; // 0x0
diff --git a/core/java/android/hardware/camera2/CameraCharacteristics.java b/core/java/android/hardware/camera2/CameraCharacteristics.java
index 1201ef48220a2..a9ed9a3858c0b 100644
--- a/core/java/android/hardware/camera2/CameraCharacteristics.java
+++ b/core/java/android/hardware/camera2/CameraCharacteristics.java
@@ -2978,6 +2978,7 @@ public final class CameraCharacteristics extends CameraMetadata{@link #INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL}
* {@link #INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY LEGACY}
* {@link #INFO_SUPPORTED_HARDWARE_LEVEL_3 3}
+ * {@link #INFO_SUPPORTED_HARDWARE_LEVEL_EXTERNAL EXTERNAL}
*
* This key is available on all devices.
*
@@ -2991,6 +2992,7 @@ public final class CameraCharacteristics extends CameraMetadata INFO_SUPPORTED_HARDWARE_LEVEL =
diff --git a/core/java/android/hardware/camera2/CameraMetadata.java b/core/java/android/hardware/camera2/CameraMetadata.java
index 2294ec56525f2..cc6e9a9642716 100644
--- a/core/java/android/hardware/camera2/CameraMetadata.java
+++ b/core/java/android/hardware/camera2/CameraMetadata.java
@@ -1134,6 +1134,38 @@ public abstract class CameraMetadata {
*/
public static final int INFO_SUPPORTED_HARDWARE_LEVEL_3 = 3;
+ /**
+ * This camera device is backed by an external camera connected to this Android device.
+ * The device has capability identical to a LIMITED level device, with the following
+ * exceptions:
+ *
+ * - The device may not report lens/sensor related information such as
+ * - {@link CaptureRequest#LENS_FOCAL_LENGTH android.lens.focalLength}
+ * - {@link CameraCharacteristics#LENS_INFO_HYPERFOCAL_DISTANCE android.lens.info.hyperfocalDistance}
+ * - {@link CameraCharacteristics#SENSOR_INFO_PHYSICAL_SIZE android.sensor.info.physicalSize}
+ * - {@link CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL android.sensor.info.whiteLevel}
+ * - {@link CameraCharacteristics#SENSOR_BLACK_LEVEL_PATTERN android.sensor.blackLevelPattern}
+ * - {@link CameraCharacteristics#SENSOR_INFO_COLOR_FILTER_ARRANGEMENT android.sensor.info.colorFilterArrangement}
+ * - {@link CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW android.sensor.rollingShutterSkew}
+ *
+ *
+ * - The device will report 0 for {@link CameraCharacteristics#SENSOR_ORIENTATION android.sensor.orientation}
+ * - The device has less guarantee on stable framerate, as the framerate partly depends
+ * on the external camera being used.
+ *
+ *
+ * @see CaptureRequest#LENS_FOCAL_LENGTH
+ * @see CameraCharacteristics#LENS_INFO_HYPERFOCAL_DISTANCE
+ * @see CameraCharacteristics#SENSOR_BLACK_LEVEL_PATTERN
+ * @see CameraCharacteristics#SENSOR_INFO_COLOR_FILTER_ARRANGEMENT
+ * @see CameraCharacteristics#SENSOR_INFO_PHYSICAL_SIZE
+ * @see CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
+ * @see CameraCharacteristics#SENSOR_ORIENTATION
+ * @see CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
+ * @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
+ */
+ public static final int INFO_SUPPORTED_HARDWARE_LEVEL_EXTERNAL = 4;
+
//
// Enumeration values for CameraCharacteristics#SYNC_MAX_LATENCY
//