Merge "Updates echo service name in VTS Context Hub test" into main
diff --git a/broadcastradio/aidl/vts/src/VtsHalBroadcastradioAidlTargetTest.cpp b/broadcastradio/aidl/vts/src/VtsHalBroadcastradioAidlTargetTest.cpp
index 7e9e458..1427744 100644
--- a/broadcastradio/aidl/vts/src/VtsHalBroadcastradioAidlTargetTest.cpp
+++ b/broadcastradio/aidl/vts/src/VtsHalBroadcastradioAidlTargetTest.cpp
@@ -767,6 +767,7 @@
}
// try tuning
+ mCallback->reset();
auto result = mModule->tune(hdSel);
// expect a failure if it's not supported
@@ -843,7 +844,7 @@
}
// try tuning
-
+ mCallback->reset();
auto result = mModule->tune(sel);
// expect a failure if it's not supported
diff --git a/graphics/mapper/stable-c/vts/VtsHalGraphicsMapperStableC_TargetTest.cpp b/graphics/mapper/stable-c/vts/VtsHalGraphicsMapperStableC_TargetTest.cpp
index 3e2f2ac..cfd3173 100644
--- a/graphics/mapper/stable-c/vts/VtsHalGraphicsMapperStableC_TargetTest.cpp
+++ b/graphics/mapper/stable-c/vts/VtsHalGraphicsMapperStableC_TargetTest.cpp
@@ -460,8 +460,8 @@
ASSERT_NE(nullptr, outYCbCr->cr);
}
- YCbCr getAndroidYCbCr_P010(const native_handle_t* bufferHandle, uint8_t* data) {
- YCbCr yCbCr_P010;
+ YCbCr getAndroidYCbCr_10bit(const native_handle_t* bufferHandle, uint8_t* data) {
+ YCbCr yCbCr_10bit;
auto decodeResult = getStandardMetadata<StandardMetadataType::PLANE_LAYOUTS>(bufferHandle);
if (!decodeResult.has_value()) {
ADD_FAILURE() << "failed to get plane layout";
@@ -472,12 +472,12 @@
EXPECT_EQ(1, planeLayouts[0].components.size());
EXPECT_EQ(2, planeLayouts[1].components.size());
- yCbCr_P010.yCbCr.y = nullptr;
- yCbCr_P010.yCbCr.cb = nullptr;
- yCbCr_P010.yCbCr.cr = nullptr;
- yCbCr_P010.yCbCr.ystride = 0;
- yCbCr_P010.yCbCr.cstride = 0;
- yCbCr_P010.yCbCr.chroma_step = 0;
+ yCbCr_10bit.yCbCr.y = nullptr;
+ yCbCr_10bit.yCbCr.cb = nullptr;
+ yCbCr_10bit.yCbCr.cr = nullptr;
+ yCbCr_10bit.yCbCr.ystride = 0;
+ yCbCr_10bit.yCbCr.cstride = 0;
+ yCbCr_10bit.yCbCr.chroma_step = 0;
int64_t cb_offset = 0;
int64_t cr_offset = 0;
@@ -493,15 +493,15 @@
auto type = static_cast<PlaneLayoutComponentType>(planeLayoutComponent.type.value);
switch (type) {
case PlaneLayoutComponentType::Y:
- // For specs refer:
+ // For specs refer to:
// https://docs.microsoft.com/en-us/windows/win32/medfound/10-bit-and-16-bit-yuv-video-formats
EXPECT_EQ(6, planeLayoutComponent.offsetInBits);
- EXPECT_EQ(nullptr, yCbCr_P010.yCbCr.y);
+ EXPECT_EQ(nullptr, yCbCr_10bit.yCbCr.y);
EXPECT_EQ(10, planeLayoutComponent.sizeInBits);
EXPECT_EQ(16, planeLayout.sampleIncrementInBits);
- yCbCr_P010.yCbCr.y = tmpData;
- yCbCr_P010.yCbCr.ystride = planeLayout.strideInBytes;
+ yCbCr_10bit.yCbCr.y = tmpData;
+ yCbCr_10bit.yCbCr.ystride = planeLayout.strideInBytes;
break;
case PlaneLayoutComponentType::CB:
@@ -509,46 +509,46 @@
sampleIncrementInBytes = bitsToBytes(planeLayout.sampleIncrementInBits);
EXPECT_EQ(4, sampleIncrementInBytes);
- if (yCbCr_P010.yCbCr.cstride == 0 && yCbCr_P010.yCbCr.chroma_step == 0) {
- yCbCr_P010.yCbCr.cstride = planeLayout.strideInBytes;
- yCbCr_P010.yCbCr.chroma_step = sampleIncrementInBytes;
+ if (yCbCr_10bit.yCbCr.cstride == 0 && yCbCr_10bit.yCbCr.chroma_step == 0) {
+ yCbCr_10bit.yCbCr.cstride = planeLayout.strideInBytes;
+ yCbCr_10bit.yCbCr.chroma_step = sampleIncrementInBytes;
} else {
- EXPECT_EQ(yCbCr_P010.yCbCr.cstride, planeLayout.strideInBytes);
- EXPECT_EQ(yCbCr_P010.yCbCr.chroma_step, sampleIncrementInBytes);
+ EXPECT_EQ(yCbCr_10bit.yCbCr.cstride, planeLayout.strideInBytes);
+ EXPECT_EQ(yCbCr_10bit.yCbCr.chroma_step, sampleIncrementInBytes);
}
- if (yCbCr_P010.horizontalSubSampling == 0 &&
- yCbCr_P010.verticalSubSampling == 0) {
- yCbCr_P010.horizontalSubSampling = planeLayout.horizontalSubsampling;
- yCbCr_P010.verticalSubSampling = planeLayout.verticalSubsampling;
+ if (yCbCr_10bit.horizontalSubSampling == 0 &&
+ yCbCr_10bit.verticalSubSampling == 0) {
+ yCbCr_10bit.horizontalSubSampling = planeLayout.horizontalSubsampling;
+ yCbCr_10bit.verticalSubSampling = planeLayout.verticalSubsampling;
} else {
- EXPECT_EQ(yCbCr_P010.horizontalSubSampling,
+ EXPECT_EQ(yCbCr_10bit.horizontalSubSampling,
planeLayout.horizontalSubsampling);
- EXPECT_EQ(yCbCr_P010.verticalSubSampling,
+ EXPECT_EQ(yCbCr_10bit.verticalSubSampling,
planeLayout.verticalSubsampling);
}
if (type == PlaneLayoutComponentType::CB) {
- EXPECT_EQ(nullptr, yCbCr_P010.yCbCr.cb);
- yCbCr_P010.yCbCr.cb = tmpData;
+ EXPECT_EQ(nullptr, yCbCr_10bit.yCbCr.cb);
+ yCbCr_10bit.yCbCr.cb = tmpData;
cb_offset = planeLayoutComponent.offsetInBits;
} else {
- EXPECT_EQ(nullptr, yCbCr_P010.yCbCr.cr);
- yCbCr_P010.yCbCr.cr = tmpData;
+ EXPECT_EQ(nullptr, yCbCr_10bit.yCbCr.cr);
+ yCbCr_10bit.yCbCr.cr = tmpData;
cr_offset = planeLayoutComponent.offsetInBits;
}
break;
default:
break;
- };
+ }
}
}
EXPECT_EQ(cb_offset + bytesToBits(2), cr_offset);
- EXPECT_NE(nullptr, yCbCr_P010.yCbCr.y);
- EXPECT_NE(nullptr, yCbCr_P010.yCbCr.cb);
- EXPECT_NE(nullptr, yCbCr_P010.yCbCr.cr);
- return yCbCr_P010;
+ EXPECT_NE(nullptr, yCbCr_10bit.yCbCr.y);
+ EXPECT_NE(nullptr, yCbCr_10bit.yCbCr.cb);
+ EXPECT_NE(nullptr, yCbCr_10bit.yCbCr.cr);
+ return yCbCr_10bit;
}
};
@@ -1131,7 +1131,7 @@
region, -1, (void**)&data));
YCbCr yCbCr;
- ASSERT_NO_FATAL_FAILURE(yCbCr = getAndroidYCbCr_P010(*handle, data));
+ ASSERT_NO_FATAL_FAILURE(yCbCr = getAndroidYCbCr_10bit(*handle, data));
constexpr uint32_t kCbCrSubSampleFactor = 2;
ASSERT_EQ(kCbCrSubSampleFactor, yCbCr.horizontalSubSampling);
@@ -1153,6 +1153,54 @@
}
}
+TEST_P(GraphicsMapperStableCTests, Lock_YCBCR_P210) {
+ BufferDescriptorInfo info{
+ .name = {"VTS_TEMP"},
+ .width = 64,
+ .height = 64,
+ .layerCount = 1,
+ .format = PixelFormat::YCBCR_P210,
+ .usage = BufferUsage::CPU_WRITE_OFTEN | BufferUsage::CPU_READ_OFTEN,
+ .reservedSize = 0,
+ };
+ auto buffer = allocate(info);
+ if (!buffer) {
+ ASSERT_FALSE(isSupported(info));
+ GTEST_SUCCEED() << "YCBCR_P210 format is unsupported";
+ return;
+ }
+
+ // lock buffer for writing
+ const ARect region{0, 0, info.width, info.height};
+ auto handle = buffer->import();
+ uint8_t *data = nullptr;
+ ASSERT_EQ(AIMAPPER_ERROR_NONE,
+ mapper()->v5.lock(*handle, static_cast<int64_t>(info.usage), region,
+ -1, (void **)&data));
+
+ YCbCr yCbCr;
+ ASSERT_NO_FATAL_FAILURE(yCbCr = getAndroidYCbCr_10bit(*handle, data));
+
+ constexpr uint32_t kCbCrSubSampleFactor = 2;
+ ASSERT_EQ(kCbCrSubSampleFactor, yCbCr.horizontalSubSampling);
+ ASSERT_EQ(1, yCbCr.verticalSubSampling);
+
+ ASSERT_EQ(0, info.height % 2);
+
+ // fill the data
+ fillYCbCrData(yCbCr.yCbCr, info.width, info.height,
+ yCbCr.horizontalSubSampling, yCbCr.verticalSubSampling);
+ // verify the YCbCr data
+ verifyYCbCrData(yCbCr.yCbCr, info.width, info.height,
+ yCbCr.horizontalSubSampling, yCbCr.verticalSubSampling);
+
+ int releaseFence = -1;
+ ASSERT_EQ(AIMAPPER_ERROR_NONE, mapper()->v5.unlock(*handle, &releaseFence));
+ if (releaseFence != -1) {
+ close(releaseFence);
+ }
+}
+
TEST_P(GraphicsMapperStableCTests, LockBadAccessRegion) {
auto buffer = allocateGeneric();
ASSERT_NE(nullptr, buffer);
diff --git a/security/keymint/aidl/vts/functional/Android.bp b/security/keymint/aidl/vts/functional/Android.bp
index 1414220..da3427a 100644
--- a/security/keymint/aidl/vts/functional/Android.bp
+++ b/security/keymint/aidl/vts/functional/Android.bp
@@ -37,6 +37,7 @@
"libcrypto",
"libbase",
"libgatekeeper",
+ "libvendorsupport",
"packagemanager_aidl-cpp",
],
static_libs: [
diff --git a/security/keymint/aidl/vts/functional/BootloaderStateTest.cpp b/security/keymint/aidl/vts/functional/BootloaderStateTest.cpp
index b41da3f..62215f3 100644
--- a/security/keymint/aidl/vts/functional/BootloaderStateTest.cpp
+++ b/security/keymint/aidl/vts/functional/BootloaderStateTest.cpp
@@ -27,6 +27,7 @@
#include <libavb/libavb.h>
#include <libavb_user/avb_ops_user.h>
#include <remote_prov/remote_prov_utils.h>
+#include <vendorsupport/api_level.h>
#include "KeyMintAidlTestBase.h"
@@ -98,7 +99,7 @@
// Check that the attested Verified Boot key is 32 bytes of zeroes since the bootloader is unlocked.
TEST_P(BootloaderStateTest, VerifiedBootKeyAllZeroes) {
// Gate this test to avoid waiver issues.
- if (get_vsr_api_level() <= __ANDROID_API_V__) {
+ if (get_vsr_api_level() <= AVendorSupport_getVendorApiLevelOf(__ANDROID_API_V__)) {
return;
}
@@ -141,7 +142,7 @@
avb_slot_verify_data_calculate_vbmeta_digest(avbSlotData, AVB_DIGEST_TYPE_SHA256,
sha256Digest.data());
- if (get_vsr_api_level() >= __ANDROID_API_V__) {
+ if (get_vsr_api_level() >= AVendorSupport_getVendorApiLevelOf(__ANDROID_API_V__)) {
ASSERT_TRUE(attestedVbmetaDigest_ == sha256Digest)
<< "Attested VBMeta digest (" << bin2hex(attestedVbmetaDigest_)
<< ") does not match the expected SHA-256 digest (" << bin2hex(sha256Digest)
diff --git a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp
index 09446ce..4429816 100644
--- a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp
+++ b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp
@@ -35,6 +35,7 @@
#include <openssl/evp.h>
#include <openssl/mem.h>
#include <remote_prov/remote_prov_utils.h>
+#include <vendorsupport/api_level.h>
#include <keymaster/cppcose/cppcose.h>
#include <keymint_support/key_param_output.h>
@@ -1908,13 +1909,13 @@
}
}
- if (get_vsr_api_level() > __ANDROID_API_V__) {
+ if (get_vsr_api_level() > AVendorSupport_getVendorApiLevelOf(__ANDROID_API_V__)) {
// The Verified Boot key field should be exactly 32 bytes since it
// contains the SHA-256 hash of the key on locked devices or 32 bytes
// of zeroes on unlocked devices. This wasn't checked for earlier
// versions of the KeyMint HAL, so only only be strict for VSR-16+.
EXPECT_EQ(verified_boot_key.size(), 32);
- } else if (get_vsr_api_level() == __ANDROID_API_V__) {
+ } else if (get_vsr_api_level() == AVendorSupport_getVendorApiLevelOf(__ANDROID_API_V__)) {
// The Verified Boot key field should be:
// - Exactly 32 bytes on locked devices since it should contain
// the SHA-256 hash of the key, or
diff --git a/security/keymint/aidl/vts/functional/KeyMintTest.cpp b/security/keymint/aidl/vts/functional/KeyMintTest.cpp
index 416e6c0..e8a767b 100644
--- a/security/keymint/aidl/vts/functional/KeyMintTest.cpp
+++ b/security/keymint/aidl/vts/functional/KeyMintTest.cpp
@@ -42,6 +42,8 @@
#include <keymint_support/key_param_output.h>
#include <keymint_support/openssl_utils.h>
+#include <vendorsupport/api_level.h>
+
#include "KeyMintAidlTestBase.h"
using aidl::android::hardware::security::keymint::AuthorizationSet;
@@ -4156,7 +4158,7 @@
* when the EC_CURVE is not explicitly specified.
*/
TEST_P(ImportKeyTest, EcdsaSuccessCurveNotSpecified) {
- if (get_vsr_api_level() < __ANDROID_API_V__) {
+ if (get_vsr_api_level() < AVendorSupport_getVendorApiLevelOf(__ANDROID_API_V__)) {
/*
* The KeyMint spec was previously not clear as to whether EC_CURVE was optional on import
* of EC keys. However, this was not checked at the time so we can only be strict about
@@ -5315,7 +5317,7 @@
TEST_P(ImportWrappedKeyTest, RsaKey) {
int vsr_api_level = get_vsr_api_level();
- if (vsr_api_level < __ANDROID_API_V__) {
+ if (vsr_api_level < AVendorSupport_getVendorApiLevelOf(__ANDROID_API_V__)) {
/*
* The Keymaster v4 spec introduced `importWrappedKey()` and did not restrict it to
* just symmetric keys. However, the import of asymmetric wrapped keys was not tested
@@ -5346,7 +5348,7 @@
TEST_P(ImportWrappedKeyTest, EcKey) {
int vsr_api_level = get_vsr_api_level();
- if (vsr_api_level < __ANDROID_API_V__) {
+ if (vsr_api_level < AVendorSupport_getVendorApiLevelOf(__ANDROID_API_V__)) {
/*
* The Keymaster v4 spec introduced `importWrappedKey()` and did not restrict it to
* just symmetric keys. However, the import of asymmetric wrapped keys was not tested
@@ -8962,7 +8964,7 @@
// @VsrTest = GMS-VSR-3.10-019
TEST_P(VsrRequirementTest, Vsr16Test) {
int vsr_api_level = get_vsr_api_level();
- if (vsr_api_level <= __ANDROID_API_V__) {
+ if (vsr_api_level <= AVendorSupport_getVendorApiLevelOf(__ANDROID_API_V__)) {
GTEST_SKIP() << "Applies only to VSR API level > 35, this device is: " << vsr_api_level;
}
if (SecLevel() == SecurityLevel::STRONGBOX) {
diff --git a/security/keymint/aidl/vts/functional/SecureElementProvisioningTest.cpp b/security/keymint/aidl/vts/functional/SecureElementProvisioningTest.cpp
index f7639bf..1f09328 100644
--- a/security/keymint/aidl/vts/functional/SecureElementProvisioningTest.cpp
+++ b/security/keymint/aidl/vts/functional/SecureElementProvisioningTest.cpp
@@ -26,6 +26,7 @@
#include <cppbor_parse.h>
#include <keymaster/cppcose/cppcose.h>
#include <keymint_support/key_param_output.h>
+#include <vendorsupport/api_level.h>
#include "KeyMintAidlTestBase.h"
@@ -114,13 +115,13 @@
const auto& vbKey = rot->asArray()->get(pos++);
ASSERT_TRUE(vbKey);
ASSERT_TRUE(vbKey->asBstr());
- if (get_vsr_api_level() > __ANDROID_API_V__) {
+ if (get_vsr_api_level() > AVendorSupport_getVendorApiLevelOf(__ANDROID_API_V__)) {
// The Verified Boot key field should be exactly 32 bytes since it
// contains the SHA-256 hash of the key on locked devices or 32 bytes
// of zeroes on unlocked devices. This wasn't checked for earlier
// versions of the KeyMint HAL, so only only be strict for VSR-16+.
ASSERT_EQ(vbKey->asBstr()->value().size(), 32);
- } else if (get_vsr_api_level() == __ANDROID_API_V__) {
+ } else if (get_vsr_api_level() == AVendorSupport_getVendorApiLevelOf(__ANDROID_API_V__)) {
// The Verified Boot key field should be:
// - Exactly 32 bytes on locked devices since it should contain
// the SHA-256 hash of the key, or
diff --git a/wifi/aidl/default/aidl_struct_util.cpp b/wifi/aidl/default/aidl_struct_util.cpp
index 75e9bfe..0203874 100644
--- a/wifi/aidl/default/aidl_struct_util.cpp
+++ b/wifi/aidl/default/aidl_struct_util.cpp
@@ -1862,9 +1862,7 @@
legacy_request->ranging_auto_response = aidl_request.baseConfigs.rangingRequired
? legacy_hal::NAN_RANGING_AUTO_RESPONSE_ENABLE
: legacy_hal::NAN_RANGING_AUTO_RESPONSE_DISABLE;
- legacy_request->sdea_params.range_report = aidl_request.rangingResultsRequired
- ? legacy_hal::NAN_ENABLE_RANGE_REPORT
- : legacy_hal::NAN_DISABLE_RANGE_REPORT;
+ legacy_request->sdea_params.range_report = legacy_hal::NAN_DISABLE_RANGE_REPORT;
legacy_request->publish_type = convertAidlNanPublishTypeToLegacy(aidl_request.publishType);
legacy_request->tx_type = convertAidlNanTxTypeToLegacy(aidl_request.txType);
legacy_request->service_responder_policy = aidl_request.autoAcceptDataPathRequests
@@ -1993,17 +1991,6 @@
legacy_request->ranging_cfg.distance_ingress_mm =
aidl_request.baseConfigs.distanceIngressCm * 10;
legacy_request->ranging_cfg.distance_egress_mm = aidl_request.baseConfigs.distanceEgressCm * 10;
- legacy_request->ranging_cfg.rtt_burst_size = aidl_request.baseConfigs.rttBurstSize;
- legacy_request->ranging_cfg.preamble =
- convertAidlRttPreambleToLegacy(aidl_request.baseConfigs.preamble);
- if (aidl_request.baseConfigs.channelInfo.has_value()) {
- if (!convertAidlWifiChannelInfoToLegacy(aidl_request.baseConfigs.channelInfo.value(),
- &legacy_request->ranging_cfg.channel_info)) {
- LOG(ERROR) << "convertAidlNanSubscribeRequestToLegacy: "
- "Unable to convert aidl channel info to legacy";
- return false;
- }
- }
legacy_request->ranging_auto_response = aidl_request.baseConfigs.rangingRequired
? legacy_hal::NAN_RANGING_AUTO_RESPONSE_ENABLE
: legacy_hal::NAN_RANGING_AUTO_RESPONSE_DISABLE;
@@ -2312,9 +2299,10 @@
aidl_response->supportsPairing = legacy_response.is_pairing_supported;
aidl_response->supportsSetClusterId = legacy_response.is_set_cluster_id_supported;
aidl_response->supportsSuspension = legacy_response.is_suspension_supported;
- aidl_response->supportsPeriodicRanging = legacy_response.is_periodic_ranging_supported;
- aidl_response->maxSupportedBandwidth = convertLegacyRttBwToAidl(legacy_response.supported_bw);
- aidl_response->maxNumRxChainsSupported = legacy_response.num_rx_chains_supported;
+ // TODO: Retrieve values from the legacy HAL
+ aidl_response->supportsPeriodicRanging = false;
+ aidl_response->maxSupportedBandwidth = RttBw::BW_UNSPECIFIED;
+ aidl_response->maxNumRxChainsSupported = 2;
return true;
}
diff --git a/wifi/legacy_headers/include/hardware_legacy/wifi_nan.h b/wifi/legacy_headers/include/hardware_legacy/wifi_nan.h
index cd4e86d..37368af 100644
--- a/wifi/legacy_headers/include/hardware_legacy/wifi_nan.h
+++ b/wifi/legacy_headers/include/hardware_legacy/wifi_nan.h
@@ -477,9 +477,6 @@
bool is_pairing_supported;
bool is_set_cluster_id_supported;
bool is_suspension_supported;
- bool is_periodic_ranging_supported;
- wifi_rtt_bw supported_bw;
- u8 num_rx_chains_supported;
} NanCapabilities;
/*
@@ -750,12 +747,6 @@
u32 distance_ingress_mm;
/* Egress distance in millmilliimeters (optional) */
u32 distance_egress_mm;
- /* Number of FTM frames per burst */
- u32 rtt_burst_size;
- /* RTT Measurement Preamble */
- wifi_rtt_preamble preamble;
- /* Channel information */
- wifi_channel_info channel_info;
} NanRangingCfg;
/* NAN Ranging request's response */