Merge "Add defaults for current Identity AIDL API version" am: 9c21c70ffa am: 5585ee42c3
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2208758
Change-Id: I074b87e41f0bbbeb2f22f4b7d3488651e233f07f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/audio/aidl/Android.bp b/audio/aidl/Android.bp
index 820f7b4..d4c1e85 100644
--- a/audio/aidl/Android.bp
+++ b/audio/aidl/Android.bp
@@ -33,7 +33,7 @@
"android/hardware/audio/common/SourceMetadata.aidl",
],
imports: [
- "android.media.audio.common.types-V1",
+ "android.media.audio.common.types-V2",
],
stability: "vintf",
backend: {
@@ -59,12 +59,34 @@
versions_with_info: [
{
version: "1",
- imports: ["android.media.audio.common.types-V1"],
+ imports: ["android.media.audio.common.types-V2"],
},
+ // IMPORTANT: Update latest_android_hardware_audio_common every time you
+ // add the latest frozen version to versions_with_info
],
}
+// Note: This should always be one version ahead of the last frozen version
+latest_android_hardware_audio_common = "android.hardware.audio.common-V1"
+
+// Modules that depend on android.hardware.audio.common directly can include
+// the following cc_defaults to avoid explicitly managing dependency versions
+// across many scattered files.
+cc_defaults {
+ name: "latest_android_hardware_audio_common_cpp_static",
+ static_libs: [
+ latest_android_hardware_audio_common + "-cpp",
+ ],
+}
+
+cc_defaults {
+ name: "latest_android_hardware_audio_common_ndk_static",
+ static_libs: [
+ latest_android_hardware_audio_common + "-ndk",
+ ],
+}
+
aidl_interface {
name: "android.hardware.audio.core",
vendor_available: true,
@@ -80,10 +102,10 @@
"android/hardware/audio/core/StreamDescriptor.aidl",
],
imports: [
- "android.hardware.audio.common-V1",
"android.hardware.common-V2",
"android.hardware.common.fmq-V1",
- "android.media.audio.common.types-V1",
+ "android.hardware.audio.common-V1",
+ "android.media.audio.common.types-V2",
],
stability: "vintf",
backend: {
@@ -95,6 +117,30 @@
sdk_version: "module_current",
},
},
+ versions_with_info: [
+ // IMPORTANT: Update latest_android_hardware_audio_core every time you
+ // add the latest frozen version to versions_with_info
+ ],
+}
+
+// Note: This should always be one version ahead of the last frozen version
+latest_android_hardware_audio_core = "android.hardware.audio.core-V1"
+
+// Modules that depend on android.hardware.audio.core directly can include
+// the following cc_defaults to avoid explicitly managing dependency versions
+// across many scattered files.
+cc_defaults {
+ name: "latest_android_hardware_audio_core_ndk_shared",
+ shared_libs: [
+ latest_android_hardware_audio_core + "-ndk",
+ ],
+}
+
+cc_defaults {
+ name: "latest_android_hardware_audio_core_ndk_static",
+ static_libs: [
+ latest_android_hardware_audio_core + "-ndk",
+ ],
}
aidl_interface {
@@ -106,7 +152,7 @@
],
imports: [
"android.hardware.audio.common-V1",
- "android.media.audio.common.types-V1",
+ "android.media.audio.common.types-V2",
],
stability: "vintf",
backend: {
diff --git a/audio/aidl/default/Android.bp b/audio/aidl/default/Android.bp
index f536776..5d63347 100644
--- a/audio/aidl/default/Android.bp
+++ b/audio/aidl/default/Android.bp
@@ -18,8 +18,6 @@
"libfmq",
"libstagefright_foundation",
"libutils",
- "android.media.audio.common.types-V1-ndk",
- "android.hardware.audio.core-V1-ndk",
"android.hardware.common-V2-ndk",
"android.hardware.common.fmq-V1-ndk",
],
@@ -27,7 +25,11 @@
cc_library_static {
name: "libaudioserviceexampleimpl",
- defaults: ["aidlaudioservice_defaults"],
+ defaults: [
+ "aidlaudioservice_defaults",
+ "latest_android_media_audio_common_types_ndk_shared",
+ "latest_android_hardware_audio_core_ndk_shared",
+ ],
export_include_dirs: ["include"],
srcs: [
"Config.cpp",
@@ -45,7 +47,11 @@
relative_install_path: "hw",
init_rc: ["android.hardware.audio.service-aidl.example.rc"],
vintf_fragments: ["android.hardware.audio.service-aidl.xml"],
- defaults: ["aidlaudioservice_defaults"],
+ defaults: [
+ "aidlaudioservice_defaults",
+ "latest_android_media_audio_common_types_ndk_shared",
+ "latest_android_hardware_audio_core_ndk_shared",
+ ],
static_libs: [
"libaudioserviceexampleimpl",
],
@@ -54,11 +60,13 @@
cc_defaults {
name: "aidlaudioeffectservice_defaults",
+ defaults: [
+ "latest_android_media_audio_common_types_ndk_shared",
+ ],
vendor: true,
shared_libs: [
"libbase",
"libbinder_ndk",
- "android.media.audio.common.types-V1-ndk",
"android.hardware.audio.effect-V1-ndk",
],
cflags: [
diff --git a/audio/aidl/vts/Android.bp b/audio/aidl/vts/Android.bp
index 48aa273..6ea7cef 100644
--- a/audio/aidl/vts/Android.bp
+++ b/audio/aidl/vts/Android.bp
@@ -12,6 +12,9 @@
defaults: [
"VtsHalTargetTestDefaults",
"use_libaidlvintf_gtest_helper_static",
+ "latest_android_hardware_audio_common_ndk_static",
+ "latest_android_hardware_audio_core_ndk_static",
+ "latest_android_media_audio_common_types_ndk_static",
],
shared_libs: [
"libbinder_ndk",
@@ -19,11 +22,8 @@
"libfmq",
],
static_libs: [
- "android.hardware.audio.common-V1-ndk",
- "android.hardware.audio.core-V1-ndk",
"android.hardware.common-V2-ndk",
"android.hardware.common.fmq-V1-ndk",
- "android.media.audio.common.types-V1-ndk",
"libaudioaidlcommon",
],
cflags: [
@@ -45,6 +45,7 @@
cc_test {
name: "VtsHalAudioEffectTargetTest",
defaults: [
+ "latest_android_media_audio_common_types_ndk_static",
"VtsHalTargetTestDefaults",
"use_libaidlvintf_gtest_helper_static",
],
@@ -55,7 +56,6 @@
"libbinder_ndk",
],
static_libs: [
- "android.media.audio.common.types-V1-ndk",
"android.hardware.audio.effect-V1-ndk",
],
cflags: [
diff --git a/audio/common/all-versions/default/7.0/HidlUtils.cpp b/audio/common/all-versions/default/7.0/HidlUtils.cpp
index 0fd2947..f89c898 100644
--- a/audio/common/all-versions/default/7.0/HidlUtils.cpp
+++ b/audio/common/all-versions/default/7.0/HidlUtils.cpp
@@ -898,7 +898,7 @@
for (const auto& transport : transports) {
switch (transport.audioCapability.getDiscriminator()) {
case AudioTransport::AudioCapability::hidl_discriminator::profile:
- if (halPort->num_audio_profiles > AUDIO_PORT_MAX_AUDIO_PROFILES) {
+ if (halPort->num_audio_profiles >= AUDIO_PORT_MAX_AUDIO_PROFILES) {
ALOGE("%s, too many audio profiles", __func__);
result = BAD_VALUE;
break;
@@ -914,7 +914,8 @@
result);
break;
case AudioTransport::AudioCapability::hidl_discriminator::edid:
- if (halPort->num_extra_audio_descriptors > AUDIO_PORT_MAX_EXTRA_AUDIO_DESCRIPTORS) {
+ if (halPort->num_extra_audio_descriptors >=
+ AUDIO_PORT_MAX_EXTRA_AUDIO_DESCRIPTORS) {
ALOGE("%s, too many extra audio descriptors", __func__);
result = BAD_VALUE;
break;
diff --git a/audio/common/all-versions/default/tests/hidlutils_tests.cpp b/audio/common/all-versions/default/tests/hidlutils_tests.cpp
index e5ed844..c295aaa 100644
--- a/audio/common/all-versions/default/tests/hidlutils_tests.cpp
+++ b/audio/common/all-versions/default/tests/hidlutils_tests.cpp
@@ -955,6 +955,18 @@
EXPECT_TRUE(audio_port_configs_are_equal(&halConfig, &halConfigBack));
}
+static AudioProfile generateValidAudioProfile() {
+ AudioProfile profile;
+ profile.format = toString(xsd::AudioFormat::AUDIO_FORMAT_PCM_16_BIT);
+ profile.sampleRates.resize(2);
+ profile.sampleRates[0] = 44100;
+ profile.sampleRates[1] = 48000;
+ profile.channelMasks.resize(2);
+ profile.channelMasks[0] = toString(xsd::AudioChannelMask::AUDIO_CHANNEL_OUT_MONO);
+ profile.channelMasks[1] = toString(xsd::AudioChannelMask::AUDIO_CHANNEL_OUT_STEREO);
+ return profile;
+}
+
TEST(HidlUtils, ConvertInvalidAudioTransports) {
hidl_vec<AudioTransport> invalid;
struct audio_port_v7 halInvalid = {};
@@ -974,20 +986,32 @@
invalid[0].audioCapability.edid(hidl_vec<uint8_t>(EXTRA_AUDIO_DESCRIPTOR_SIZE + 1));
invalid[1].encapsulationType = "random string";
EXPECT_EQ(BAD_VALUE, HidlUtils::audioTransportsToHal(invalid, &halInvalid));
+
+ // The size of audio profile must not be greater than the maximum value.
+ invalid.resize(0);
+ invalid.resize(AUDIO_PORT_MAX_AUDIO_PROFILES + 1);
+ for (size_t i = 0; i < invalid.size(); ++i) {
+ invalid[i].audioCapability.profile(generateValidAudioProfile());
+ invalid[i].encapsulationType =
+ toString(xsd::AudioEncapsulationType::AUDIO_ENCAPSULATION_TYPE_NONE);
+ }
+ EXPECT_EQ(BAD_VALUE, HidlUtils::audioTransportsToHal(invalid, &halInvalid));
+
+ // The size of extra audio descriptors must not be greater than the maximum value.
+ invalid.resize(0);
+ invalid.resize(AUDIO_PORT_MAX_EXTRA_AUDIO_DESCRIPTORS + 1);
+ for (size_t i = 0; i < invalid.size(); ++i) {
+ invalid[i].audioCapability.edid({0x11, 0x06, 0x01});
+ invalid[i].encapsulationType =
+ toString(xsd::AudioEncapsulationType::AUDIO_ENCAPSULATION_TYPE_IEC61937);
+ }
+ EXPECT_EQ(BAD_VALUE, HidlUtils::audioTransportsToHal(invalid, &halInvalid));
}
TEST(HidlUtils, ConvertAudioTransports) {
hidl_vec<AudioTransport> transports;
transports.resize(2);
- AudioProfile profile;
- profile.format = toString(xsd::AudioFormat::AUDIO_FORMAT_PCM_16_BIT);
- profile.sampleRates.resize(2);
- profile.sampleRates[0] = 44100;
- profile.sampleRates[1] = 48000;
- profile.channelMasks.resize(2);
- profile.channelMasks[0] = toString(xsd::AudioChannelMask::AUDIO_CHANNEL_OUT_MONO);
- profile.channelMasks[1] = toString(xsd::AudioChannelMask::AUDIO_CHANNEL_OUT_STEREO);
- transports[0].audioCapability.profile(profile);
+ transports[0].audioCapability.profile(generateValidAudioProfile());
hidl_vec<uint8_t> shortAudioDescriptor({0x11, 0x06, 0x01});
transports[0].encapsulationType =
toString(xsd::AudioEncapsulationType::AUDIO_ENCAPSULATION_TYPE_NONE);
diff --git a/audio/core/all-versions/vts/functional/Android.bp b/audio/core/all-versions/vts/functional/Android.bp
index daed7a8..f51a8d0 100644
--- a/audio/core/all-versions/vts/functional/Android.bp
+++ b/audio/core/all-versions/vts/functional/Android.bp
@@ -49,7 +49,10 @@
cc_test {
name: "VtsHalAudioV2_0TargetTest",
- defaults: ["VtsHalAudioTargetTest_defaults"],
+ defaults: [
+ "VtsHalAudioTargetTest_defaults",
+ "latest_android_media_audio_common_types_cpp_static",
+ ],
tidy_timeout_srcs: [
"2.0/AudioPrimaryHidlHalTest.cpp",
],
@@ -62,7 +65,6 @@
"libmedia_helper",
"android.hardware.audio@2.0",
"android.hardware.audio.common@2.0",
- "android.media.audio.common.types-V1-cpp",
],
cflags: [
"-DMAJOR_VERSION=2",
@@ -79,7 +81,10 @@
cc_test {
name: "VtsHalAudioV4_0TargetTest",
- defaults: ["VtsHalAudioTargetTest_defaults"],
+ defaults: [
+ "VtsHalAudioTargetTest_defaults",
+ "latest_android_media_audio_common_types_cpp_static",
+ ],
tidy_timeout_srcs: [
"4.0/AudioPrimaryHidlHalTest.cpp",
],
@@ -92,7 +97,6 @@
"libmedia_helper",
"android.hardware.audio@4.0",
"android.hardware.audio.common@4.0",
- "android.media.audio.common.types-V1-cpp",
],
cflags: [
"-DMAJOR_VERSION=4",
@@ -109,7 +113,10 @@
cc_test {
name: "VtsHalAudioV5_0TargetTest",
- defaults: ["VtsHalAudioTargetTest_defaults"],
+ defaults: [
+ "VtsHalAudioTargetTest_defaults",
+ "latest_android_media_audio_common_types_cpp_static",
+ ],
srcs: [
"5.0/AudioPrimaryHidlHalTest.cpp",
],
@@ -119,7 +126,6 @@
"libmedia_helper",
"android.hardware.audio@5.0",
"android.hardware.audio.common@5.0",
- "android.media.audio.common.types-V1-cpp",
],
cflags: [
"-DMAJOR_VERSION=5",
@@ -136,7 +142,10 @@
cc_test {
name: "VtsHalAudioV6_0TargetTest",
- defaults: ["VtsHalAudioTargetTest_defaults"],
+ defaults: [
+ "VtsHalAudioTargetTest_defaults",
+ "latest_android_media_audio_common_types_cpp_static",
+ ],
tidy_timeout_srcs: [
"6.0/AudioPrimaryHidlHalTest.cpp",
],
@@ -150,7 +159,6 @@
"libmedia_helper",
"android.hardware.audio@6.0",
"android.hardware.audio.common@6.0",
- "android.media.audio.common.types-V1-cpp",
],
cflags: [
"-DMAJOR_VERSION=6",
@@ -244,7 +252,10 @@
cc_test {
name: "HalAudioV6_0GeneratorTest",
- defaults: ["VtsHalAudioTargetTest_defaults"],
+ defaults: [
+ "VtsHalAudioTargetTest_defaults",
+ "latest_android_media_audio_common_types_cpp_static",
+ ],
srcs: [
"6.0/Generators.cpp",
"tests/generators_tests.cpp",
@@ -252,7 +263,6 @@
static_libs: [
"android.hardware.audio@6.0",
"android.hardware.audio.common@6.0",
- "android.media.audio.common.types-V1-cpp",
"libaudiofoundation",
"libaudiopolicycomponents",
"libmedia_helper",
diff --git a/automotive/audiocontrol/aidl/Android.bp b/automotive/audiocontrol/aidl/Android.bp
index e5f7a4f..03dab08 100644
--- a/automotive/audiocontrol/aidl/Android.bp
+++ b/automotive/audiocontrol/aidl/Android.bp
@@ -15,7 +15,7 @@
srcs: ["android/hardware/automotive/audiocontrol/*.aidl"],
imports: [
"android.hardware.audio.common-V1",
- "android.media.audio.common.types-V1",
+ "android.media.audio.common.types-V2",
],
stability: "vintf",
backend: {
@@ -33,14 +33,14 @@
version: "1",
imports: [
"android.hardware.audio.common-V1",
- "android.media.audio.common.types-V1",
+ "android.media.audio.common.types-V2",
],
},
{
version: "2",
imports: [
"android.hardware.audio.common-V1",
- "android.media.audio.common.types-V1",
+ "android.media.audio.common.types-V2",
],
},
diff --git a/automotive/audiocontrol/aidl/vts/Android.bp b/automotive/audiocontrol/aidl/vts/Android.bp
index 3d4be48..edac160 100644
--- a/automotive/audiocontrol/aidl/vts/Android.bp
+++ b/automotive/audiocontrol/aidl/vts/Android.bp
@@ -24,6 +24,8 @@
cc_test {
name: "VtsAidlHalAudioControlTest",
defaults: [
+ "latest_android_media_audio_common_types_cpp_static",
+ "latest_android_hardware_audio_common_cpp_static",
"VtsHalTargetTestDefaults",
"use_libaidlvintf_gtest_helper_static",
],
@@ -38,8 +40,6 @@
],
static_libs: [
"android.hardware.automotive.audiocontrol-V2-cpp",
- "android.hardware.audio.common-V1-cpp",
- "android.media.audio.common.types-V1-cpp",
"libgmock",
],
test_suites: [
diff --git a/soundtrigger/aidl/Android.bp b/soundtrigger/aidl/Android.bp
index 0658519..27d43d3 100644
--- a/soundtrigger/aidl/Android.bp
+++ b/soundtrigger/aidl/Android.bp
@@ -39,6 +39,20 @@
version: "1",
imports: ["android.media.soundtrigger.types-V1"],
},
+ // IMPORTANT: Update latest_android_hardware_soundtrigger3 every time
+ // you add the latest frozen version to versions_with_info
],
+}
+// Note: This should always be one version ahead of the last frozen version
+latest_android_hardware_soundtrigger3 = "android.hardware.soundtrigger3-V1"
+
+// Modules that depend on android.hardware.soundtrigger3 directly can include
+// the following java_defaults to avoid explicitly managing dependency versions
+// across many scattered files.
+java_defaults {
+ name: "latest_android_hardware_soundtrigger3_java_static",
+ static_libs: [
+ latest_android_hardware_soundtrigger3 + "-java",
+ ],
}