Merge "Added info to docs to answer Q20 from Ford pending questions." into udc-dev
diff --git a/TEST_MAPPING b/TEST_MAPPING
index acae4f3..25246d8 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -12,6 +12,11 @@
{
"name": "VtsHalTvInputV1_0TargetTest"
}
+ ],
+ "auto-presubmit": [
+ {
+ "name": "hal_implementation_test"
+ }
]
}
diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl
index cf4c914..ce3a840 100644
--- a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl
+++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl
@@ -484,12 +484,15 @@
*
* This is the gear selected by the user.
*
- * Values in the config data must represent the list of supported gears
- * for this vehicle. For example, config data for an automatic transmission
- * must contain {GEAR_NEUTRAL, GEAR_REVERSE, GEAR_PARK, GEAR_DRIVE,
- * GEAR_1, GEAR_2,...} and for manual transmission the list must be
+ * Values in the config data must represent the list of supported gears for this vehicle. For
+ * example, config data for an automatic transmission must contain {GEAR_NEUTRAL, GEAR_REVERSE,
+ * GEAR_PARK, GEAR_DRIVE, GEAR_1, GEAR_2,...} and for manual transmission the list must be
* {GEAR_NEUTRAL, GEAR_REVERSE, GEAR_1, GEAR_2,...}
*
+ * In the case of an automatic transmission vehicle that allows the driver to select specific
+ * gears on demand (i.e. "manual mode"), GEAR_SELECTION's value must be set to the specific gear
+ * selected by the driver instead of simply GEAR_DRIVE.
+ *
* @change_mode VehiclePropertyChangeMode.ON_CHANGE
* @access VehiclePropertyAccess.READ
* @data_enum VehicleGear
@@ -880,7 +883,17 @@
HVAC_DUAL_ON = 0x0509 + 0x10000000 + 0x05000000
+ 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:BOOLEAN
/**
- * On/off automatic mode
+ * On/off automatic climate control.
+ *
+ * If true, automatic climate control is on. If false, automatic climate control is off.
+ *
+ * If the vehicle does not support directly turning off automatic climate control, then OEMs
+ * should add logic in their VHAL implementation so that setting HVAC_AUTO_ON to false would
+ * change the necessary HVAC settings to indirectly turn off HVAC_AUTO_ON. Ideally, this should
+ * not be disruptive to the user, so OEMs should change back to the previous state any settings
+ * that were modified once automatic climate control is off. That way the only outcome should be
+ * that HVAC_AUTO_ON is off. If restoring the HVAC settings to its previous settings is not
+ * possible, then the OEM should choose the least disruptive change and implement that.
*
* This property is defined as VehiclePropertyAccess.READ_WRITE, but OEMs have the option to
* implement it as VehiclePropertyAccess.READ only.
@@ -2889,8 +2902,8 @@
* The maxInt32Value and minInt32Value in VehicleAreaConfig must be defined. All values between
* minInt32Value and maxInt32Value must be supported.
*
- * The maxInt32Value indicates the steering wheel position closest to the driver.
- * The minInt32Value indicates the steering wheel position furthest to the driver.
+ * The maxInt32Value indicates the steering wheel position furthest from the driver.
+ * The minInt32Value indicates the steering wheel position closest to the driver.
*
* Values in between minInt32Value and maxInt32Value indicate a transition state between the
* closest and furthest positions.
@@ -2911,8 +2924,8 @@
* The maxInt32Value and minInt32Value in VehicleAreaConfig must be defined. All values between
* minInt32Value and maxInt32Value must be supported.
*
- * The maxInt32Value indicates the steering wheel moving towards the driver.
- * The minInt32Value indicates the steering wheel moving away from the driver.
+ * The maxInt32Value indicates the steering wheel moving away from the driver.
+ * The minInt32Value indicates the steering wheel moving towards the driver.
*
* Larger integers, either positive or negative, indicate a faster movement speed. Once the
* steering wheel reaches the positional limit, the value must reset to 0. If
diff --git a/bluetooth/aidl/TEST_MAPPING b/bluetooth/aidl/TEST_MAPPING
index f059c04..d1de251 100644
--- a/bluetooth/aidl/TEST_MAPPING
+++ b/bluetooth/aidl/TEST_MAPPING
@@ -9,5 +9,16 @@
}
]
}
+ ],
+ "hwasan-presubmit" : [
+ {
+ "name" : "VtsHalBluetoothTargetTest",
+ "options": [
+ {
+ // TODO(b/275847929)
+ "exclude-filter": "VtsHalBluetoothTargetTest.PerInstance/BluetoothAidlTest#Cdd_C_12_1_Bluetooth5Requirements/0_android_hardware_bluetooth_IBluetoothHci_default"
+ }
+ ]
+ }
]
}
diff --git a/camera/device/aidl/android/hardware/camera/device/Stream.aidl b/camera/device/aidl/android/hardware/camera/device/Stream.aidl
index 457b1bc..0a657d7 100644
--- a/camera/device/aidl/android/hardware/camera/device/Stream.aidl
+++ b/camera/device/aidl/android/hardware/camera/device/Stream.aidl
@@ -107,9 +107,10 @@
* supported. The dataspace values are set using the V0 dataspace
* definitions.
*
- * The color space implied by dataSpace should be overridden by colorSpace if
- * the device supports the REQUEST_AVAILABLE_CAPABILITIES_COLOR_SPACE_PROFILES
- * capability.
+ * The standard bits of this field will match the requested colorSpace (if set) for
+ * non-BLOB formats. For BLOB formats, if colorSpace is not
+ * ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_UNSPECIFIED, colorSpace takes
+ * over as the authority for the color space of the stream regardless of dataSpace.
*/
android.hardware.graphics.common.Dataspace dataSpace;
@@ -234,11 +235,11 @@
* ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_UNSPECIFIED, and the color space
* implied by dataSpace should be used instead.
*
- * When specified, this field is the ultimate authority over the color space of the stream,
- * regardless of dataSpace. The purpose of this field is to support specifying wide gamut
- * color spaces for dataSpace values such as JFIF and HEIF.
+ * When specified, this field and the standard bits of dataSpace will match for non-BLOB
+ * formats. For BLOB formats, the dataSpace will remain unchanged. In this case, this field is
+ * the ultimate authority over the color space of the stream.
*
- * Possible values are the ordinals of the ColorSpace.Named enum in the public-facing API.
+ * See ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP for possible values.
*/
int colorSpace;
}
diff --git a/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp b/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp
index 5ea6ae2..339a142 100644
--- a/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp
+++ b/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp
@@ -929,7 +929,7 @@
static Status getMandatoryConcurrentStreams(const camera_metadata_t* staticMeta,
std::vector<AvailableStream>* outputStreams);
- static bool supportsPreviewStabilization(const std::string& name, sp<ICameraProvider> provider);
+
static Status getJpegBufferSize(camera_metadata_t *staticMeta,
uint32_t* outBufSize);
static Status isConstrainedModeAvailable(camera_metadata_t *staticMeta);
@@ -976,9 +976,6 @@
void processCaptureRequestInternal(uint64_t bufferusage, RequestTemplate reqTemplate,
bool useSecureOnlyCameras);
- void processPreviewStabilizationCaptureRequestInternal(
- bool previewStabilizationOn,
- /*inout*/ std::unordered_map<std::string, nsecs_t>& cameraDeviceToTimeLag);
// Used by switchToOffline where a new result queue is created for offline reqs
void updateInflightResultQueue(std::shared_ptr<ResultMetadataQueue> resultQueue);
@@ -1032,11 +1029,7 @@
// Buffers are added by process_capture_result when output buffers
// return from HAL but framework.
- struct StreamBufferAndTimestamp {
- StreamBuffer buffer;
- nsecs_t timeStamp;
- };
- ::android::Vector<StreamBufferAndTimestamp> resultOutputBuffers;
+ ::android::Vector<StreamBuffer> resultOutputBuffers;
std::unordered_set<std::string> expectedPhysicalResults;
@@ -1453,25 +1446,8 @@
return notify;
}
- for (const auto& buffer : results.outputBuffers) {
- // wait for the fence timestamp and store it along with the buffer
- // TODO: Check if we really need the dup here
- sp<android::Fence> releaseFence = nullptr;
- if (buffer.releaseFence && (buffer.releaseFence->numFds == 1) &&
- buffer.releaseFence->data[0] >= 0) {
- releaseFence = new android::Fence(dup(buffer.releaseFence->data[0]));
- }
- InFlightRequest::StreamBufferAndTimestamp streamBufferAndTimestamp;
- streamBufferAndTimestamp.buffer = buffer;
- streamBufferAndTimestamp.timeStamp = systemTime();
- if (releaseFence && releaseFence->isValid()) {
- releaseFence->wait(/*ms*/ 300);
- nsecs_t releaseTime = releaseFence->getSignalTime();
- if (streamBufferAndTimestamp.timeStamp < releaseTime)
- streamBufferAndTimestamp.timeStamp = releaseTime;
- }
- request->resultOutputBuffers.push_back(streamBufferAndTimestamp);
- }
+ request->resultOutputBuffers.appendArray(results.outputBuffers.data(),
+ results.outputBuffers.size());
// If shutter event is received notify the pending threads.
if (request->shutterTimestamp != 0) {
notify = true;
@@ -4841,7 +4817,7 @@
ASSERT_FALSE(inflightReq.errorCodeValid);
ASSERT_NE(inflightReq.resultOutputBuffers.size(), 0u);
- ASSERT_EQ(testStream.id, inflightReq.resultOutputBuffers[0].buffer.streamId);
+ ASSERT_EQ(testStream.id, inflightReq.resultOutputBuffers[0].streamId);
request.frameNumber++;
// Empty settings should be supported after the first call
@@ -4879,7 +4855,7 @@
ASSERT_FALSE(inflightReq.errorCodeValid);
ASSERT_NE(inflightReq.resultOutputBuffers.size(), 0u);
- ASSERT_EQ(testStream.id, inflightReq.resultOutputBuffers[0].buffer.streamId);
+ ASSERT_EQ(testStream.id, inflightReq.resultOutputBuffers[0].streamId);
}
if (useHalBufManager) {
@@ -5460,7 +5436,7 @@
ASSERT_FALSE(inflightReqs[i].errorCodeValid);
ASSERT_NE(inflightReqs[i].resultOutputBuffers.size(), 0u);
- ASSERT_EQ(previewStream.id, inflightReqs[i].resultOutputBuffers[0].buffer.streamId);
+ ASSERT_EQ(previewStream.id, inflightReqs[i].resultOutputBuffers[0].streamId);
ASSERT_FALSE(inflightReqs[i].collectedResult.isEmpty());
ASSERT_TRUE(inflightReqs[i].collectedResult.exists(ANDROID_SENSOR_SENSITIVITY));
camera_metadata_entry_t isoResult = inflightReqs[i].collectedResult.find(
@@ -5744,7 +5720,7 @@
ASSERT_FALSE(inflightReqs[i].errorCodeValid);
ASSERT_NE(inflightReqs[i].resultOutputBuffers.size(), 0u);
- ASSERT_EQ(stream.id, inflightReqs[i].resultOutputBuffers[0].buffer.streamId);
+ ASSERT_EQ(stream.id, inflightReqs[i].resultOutputBuffers[0].streamId);
ASSERT_FALSE(inflightReqs[i].collectedResult.isEmpty());
}
@@ -5940,7 +5916,7 @@
if (!inflightReq.errorCodeValid) {
ASSERT_NE(inflightReq.resultOutputBuffers.size(), 0u);
- ASSERT_EQ(previewStream.id, inflightReq.resultOutputBuffers[0].buffer.streamId);
+ ASSERT_EQ(previewStream.id, inflightReq.resultOutputBuffers[0].streamId);
} else {
switch (inflightReq.errorCode) {
case ErrorCode::ERROR_REQUEST:
@@ -6346,7 +6322,7 @@
AvailableStream depthPreviewThreshold = {kMaxPreviewWidth, kMaxPreviewHeight,
static_cast<int32_t>(PixelFormat::Y16)};
const AvailableStream* depthThreshold =
- (threshold != nullptr) ? threshold : &depthPreviewThreshold;
+ isDepthOnly(staticMeta) ? &depthPreviewThreshold : threshold;
fillOutputStreams(&depthEntry, outputStreams, depthThreshold,
ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_OUTPUT);
}
@@ -7427,47 +7403,6 @@
previewStream, halStreamConfig, supportsPartialResults,
partialResultCount, useHalBufManager, outCb, streamConfigCounter);
}
-
-bool CameraHidlTest::supportsPreviewStabilization(const std::string& name,
- sp<ICameraProvider> provider) {
- Return<void> ret;
- sp<ICameraDevice> device3_x = nullptr;
- ret = provider->getCameraDeviceInterface_V3_x(name, [&](auto status, const auto& device) {
- ALOGI("getCameraDeviceInterface_V3_x returns status:%d", (int)status);
- ASSERT_EQ(Status::OK, status);
- ASSERT_NE(device, nullptr);
- device3_x = device;
- });
- if (!(ret.isOk())) {
- ADD_FAILURE() << "Failed to get camera device interface for " << name;
- }
-
- camera_metadata_t* staticMeta = nullptr;
- ret = device3_x->getCameraCharacteristics([&](Status s, CameraMetadata metadata) {
- ASSERT_EQ(Status::OK, s);
- staticMeta =
- clone_camera_metadata(reinterpret_cast<const camera_metadata_t*>(metadata.data()));
- });
- if (!(ret.isOk())) {
- ADD_FAILURE() << "Failed to get camera characteristics for " << name;
- }
- // Go through the characteristics and see if video stabilization modes have
- // preview stabilization
- camera_metadata_ro_entry entry;
-
- int retcode = find_camera_metadata_ro_entry(
- staticMeta, ANDROID_CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES, &entry);
- if ((0 == retcode) && (entry.count > 0)) {
- for (auto i = 0; i < entry.count; i++) {
- if (entry.data.u8[i] ==
- ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION) {
- return true;
- }
- }
- }
- return false;
-}
-
// Open a device session and configure a preview stream.
void CameraHidlTest::configureSingleStream(
const std::string& name, int32_t deviceVersion, sp<ICameraProvider> provider,
diff --git a/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp b/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp
index a755d57..622b20b 100644
--- a/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp
+++ b/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp
@@ -2003,6 +2003,8 @@
ASSERT_NE(std::cv_status::timeout, mResultCondition.wait_until(l, timeout));
}
+ waitForReleaseFence(inflightReq->resultOutputBuffers);
+
ASSERT_FALSE(inflightReq->errorCodeValid);
ASSERT_NE(inflightReq->resultOutputBuffers.size(), 0u);
verify10BitMetadata(mHandleImporter, *inflightReq, profile);
diff --git a/camera/provider/aidl/vts/camera_aidl_test.cpp b/camera/provider/aidl/vts/camera_aidl_test.cpp
index c315879..8d4cef1 100644
--- a/camera/provider/aidl/vts/camera_aidl_test.cpp
+++ b/camera/provider/aidl/vts/camera_aidl_test.cpp
@@ -35,6 +35,7 @@
#include <grallocusage/GrallocUsageConversion.h>
#include <hardware/gralloc1.h>
#include <simple_device_cb.h>
+#include <ui/Fence.h>
#include <ui/GraphicBufferAllocator.h>
#include <regex>
#include <typeinfo>
@@ -141,6 +142,25 @@
}
}
+void CameraAidlTest::waitForReleaseFence(
+ std::vector<InFlightRequest::StreamBufferAndTimestamp>& resultOutputBuffers) {
+ for (auto& bufferAndTimestamp : resultOutputBuffers) {
+ // wait for the fence timestamp and store it along with the buffer
+ android::sp<android::Fence> releaseFence = nullptr;
+ const native_handle_t* releaseFenceHandle = bufferAndTimestamp.buffer.releaseFence;
+ if (releaseFenceHandle != nullptr && releaseFenceHandle->numFds == 1 &&
+ releaseFenceHandle->data[0] >= 0) {
+ releaseFence = new android::Fence(releaseFenceHandle->data[0]);
+ }
+ if (releaseFence && releaseFence->isValid()) {
+ releaseFence->wait(/*ms*/ 300);
+ nsecs_t releaseTime = releaseFence->getSignalTime();
+ if (bufferAndTimestamp.timeStamp < releaseTime)
+ bufferAndTimestamp.timeStamp = releaseTime;
+ }
+ }
+}
+
std::vector<std::string> CameraAidlTest::getCameraDeviceNames(
std::shared_ptr<ICameraProvider>& provider, bool addSecureOnly) {
std::vector<std::string> cameraDeviceNames;
@@ -336,7 +356,7 @@
int retcode = find_camera_metadata_ro_entry(metadata,
ANDROID_CONTROL_AVAILABLE_SETTINGS_OVERRIDES, &entry);
bool supportSettingsOverride = false;
- if ((0 == retcode) && (entry.count > 0)) {
+ if (0 == retcode) {
supportSettingsOverride = true;
bool hasOff = false;
for (size_t i = 0; i < entry.count; i++) {
@@ -845,7 +865,7 @@
AvailableStream depthPreviewThreshold = {kMaxPreviewWidth, kMaxPreviewHeight,
static_cast<int32_t>(PixelFormat::Y16)};
const AvailableStream* depthThreshold =
- (threshold != nullptr) ? threshold : &depthPreviewThreshold;
+ isDepthOnly(staticMeta) ? &depthPreviewThreshold : threshold;
fillOutputStreams(&depthEntry, outputStreams, depthThreshold,
ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_OUTPUT);
}
@@ -2566,6 +2586,7 @@
std::chrono::seconds(kStreamBufferTimeoutSec);
ASSERT_NE(std::cv_status::timeout, mResultCondition.wait_until(l, timeout));
}
+ waitForReleaseFence(inflightReq->resultOutputBuffers);
ASSERT_FALSE(inflightReq->errorCodeValid);
ASSERT_NE(inflightReq->resultOutputBuffers.size(), 0u);
diff --git a/camera/provider/aidl/vts/camera_aidl_test.h b/camera/provider/aidl/vts/camera_aidl_test.h
index 4b4c039..fe1f048 100644
--- a/camera/provider/aidl/vts/camera_aidl_test.h
+++ b/camera/provider/aidl/vts/camera_aidl_test.h
@@ -562,6 +562,9 @@
aidl::android::hardware::camera::metadata::RequestAvailableDynamicRangeProfilesMap
profile);
+ static void waitForReleaseFence(
+ std::vector<InFlightRequest::StreamBufferAndTimestamp>& resultOutputBuffers);
+
// Map from frame number to the in-flight request state
typedef std::unordered_map<uint32_t, std::shared_ptr<InFlightRequest>> InFlightMap;
diff --git a/camera/provider/aidl/vts/device_cb.cpp b/camera/provider/aidl/vts/device_cb.cpp
index 3ec96a1..ca2f904 100644
--- a/camera/provider/aidl/vts/device_cb.cpp
+++ b/camera/provider/aidl/vts/device_cb.cpp
@@ -19,7 +19,6 @@
#include <aidl/android/hardware/graphics/common/PixelFormat.h>
#include <aidlcommonsupport/NativeHandle.h>
#include <grallocusage/GrallocUsageConversion.h>
-#include <ui/Fence.h>
#include <cinttypes>
using ::aidl::android::hardware::camera::device::BufferStatus;
@@ -419,13 +418,6 @@
}
for (const auto& buffer : results.outputBuffers) {
- // wait for the fence timestamp and store it along with the buffer
- // TODO: Check if we really need the dup here
- android::sp<android::Fence> releaseFence = nullptr;
- if (buffer.releaseFence.fds.size() == 1 && buffer.releaseFence.fds[0].get() >= 0) {
- releaseFence = new android::Fence(dup(buffer.releaseFence.fds[0].get()));
- }
-
CameraAidlTest::InFlightRequest::StreamBufferAndTimestamp streamBufferAndTimestamp;
auto outstandingBuffers = mUseHalBufManager ? mOutstandingBufferIds :
request->mOutstandingBufferIds;
@@ -439,12 +431,6 @@
::android::makeFromAidl(buffer.acquireFence),
::android::makeFromAidl(buffer.releaseFence)};
streamBufferAndTimestamp.timeStamp = systemTime();
- if (releaseFence && releaseFence->isValid()) {
- releaseFence->wait(/*ms*/ 300);
- nsecs_t releaseTime = releaseFence->getSignalTime();
- if (streamBufferAndTimestamp.timeStamp < releaseTime)
- streamBufferAndTimestamp.timeStamp = releaseTime;
- }
request->resultOutputBuffers.push_back(streamBufferAndTimestamp);
}
// If shutter event is received notify the pending threads.
diff --git a/compatibility_matrices/compatibility_matrix.8.xml b/compatibility_matrices/compatibility_matrix.8.xml
index 8ee86cc..4ac95f5 100644
--- a/compatibility_matrices/compatibility_matrix.8.xml
+++ b/compatibility_matrices/compatibility_matrix.8.xml
@@ -78,6 +78,7 @@
</hal>
<hal format="aidl" optional="true">
<name>android.hardware.automotive.evs</name>
+ <version>1-2</version>
<interface>
<name>IEvsEnumerator</name>
<regex-instance>[a-z]+/[0-9]+</regex-instance>
@@ -622,7 +623,7 @@
</hal>
<hal format="aidl" optional="true">
<name>android.hardware.tv.tuner</name>
- <version>1</version>
+ <version>1-2</version>
<interface>
<name>ITuner</name>
<instance>default</instance>
diff --git a/graphics/composer/2.1/utils/hal/include/composer-hal/2.1/ComposerCommandEngine.h b/graphics/composer/2.1/utils/hal/include/composer-hal/2.1/ComposerCommandEngine.h
index ab67eb1..9ae6173 100644
--- a/graphics/composer/2.1/utils/hal/include/composer-hal/2.1/ComposerCommandEngine.h
+++ b/graphics/composer/2.1/utils/hal/include/composer-hal/2.1/ComposerCommandEngine.h
@@ -207,7 +207,7 @@
bool executeSetClientTarget(uint16_t length) {
// 4 parameters followed by N rectangles
- if ((length - 4) % 4 != 0) {
+ if (!length || (length - 4) % 4 != 0) {
return false;
}
diff --git a/graphics/composer/2.3/utils/command-buffer/include/composer-command-buffer/2.3/ComposerCommandBuffer.h b/graphics/composer/2.3/utils/command-buffer/include/composer-command-buffer/2.3/ComposerCommandBuffer.h
index afc22d8..5e9a287 100644
--- a/graphics/composer/2.3/utils/command-buffer/include/composer-command-buffer/2.3/ComposerCommandBuffer.h
+++ b/graphics/composer/2.3/utils/command-buffer/include/composer-command-buffer/2.3/ComposerCommandBuffer.h
@@ -87,6 +87,10 @@
return;
}
+ if (metadata.size() == 0) {
+ return;
+ }
+
// space for numElements
commandLength += 1;
diff --git a/security/keymint/aidl/vts/functional/AttestKeyTest.cpp b/security/keymint/aidl/vts/functional/AttestKeyTest.cpp
index 8ffc179..e759123 100644
--- a/security/keymint/aidl/vts/functional/AttestKeyTest.cpp
+++ b/security/keymint/aidl/vts/functional/AttestKeyTest.cpp
@@ -1019,12 +1019,8 @@
.Authorization(TAG_ATTESTATION_ID_MANUFACTURER, "malformed-manufacturer")
.Authorization(TAG_ATTESTATION_ID_MODEL, "malicious-model");
- // TODO(b/262255219): Remove this condition when StrongBox supports 2nd IMEI attestation.
- if (SecLevel() != SecurityLevel::STRONGBOX) {
- if (isSecondImeiIdAttestationRequired()) {
- attestation_id_tags.Authorization(TAG_ATTESTATION_ID_SECOND_IMEI,
- "invalid-second-imei");
- }
+ if (isSecondImeiIdAttestationRequired()) {
+ attestation_id_tags.Authorization(TAG_ATTESTATION_ID_SECOND_IMEI, "invalid-second-imei");
}
vector<uint8_t> key_blob;
vector<KeyCharacteristics> key_characteristics;
@@ -1061,11 +1057,6 @@
GTEST_SKIP() << "Test not applicable under GSI";
}
- // TODO(b/262255219): Remove this condition when StrongBox supports 2nd IMEI attestation.
- if (SecLevel() == SecurityLevel::STRONGBOX) {
- GTEST_SKIP() << "Test not applicable for SecurityLevel::STRONGBOX";
- }
-
// Skip the test if there is no second IMEI exists.
string second_imei = get_imei(1);
if (second_imei.empty() || second_imei.compare("null") == 0) {
@@ -1144,11 +1135,6 @@
GTEST_SKIP() << "Test not applicable under GSI";
}
- // TODO(b/262255219): Remove this condition when StrongBox supports 2nd IMEI attestation.
- if (SecLevel() == SecurityLevel::STRONGBOX) {
- GTEST_SKIP() << "Test not applicable for SecurityLevel::STRONGBOX";
- }
-
// Skip the test if there is no first IMEI exists.
string imei = get_imei(0);
if (imei.empty() || imei.compare("null") == 0) {
diff --git a/security/keymint/aidl/vts/functional/KeyMintTest.cpp b/security/keymint/aidl/vts/functional/KeyMintTest.cpp
index 63b2e73..e99149b 100644
--- a/security/keymint/aidl/vts/functional/KeyMintTest.cpp
+++ b/security/keymint/aidl/vts/functional/KeyMintTest.cpp
@@ -3118,9 +3118,6 @@
* presented.
*/
TEST_P(SigningOperationsTest, NoUserConfirmation) {
- if (SecLevel() == SecurityLevel::STRONGBOX) {
- GTEST_SKIP() << "Test not applicable to StrongBox device";
- }
ASSERT_EQ(ErrorCode::OK, GenerateKey(AuthorizationSetBuilder()
.RsaSigningKey(1024, 65537)
.Digest(Digest::NONE)
@@ -7825,10 +7822,6 @@
* in hardware.
*/
TEST_P(UsageCountLimitTest, TestSingleUseKeyAndRollbackResistance) {
- if (SecLevel() == SecurityLevel::STRONGBOX) {
- GTEST_SKIP() << "Test not applicable to StrongBox device";
- }
-
auto error = GenerateKey(AuthorizationSetBuilder()
.RsaSigningKey(2048, 65537)
.Digest(Digest::NONE)
diff --git a/security/rkp/CHANGELOG.md b/security/rkp/CHANGELOG.md
index f425284..6593ab2 100644
--- a/security/rkp/CHANGELOG.md
+++ b/security/rkp/CHANGELOG.md
@@ -42,6 +42,7 @@
`AuthenticatedRequest<T>` object representing the top level data required to authenticate
the data provided in the payload, `T`.
* The new CSR format supports P-384 signing keys and SHA-384 hashes in the DICE chain.
+ * The component version can now be either an int or a string.
* RpcHardwareInfo
* `supportedNumKeysInCsr` added to report the maximum number of keys supported in a CSR.
* `supportedEekCurve` is no longer used, due to the removal of the EEK from the scheme.
diff --git a/security/rkp/README.md b/security/rkp/README.md
index 9090ac5..01c90a8 100644
--- a/security/rkp/README.md
+++ b/security/rkp/README.md
@@ -302,7 +302,7 @@
| ----------------- | ------ | ---------- | ----------------------------------|
| Component name | -70002 | tstr | Name of firmware component / boot |
: : : : stage :
-| Component version | -70003 | int | Version of firmware component / |
+| Component version | -70003 | int / tstr | Version of firmware component / |
: : : : boot stage :
| Resettable | -70004 | null | If present, key changes on factory|
: : : : reset :
diff --git a/security/rkp/aidl/android/hardware/security/keymint/IRemotelyProvisionedComponent.aidl b/security/rkp/aidl/android/hardware/security/keymint/IRemotelyProvisionedComponent.aidl
index 7960c7f..f714f1a 100644
--- a/security/rkp/aidl/android/hardware/security/keymint/IRemotelyProvisionedComponent.aidl
+++ b/security/rkp/aidl/android/hardware/security/keymint/IRemotelyProvisionedComponent.aidl
@@ -421,7 +421,7 @@
* ? -4670547 : bstr, ; Configuration Hash
* -4670548 : bstr .cbor { ; Configuration Descriptor
* ? -70002 : tstr, ; Component name
- * ? -70003 : int, ; Firmware version
+ * ? -70003 : int / tstr, ; Component version
* ? -70004 : null, ; Resettable
* },
* -4670549 : bstr, ; Authority Hash
diff --git a/tv/tuner/aidl/default/tuner-default.xml b/tv/tuner/aidl/default/tuner-default.xml
index f0d03ad..bff8ff0 100644
--- a/tv/tuner/aidl/default/tuner-default.xml
+++ b/tv/tuner/aidl/default/tuner-default.xml
@@ -2,5 +2,6 @@
<hal format="aidl">
<name>android.hardware.tv.tuner</name>
<fqname>ITuner/default</fqname>
+ <version>2</version>
</hal>
</manifest>
diff --git a/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl b/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl
index 0cc01c5..25d704e 100644
--- a/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl
+++ b/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl
@@ -44,6 +44,7 @@
CCC_SUPPORTED_PULSE_SHAPE_COMBOS = 166,
CCC_SUPPORTED_RAN_MULTIPLIER = 167,
CCC_SUPPORTED_MAX_RANGING_SESSION_NUMBER = 168,
+ CCC_SUPPORTED_MIN_UWB_INITIATION_TIME_MS = 169,
SUPPORTED_AOA_RESULT_REQ_ANTENNA_INTERLEAVING = 227,
SUPPORTED_MIN_RANGING_INTERVAL_MS = 228,
SUPPORTED_RANGE_DATA_NTF_CONFIG = 229,
diff --git a/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl b/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl
index 891b6f0..22b7bfe 100644
--- a/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl
+++ b/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl
@@ -144,6 +144,11 @@
*/
CCC_SUPPORTED_MAX_RANGING_SESSION_NUMBER = 0xA8,
+ /**
+ * Int value to indicate the smallest supported CCC uwb initiation time in ms
+ */
+ CCC_SUPPORTED_MIN_UWB_INITIATION_TIME_MS = 0xA9,
+
/*********************************************
* FIRA specific
********************************************/