Merge tag 'android-15.0.0_r32' of https://android.googlesource.com/platform/hardware/interfaces into HEAD
Android 15.0.0 Release 32 (BP1A.250505.005)
Change-Id: I8bbdf43a220713c8b6fcf272fb55e0d9d16dbd7d
# -----BEGIN PGP SIGNATURE-----
#
# iF0EABECAB0WIQRDQNE1cO+UXoOBCWTorT+BmrEOeAUCaBqG7gAKCRDorT+BmrEO
# eMY7AJ9sQsVEx/EwujMZOxl1GQaM5du2MgCfY4BLzlLt48ljtrk16AmbvEFJW0M=
# =wab7
# -----END PGP SIGNATURE-----
# gpg: Signature faite le mar 06 mai 2025 18:02:22 EDT
# gpg: avec la clef DSA 4340D13570EF945E83810964E8AD3F819AB10E78
# gpg: Impossible de vérifier la signature : Pas de clef publique
diff --git a/camera/device/3.2/default/Android.bp b/camera/device/3.2/default/Android.bp
index 00e59ec..7af517f 100644
--- a/camera/device/3.2/default/Android.bp
+++ b/camera/device/3.2/default/Android.bp
@@ -10,7 +10,10 @@
cc_library_shared {
name: "camera.device@3.2-impl",
- defaults: ["hidl_defaults"],
+ defaults: [
+ "hidl_defaults",
+ "camera_override_format_from_reserved_defaults",
+ ],
proprietary: true,
srcs: [
"CameraDevice.cpp",
diff --git a/camera/device/3.2/default/CameraDeviceSession.cpp b/camera/device/3.2/default/CameraDeviceSession.cpp
index 769991c..6e5c714 100644
--- a/camera/device/3.2/default/CameraDeviceSession.cpp
+++ b/camera/device/3.2/default/CameraDeviceSession.cpp
@@ -926,12 +926,15 @@
mStreamMap[id].data_space);
mCirculatingBuffers.emplace(stream.mId, CirculatingBuffers{});
} else {
- // width/height/format must not change, but usage/rotation might need to change
+ // width/height must not change, but usage/rotation might need to change
+ // format might change and get updated with TARGET_CAMERA_OVERRIDE_FORMAT_FROM_RESERVED
if (mStreamMap[id].stream_type !=
(int) requestedConfiguration.streams[i].streamType ||
mStreamMap[id].width != requestedConfiguration.streams[i].width ||
mStreamMap[id].height != requestedConfiguration.streams[i].height ||
+#ifndef TARGET_CAMERA_OVERRIDE_FORMAT_FROM_RESERVED
mStreamMap[id].format != (int) requestedConfiguration.streams[i].format ||
+#endif
mStreamMap[id].data_space !=
mapToLegacyDataspace( static_cast<android_dataspace_t> (
requestedConfiguration.streams[i].dataSpace))) {
diff --git a/camera/device/3.2/default/convert.cpp b/camera/device/3.2/default/convert.cpp
index 2075607..fdbc204 100644
--- a/camera/device/3.2/default/convert.cpp
+++ b/camera/device/3.2/default/convert.cpp
@@ -74,6 +74,10 @@
dst->data_space = (android_dataspace_t) src.dataSpace;
dst->rotation = (int) src.rotation;
dst->usage = (uint32_t) src.usage;
+#ifdef TARGET_CAMERA_OVERRIDE_FORMAT_FROM_RESERVED
+ dst->reserved[0] = NULL;
+ dst->reserved[1] = NULL;
+#endif
// Fields to be filled by HAL (max_buffers, priv) are initialized to 0
dst->max_buffers = 0;
dst->priv = 0;
@@ -96,6 +100,25 @@
ALOGW("%s: Stream type %d is not currently supported!",
__FUNCTION__, src->stream_type);
}
+
+#ifdef TARGET_CAMERA_OVERRIDE_FORMAT_FROM_RESERVED
+ HalStream* halStream = NULL;
+ if (src->reserved[0] != NULL) {
+ halStream = (HalStream*)(src->reserved[0]);
+ } else if (src->reserved[1] != NULL) {
+ halStream = (HalStream*)(src->reserved[1]);
+ }
+
+ // Check if overrideFormat is set and honor it
+ if (halStream != NULL) {
+ dst->overrideFormat = (PixelFormat) halStream->overrideFormat;
+ if (src->stream_type == CAMERA3_STREAM_OUTPUT) {
+ dst->producerUsage = (BufferUsageFlags)halStream->producerUsage;
+ } else if (src->stream_type == CAMERA3_STREAM_INPUT) {
+ dst->consumerUsage = (BufferUsageFlags)halStream->consumerUsage;
+ }
+ }
+#endif
}
void convertToHidl(const camera3_stream_configuration_t& src, HalStreamConfiguration* dst) {
diff --git a/camera/device/3.3/default/Android.bp b/camera/device/3.3/default/Android.bp
index 5bc2b51..32bbdf6 100644
--- a/camera/device/3.3/default/Android.bp
+++ b/camera/device/3.3/default/Android.bp
@@ -10,7 +10,10 @@
cc_library_shared {
name: "camera.device@3.3-impl",
- defaults: ["hidl_defaults"],
+ defaults: [
+ "hidl_defaults",
+ "camera_override_format_from_reserved_defaults",
+ ],
proprietary: true,
srcs: [
"CameraDevice.cpp",
diff --git a/camera/device/3.3/default/convert.cpp b/camera/device/3.3/default/convert.cpp
index dae190b..9b6caf0 100644
--- a/camera/device/3.3/default/convert.cpp
+++ b/camera/device/3.3/default/convert.cpp
@@ -47,6 +47,24 @@
ALOGW("%s: Stream type %d is not currently supported!",
__FUNCTION__, src->stream_type);
}
+
+#ifdef TARGET_CAMERA_OVERRIDE_FORMAT_FROM_RESERVED
+ HalStream* halStream = NULL;
+ if (src->reserved[0] != NULL) {
+ halStream = (HalStream*)(src->reserved[0]);
+ } else if (src->reserved[1] != NULL) {
+ halStream = (HalStream*)(src->reserved[1]);
+ }
+
+ if (halStream != NULL) {
+ dst->v3_2.overrideFormat = (PixelFormat) halStream->v3_2.overrideFormat;
+ if (src->stream_type == CAMERA3_STREAM_OUTPUT) {
+ dst->v3_2.producerUsage = (BufferUsageFlags)halStream->v3_2.producerUsage;
+ } else if (src->stream_type == CAMERA3_STREAM_INPUT) {
+ dst->v3_2.consumerUsage = (BufferUsageFlags)halStream->v3_2.consumerUsage;
+ }
+ }
+#endif
}
void convertToHidl(const camera3_stream_configuration_t& src, HalStreamConfiguration* dst) {
diff --git a/keymaster/4.0/support/include/keymasterV4_0/keymaster_tags.h b/keymaster/4.0/support/include/keymasterV4_0/keymaster_tags.h
index ea40971..d7358f3 100644
--- a/keymaster/4.0/support/include/keymasterV4_0/keymaster_tags.h
+++ b/keymaster/4.0/support/include/keymasterV4_0/keymaster_tags.h
@@ -73,6 +73,9 @@
static const int32_t KM_TAG_DIGEST_OLD = static_cast<int32_t>(TagType::ENUM) | 5;
static const int32_t KM_TAG_PADDING_OLD = static_cast<int32_t>(TagType::ENUM) | 7;
+static const int32_t KM_TAG_FBE_ICE = static_cast<int32_t>(TagType::BOOL) | 16201;
+static const int32_t KM_TAG_KEY_TYPE = static_cast<int32_t>(TagType::UINT) | 16202;
+
constexpr TagType typeFromTag(Tag tag) {
return static_cast<TagType>(static_cast<uint32_t>(tag) & static_cast<uint32_t>(0xf0000000));
}