Merge "Add min_sdk_version to 3 aidl interfaces" into main
diff --git a/audio/aidl/vts/VtsHalAudioEffectTargetTestTemplate.xml b/audio/aidl/vts/VtsHalAudioEffectTargetTestTemplate.xml
index 4170b4c..c92e852 100644
--- a/audio/aidl/vts/VtsHalAudioEffectTargetTestTemplate.xml
+++ b/audio/aidl/vts/VtsHalAudioEffectTargetTestTemplate.xml
@@ -33,6 +33,6 @@
<test class="com.android.tradefed.testtype.GTest" >
<option name="native-test-device-path" value="/data/local/tmp" />
<option name="module-name" value="{MODULE}" />
- <option name="native-test-timeout" value="30m" />
+ <option name="native-test-timeout" value="10m" />
</test>
</configuration>
diff --git a/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp b/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp
index ddb920d..98f7d79 100644
--- a/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp
+++ b/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp
@@ -871,12 +871,35 @@
ratio = inputOverThreshold / outputOverThreshold;
}
- void setLimiterParamsAndProcess(std::vector<float>& input, std::vector<float>& output) {
+ void setLimiterParamsAndProcess(std::vector<float>& input, std::vector<float>& output,
+ bool isEngineLimiterEnabled = true) {
+ mEngineConfigPreset.limiterInUse = isEngineLimiterEnabled;
addEngineConfig(mEngineConfigPreset);
addLimiterConfig(mLimiterConfigList);
EXPECT_NO_FATAL_FAILURE(setParamsAndProcess(input, output));
}
+ void testEnableDisableConfiguration(bool isLimiterEnabled, bool isEngineLimiterEnabled) {
+ cleanUpLimiterConfig();
+ std::vector<float> output(mInput.size());
+ for (int i = 0; i < mChannelCount; i++) {
+ // Set non-default values
+ fillLimiterConfig(mLimiterConfigList, i, isLimiterEnabled, kDefaultLinkerGroup,
+ 5 /*attack time*/, 5 /*release time*/, 10 /*ratio*/,
+ -20 /*threshold*/, 5 /*postgain*/);
+ }
+ ASSERT_NO_FATAL_FAILURE(setLimiterParamsAndProcess(mInput, output, isEngineLimiterEnabled));
+ float outputdB = calculateDb(output, kStartIndex);
+ if (isAllParamsValid()) {
+ if (isLimiterEnabled && isEngineLimiterEnabled) {
+ EXPECT_GT(std::abs(mInputDb - outputdB), kMinDifferenceDb)
+ << "Input level: " << mInputDb << " Output level: " << outputdB;
+ } else {
+ EXPECT_NEAR(mInputDb, outputdB, kLimiterTestToleranceDb);
+ }
+ }
+ }
+
void cleanUpLimiterConfig() {
CleanUp();
mLimiterConfigList.clear();
@@ -888,6 +911,8 @@
static constexpr float kDefaultThreshold = -10;
static constexpr float kDefaultPostGain = 0;
static constexpr float kLimiterTestToleranceDb = 0.05;
+ static constexpr float kMinDifferenceDb = 5;
+ const std::vector<bool> kEnableValues = {true, false, true};
std::vector<DynamicsProcessing::LimiterConfig> mLimiterConfigList;
int mBufferSize;
};
@@ -969,25 +994,16 @@
}
TEST_P(DynamicsProcessingLimiterConfigDataTest, LimiterEnableDisable) {
- std::vector<bool> limiterEnableValues = {false, true};
- std::vector<float> output(mInput.size());
- for (bool isEnabled : limiterEnableValues) {
- cleanUpLimiterConfig();
- for (int i = 0; i < mChannelCount; i++) {
- // Set non-default values
- fillLimiterConfig(mLimiterConfigList, i, isEnabled, kDefaultLinkerGroup,
- 5 /*attack time*/, 5 /*release time*/, 10 /*ratio*/,
- -10 /*threshold*/, 5 /*postgain*/);
- }
- ASSERT_NO_FATAL_FAILURE(setLimiterParamsAndProcess(mInput, output));
- if (!isAllParamsValid()) {
- continue;
- }
- if (isEnabled) {
- EXPECT_NE(mInputDb, calculateDb(output, kStartIndex));
- } else {
- EXPECT_NEAR(mInputDb, calculateDb(output, kStartIndex), kLimiterTestToleranceDb);
- }
+ for (bool isLimiterEnabled : kEnableValues) {
+ ASSERT_NO_FATAL_FAILURE(
+ testEnableDisableConfiguration(isLimiterEnabled, true /*Engine Enabled*/));
+ }
+}
+
+TEST_P(DynamicsProcessingLimiterConfigDataTest, LimiterEnableDisableViaEngine) {
+ for (bool isEngineLimiterEnabled : kEnableValues) {
+ ASSERT_NO_FATAL_FAILURE(
+ testEnableDisableConfiguration(true /*Limiter Enabled*/, isEngineLimiterEnabled));
}
}
@@ -1049,7 +1065,6 @@
}
}
- static constexpr float kMinDifferenceDb = 5;
const std::vector<std::pair<float, float>> kRatioThresholdPairValues = {{2, -10}, {5, -20}};
};
diff --git a/security/see/authmgr/aidl/README.md b/security/see/authmgr/aidl/README.md
index 97b2b1d..d7bb5e4 100644
--- a/security/see/authmgr/aidl/README.md
+++ b/security/see/authmgr/aidl/README.md
@@ -16,6 +16,9 @@
requirements that are specific to Android release versions.
### Android 16
-If implementing `IAuthMgrAuthorization` in Android 16 only one AuthMgr Backend is
+- If implementing `IAuthMgrAuthorization` in Android 16 only one AuthMgr Backend is
supported and dynamic service discovery is not supported. The AuthMgr Backend
-service must be exposed on secure partition ID 0x8001 over VSOCK port 1.
\ No newline at end of file
+service must be exposed on secure partition ID 0x8001 over VSOCK port 1.
+
+- AuthMgr Front Ends must implement the "android.16" profile as described in the
+[Android Profile for DICE](https://pigweed.googlesource.com/open-dice/+/HEAD/docs/android.md#versions)
\ No newline at end of file
diff --git a/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp b/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp
index f659bf6..1e6d555 100644
--- a/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp
+++ b/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp
@@ -21,6 +21,7 @@
#include <aidl/Gtest.h>
#include <aidl/Vintf.h>
#include <aidl/android/hardware/wifi/BnWifi.h>
+#include <aidl/android/hardware/wifi/BnWifiStaIfaceEventCallback.h>
#include <android/binder_manager.h>
#include <android/binder_status.h>
#include <binder/IServiceManager.h>
@@ -29,6 +30,7 @@
#include "wifi_aidl_test_utils.h"
+using aidl::android::hardware::wifi::BnWifiStaIfaceEventCallback;
using aidl::android::hardware::wifi::CachedScanData;
using aidl::android::hardware::wifi::IWifi;
using aidl::android::hardware::wifi::IWifiStaIface;
@@ -379,6 +381,66 @@
}
}
+class WifiStaIfaceEventCallback : public BnWifiStaIfaceEventCallback {
+ public:
+ WifiStaIfaceEventCallback() = default;
+
+ ::ndk::ScopedAStatus onBackgroundFullScanResult(
+ int32_t /* in_cmdId */, int32_t /* in_bucketsScanned */,
+ const ::aidl::android::hardware::wifi::StaScanResult& /* in_result */) override {
+ return ndk::ScopedAStatus::ok();
+ }
+ ::ndk::ScopedAStatus onBackgroundScanFailure(int32_t /* in_cmdId */) override {
+ return ndk::ScopedAStatus::ok();
+ }
+ ::ndk::ScopedAStatus onBackgroundScanResults(
+ int32_t /* in_cmdId */,
+ const std::vector<::aidl::android::hardware::wifi::StaScanData>& /* in_scanDatas */)
+ override {
+ return ndk::ScopedAStatus::ok();
+ }
+ ::ndk::ScopedAStatus onRssiThresholdBreached(int32_t /* in_cmdId */,
+ const std::array<uint8_t, 6>& /* in_currBssid */,
+ int32_t /* in_currRssi */) override {
+ return ndk::ScopedAStatus::ok();
+ }
+ ::ndk::ScopedAStatus onTwtFailure(int32_t /*in_cmdId*/,
+ ::aidl::android::hardware::wifi::IWifiStaIfaceEventCallback::
+ TwtErrorCode /* in_error */) override {
+ return ndk::ScopedAStatus::ok();
+ }
+ ::ndk::ScopedAStatus onTwtSessionCreate(
+ int32_t /* in_cmdId */,
+ const ::aidl::android::hardware::wifi::TwtSession& /* in_twtSession */) override {
+ return ndk::ScopedAStatus::ok();
+ }
+ ::ndk::ScopedAStatus onTwtSessionUpdate(
+ int32_t /* in_cmdId */,
+ const ::aidl::android::hardware::wifi::TwtSession& /* in_twtSession */) override {
+ return ndk::ScopedAStatus::ok();
+ }
+ ::ndk::ScopedAStatus onTwtSessionTeardown(
+ int32_t /* in_cmdId */, int32_t /* in_twtSessionId */,
+ ::aidl::android::hardware::wifi::IWifiStaIfaceEventCallback::
+ TwtTeardownReasonCode /* in_reasonCode */) override {
+ return ndk::ScopedAStatus::ok();
+ }
+ ::ndk::ScopedAStatus onTwtSessionStats(
+ int32_t /* in_cmdId */, int32_t /* in_twtSessionId */,
+ const ::aidl::android::hardware::wifi::TwtSessionStats& /* in_twtSessionStats */)
+ override {
+ return ndk::ScopedAStatus::ok();
+ }
+ ::ndk::ScopedAStatus onTwtSessionSuspend(int32_t /* in_cmdId */,
+ int32_t /* in_twtSessionId */) override {
+ return ndk::ScopedAStatus::ok();
+ }
+ ::ndk::ScopedAStatus onTwtSessionResume(int32_t /* in_cmdId */,
+ int32_t /* in_twtSessionId */) override {
+ return ndk::ScopedAStatus::ok();
+ }
+};
+
TEST_P(WifiStaIfaceAidlTest, TwtGetCapabilities) {
if (interface_version_ < 2) {
GTEST_SKIP() << "TwtGetCapabilities is available as of sta_iface V2";
@@ -414,6 +476,10 @@
if (!twt_capabilities.isTwtRequesterSupported) {
GTEST_SKIP() << "TWT is not supported";
}
+ const std::shared_ptr<WifiStaIfaceEventCallback> callback =
+ ndk::SharedRefBase::make<WifiStaIfaceEventCallback>();
+ ASSERT_NE(callback, nullptr);
+ EXPECT_TRUE(wifi_sta_iface_->registerEventCallback(callback).isOk());
TwtRequest twtRequest;
twtRequest.mloLinkId = 0;