Merge changes I4cbf7352,I8f8ee67b,I784a8fd1 into main
* changes:
Update doc for GEAR_SELECTION.
Update doc for IMPACT_DETECTED.
Update doc for TIRE_PRESSURE.
diff --git a/Android.bp b/Android.bp
index 68115aa..baf3291 100644
--- a/Android.bp
+++ b/Android.bp
@@ -86,9 +86,3 @@
"VtsHalHidlTargetTestBase",
],
}
-
-dirgroup {
- name: "trusty_dirgroup_hardware_interfaces",
- dirs: ["."],
- visibility: ["//trusty/vendor/google/aosp/scripts"],
-}
diff --git a/audio/aidl/Android.bp b/audio/aidl/Android.bp
index 1e6df46..0f2fe99 100644
--- a/audio/aidl/Android.bp
+++ b/audio/aidl/Android.bp
@@ -228,6 +228,13 @@
],
}
+rust_defaults {
+ name: "latest_android_hardware_audio_core_rust",
+ rustlibs: [
+ latest_android_hardware_audio_core + "-rust",
+ ],
+}
+
// Used for the standalone sounddose HAL
aidl_interface {
name: "android.hardware.audio.core.sounddose",
diff --git a/audio/aidl/android/hardware/audio/core/stream-out-async-sm.gv b/audio/aidl/android/hardware/audio/core/stream-out-async-sm.gv
index 56b7926..e2da90d 100644
--- a/audio/aidl/android/hardware/audio/core/stream-out-async-sm.gv
+++ b/audio/aidl/android/hardware/audio/core/stream-out-async-sm.gv
@@ -45,6 +45,8 @@
PAUSED -> ACTIVE [label="start"]; // consumer -> active
PAUSED -> IDLE [label="flush"]; // producer -> passive, buffer is cleared
DRAINING -> IDLE [label="←IStreamCallback.onDrainReady"];
+ DRAINING -> DRAINING [label="←IStreamCallback.onDrainReady"]; // allowed for `DRAIN_EARLY_NOTIFY`
+ DRAINING -> IDLE [label="<empty buffer>"]; // allowed for `DRAIN_EARLY_NOTIFY`
DRAINING -> TRANSFERRING [label="burst"]; // producer -> active
DRAINING -> ACTIVE [label="burst"]; // full write
DRAINING -> DRAIN_PAUSED [label="pause"]; // consumer -> passive (not consuming)
diff --git a/audio/aidl/default/Android.bp b/audio/aidl/default/Android.bp
index 73d7626..967d0b9 100644
--- a/audio/aidl/default/Android.bp
+++ b/audio/aidl/default/Android.bp
@@ -200,6 +200,47 @@
test_suites: ["general-tests"],
}
+cc_test {
+ name: "audio_alsa_utils_tests",
+ vendor_available: true,
+ defaults: [
+ "latest_android_media_audio_common_types_ndk_static",
+ "latest_android_hardware_audio_core_ndk_static",
+ ],
+ static_libs: [
+ "libalsautilsv2",
+ "libtinyalsav2",
+ ],
+ shared_libs: [
+ "libaudio_aidl_conversion_common_ndk",
+ "libaudioaidlcommon",
+ "libaudioutils",
+ "libbase",
+ "libbinder_ndk",
+ "libcutils",
+ "libfmq",
+ "libmedia_helper",
+ "libstagefright_foundation",
+ "libutils",
+ ],
+ header_libs: [
+ "libaudio_system_headers",
+ "libaudioaidl_headers",
+ ],
+ srcs: [
+ "alsa/Utils.cpp",
+ "tests/AlsaUtilsTest.cpp",
+ ],
+ cflags: [
+ "-Wall",
+ "-Wextra",
+ "-Werror",
+ "-Wthread-safety",
+ "-DBACKEND_NDK",
+ ],
+ test_suites: ["general-tests"],
+}
+
cc_defaults {
name: "aidlaudioeffectservice_defaults",
defaults: [
diff --git a/audio/aidl/default/Module.cpp b/audio/aidl/default/Module.cpp
index 51b6085..e96cf81 100644
--- a/audio/aidl/default/Module.cpp
+++ b/audio/aidl/default/Module.cpp
@@ -207,9 +207,9 @@
return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
}
const auto& flags = portConfigIt->flags.value();
- StreamContext::DebugParameters params{mDebug.streamTransientStateDelayMs,
- mVendorDebug.forceTransientBurst,
- mVendorDebug.forceSynchronousDrain};
+ StreamContext::DebugParameters params{
+ mDebug.streamTransientStateDelayMs, mVendorDebug.forceTransientBurst,
+ mVendorDebug.forceSynchronousDrain, mVendorDebug.forceDrainToDraining};
std::unique_ptr<StreamContext::DataMQ> dataMQ = nullptr;
std::shared_ptr<IStreamCallback> streamAsyncCallback = nullptr;
std::shared_ptr<ISoundDose> soundDose;
@@ -1524,6 +1524,7 @@
const std::string Module::VendorDebug::kForceTransientBurstName = "aosp.forceTransientBurst";
const std::string Module::VendorDebug::kForceSynchronousDrainName = "aosp.forceSynchronousDrain";
+const std::string Module::VendorDebug::kForceDrainToDrainingName = "aosp.forceDrainToDraining";
ndk::ScopedAStatus Module::getVendorParameters(const std::vector<std::string>& in_ids,
std::vector<VendorParameter>* _aidl_return) {
@@ -1538,6 +1539,10 @@
VendorParameter forceSynchronousDrain{.id = id};
forceSynchronousDrain.ext.setParcelable(Boolean{mVendorDebug.forceSynchronousDrain});
_aidl_return->push_back(std::move(forceSynchronousDrain));
+ } else if (id == VendorDebug::kForceDrainToDrainingName) {
+ VendorParameter forceDrainToDraining{.id = id};
+ forceDrainToDraining.ext.setParcelable(Boolean{mVendorDebug.forceDrainToDraining});
+ _aidl_return->push_back(std::move(forceDrainToDraining));
} else {
allParametersKnown = false;
LOG(VERBOSE) << __func__ << ": " << mType << ": unrecognized parameter \"" << id << "\"";
@@ -1578,6 +1583,10 @@
if (!extractParameter<Boolean>(p, &mVendorDebug.forceSynchronousDrain)) {
return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
}
+ } else if (p.id == VendorDebug::kForceDrainToDrainingName) {
+ if (!extractParameter<Boolean>(p, &mVendorDebug.forceDrainToDraining)) {
+ return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
+ }
} else {
allParametersKnown = false;
LOG(VERBOSE) << __func__ << ": " << mType << ": unrecognized parameter \"" << p.id
diff --git a/audio/aidl/default/Stream.cpp b/audio/aidl/default/Stream.cpp
index 3d7f30c..4525f6a 100644
--- a/audio/aidl/default/Stream.cpp
+++ b/audio/aidl/default/Stream.cpp
@@ -382,8 +382,20 @@
const std::string StreamOutWorkerLogic::kThreadName = "writer";
StreamOutWorkerLogic::Status StreamOutWorkerLogic::cycle() {
- if (mState == StreamDescriptor::State::DRAINING ||
- mState == StreamDescriptor::State::TRANSFERRING) {
+ if (mState == StreamDescriptor::State::DRAINING && mContext->getForceDrainToDraining() &&
+ mOnDrainReadyStatus == OnDrainReadyStatus::UNSENT) {
+ std::shared_ptr<IStreamCallback> asyncCallback = mContext->getAsyncCallback();
+ if (asyncCallback != nullptr) {
+ ndk::ScopedAStatus status = asyncCallback->onDrainReady();
+ if (!status.isOk()) {
+ LOG(ERROR) << __func__ << ": error from onDrainReady: " << status;
+ }
+ // This sets the timeout for moving into IDLE on next iterations.
+ switchToTransientState(StreamDescriptor::State::DRAINING);
+ mOnDrainReadyStatus = OnDrainReadyStatus::SENT;
+ }
+ } else if (mState == StreamDescriptor::State::DRAINING ||
+ mState == StreamDescriptor::State::TRANSFERRING) {
if (auto stateDurationMs = std::chrono::duration_cast<std::chrono::milliseconds>(
std::chrono::steady_clock::now() - mTransientStateStart);
stateDurationMs >= mTransientStateDelayMs) {
@@ -396,9 +408,12 @@
// drain or transfer completion. In the stub, we switch unconditionally.
if (mState == StreamDescriptor::State::DRAINING) {
mState = StreamDescriptor::State::IDLE;
- ndk::ScopedAStatus status = asyncCallback->onDrainReady();
- if (!status.isOk()) {
- LOG(ERROR) << __func__ << ": error from onDrainReady: " << status;
+ if (mOnDrainReadyStatus != OnDrainReadyStatus::SENT) {
+ ndk::ScopedAStatus status = asyncCallback->onDrainReady();
+ if (!status.isOk()) {
+ LOG(ERROR) << __func__ << ": error from onDrainReady: " << status;
+ }
+ mOnDrainReadyStatus = OnDrainReadyStatus::SENT;
}
} else {
mState = StreamDescriptor::State::ACTIVE;
@@ -537,6 +552,10 @@
mState = StreamDescriptor::State::IDLE;
} else {
switchToTransientState(StreamDescriptor::State::DRAINING);
+ mOnDrainReadyStatus =
+ mode == StreamDescriptor::DrainMode::DRAIN_EARLY_NOTIFY
+ ? OnDrainReadyStatus::UNSENT
+ : OnDrainReadyStatus::IGNORE;
}
} else {
LOG(ERROR) << __func__ << ": drain failed: " << status;
diff --git a/audio/aidl/default/alsa/Utils.cpp b/audio/aidl/default/alsa/Utils.cpp
index 10374f2..77e4f65 100644
--- a/audio/aidl/default/alsa/Utils.cpp
+++ b/audio/aidl/default/alsa/Utils.cpp
@@ -39,6 +39,8 @@
namespace aidl::android::hardware::audio::core::alsa {
+const float kUnityGainFloat = 1.0f;
+
DeviceProxy::DeviceProxy() : mProfile(nullptr), mProxy(nullptr, alsaProxyDeleter) {}
DeviceProxy::DeviceProxy(const DeviceProfile& deviceProfile)
@@ -140,7 +142,6 @@
const AudioFormatDescToPcmFormatMap& getAudioFormatDescriptorToPcmFormatMap() {
static const AudioFormatDescToPcmFormatMap formatDescToPcmFormatMap = {
- {make_AudioFormatDescription(PcmType::UINT_8_BIT), PCM_FORMAT_S8},
{make_AudioFormatDescription(PcmType::INT_16_BIT), PCM_FORMAT_S16_LE},
{make_AudioFormatDescription(PcmType::FIXED_Q_8_24), PCM_FORMAT_S24_LE},
{make_AudioFormatDescription(PcmType::INT_24_BIT), PCM_FORMAT_S24_3LE},
@@ -165,6 +166,92 @@
return pcmFormatToFormatDescMap;
}
+void applyGainToInt16Buffer(void* buffer, const size_t bufferSizeBytes, const float gain,
+ int channelCount) {
+ const uint16_t unityGainQ4_12 = u4_12_from_float(kUnityGainFloat);
+ const uint16_t vl = u4_12_from_float(gain);
+ const uint32_t vrl = (vl << 16) | vl;
+ int numFrames = 0;
+ if (channelCount == 2) {
+ numFrames = bufferSizeBytes / sizeof(uint32_t);
+ if (numFrames == 0) {
+ return;
+ }
+ uint32_t* intBuffer = (uint32_t*)buffer;
+ if (CC_UNLIKELY(vl > unityGainQ4_12)) {
+ do {
+ int32_t l = mulRL(1, *intBuffer, vrl) >> 12;
+ int32_t r = mulRL(0, *intBuffer, vrl) >> 12;
+ l = clamp16(l);
+ r = clamp16(r);
+ *intBuffer++ = (r << 16) | (l & 0xFFFF);
+ } while (--numFrames);
+ } else {
+ do {
+ int32_t l = mulRL(1, *intBuffer, vrl) >> 12;
+ int32_t r = mulRL(0, *intBuffer, vrl) >> 12;
+ *intBuffer++ = (r << 16) | (l & 0xFFFF);
+ } while (--numFrames);
+ }
+ } else {
+ numFrames = bufferSizeBytes / sizeof(uint16_t);
+ if (numFrames == 0) {
+ return;
+ }
+ int16_t* intBuffer = (int16_t*)buffer;
+ if (CC_UNLIKELY(vl > unityGainQ4_12)) {
+ do {
+ int32_t mono = mul(*intBuffer, static_cast<int16_t>(vl)) >> 12;
+ *intBuffer++ = clamp16(mono);
+ } while (--numFrames);
+ } else {
+ do {
+ int32_t mono = mul(*intBuffer, static_cast<int16_t>(vl)) >> 12;
+ *intBuffer++ = static_cast<int16_t>(mono & 0xFFFF);
+ } while (--numFrames);
+ }
+ }
+}
+
+void applyGainToInt32Buffer(int32_t* typedBuffer, const size_t bufferSizeBytes, const float gain) {
+ int numSamples = bufferSizeBytes / sizeof(int32_t);
+ if (numSamples == 0) {
+ return;
+ }
+ if (CC_UNLIKELY(gain > kUnityGainFloat)) {
+ do {
+ float multiplied = (*typedBuffer) * gain;
+ if (multiplied > INT32_MAX) {
+ *typedBuffer++ = INT32_MAX;
+ } else if (multiplied < INT32_MIN) {
+ *typedBuffer++ = INT32_MIN;
+ } else {
+ *typedBuffer++ = multiplied;
+ }
+ } while (--numSamples);
+ } else {
+ do {
+ *typedBuffer++ = (*typedBuffer) * gain;
+ } while (--numSamples);
+ }
+}
+
+void applyGainToFloatBuffer(float* floatBuffer, const size_t bufferSizeBytes, const float gain) {
+ int numSamples = bufferSizeBytes / sizeof(float);
+ if (numSamples == 0) {
+ return;
+ }
+ if (CC_UNLIKELY(gain > kUnityGainFloat)) {
+ do {
+ *floatBuffer++ = std::clamp((*floatBuffer) * gain, -kUnityGainFloat, kUnityGainFloat);
+ } while (--numSamples);
+ } else {
+ do {
+ *floatBuffer++ = (*floatBuffer) * gain;
+ } while (--numSamples);
+ }
+}
+
} // namespace
std::ostream& operator<<(std::ostream& os, const DeviceProfile& device) {
@@ -345,7 +432,7 @@
return findValueOrDefault(getAudioFormatDescriptorToPcmFormatMap(), aidl, PCM_FORMAT_INVALID);
}
-void applyGain(void* buffer, float gain, size_t bytesToTransfer, enum pcm_format pcmFormat,
+void applyGain(void* buffer, float gain, size_t bufferSizeBytes, enum pcm_format pcmFormat,
int channelCount) {
if (channelCount != 1 && channelCount != 2) {
LOG(WARNING) << __func__ << ": unsupported channel count " << channelCount;
@@ -355,56 +442,37 @@
LOG(WARNING) << __func__ << ": unsupported pcm format " << pcmFormat;
return;
}
- const float unityGainFloat = 1.0f;
- if (std::abs(gain - unityGainFloat) < 1e-6) {
+ if (std::abs(gain - kUnityGainFloat) < 1e-6) {
return;
}
- int numFrames;
switch (pcmFormat) {
- case PCM_FORMAT_S16_LE: {
- const uint16_t unityGainQ4_12 = u4_12_from_float(unityGainFloat);
- const uint16_t vl = u4_12_from_float(gain);
- const uint32_t vrl = (vl << 16) | vl;
- if (channelCount == 2) {
- numFrames = bytesToTransfer / sizeof(uint32_t);
- uint32_t* intBuffer = (uint32_t*)buffer;
- if (CC_UNLIKELY(vl > unityGainQ4_12)) {
- // volume is boosted, so we might need to clamp even though
- // we process only one track.
- do {
- int32_t l = mulRL(1, *intBuffer, vrl) >> 12;
- int32_t r = mulRL(0, *intBuffer, vrl) >> 12;
- l = clamp16(l);
- r = clamp16(r);
- *intBuffer++ = (r << 16) | (l & 0xFFFF);
- } while (--numFrames);
- } else {
- do {
- int32_t l = mulRL(1, *intBuffer, vrl) >> 12;
- int32_t r = mulRL(0, *intBuffer, vrl) >> 12;
- *intBuffer++ = (r << 16) | (l & 0xFFFF);
- } while (--numFrames);
- }
- } else {
- numFrames = bytesToTransfer / sizeof(uint16_t);
- int16_t* intBuffer = (int16_t*)buffer;
- if (CC_UNLIKELY(vl > unityGainQ4_12)) {
- // volume is boosted, so we might need to clamp even though
- // we process only one track.
- do {
- int32_t mono = mulRL(1, *intBuffer, vrl) >> 12;
- *intBuffer++ = clamp16(mono);
- } while (--numFrames);
- } else {
- do {
- int32_t mono = mulRL(1, *intBuffer, vrl) >> 12;
- *intBuffer++ = static_cast<int16_t>(mono & 0xFFFF);
- } while (--numFrames);
- }
+ case PCM_FORMAT_S16_LE:
+ applyGainToInt16Buffer(buffer, bufferSizeBytes, gain, channelCount);
+ break;
+ case PCM_FORMAT_FLOAT_LE: {
+ float* floatBuffer = (float*)buffer;
+ applyGainToFloatBuffer(floatBuffer, bufferSizeBytes, gain);
+ } break;
+ case PCM_FORMAT_S24_LE:
+ // PCM_FORMAT_S24_LE buffer is composed of signed fixed-point 32-bit Q8.23 data with
+ // min and max limits of the same bit representation as min and max limits of
+ // PCM_FORMAT_S32_LE buffer.
+ case PCM_FORMAT_S32_LE: {
+ int32_t* typedBuffer = (int32_t*)buffer;
+ applyGainToInt32Buffer(typedBuffer, bufferSizeBytes, gain);
+ } break;
+ case PCM_FORMAT_S24_3LE: {
+ int numSamples = bufferSizeBytes / (sizeof(uint8_t) * 3);
+ if (numSamples == 0) {
+ return;
}
+ std::unique_ptr<int32_t[]> typedBuffer(new int32_t[numSamples]);
+ memcpy_to_i32_from_p24(typedBuffer.get(), (uint8_t*)buffer, numSamples);
+ applyGainToInt32Buffer(typedBuffer.get(), numSamples * sizeof(int32_t), gain);
+ memcpy_to_p24_from_i32((uint8_t*)buffer, typedBuffer.get(), numSamples);
} break;
default:
- // TODO(336370745): Implement gain for other supported formats
+ LOG(FATAL) << __func__ << ": unsupported pcm format " << pcmFormat;
break;
}
}
diff --git a/audio/aidl/default/include/core-impl/Module.h b/audio/aidl/default/include/core-impl/Module.h
index 7e32cf2..d03598a 100644
--- a/audio/aidl/default/include/core-impl/Module.h
+++ b/audio/aidl/default/include/core-impl/Module.h
@@ -148,8 +148,10 @@
struct VendorDebug {
static const std::string kForceTransientBurstName;
static const std::string kForceSynchronousDrainName;
+ static const std::string kForceDrainToDrainingName;
bool forceTransientBurst = false;
bool forceSynchronousDrain = false;
+ bool forceDrainToDraining = false;
};
// ids of device ports created at runtime via 'connectExternalDevice'.
// Also stores a list of ids of mix ports with dynamic profiles that were populated from
diff --git a/audio/aidl/default/include/core-impl/Stream.h b/audio/aidl/default/include/core-impl/Stream.h
index f7b9269..8297fc5 100644
--- a/audio/aidl/default/include/core-impl/Stream.h
+++ b/audio/aidl/default/include/core-impl/Stream.h
@@ -78,6 +78,10 @@
bool forceTransientBurst = false;
// Force the "drain" command to be synchronous, going directly to the IDLE state.
bool forceSynchronousDrain = false;
+ // Force the "drain early notify" command to keep the SM in the DRAINING state
+ // after sending 'onDrainReady' callback. The SM moves to IDLE after
+ // 'transientStateDelayMs'.
+ bool forceDrainToDraining = false;
};
StreamContext() = default;
@@ -119,6 +123,7 @@
::aidl::android::media::audio::common::AudioIoFlags getFlags() const { return mFlags; }
bool getForceTransientBurst() const { return mDebugParameters.forceTransientBurst; }
bool getForceSynchronousDrain() const { return mDebugParameters.forceSynchronousDrain; }
+ bool getForceDrainToDraining() const { return mDebugParameters.forceDrainToDraining; }
size_t getFrameSize() const;
int getInternalCommandCookie() const { return mInternalCommandCookie; }
int32_t getMixPortHandle() const { return mMixPortHandle; }
@@ -301,6 +306,9 @@
bool write(size_t clientSize, StreamDescriptor::Reply* reply);
std::shared_ptr<IStreamOutEventCallback> mEventCallback;
+
+ enum OnDrainReadyStatus : int32_t { IGNORE /*used for DRAIN_ALL*/, UNSENT, SENT };
+ OnDrainReadyStatus mOnDrainReadyStatus = OnDrainReadyStatus::IGNORE;
};
using StreamOutWorker = StreamWorkerImpl<StreamOutWorkerLogic>;
diff --git a/audio/aidl/default/tests/AlsaUtilsTest.cpp b/audio/aidl/default/tests/AlsaUtilsTest.cpp
new file mode 100644
index 0000000..226eea0
--- /dev/null
+++ b/audio/aidl/default/tests/AlsaUtilsTest.cpp
@@ -0,0 +1,253 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "AlsaUtilsTest"
+
+#include <alsa/Utils.h>
+#include <android-base/macros.h>
+#include <audio_utils/primitives.h>
+#include <gtest/gtest.h>
+#include <log/log.h>
+
+extern "C" {
+#include <tinyalsa/pcm.h>
+}
+
+namespace alsa = ::aidl::android::hardware::audio::core::alsa;
+
+namespace {
+
+const static constexpr float kInt16tTolerance = 4;
+const static constexpr float kIntTolerance = 1;
+const static constexpr float kFloatTolerance = 1e-4;
+const static constexpr float kUnityGain = 1;
+const static constexpr int32_t kInt24Min = -(1 << 23);
+const static constexpr int32_t kInt24Max = (1 << 23) - 1;
+const static constexpr float kFloatMin = -1;
+const static constexpr float kFloatMax = 1;
+const static int32_t kQ8_23Min = 0x80000000;
+const static int32_t kQ8_23Max = 0x7FFFFFFF;
+const static std::vector<int16_t> kInt16Buffer = {10000, 100, 0, INT16_MAX,
+ INT16_MIN, -2500, 1000, -5800};
+const static std::vector<float> kFloatBuffer = {0.5, -0.6, kFloatMin, 0.01, kFloatMax, 0.0};
+const static std::vector<int32_t> kInt32Buffer = {100, 0, 8000, INT32_MAX, INT32_MIN, -300};
+const static std::vector<int32_t> kQ8_23Buffer = {
+ kQ8_23Min, kQ8_23Max, 0x00000000, 0x00000001, 0x00400000, static_cast<int32_t>(0xFFD33333)};
+const static std::vector<int32_t> kInt24Buffer = {200, 10, -100, 0, kInt24Min, kInt24Max};
+
+template <typename T>
+void* CopyToBuffer(int& bytesToTransfer, std::vector<T>& destBuffer,
+ const std::vector<T>& srcBuffer) {
+ bytesToTransfer = srcBuffer.size() * sizeof(T);
+ destBuffer = srcBuffer;
+ return destBuffer.data();
+}
+
+template <typename T>
+void VerifyTypedBufferResults(const std::vector<T>& bufferWithGain, const std::vector<T>& srcBuffer,
+ float gain, float tolerance) {
+ for (size_t i = 0; i < srcBuffer.size(); i++) {
+ EXPECT_NEAR(srcBuffer[i] * gain, static_cast<float>(bufferWithGain[i]), tolerance);
+ }
+}
+
+template <typename T>
+void VerifyTypedBufferResultsWithClamp(const std::vector<T>& bufferWithGain,
+ const std::vector<T>& srcBuffer, float gain, float tolerance,
+ T minValue, T maxValue) {
+ for (size_t i = 0; i < srcBuffer.size(); i++) {
+ float expectedResult = std::clamp(srcBuffer[i] * gain, static_cast<float>(minValue),
+ static_cast<float>(maxValue));
+ EXPECT_NEAR(expectedResult, static_cast<float>(bufferWithGain[i]), tolerance);
+ }
+}
+
+} // namespace
+
+using ApplyGainTestParameters = std::tuple<pcm_format, int, float>;
+enum { INDEX_PCM_FORMAT, INDEX_CHANNEL_COUNT, INDEX_GAIN };
+
+class ApplyGainTest : public ::testing::TestWithParam<ApplyGainTestParameters> {
+ protected:
+ void SetUp() override;
+ void VerifyBufferResult(const pcm_format pcmFormat, const float gain);
+ void VerifyBufferResultWithClamp(const pcm_format pcmFormat, const float gain);
+
+ pcm_format mPcmFormat;
+ int mBufferSizeBytes;
+ void* mBuffer;
+
+ private:
+ std::vector<int16_t> mInt16BufferToConvert;
+ std::vector<float> mFloatBufferToConvert;
+ std::vector<int32_t> mInt32BufferToConvert;
+ std::vector<int32_t> mQ8_23BufferToConvert;
+ std::vector<int32_t> mInt24BufferToConvert;
+};
+
+void ApplyGainTest::SetUp() {
+ mPcmFormat = std::get<INDEX_PCM_FORMAT>(GetParam());
+ switch (mPcmFormat) {
+ case PCM_FORMAT_S16_LE:
+ mBuffer = CopyToBuffer(mBufferSizeBytes, mInt16BufferToConvert, kInt16Buffer);
+ break;
+ case PCM_FORMAT_FLOAT_LE:
+ mBuffer = CopyToBuffer(mBufferSizeBytes, mFloatBufferToConvert, kFloatBuffer);
+ break;
+ case PCM_FORMAT_S32_LE:
+ mBuffer = CopyToBuffer(mBufferSizeBytes, mInt32BufferToConvert, kInt32Buffer);
+ break;
+ case PCM_FORMAT_S24_LE:
+ mBuffer = CopyToBuffer(mBufferSizeBytes, mQ8_23BufferToConvert, kQ8_23Buffer);
+ break;
+ case PCM_FORMAT_S24_3LE: {
+ std::vector<int32_t> original32BitBuffer(kInt24Buffer.begin(), kInt24Buffer.end());
+ for (auto& val : original32BitBuffer) {
+ val <<= 8;
+ }
+ mInt24BufferToConvert = std::vector<int32_t>(kInt24Buffer.size());
+ mBufferSizeBytes = kInt24Buffer.size() * 3 * sizeof(uint8_t);
+ memcpy_to_p24_from_i32(reinterpret_cast<uint8_t*>(mInt24BufferToConvert.data()),
+ original32BitBuffer.data(), kInt24Buffer.size());
+ mBuffer = mInt24BufferToConvert.data();
+ } break;
+ default:
+ FAIL() << "Unsupported pcm format: " << mPcmFormat;
+ return;
+ }
+}
+
+void ApplyGainTest::VerifyBufferResult(const pcm_format pcmFormat, const float gain) {
+ switch (pcmFormat) {
+ case PCM_FORMAT_S16_LE:
+ VerifyTypedBufferResults(mInt16BufferToConvert, kInt16Buffer, gain, kInt16tTolerance);
+ break;
+ case PCM_FORMAT_FLOAT_LE:
+ VerifyTypedBufferResults(mFloatBufferToConvert, kFloatBuffer, gain, kFloatTolerance);
+ break;
+ case PCM_FORMAT_S32_LE:
+ VerifyTypedBufferResults(mInt32BufferToConvert, kInt32Buffer, gain, kIntTolerance);
+ break;
+ case PCM_FORMAT_S24_LE: {
+ for (size_t i = 0; i < kQ8_23Buffer.size(); i++) {
+ EXPECT_NEAR(float_from_q8_23(kQ8_23Buffer[i]) * gain,
+ static_cast<float>(float_from_q8_23(mQ8_23BufferToConvert[i])),
+ kFloatTolerance);
+ }
+ } break;
+ case PCM_FORMAT_S24_3LE: {
+ size_t bufferSize = kInt24Buffer.size();
+ std::vector<int32_t> result32BitBuffer(bufferSize);
+ memcpy_to_i32_from_p24(result32BitBuffer.data(),
+ reinterpret_cast<uint8_t*>(mInt24BufferToConvert.data()),
+ bufferSize);
+ for (size_t i = 0; i < bufferSize; i++) {
+ EXPECT_NEAR(kInt24Buffer[i] * gain, result32BitBuffer[i] >> 8, kIntTolerance);
+ }
+ } break;
+ default:
+ return;
+ }
+}
+
+void ApplyGainTest::VerifyBufferResultWithClamp(const pcm_format pcmFormat, const float gain) {
+ switch (pcmFormat) {
+ case PCM_FORMAT_S16_LE:
+ VerifyTypedBufferResultsWithClamp(mInt16BufferToConvert, kInt16Buffer, gain,
+ kInt16tTolerance, static_cast<int16_t>(INT16_MIN),
+ static_cast<int16_t>(INT16_MAX));
+ break;
+ case PCM_FORMAT_FLOAT_LE:
+ VerifyTypedBufferResultsWithClamp(mFloatBufferToConvert, kFloatBuffer, gain,
+ kFloatTolerance, kFloatMin, kFloatMax);
+ break;
+ case PCM_FORMAT_S32_LE:
+ VerifyTypedBufferResultsWithClamp(mInt32BufferToConvert, kInt32Buffer, gain,
+ kIntTolerance, INT32_MIN, INT32_MAX);
+ break;
+ case PCM_FORMAT_S24_LE: {
+ for (size_t i = 0; i < kQ8_23Buffer.size(); i++) {
+ float expectedResult =
+ std::clamp(float_from_q8_23(kQ8_23Buffer[i]) * gain,
+ float_from_q8_23(kQ8_23Min), float_from_q8_23(kQ8_23Max));
+ EXPECT_NEAR(expectedResult,
+ static_cast<float>(float_from_q8_23(mQ8_23BufferToConvert[i])),
+ kFloatTolerance);
+ }
+ } break;
+ case PCM_FORMAT_S24_3LE: {
+ size_t bufferSize = kInt24Buffer.size();
+ std::vector<int32_t> result32BitBuffer(bufferSize);
+ memcpy_to_i32_from_p24(result32BitBuffer.data(),
+ reinterpret_cast<uint8_t*>(mInt24BufferToConvert.data()),
+ bufferSize);
+ for (size_t i = 0; i < bufferSize; i++) {
+ result32BitBuffer[i] >>= 8;
+ }
+ VerifyTypedBufferResultsWithClamp(result32BitBuffer, kInt24Buffer, gain, kIntTolerance,
+ kInt24Min, kInt24Max);
+ } break;
+ default:
+ return;
+ }
+}
+
+TEST_P(ApplyGainTest, ApplyGain) {
+ float gain = std::get<INDEX_GAIN>(GetParam());
+ int channelCount = std::get<INDEX_CHANNEL_COUNT>(GetParam());
+
+ alsa::applyGain(mBuffer, gain, mBufferSizeBytes, mPcmFormat, channelCount);
+
+ if (gain <= kUnityGain) {
+ VerifyBufferResult(mPcmFormat, gain);
+ } else {
+ VerifyBufferResultWithClamp(mPcmFormat, gain);
+ }
+}
+
+std::string GetApplyGainTestName(const testing::TestParamInfo<ApplyGainTestParameters>& info) {
+ std::string testNameStr;
+ switch (std::get<INDEX_PCM_FORMAT>(info.param)) {
+ case PCM_FORMAT_S16_LE:
+ testNameStr = "S16_LE";
+ break;
+ case PCM_FORMAT_FLOAT_LE:
+ testNameStr = "Float_LE";
+ break;
+ case PCM_FORMAT_S32_LE:
+ testNameStr = "S32_LE";
+ break;
+ case PCM_FORMAT_S24_LE:
+ testNameStr = "S24_LE";
+ break;
+ case PCM_FORMAT_S24_3LE:
+ testNameStr = "S24_3LE";
+ break;
+ default:
+ testNameStr = "UnsupportedPcmFormat";
+ break;
+ }
+ testNameStr += std::get<INDEX_CHANNEL_COUNT>(info.param) == 1 ? "_Mono_" : "_Stereo_";
+ testNameStr += std::get<INDEX_GAIN>(info.param) <= kUnityGain ? "WithoutClamp" : "WithClamp";
+ return testNameStr;
+}
+
+INSTANTIATE_TEST_SUITE_P(PerPcmFormat, ApplyGainTest,
+ testing::Combine(testing::Values(PCM_FORMAT_S16_LE, PCM_FORMAT_FLOAT_LE,
+ PCM_FORMAT_S32_LE, PCM_FORMAT_S24_LE,
+ PCM_FORMAT_S24_3LE),
+ testing::Values(1, 2), testing::Values(0.6f, 1.5f)),
+ GetApplyGainTestName);
diff --git a/audio/aidl/vts/Android.bp b/audio/aidl/vts/Android.bp
index b025637..e2d4b79 100644
--- a/audio/aidl/vts/Android.bp
+++ b/audio/aidl/vts/Android.bp
@@ -171,6 +171,9 @@
name: "VtsHalVisualizerTargetTest",
defaults: ["VtsHalAudioEffectTargetTestDefaults"],
srcs: ["VtsHalVisualizerTargetTest.cpp"],
+ shared_libs: [
+ "libaudioutils",
+ ],
}
cc_test {
diff --git a/audio/aidl/vts/EffectHelper.h b/audio/aidl/vts/EffectHelper.h
index e073ece..ace6a82 100644
--- a/audio/aidl/vts/EffectHelper.h
+++ b/audio/aidl/vts/EffectHelper.h
@@ -375,7 +375,8 @@
std::vector<float>& outputBuffer,
const std::shared_ptr<IEffect>& effect,
IEffect::OpenEffectReturn* openEffectReturn,
- int version = -1, int times = 1) {
+ int version = -1, int times = 1,
+ bool callStopReset = true) {
// Initialize AidlMessagequeues
auto statusMQ = std::make_unique<EffectHelper::StatusMQ>(openEffectReturn->statusMQ);
ASSERT_TRUE(statusMQ->isValid());
@@ -401,10 +402,14 @@
}
// Disable the process
- ASSERT_NO_FATAL_FAILURE(command(effect, CommandId::STOP));
+ if (callStopReset) {
+ ASSERT_NO_FATAL_FAILURE(command(effect, CommandId::STOP));
+ }
EXPECT_NO_FATAL_FAILURE(EffectHelper::readFromFmq(statusMQ, 0, outputMQ, 0, outputBuffer));
- ASSERT_NO_FATAL_FAILURE(command(effect, CommandId::RESET));
+ if (callStopReset) {
+ ASSERT_NO_FATAL_FAILURE(command(effect, CommandId::RESET));
+ }
}
// Find FFT bin indices for testFrequencies and get bin center frequencies
diff --git a/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp b/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp
index 6bfba65..6bce107 100644
--- a/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp
+++ b/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp
@@ -117,6 +117,10 @@
using ndk::enum_range;
using ndk::ScopedAStatus;
+static constexpr int32_t kAidlVersion1 = 1;
+static constexpr int32_t kAidlVersion2 = 2;
+static constexpr int32_t kAidlVersion3 = 3;
+
template <typename T>
std::set<int32_t> extractIds(const std::vector<T>& v) {
std::set<int32_t> ids;
@@ -452,7 +456,6 @@
// This is implemented by the 'StreamFixture' utility class.
static constexpr int kNegativeTestBufferSizeFrames = 256;
static constexpr int kDefaultLargeBufferSizeFrames = 48000;
- static constexpr int32_t kAidlVersion3 = 3;
void SetUpImpl(const std::string& moduleName, bool setUpDebug = true) {
ASSERT_NO_FATAL_FAILURE(ConnectToService(moduleName, setUpDebug));
@@ -582,7 +585,7 @@
std::unique_ptr<WithDebugFlags> debug;
std::vector<AudioPort> initialPorts;
std::vector<AudioRoute> initialRoutes;
- int32_t aidlVersion;
+ int32_t aidlVersion = -1;
};
class WithDevicePortConnectedState {
@@ -1837,6 +1840,7 @@
}
TEST_P(AudioCoreModule, SetAudioPortConfigInvalidPortAudioGain) {
+ ASSERT_GE(aidlVersion, kAidlVersion1);
if (aidlVersion < kAidlVersion3) {
GTEST_SKIP() << "Skip for audio HAL version lower than " << kAidlVersion3;
}
@@ -4021,6 +4025,7 @@
enum {
NAMED_CMD_NAME,
+ NAMED_CMD_MIN_INTERFACE_VERSION,
NAMED_CMD_DELAY_MS,
NAMED_CMD_STREAM_TYPE,
NAMED_CMD_CMDS,
@@ -4028,7 +4033,7 @@
};
enum class StreamTypeFilter { ANY, SYNC, ASYNC };
using NamedCommandSequence =
- std::tuple<std::string, int /*cmdDelayMs*/, StreamTypeFilter,
+ std::tuple<std::string, int /*minInterfaceVersion*/, int /*cmdDelayMs*/, StreamTypeFilter,
std::shared_ptr<StateSequence>, bool /*validatePositionIncrease*/>;
enum { PARAM_MODULE_NAME, PARAM_CMD_SEQ, PARAM_SETUP_SEQ };
using StreamIoTestParameters =
@@ -4039,6 +4044,12 @@
public:
void SetUp() override {
ASSERT_NO_FATAL_FAILURE(SetUpImpl(std::get<PARAM_MODULE_NAME>(GetParam())));
+ ASSERT_GE(aidlVersion, kAidlVersion1);
+ if (const int minVersion =
+ std::get<NAMED_CMD_MIN_INTERFACE_VERSION>(std::get<PARAM_CMD_SEQ>(GetParam()));
+ aidlVersion < minVersion) {
+ GTEST_SKIP() << "Skip for audio HAL version lower than " << minVersion;
+ }
ASSERT_NO_FATAL_FAILURE(SetUpModuleConfig());
}
@@ -4048,6 +4059,20 @@
if (allPortConfigs.empty()) {
GTEST_SKIP() << "No mix ports have attached devices";
}
+ const auto& commandsAndStates =
+ std::get<NAMED_CMD_CMDS>(std::get<PARAM_CMD_SEQ>(GetParam()));
+ const bool validatePositionIncrease =
+ std::get<NAMED_CMD_VALIDATE_POS_INCREASE>(std::get<PARAM_CMD_SEQ>(GetParam()));
+ auto runStreamIoCommands = [&](const AudioPortConfig& portConfig) {
+ if (!std::get<PARAM_SETUP_SEQ>(GetParam())) {
+ ASSERT_NO_FATAL_FAILURE(RunStreamIoCommandsImplSeq1(portConfig, commandsAndStates,
+ validatePositionIncrease));
+ } else {
+ ASSERT_NO_FATAL_FAILURE(RunStreamIoCommandsImplSeq2(portConfig, commandsAndStates,
+ validatePositionIncrease));
+ }
+ };
+
for (const auto& portConfig : allPortConfigs) {
auto port = moduleConfig->getPort(portConfig.portId);
ASSERT_TRUE(port.has_value());
@@ -4075,16 +4100,18 @@
delayTransientStates.flags().streamTransientStateDelayMs =
std::get<NAMED_CMD_DELAY_MS>(std::get<PARAM_CMD_SEQ>(GetParam()));
ASSERT_NO_FATAL_FAILURE(delayTransientStates.SetUp(module.get()));
- const auto& commandsAndStates =
- std::get<NAMED_CMD_CMDS>(std::get<PARAM_CMD_SEQ>(GetParam()));
- const bool validatePositionIncrease =
- std::get<NAMED_CMD_VALIDATE_POS_INCREASE>(std::get<PARAM_CMD_SEQ>(GetParam()));
- if (!std::get<PARAM_SETUP_SEQ>(GetParam())) {
- ASSERT_NO_FATAL_FAILURE(RunStreamIoCommandsImplSeq1(portConfig, commandsAndStates,
- validatePositionIncrease));
- } else {
- ASSERT_NO_FATAL_FAILURE(RunStreamIoCommandsImplSeq2(portConfig, commandsAndStates,
- validatePositionIncrease));
+ ASSERT_NO_FATAL_FAILURE(runStreamIoCommands(portConfig));
+ if (aidlVersion >= kAidlVersion3 && isNonBlocking && !IOTraits<Stream>::is_input) {
+ // Also try running the same sequence with "aosp.forceDrainToDraining" set.
+ // This will only work with the default implementation. When it works, the stream
+ // tries always to move to the 'DRAINING' state after an "early notify" drain.
+ // This helps to check more paths for our test scenarios.
+ WithModuleParameter forceDrainToDraining("aosp.forceDrainToDraining",
+ Boolean{true});
+ if (forceDrainToDraining.SetUpNoChecks(module.get(), true /*failureExpected*/)
+ .isOk()) {
+ ASSERT_NO_FATAL_FAILURE(runStreamIoCommands(portConfig));
+ }
}
if (isNonBlocking) {
// Also try running the same sequence with "aosp.forceTransientBurst" set.
@@ -4094,13 +4121,7 @@
WithModuleParameter forceTransientBurst("aosp.forceTransientBurst", Boolean{true});
if (forceTransientBurst.SetUpNoChecks(module.get(), true /*failureExpected*/)
.isOk()) {
- if (!std::get<PARAM_SETUP_SEQ>(GetParam())) {
- ASSERT_NO_FATAL_FAILURE(RunStreamIoCommandsImplSeq1(
- portConfig, commandsAndStates, validatePositionIncrease));
- } else {
- ASSERT_NO_FATAL_FAILURE(RunStreamIoCommandsImplSeq2(
- portConfig, commandsAndStates, validatePositionIncrease));
- }
+ ASSERT_NO_FATAL_FAILURE(runStreamIoCommands(portConfig));
}
} else if (!IOTraits<Stream>::is_input) {
// Also try running the same sequence with "aosp.forceSynchronousDrain" set.
@@ -4111,13 +4132,7 @@
Boolean{true});
if (forceSynchronousDrain.SetUpNoChecks(module.get(), true /*failureExpected*/)
.isOk()) {
- if (!std::get<PARAM_SETUP_SEQ>(GetParam())) {
- ASSERT_NO_FATAL_FAILURE(RunStreamIoCommandsImplSeq1(
- portConfig, commandsAndStates, validatePositionIncrease));
- } else {
- ASSERT_NO_FATAL_FAILURE(RunStreamIoCommandsImplSeq2(
- portConfig, commandsAndStates, validatePositionIncrease));
- }
+ ASSERT_NO_FATAL_FAILURE(runStreamIoCommands(portConfig));
}
}
}
@@ -4570,14 +4585,14 @@
return std::make_shared<StateSequenceFollower>(std::move(d));
}
static const NamedCommandSequence kReadSeq =
- std::make_tuple(std::string("Read"), 0, StreamTypeFilter::ANY, makeBurstCommands(true),
- true /*validatePositionIncrease*/);
+ std::make_tuple(std::string("Read"), kAidlVersion1, 0, StreamTypeFilter::ANY,
+ makeBurstCommands(true), true /*validatePositionIncrease*/);
static const NamedCommandSequence kWriteSyncSeq =
- std::make_tuple(std::string("Write"), 0, StreamTypeFilter::SYNC, makeBurstCommands(true),
- true /*validatePositionIncrease*/);
+ std::make_tuple(std::string("Write"), kAidlVersion1, 0, StreamTypeFilter::SYNC,
+ makeBurstCommands(true), true /*validatePositionIncrease*/);
static const NamedCommandSequence kWriteAsyncSeq =
- std::make_tuple(std::string("Write"), 0, StreamTypeFilter::ASYNC, makeBurstCommands(false),
- true /*validatePositionIncrease*/);
+ std::make_tuple(std::string("Write"), kAidlVersion1, 0, StreamTypeFilter::ASYNC,
+ makeBurstCommands(false), true /*validatePositionIncrease*/);
std::shared_ptr<StateSequence> makeAsyncDrainCommands(bool isInput) {
using State = StreamDescriptor::State;
@@ -4606,10 +4621,10 @@
return std::make_shared<StateSequenceFollower>(std::move(d));
}
static const NamedCommandSequence kWriteDrainAsyncSeq = std::make_tuple(
- std::string("WriteDrain"), kStreamTransientStateTransitionDelayMs, StreamTypeFilter::ASYNC,
- makeAsyncDrainCommands(false), false /*validatePositionIncrease*/);
+ std::string("WriteDrain"), kAidlVersion1, kStreamTransientStateTransitionDelayMs,
+ StreamTypeFilter::ASYNC, makeAsyncDrainCommands(false), false /*validatePositionIncrease*/);
static const NamedCommandSequence kDrainInSeq =
- std::make_tuple(std::string("Drain"), 0, StreamTypeFilter::ANY,
+ std::make_tuple(std::string("Drain"), kAidlVersion1, 0, StreamTypeFilter::ANY,
makeAsyncDrainCommands(true), false /*validatePositionIncrease*/);
std::shared_ptr<StateSequence> makeDrainOutCommands(bool isSync) {
@@ -4631,12 +4646,28 @@
return std::make_shared<StateSequenceFollower>(std::move(d));
}
static const NamedCommandSequence kDrainOutSyncSeq =
- std::make_tuple(std::string("Drain"), 0, StreamTypeFilter::SYNC, makeDrainOutCommands(true),
- false /*validatePositionIncrease*/);
+ std::make_tuple(std::string("Drain"), kAidlVersion1, 0, StreamTypeFilter::SYNC,
+ makeDrainOutCommands(true), false /*validatePositionIncrease*/);
static const NamedCommandSequence kDrainOutAsyncSeq =
- std::make_tuple(std::string("Drain"), 0, StreamTypeFilter::ASYNC,
+ std::make_tuple(std::string("Drain"), kAidlVersion3, 0, StreamTypeFilter::ASYNC,
makeDrainOutCommands(false), false /*validatePositionIncrease*/);
+std::shared_ptr<StateSequence> makeDrainEarlyOutCommands() {
+ using State = StreamDescriptor::State;
+ auto d = std::make_unique<StateDag>();
+ StateDag::Node last = d->makeFinalNode(State::IDLE);
+ StateDag::Node draining = d->makeNode(State::DRAINING, kDrainReadyEvent, last);
+ draining.children().push_back(d->makeNode(State::DRAINING, kGetStatusCommand, last));
+ StateDag::Node active = d->makeNode(State::ACTIVE, kDrainOutEarlyCommand, draining);
+ StateDag::Node idle = d->makeNode(State::IDLE, kBurstCommand, active);
+ idle.children().push_back(d->makeNode(State::TRANSFERRING, kTransferReadyEvent, active));
+ d->makeNode(State::STANDBY, kStartCommand, idle);
+ return std::make_shared<StateSequenceFollower>(std::move(d));
+}
+static const NamedCommandSequence kDrainEarlyOutAsyncSeq =
+ std::make_tuple(std::string("DrainEarly"), kAidlVersion3, 0, StreamTypeFilter::ASYNC,
+ makeDrainEarlyOutCommands(), false /*validatePositionIncrease*/);
+
std::shared_ptr<StateSequence> makeDrainPauseOutCommands(bool isSync) {
using State = StreamDescriptor::State;
auto d = std::make_unique<StateDag>();
@@ -4656,12 +4687,33 @@
d->makeNode(State::STANDBY, kStartCommand, idle);
return std::make_shared<StateSequenceFollower>(std::move(d));
}
-static const NamedCommandSequence kDrainPauseOutSyncSeq = std::make_tuple(
- std::string("DrainPause"), kStreamTransientStateTransitionDelayMs, StreamTypeFilter::SYNC,
- makeDrainPauseOutCommands(true), false /*validatePositionIncrease*/);
-static const NamedCommandSequence kDrainPauseOutAsyncSeq = std::make_tuple(
- std::string("DrainPause"), kStreamTransientStateTransitionDelayMs, StreamTypeFilter::ASYNC,
- makeDrainPauseOutCommands(false), false /*validatePositionIncrease*/);
+static const NamedCommandSequence kDrainPauseOutSyncSeq =
+ std::make_tuple(std::string("DrainPause"), kAidlVersion1,
+ kStreamTransientStateTransitionDelayMs, StreamTypeFilter::SYNC,
+ makeDrainPauseOutCommands(true), false /*validatePositionIncrease*/);
+static const NamedCommandSequence kDrainPauseOutAsyncSeq =
+ std::make_tuple(std::string("DrainPause"), kAidlVersion1,
+ kStreamTransientStateTransitionDelayMs, StreamTypeFilter::ASYNC,
+ makeDrainPauseOutCommands(false), false /*validatePositionIncrease*/);
+
+std::shared_ptr<StateSequence> makeDrainEarlyPauseOutCommands() {
+ using State = StreamDescriptor::State;
+ auto d = std::make_unique<StateDag>();
+ StateDag::Node draining = d->makeNodes({std::make_pair(State::DRAINING, kPauseCommand),
+ std::make_pair(State::DRAIN_PAUSED, kStartCommand),
+ std::make_pair(State::DRAINING, kPauseCommand),
+ std::make_pair(State::DRAIN_PAUSED, kBurstCommand)},
+ State::TRANSFER_PAUSED);
+ StateDag::Node active = d->makeNode(State::ACTIVE, kDrainOutEarlyCommand, draining);
+ StateDag::Node idle = d->makeNode(State::IDLE, kBurstCommand, active);
+ idle.children().push_back(d->makeNode(State::TRANSFERRING, kDrainOutEarlyCommand, draining));
+ d->makeNode(State::STANDBY, kStartCommand, idle);
+ return std::make_shared<StateSequenceFollower>(std::move(d));
+}
+static const NamedCommandSequence kDrainEarlyPauseOutAsyncSeq =
+ std::make_tuple(std::string("DrainEarlyPause"), kAidlVersion3,
+ kStreamTransientStateTransitionDelayMs, StreamTypeFilter::ASYNC,
+ makeDrainEarlyPauseOutCommands(), false /*validatePositionIncrease*/);
// This sequence also verifies that the capture / presentation position is not reset on standby.
std::shared_ptr<StateSequence> makeStandbyCommands(bool isInput, bool isSync) {
@@ -4703,14 +4755,15 @@
return std::make_shared<StateSequenceFollower>(std::move(d));
}
static const NamedCommandSequence kStandbyInSeq =
- std::make_tuple(std::string("Standby"), 0, StreamTypeFilter::ANY,
+ std::make_tuple(std::string("Standby"), kAidlVersion1, 0, StreamTypeFilter::ANY,
makeStandbyCommands(true, false), false /*validatePositionIncrease*/);
static const NamedCommandSequence kStandbyOutSyncSeq =
- std::make_tuple(std::string("Standby"), 0, StreamTypeFilter::SYNC,
+ std::make_tuple(std::string("Standby"), kAidlVersion1, 0, StreamTypeFilter::SYNC,
makeStandbyCommands(false, true), false /*validatePositionIncrease*/);
-static const NamedCommandSequence kStandbyOutAsyncSeq = std::make_tuple(
- std::string("Standby"), kStreamTransientStateTransitionDelayMs, StreamTypeFilter::ASYNC,
- makeStandbyCommands(false, false), false /*validatePositionIncrease*/);
+static const NamedCommandSequence kStandbyOutAsyncSeq =
+ std::make_tuple(std::string("Standby"), kAidlVersion1,
+ kStreamTransientStateTransitionDelayMs, StreamTypeFilter::ASYNC,
+ makeStandbyCommands(false, false), false /*validatePositionIncrease*/);
std::shared_ptr<StateSequence> makePauseCommands(bool isInput, bool isSync) {
using State = StreamDescriptor::State;
@@ -4745,14 +4798,15 @@
return std::make_shared<StateSequenceFollower>(std::move(d));
}
static const NamedCommandSequence kPauseInSeq =
- std::make_tuple(std::string("Pause"), 0, StreamTypeFilter::ANY,
+ std::make_tuple(std::string("Pause"), kAidlVersion1, 0, StreamTypeFilter::ANY,
makePauseCommands(true, false), false /*validatePositionIncrease*/);
static const NamedCommandSequence kPauseOutSyncSeq =
- std::make_tuple(std::string("Pause"), 0, StreamTypeFilter::SYNC,
+ std::make_tuple(std::string("Pause"), kAidlVersion1, 0, StreamTypeFilter::SYNC,
makePauseCommands(false, true), false /*validatePositionIncrease*/);
-static const NamedCommandSequence kPauseOutAsyncSeq = std::make_tuple(
- std::string("Pause"), kStreamTransientStateTransitionDelayMs, StreamTypeFilter::ASYNC,
- makePauseCommands(false, false), false /*validatePositionIncrease*/);
+static const NamedCommandSequence kPauseOutAsyncSeq =
+ std::make_tuple(std::string("Pause"), kAidlVersion1, kStreamTransientStateTransitionDelayMs,
+ StreamTypeFilter::ASYNC, makePauseCommands(false, false),
+ false /*validatePositionIncrease*/);
std::shared_ptr<StateSequence> makeFlushCommands(bool isInput, bool isSync) {
using State = StreamDescriptor::State;
@@ -4780,14 +4834,15 @@
return std::make_shared<StateSequenceFollower>(std::move(d));
}
static const NamedCommandSequence kFlushInSeq =
- std::make_tuple(std::string("Flush"), 0, StreamTypeFilter::ANY,
+ std::make_tuple(std::string("Flush"), kAidlVersion1, 0, StreamTypeFilter::ANY,
makeFlushCommands(true, false), false /*validatePositionIncrease*/);
static const NamedCommandSequence kFlushOutSyncSeq =
- std::make_tuple(std::string("Flush"), 0, StreamTypeFilter::SYNC,
+ std::make_tuple(std::string("Flush"), kAidlVersion1, 0, StreamTypeFilter::SYNC,
makeFlushCommands(false, true), false /*validatePositionIncrease*/);
-static const NamedCommandSequence kFlushOutAsyncSeq = std::make_tuple(
- std::string("Flush"), kStreamTransientStateTransitionDelayMs, StreamTypeFilter::ASYNC,
- makeFlushCommands(false, false), false /*validatePositionIncrease*/);
+static const NamedCommandSequence kFlushOutAsyncSeq =
+ std::make_tuple(std::string("Flush"), kAidlVersion1, kStreamTransientStateTransitionDelayMs,
+ StreamTypeFilter::ASYNC, makeFlushCommands(false, false),
+ false /*validatePositionIncrease*/);
std::shared_ptr<StateSequence> makeDrainPauseFlushOutCommands(bool isSync) {
using State = StreamDescriptor::State;
@@ -4807,13 +4862,13 @@
return std::make_shared<StateSequenceFollower>(std::move(d));
}
static const NamedCommandSequence kDrainPauseFlushOutSyncSeq =
- std::make_tuple(std::string("DrainPauseFlush"), kStreamTransientStateTransitionDelayMs,
- StreamTypeFilter::SYNC, makeDrainPauseFlushOutCommands(true),
- false /*validatePositionIncrease*/);
+ std::make_tuple(std::string("DrainPauseFlush"), kAidlVersion1,
+ kStreamTransientStateTransitionDelayMs, StreamTypeFilter::SYNC,
+ makeDrainPauseFlushOutCommands(true), false /*validatePositionIncrease*/);
static const NamedCommandSequence kDrainPauseFlushOutAsyncSeq =
- std::make_tuple(std::string("DrainPauseFlush"), kStreamTransientStateTransitionDelayMs,
- StreamTypeFilter::ASYNC, makeDrainPauseFlushOutCommands(false),
- false /*validatePositionIncrease*/);
+ std::make_tuple(std::string("DrainPauseFlush"), kAidlVersion1,
+ kStreamTransientStateTransitionDelayMs, StreamTypeFilter::ASYNC,
+ makeDrainPauseFlushOutCommands(false), false /*validatePositionIncrease*/);
// Note, this isn't the "official" enum printer, it is only used to make the test name suffix.
std::string PrintStreamFilterToString(StreamTypeFilter filter) {
@@ -4851,9 +4906,10 @@
AudioStreamIoOutTest, AudioStreamIoOut,
testing::Combine(testing::ValuesIn(android::getAidlHalInstanceNames(IModule::descriptor)),
testing::Values(kWriteSyncSeq, kWriteAsyncSeq, kWriteDrainAsyncSeq,
- kDrainOutSyncSeq, kDrainPauseOutSyncSeq,
- kDrainPauseOutAsyncSeq, kStandbyOutSyncSeq,
- kStandbyOutAsyncSeq,
+ kDrainOutSyncSeq, kDrainOutAsyncSeq,
+ kDrainEarlyOutAsyncSeq, kDrainPauseOutSyncSeq,
+ kDrainPauseOutAsyncSeq, kDrainEarlyPauseOutAsyncSeq,
+ kStandbyOutSyncSeq, kStandbyOutAsyncSeq,
kPauseOutSyncSeq, // kPauseOutAsyncSeq,
kFlushOutSyncSeq, kFlushOutAsyncSeq,
kDrainPauseFlushOutSyncSeq, kDrainPauseFlushOutAsyncSeq),
diff --git a/audio/aidl/vts/VtsHalVisualizerTargetTest.cpp b/audio/aidl/vts/VtsHalVisualizerTargetTest.cpp
index a0e43bc..a942521 100644
--- a/audio/aidl/vts/VtsHalVisualizerTargetTest.cpp
+++ b/audio/aidl/vts/VtsHalVisualizerTargetTest.cpp
@@ -19,6 +19,7 @@
#define LOG_TAG "VtsHalVisualizerTest"
#include <android-base/logging.h>
#include <android/binder_enums.h>
+#include <audio_utils/power.h>
#include "EffectHelper.h"
@@ -44,9 +45,8 @@
PARAM_MEASUREMENT_MODE,
PARAM_LATENCY,
};
-using VisualizerParamTestParam =
- std::tuple<std::pair<std::shared_ptr<IFactory>, Descriptor>, int, Visualizer::ScalingMode,
- Visualizer::MeasurementMode, int>;
+using VisualizerTestParam = std::tuple<std::pair<std::shared_ptr<IFactory>, Descriptor>, int,
+ Visualizer::ScalingMode, Visualizer::MeasurementMode, int>;
class VisualizerTestHelper : public EffectHelper {
public:
@@ -139,10 +139,15 @@
{Visualizer::latencyMs, Visualizer::make<Visualizer::latencyMs>(latency)});
}
+ static std::unordered_set<Visualizer::ScalingMode> getScalingModeValues() {
+ return {ndk::enum_range<Visualizer::ScalingMode>().begin(),
+ ndk::enum_range<Visualizer::ScalingMode>().end()};
+ }
+
static constexpr long kInputFrameCount = 0x100, kOutputFrameCount = 0x100;
const size_t mChannelCount =
getChannelCount(AudioChannelLayout::make<AudioChannelLayout::layoutMask>(
- AudioChannelLayout::LAYOUT_STEREO));
+ AudioChannelLayout::LAYOUT_MONO));
const size_t mBufferSizeInFrames = kInputFrameCount * mChannelCount;
const int mCaptureSize;
const int mLatency;
@@ -161,7 +166,7 @@
void CleanUp() { mCommonTags.clear(); }
};
-class VisualizerParamTest : public ::testing::TestWithParam<VisualizerParamTestParam>,
+class VisualizerParamTest : public ::testing::TestWithParam<VisualizerTestParam>,
public VisualizerTestHelper {
public:
VisualizerParamTest()
@@ -181,11 +186,6 @@
return {ndk::enum_range<Visualizer::MeasurementMode>().begin(),
ndk::enum_range<Visualizer::MeasurementMode>().end()};
}
-
- static std::unordered_set<Visualizer::ScalingMode> getScalingModeValues() {
- return {ndk::enum_range<Visualizer::ScalingMode>().begin(),
- ndk::enum_range<Visualizer::ScalingMode>().end()};
- }
};
TEST_P(VisualizerParamTest, SetAndGetCaptureSize) {
@@ -237,6 +237,82 @@
}
}
+class VisualizerDataTest : public ::testing::TestWithParam<VisualizerTestParam>,
+ public VisualizerTestHelper {
+ public:
+ VisualizerDataTest()
+ : VisualizerTestHelper(std::get<PARAM_INSTANCE_NAME>(GetParam()),
+ std::get<PARAM_CAPTURE_SIZE>(GetParam()),
+ std::get<PARAM_LATENCY>(GetParam()),
+ std::get<PARAM_SCALING_MODE>(GetParam()),
+ std::get<PARAM_MEASUREMENT_MODE>(GetParam())) {}
+
+ void SetUp() override { SetUpVisualizer(); }
+
+ void TearDown() override { TearDownVisualizer(); }
+};
+
+TEST_P(VisualizerDataTest, testScalingModeParameters) {
+ SKIP_TEST_IF_DATA_UNSUPPORTED(mDescriptor.common.flags);
+
+ // This test holds true for the following range
+ static_assert(kMaxAudioSampleValue <= 1.0 && kMaxAudioSampleValue > 0.0,
+ "Valid range of kMaxAudioSample value for the test: (0.0, 1.0]");
+
+ constexpr float kPowerToleranceDb = 0.5;
+
+ generateSineWave(std::vector<int>{1000}, mInputBuffer, 1.0, mBufferSizeInFrames);
+ const float expectedPowerNormalized = audio_utils_compute_power_mono(
+ mInputBuffer.data(), AUDIO_FORMAT_PCM_FLOAT, mInputBuffer.size());
+
+ const std::vector<float> testMaxAudioSampleValueList = {
+ 0.25 * kMaxAudioSampleValue, 0.5 * kMaxAudioSampleValue, 0.75 * kMaxAudioSampleValue,
+ kMaxAudioSampleValue};
+
+ Parameter::Id idCsb;
+ Visualizer::Id vsIdCsb;
+ vsIdCsb.set<Visualizer::Id::commonTag>(Visualizer::captureSampleBuffer);
+ idCsb.set<Parameter::Id::visualizerTag>(vsIdCsb);
+
+ for (float maxAudioSampleValue : testMaxAudioSampleValueList) {
+ bool allParamsValid = true;
+ ASSERT_NO_FATAL_FAILURE(addCaptureSizeParam(mCaptureSize));
+ ASSERT_NO_FATAL_FAILURE(addScalingModeParam(mScalingMode));
+ ASSERT_NO_FATAL_FAILURE(addLatencyParam(mLatency));
+ ASSERT_NO_FATAL_FAILURE(SetAndGetParameters(&allParamsValid));
+
+ generateSineWave(std::vector<int>{1000}, mInputBuffer, maxAudioSampleValue,
+ mBufferSizeInFrames);
+
+ // The stop and reset calls to the effect are made towards the end in order to fetch the
+ // captureSampleBuffer values
+ ASSERT_NO_FATAL_FAILURE(processAndWriteToOutput(mInputBuffer, mOutputBuffer, mEffect,
+ &mOpenEffectReturn, mVersion, 1, false));
+ if (allParamsValid) {
+ Parameter getParam;
+ EXPECT_STATUS(EX_NONE, mEffect->getParameter(idCsb, &getParam))
+ << " with: " << idCsb.toString();
+ std::vector<uint8_t> captureBuffer = getParam.get<Parameter::specific>()
+ .get<Parameter::Specific::visualizer>()
+ .get<Visualizer::captureSampleBuffer>();
+ ASSERT_EQ((size_t)mCaptureSize, captureBuffer.size());
+
+ float currPowerCsb = audio_utils_compute_power_mono(
+ captureBuffer.data(), AUDIO_FORMAT_PCM_8_BIT, mCaptureSize);
+
+ if (mScalingMode == Visualizer::ScalingMode::NORMALIZED) {
+ EXPECT_NEAR(currPowerCsb, expectedPowerNormalized, kPowerToleranceDb);
+ } else {
+ float powerI = audio_utils_compute_power_mono(
+ mInputBuffer.data(), AUDIO_FORMAT_PCM_FLOAT, mInputBuffer.size());
+ EXPECT_NEAR(currPowerCsb, powerI, kPowerToleranceDb);
+ }
+ }
+ ASSERT_NO_FATAL_FAILURE(command(mEffect, CommandId::STOP));
+ ASSERT_NO_FATAL_FAILURE(command(mEffect, CommandId::RESET));
+ }
+}
+
std::vector<std::pair<std::shared_ptr<IFactory>, Descriptor>> kDescPair;
INSTANTIATE_TEST_SUITE_P(
VisualizerParamTest, VisualizerParamTest,
@@ -246,7 +322,7 @@
testing::ValuesIn(EffectHelper::getTestValueSet<Visualizer, int, Range::visualizer,
Visualizer::captureSamples>(
kDescPair, EffectHelper::expandTestValueBasic<int>)),
- testing::ValuesIn(VisualizerParamTest::getScalingModeValues()),
+ testing::ValuesIn(VisualizerTestHelper::getScalingModeValues()),
testing::ValuesIn(VisualizerParamTest::getMeasurementModeValues()),
testing::ValuesIn(EffectHelper::getTestValueSet<Visualizer, int, Range::visualizer,
Visualizer::latencyMs>(
@@ -270,6 +346,35 @@
GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(VisualizerParamTest);
+INSTANTIATE_TEST_SUITE_P(
+ VisualizerDataTest, VisualizerDataTest,
+ ::testing::Combine(
+ testing::ValuesIn(kDescPair = EffectFactoryHelper::getAllEffectDescriptors(
+ IFactory::descriptor, getEffectTypeUuidVisualizer())),
+ testing::Values(128), // captureSize
+ testing::ValuesIn(VisualizerTestHelper::getScalingModeValues()),
+ testing::Values(Visualizer::MeasurementMode::PEAK_RMS),
+ testing::Values(0) // latency
+ ),
+ [](const testing::TestParamInfo<VisualizerDataTest::ParamType>& info) {
+ auto descriptor = std::get<PARAM_INSTANCE_NAME>(info.param).second;
+ std::string captureSize = std::to_string(std::get<PARAM_CAPTURE_SIZE>(info.param));
+ std::string scalingMode = aidl::android::hardware::audio::effect::toString(
+ std::get<PARAM_SCALING_MODE>(info.param));
+ std::string measurementMode = aidl::android::hardware::audio::effect::toString(
+ std::get<PARAM_MEASUREMENT_MODE>(info.param));
+ std::string latency = std::to_string(std::get<PARAM_LATENCY>(info.param));
+
+ std::string name = getPrefix(descriptor) + "_captureSize" + captureSize +
+ "_scalingMode" + scalingMode + "_measurementMode" + measurementMode +
+ "_latency" + latency;
+ std::replace_if(
+ name.begin(), name.end(), [](const char c) { return !std::isalnum(c); }, '_');
+ return name;
+ });
+
+GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(VisualizerDataTest);
+
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
::testing::UnitTest::GetInstance()->listeners().Append(new TestExecutionTracer());
diff --git a/authsecret/1.0/vts/functional/Android.bp b/authsecret/1.0/vts/functional/Android.bp
index 853b4dd..388cf3c 100644
--- a/authsecret/1.0/vts/functional/Android.bp
+++ b/authsecret/1.0/vts/functional/Android.bp
@@ -15,6 +15,7 @@
//
package {
+ default_team: "trendy_team_android_kernel",
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// all of the 'license_kinds' from "hardware_interfaces_license"
diff --git a/authsecret/aidl/vts/Android.bp b/authsecret/aidl/vts/Android.bp
index 5ec9947..bde1a40 100644
--- a/authsecret/aidl/vts/Android.bp
+++ b/authsecret/aidl/vts/Android.bp
@@ -15,6 +15,7 @@
//
package {
+ default_team: "trendy_team_android_kernel",
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// all of the 'license_kinds' from "hardware_interfaces_license"
diff --git a/automotive/can/1.0/default/libnetdevice/Android.bp b/automotive/can/1.0/default/libnetdevice/Android.bp
index affbeee..4131a65 100644
--- a/automotive/can/1.0/default/libnetdevice/Android.bp
+++ b/automotive/can/1.0/default/libnetdevice/Android.bp
@@ -23,11 +23,20 @@
default_applicable_licenses: ["hardware_interfaces_license"],
}
-cc_library_static {
- name: "android.hardware.automotive.can@libnetdevice",
- defaults: ["android.hardware.automotive.can@defaults"],
+cc_defaults {
+ name: "libnetdevice-common",
host_supported: true,
vendor_available: true,
+ cflags: [
+ "-Wall",
+ "-Wextra",
+ "-Werror",
+ "-DANDROID_BASE_UNIQUE_FD_DISABLE_IMPLICIT_CONVERSION",
+ ],
+ shared_libs: [
+ "libbase",
+ "libutils",
+ ],
srcs: [
"can.cpp",
"common.cpp",
@@ -41,3 +50,14 @@
"libnl++",
],
}
+
+// TODO: migrate to "libnetdevice" and remove
+cc_library_static {
+ name: "android.hardware.automotive.can@libnetdevice",
+ defaults: ["libnetdevice-common"],
+}
+
+cc_library_static {
+ name: "libnetdevice",
+ defaults: ["libnetdevice-common"],
+}
diff --git a/automotive/can/1.0/default/libnetdevice/include/libnetdevice/libnetdevice.h b/automotive/can/1.0/default/libnetdevice/include/libnetdevice/libnetdevice.h
index 75655d5..15ff491 100644
--- a/automotive/can/1.0/default/libnetdevice/include/libnetdevice/libnetdevice.h
+++ b/automotive/can/1.0/default/libnetdevice/include/libnetdevice/libnetdevice.h
@@ -128,7 +128,8 @@
* \param addr IPv4 address to set
* \return true in case of success, false otherwise
*/
-bool setAddr4(std::string_view ifname, std::string_view addr);
+bool setAddr4(std::string_view ifname, std::string_view addr,
+ std::optional<uint8_t> prefixlen = std::nullopt);
/**
* Add new IPv4 address to a given interface.
diff --git a/automotive/can/1.0/default/libnetdevice/libnetdevice.cpp b/automotive/can/1.0/default/libnetdevice/libnetdevice.cpp
index 1830633..9bb1a57 100644
--- a/automotive/can/1.0/default/libnetdevice/libnetdevice.cpp
+++ b/automotive/can/1.0/default/libnetdevice/libnetdevice.cpp
@@ -93,14 +93,31 @@
return addrn;
}
-bool setAddr4(std::string_view ifname, std::string_view addr) {
- auto ifr = ifreqs::fromName(ifname);
+static in_addr_t prefixLengthToIpv4Netmask(uint8_t prefixlen) {
+ in_addr_t zero = 0;
+ return htonl(~zero << (32 - prefixlen));
+}
- struct sockaddr_in* ifrAddr = reinterpret_cast<sockaddr_in*>(&ifr.ifr_addr);
+bool setAddr4(std::string_view ifname, std::string_view addr, std::optional<uint8_t> prefixlen) {
+ auto ifr = ifreqs::fromName(ifname);
+ auto ifrAddr = reinterpret_cast<sockaddr_in*>(&ifr.ifr_addr);
ifrAddr->sin_family = AF_INET;
ifrAddr->sin_addr.s_addr = inetAddr(addr);
+ if (!ifreqs::send(SIOCSIFADDR, ifr)) return false;
- return ifreqs::send(SIOCSIFADDR, ifr);
+ if (prefixlen.has_value()) {
+ if (*prefixlen < 0 || *prefixlen > 32) {
+ LOG(ERROR) << "Invalid prefix length: " << *prefixlen;
+ return false;
+ }
+ ifr = ifreqs::fromName(ifname);
+ auto ifrNetmask = reinterpret_cast<sockaddr_in*>(&ifr.ifr_netmask);
+ ifrNetmask->sin_family = AF_INET;
+ ifrNetmask->sin_addr.s_addr = prefixLengthToIpv4Netmask(*prefixlen);
+ if (!ifreqs::send(SIOCSIFNETMASK, ifr)) return false;
+ }
+
+ return true;
}
bool addAddr4(std::string_view ifname, std::string_view addr, uint8_t prefixlen) {
diff --git a/automotive/can/1.0/default/libnl++/Android.bp b/automotive/can/1.0/default/libnl++/Android.bp
index 5e3168a..ade4ae0 100644
--- a/automotive/can/1.0/default/libnl++/Android.bp
+++ b/automotive/can/1.0/default/libnl++/Android.bp
@@ -25,9 +25,18 @@
cc_library_static {
name: "libnl++",
- defaults: ["android.hardware.automotive.can@defaults"],
host_supported: true,
vendor_available: true,
+ cflags: [
+ "-Wall",
+ "-Wextra",
+ "-Werror",
+ "-DANDROID_BASE_UNIQUE_FD_DISABLE_IMPLICIT_CONVERSION",
+ ],
+ shared_libs: [
+ "libbase",
+ "libutils",
+ ],
srcs: [
"protocols/common/Empty.cpp",
"protocols/common/Error.cpp",
diff --git a/automotive/evs/aidl/Android.bp b/automotive/evs/aidl/Android.bp
index 75eb924..8983ae4 100644
--- a/automotive/evs/aidl/Android.bp
+++ b/automotive/evs/aidl/Android.bp
@@ -55,14 +55,14 @@
version: "1",
imports: [
"android.hardware.common-V2",
- "android.hardware.graphics.common-V5",
+ "android.hardware.graphics.common-V6",
],
},
{
version: "2",
imports: [
"android.hardware.common-V2",
- "android.hardware.graphics.common-V5",
+ "android.hardware.graphics.common-V6",
],
},
diff --git a/camera/device/aidl/Android.bp b/camera/device/aidl/Android.bp
index 48ae34e..291ed0d 100644
--- a/camera/device/aidl/Android.bp
+++ b/camera/device/aidl/Android.bp
@@ -44,7 +44,7 @@
"android.hardware.common.fmq-V1",
"android.hardware.camera.common-V1",
"android.hardware.camera.metadata-V1",
- "android.hardware.graphics.common-V5",
+ "android.hardware.graphics.common-V6",
],
},
{
@@ -54,7 +54,7 @@
"android.hardware.common.fmq-V1",
"android.hardware.camera.common-V1",
"android.hardware.camera.metadata-V2",
- "android.hardware.graphics.common-V5",
+ "android.hardware.graphics.common-V6",
],
},
{
@@ -64,7 +64,7 @@
"android.hardware.common.fmq-V1",
"android.hardware.camera.common-V1",
"android.hardware.camera.metadata-V3",
- "android.hardware.graphics.common-V5",
+ "android.hardware.graphics.common-V6",
],
},
diff --git a/contexthub/aidl/default/Android.bp b/contexthub/aidl/default/Android.bp
index da173f9..c0b147c 100644
--- a/contexthub/aidl/default/Android.bp
+++ b/contexthub/aidl/default/Android.bp
@@ -30,6 +30,7 @@
shared_libs: [
"libbase",
"libbinder_ndk",
+ "liblog",
"android.hardware.contexthub-V4-ndk",
],
export_include_dirs: ["include"],
@@ -51,6 +52,7 @@
shared_libs: [
"libbase",
"libbinder_ndk",
+ "liblog",
"android.hardware.contexthub-V4-ndk",
],
static_libs: [
diff --git a/contexthub/aidl/default/ContextHub.cpp b/contexthub/aidl/default/ContextHub.cpp
index a915191..4ae9c09 100644
--- a/contexthub/aidl/default/ContextHub.cpp
+++ b/contexthub/aidl/default/ContextHub.cpp
@@ -16,10 +16,54 @@
#include "contexthub-impl/ContextHub.h"
-namespace aidl::android::hardware::contexthub {
+#ifndef LOG_TAG
+#define LOG_TAG "CHRE"
+#endif
+
+#include <inttypes.h>
+#include <log/log.h>
using ::ndk::ScopedAStatus;
+namespace aidl::android::hardware::contexthub {
+
+namespace {
+
+constexpr uint64_t kMockVendorHubId = 0x1234567812345678;
+constexpr uint64_t kMockVendorHub2Id = 0x0EADBEEFDEADBEEF;
+
+// Mock endpoints for the default implementation.
+// These endpoints just echo back any messages sent to them.
+constexpr size_t kMockEndpointCount = 4;
+const EndpointInfo kMockEndpointInfos[kMockEndpointCount] = {
+ {
+ .id = {.hubId = kMockVendorHubId, .id = UINT64_C(0x1)},
+ .type = EndpointInfo::EndpointType::GENERIC,
+ .name = "Mock Endpoint 1",
+ .version = 1,
+ },
+ {
+ .id = {.hubId = kMockVendorHubId, .id = UINT64_C(0x2)},
+ .type = EndpointInfo::EndpointType::GENERIC,
+ .name = "Mock Endpoint 2",
+ .version = 2,
+ },
+ {
+ .id = {.hubId = kMockVendorHub2Id, .id = UINT64_C(0x1)},
+ .type = EndpointInfo::EndpointType::GENERIC,
+ .name = "Mock Endpoint 3",
+ .version = 1,
+ },
+ {
+ .id = {.hubId = kMockVendorHub2Id, .id = UINT64_C(0x2)},
+ .type = EndpointInfo::EndpointType::GENERIC,
+ .name = "Mock Endpoint 4",
+ .version = 2,
+ },
+};
+
+} // anonymous namespace
+
ScopedAStatus ContextHub::getContextHubs(std::vector<ContextHubInfo>* out_contextHubInfos) {
ContextHubInfo hub = {};
hub.name = "Mock Context Hub";
@@ -112,7 +156,13 @@
}
}
-ScopedAStatus ContextHub::setTestMode(bool /* enable */) {
+ScopedAStatus ContextHub::setTestMode(bool enable) {
+ if (enable) {
+ std::unique_lock<std::mutex> lock(mEndpointMutex);
+ mEndpoints.clear();
+ mEndpointSessions.clear();
+ mEndpointCallback = nullptr;
+ }
return ScopedAStatus::ok();
}
@@ -137,6 +187,10 @@
}
ScopedAStatus ContextHub::getHubs(std::vector<HubInfo>* _aidl_return) {
+ if (_aidl_return == nullptr) {
+ return ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
+ }
+
ContextHubInfo hub = {};
hub.name = "Mock Context Hub";
hub.vendor = "AOSP";
@@ -158,61 +212,217 @@
vendorHub.version = 42;
HubInfo hubInfo2 = {};
- hubInfo2.hubId = UINT64_C(0x1234567812345678);
+ hubInfo2.hubId = kMockVendorHubId;
hubInfo2.hubDetails =
HubInfo::HubDetails::make<HubInfo::HubDetails::Tag::vendorHubInfo>(vendorHub);
+ VendorHubInfo vendorHub2 = {};
+ vendorHub2.name = "Mock Vendor Hub 2";
+ vendorHub2.version = 24;
+
+ HubInfo hubInfo3 = {};
+ hubInfo3.hubId = kMockVendorHub2Id;
+ hubInfo3.hubDetails =
+ HubInfo::HubDetails::make<HubInfo::HubDetails::Tag::vendorHubInfo>(vendorHub2);
+
_aidl_return->push_back(hubInfo1);
_aidl_return->push_back(hubInfo2);
+ _aidl_return->push_back(hubInfo3);
return ScopedAStatus::ok();
};
-ScopedAStatus ContextHub::getEndpoints(std::vector<EndpointInfo>* /* _aidl_return */) {
- return ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
+ScopedAStatus ContextHub::getEndpoints(std::vector<EndpointInfo>* _aidl_return) {
+ if (_aidl_return == nullptr) {
+ return ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
+ }
+
+ Service echoService;
+ echoService.format = Service::RpcFormat::CUSTOM;
+ echoService.serviceDescriptor = "ECHO";
+ echoService.majorVersion = 1;
+ echoService.minorVersion = 0;
+
+ for (const EndpointInfo& endpoint : kMockEndpointInfos) {
+ EndpointInfo endpointWithService(endpoint);
+ endpointWithService.services.push_back(echoService);
+ _aidl_return->push_back(std::move(endpointWithService));
+ }
+
+ return ScopedAStatus::ok();
};
-ScopedAStatus ContextHub::registerEndpoint(const EndpointInfo& /* in_endpoint */) {
- return ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
+ScopedAStatus ContextHub::registerEndpoint(const EndpointInfo& in_endpoint) {
+ std::unique_lock<std::mutex> lock(mEndpointMutex);
+
+ for (const EndpointInfo& endpoint : mEndpoints) {
+ if ((endpoint.id.id == in_endpoint.id.id && endpoint.id.hubId == in_endpoint.id.hubId) ||
+ endpoint.name == in_endpoint.name) {
+ return ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
+ }
+ }
+ mEndpoints.push_back(in_endpoint);
+ return ScopedAStatus::ok();
};
-ScopedAStatus ContextHub::unregisterEndpoint(const EndpointInfo& /* in_endpoint */) {
- return ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
+ScopedAStatus ContextHub::unregisterEndpoint(const EndpointInfo& in_endpoint) {
+ std::unique_lock<std::mutex> lock(mEndpointMutex);
+
+ for (auto it = mEndpoints.begin(); it != mEndpoints.end(); ++it) {
+ if (it->id.id == in_endpoint.id.id && it->id.hubId == in_endpoint.id.hubId) {
+ mEndpoints.erase(it);
+ return ScopedAStatus::ok();
+ }
+ }
+ return ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
};
ScopedAStatus ContextHub::registerEndpointCallback(
- const std::shared_ptr<IEndpointCallback>& /* in_callback */) {
- return ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
+ const std::shared_ptr<IEndpointCallback>& in_callback) {
+ std::unique_lock<std::mutex> lock(mEndpointMutex);
+
+ mEndpointCallback = in_callback;
+ return ScopedAStatus::ok();
};
-ScopedAStatus ContextHub::requestSessionIdRange(int32_t /* in_size */,
- std::vector<int32_t>* /* _aidl_return */) {
- return ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
+ScopedAStatus ContextHub::requestSessionIdRange(int32_t in_size,
+ std::vector<int32_t>* _aidl_return) {
+ constexpr int32_t kMaxSize = 1024;
+ if (in_size > kMaxSize || _aidl_return == nullptr) {
+ return ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
+ }
+
+ {
+ std::lock_guard<std::mutex> lock(mEndpointMutex);
+ mMaxValidSessionId = in_size;
+ }
+
+ _aidl_return->push_back(0);
+ _aidl_return->push_back(in_size);
+ return ScopedAStatus::ok();
};
ScopedAStatus ContextHub::openEndpointSession(
- int32_t /* in_sessionId */, const EndpointId& /* in_destination */,
- const EndpointId& /* in_initiator */,
- const std::optional<std::string>& /* in_serviceDescriptor */) {
- return ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
+ int32_t in_sessionId, const EndpointId& in_destination, const EndpointId& in_initiator,
+ const std::optional<std::string>& in_serviceDescriptor) {
+ // We are not calling onCloseEndpointSession on failure because the remote endpoints (our
+ // mock endpoints) always accept the session.
+
+ std::shared_ptr<IEndpointCallback> callback = nullptr;
+ {
+ std::unique_lock<std::mutex> lock(mEndpointMutex);
+ if (in_sessionId > mMaxValidSessionId) {
+ ALOGE("openEndpointSession: session ID %" PRId32 " is invalid", in_sessionId);
+ return ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
+ }
+
+ for (const EndpointSession& session : mEndpointSessions) {
+ bool sessionAlreadyExists =
+ (session.initiator == in_destination && session.peer == in_initiator) ||
+ (session.peer == in_destination && session.initiator == in_initiator);
+ if (sessionAlreadyExists) {
+ ALOGD("openEndpointSession: session ID %" PRId32 " already exists", in_sessionId);
+ return (session.sessionId == in_sessionId &&
+ session.serviceDescriptor == in_serviceDescriptor)
+ ? ScopedAStatus::ok()
+ : ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
+ } else if (session.sessionId == in_sessionId) {
+ ALOGE("openEndpointSession: session ID %" PRId32 " is invalid: endpoint mismatch",
+ in_sessionId);
+ return ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
+ }
+ }
+
+ // Verify the initiator and destination are valid endpoints
+ bool initiatorIsValid = findEndpoint(in_initiator, mEndpoints.begin(), mEndpoints.end());
+ if (!initiatorIsValid) {
+ ALOGE("openEndpointSession: initiator %" PRIu64 ":%" PRIu64 " is invalid",
+ in_initiator.id, in_initiator.hubId);
+ return ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
+ }
+ bool destinationIsValid = findEndpoint(in_destination, &kMockEndpointInfos[0],
+ &kMockEndpointInfos[kMockEndpointCount]);
+ if (!destinationIsValid) {
+ ALOGE("openEndpointSession: destination %" PRIu64 ":%" PRIu64 " is invalid",
+ in_destination.id, in_destination.hubId);
+ return ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
+ }
+
+ mEndpointSessions.push_back({
+ .sessionId = in_sessionId,
+ .initiator = in_initiator,
+ .peer = in_destination,
+ .serviceDescriptor = in_serviceDescriptor,
+ });
+
+ if (mEndpointCallback != nullptr) {
+ callback = mEndpointCallback;
+ }
+ }
+
+ if (callback != nullptr) {
+ callback->onEndpointSessionOpenComplete(in_sessionId);
+ }
+ return ScopedAStatus::ok();
};
-ScopedAStatus ContextHub::sendMessageToEndpoint(int32_t /* in_sessionId */,
- const Message& /* in_msg */) {
- return ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
+ScopedAStatus ContextHub::sendMessageToEndpoint(int32_t in_sessionId, const Message& in_msg) {
+ bool foundSession = false;
+ std::shared_ptr<IEndpointCallback> callback = nullptr;
+ {
+ std::unique_lock<std::mutex> lock(mEndpointMutex);
+
+ for (const EndpointSession& session : mEndpointSessions) {
+ if (session.sessionId == in_sessionId) {
+ foundSession = true;
+ break;
+ }
+ }
+
+ if (mEndpointCallback != nullptr) {
+ callback = mEndpointCallback;
+ }
+ }
+
+ if (!foundSession) {
+ ALOGE("sendMessageToEndpoint: session ID %" PRId32 " is invalid", in_sessionId);
+ return ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
+ }
+
+ if (callback != nullptr) {
+ if (in_msg.flags & Message::FLAG_REQUIRES_DELIVERY_STATUS) {
+ MessageDeliveryStatus msgStatus = {};
+ msgStatus.messageSequenceNumber = in_msg.sequenceNumber;
+ msgStatus.errorCode = ErrorCode::OK;
+ callback->onMessageDeliveryStatusReceived(in_sessionId, msgStatus);
+ }
+
+ // Echo the message back
+ callback->onMessageReceived(in_sessionId, in_msg);
+ }
+ return ScopedAStatus::ok();
};
ScopedAStatus ContextHub::sendMessageDeliveryStatusToEndpoint(
int32_t /* in_sessionId */, const MessageDeliveryStatus& /* in_msgStatus */) {
- return ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
+ return ScopedAStatus::ok();
};
-ScopedAStatus ContextHub::closeEndpointSession(int32_t /* in_sessionId */, Reason /* in_reason */) {
- return ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
+ScopedAStatus ContextHub::closeEndpointSession(int32_t in_sessionId, Reason /* in_reason */) {
+ std::unique_lock<std::mutex> lock(mEndpointMutex);
+
+ for (auto it = mEndpointSessions.begin(); it != mEndpointSessions.end(); ++it) {
+ if (it->sessionId == in_sessionId) {
+ mEndpointSessions.erase(it);
+ return ScopedAStatus::ok();
+ }
+ }
+ ALOGE("closeEndpointSession: session ID %" PRId32 " is invalid", in_sessionId);
+ return ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
};
ScopedAStatus ContextHub::endpointSessionOpenComplete(int32_t /* in_sessionId */) {
- return ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
+ return ScopedAStatus::ok();
};
} // namespace aidl::android::hardware::contexthub
diff --git a/contexthub/aidl/default/include/contexthub-impl/ContextHub.h b/contexthub/aidl/default/include/contexthub-impl/ContextHub.h
index 5680a77..4968878 100644
--- a/contexthub/aidl/default/include/contexthub-impl/ContextHub.h
+++ b/contexthub/aidl/default/include/contexthub-impl/ContextHub.h
@@ -18,6 +18,7 @@
#include <aidl/android/hardware/contexthub/BnContextHub.h>
+#include <mutex>
#include <unordered_set>
#include <vector>
@@ -72,10 +73,37 @@
::ndk::ScopedAStatus endpointSessionOpenComplete(int32_t in_sessionId) override;
private:
+ struct EndpointSession {
+ int32_t sessionId;
+ EndpointId initiator;
+ EndpointId peer;
+ std::optional<std::string> serviceDescriptor;
+ };
+
static constexpr uint32_t kMockHubId = 0;
+
+ //! Finds an endpoint in the range defined by the endpoints
+ //! @return whether the endpoint was found
+ template <typename Iter>
+ bool findEndpoint(const EndpointId& target, const Iter& begin, const Iter& end) {
+ for (auto iter = begin; iter != end; ++iter) {
+ if (iter->id.id == target.id && iter->id.hubId == target.hubId) {
+ return true;
+ }
+ }
+ return false;
+ }
+
std::shared_ptr<IContextHubCallback> mCallback;
std::unordered_set<char16_t> mConnectedHostEndpoints;
+
+ //! Endpoint storage and information
+ std::mutex mEndpointMutex;
+ std::vector<EndpointInfo> mEndpoints;
+ std::vector<EndpointSession> mEndpointSessions;
+ std::shared_ptr<IEndpointCallback> mEndpointCallback;
+ int32_t mMaxValidSessionId = 0;
};
} // namespace contexthub
diff --git a/contexthub/aidl/vts/Android.bp b/contexthub/aidl/vts/Android.bp
index 62a319e..a19b6fd 100644
--- a/contexthub/aidl/vts/Android.bp
+++ b/contexthub/aidl/vts/Android.bp
@@ -33,7 +33,7 @@
"libbinder",
],
static_libs: [
- "android.hardware.contexthub-V3-cpp",
+ "android.hardware.contexthub-V4-cpp",
"VtsHalContexthubUtils",
],
test_suites: [
diff --git a/contexthub/aidl/vts/VtsAidlHalContextHubTargetTest.cpp b/contexthub/aidl/vts/VtsAidlHalContextHubTargetTest.cpp
index fa427a5..95a96cd 100644
--- a/contexthub/aidl/vts/VtsAidlHalContextHubTargetTest.cpp
+++ b/contexthub/aidl/vts/VtsAidlHalContextHubTargetTest.cpp
@@ -20,8 +20,10 @@
#include <android/hardware/contexthub/BnContextHub.h>
#include <android/hardware/contexthub/BnContextHubCallback.h>
+#include <android/hardware/contexthub/BnEndpointCallback.h>
#include <android/hardware/contexthub/IContextHub.h>
#include <android/hardware/contexthub/IContextHubCallback.h>
+#include <android/hardware/contexthub/IEndpointCallback.h>
#include <binder/IServiceManager.h>
#include <binder/ProcessState.h>
#include <log/log.h>
@@ -34,18 +36,25 @@
using ::android::String16;
using ::android::binder::Status;
using ::android::hardware::contexthub::AsyncEventType;
+using ::android::hardware::contexthub::BnEndpointCallback;
using ::android::hardware::contexthub::ContextHubInfo;
using ::android::hardware::contexthub::ContextHubMessage;
+using ::android::hardware::contexthub::EndpointId;
+using ::android::hardware::contexthub::EndpointInfo;
using ::android::hardware::contexthub::ErrorCode;
using ::android::hardware::contexthub::HostEndpointInfo;
+using ::android::hardware::contexthub::HubInfo;
using ::android::hardware::contexthub::IContextHub;
using ::android::hardware::contexthub::IContextHubCallbackDefault;
+using ::android::hardware::contexthub::Message;
using ::android::hardware::contexthub::MessageDeliveryStatus;
using ::android::hardware::contexthub::NanoappBinary;
using ::android::hardware::contexthub::NanoappInfo;
using ::android::hardware::contexthub::NanoappRpcService;
using ::android::hardware::contexthub::NanSessionRequest;
using ::android::hardware::contexthub::NanSessionStateUpdate;
+using ::android::hardware::contexthub::Reason;
+using ::android::hardware::contexthub::Service;
using ::android::hardware::contexthub::Setting;
using ::android::hardware::contexthub::vts_utils::kNonExistentAppId;
using ::android::hardware::contexthub::vts_utils::waitForCallback;
@@ -61,8 +70,14 @@
contextHub = android::waitForDeclaredService<IContextHub>(
String16(std::get<0>(GetParam()).c_str()));
ASSERT_NE(contextHub, nullptr);
+
+ // Best effort enable test mode - this may not be supported on older HALS, so we
+ // ignore the return value.
+ contextHub->setTestMode(/* enable= */ true);
}
+ virtual void TearDown() override { contextHub->setTestMode(/* enable= */ false); }
+
uint32_t getHubId() { return std::get<1>(GetParam()); }
void testSettingChanged(Setting setting);
@@ -465,6 +480,290 @@
}
}
+class TestEndpointCallback : public BnEndpointCallback {
+ public:
+ Status onEndpointStarted(const std::vector<EndpointInfo>& /* endpointInfos */) override {
+ return Status::ok();
+ }
+
+ Status onEndpointStopped(const std::vector<EndpointId>& /* endpointIds */,
+ Reason /* reason */) override {
+ return Status::ok();
+ }
+
+ Status onMessageReceived(int32_t /* sessionId */, const Message& message) override {
+ mMessages.push_back(message);
+ return Status::ok();
+ }
+
+ Status onMessageDeliveryStatusReceived(int32_t /* sessionId */,
+ const MessageDeliveryStatus& /* msgStatus */) override {
+ return Status::ok();
+ }
+
+ Status onEndpointSessionOpenRequest(
+ int32_t /* sessionId */, const EndpointId& /* destination */,
+ const EndpointId& /* initiator */,
+ const std::optional<String16>& /* serviceDescriptor */) override {
+ return Status::ok();
+ }
+
+ Status onCloseEndpointSession(int32_t /* sessionId */, Reason /* reason */) override {
+ return Status::ok();
+ }
+
+ Status onEndpointSessionOpenComplete(int32_t /* sessionId */) override {
+ mWasOnEndpointSessionOpenCompleteCalled = true;
+ return Status::ok();
+ }
+
+ std::vector<Message> getMessages() { return mMessages; }
+
+ bool wasOnEndpointSessionOpenCompleteCalled() {
+ return mWasOnEndpointSessionOpenCompleteCalled;
+ }
+ void resetWasOnEndpointSessionOpenCompleteCalled() {
+ mWasOnEndpointSessionOpenCompleteCalled = false;
+ }
+
+ private:
+ std::vector<Message> mMessages;
+ bool mWasOnEndpointSessionOpenCompleteCalled = false;
+};
+
+TEST_P(ContextHubAidl, RegisterEndpoint) {
+ EndpointInfo endpointInfo;
+ endpointInfo.id.id = 1;
+ endpointInfo.id.hubId = 0xCAFECAFECAFECAFE;
+ endpointInfo.type = EndpointInfo::EndpointType::NATIVE;
+ endpointInfo.name = String16("Test host endpoint 1");
+ endpointInfo.version = 42;
+
+ Status status = contextHub->registerEndpoint(endpointInfo);
+ if (status.exceptionCode() == Status::EX_UNSUPPORTED_OPERATION ||
+ status.transactionError() == android::UNKNOWN_TRANSACTION) {
+ GTEST_SKIP() << "Not supported -> old API; or not implemented";
+ } else {
+ EXPECT_TRUE(status.isOk());
+ }
+}
+
+TEST_P(ContextHubAidl, RegisterEndpointSameNameFailure) {
+ EndpointInfo endpointInfo;
+ endpointInfo.id.id = 2;
+ endpointInfo.id.hubId = 0xCAFECAFECAFECAFE;
+ endpointInfo.type = EndpointInfo::EndpointType::NATIVE;
+ endpointInfo.name = String16("Test host endpoint 2");
+ endpointInfo.version = 42;
+
+ EndpointInfo endpointInfo2;
+ endpointInfo2.id.id = 3;
+ endpointInfo2.id.hubId = 0xCAFECAFECAFECAFE;
+ endpointInfo2.type = EndpointInfo::EndpointType::NATIVE;
+ endpointInfo2.name = String16("Test host endpoint 2");
+ endpointInfo2.version = 42;
+
+ Status status = contextHub->registerEndpoint(endpointInfo);
+ if (status.exceptionCode() == Status::EX_UNSUPPORTED_OPERATION ||
+ status.transactionError() == android::UNKNOWN_TRANSACTION) {
+ GTEST_SKIP() << "Not supported -> old API; or not implemented";
+ } else {
+ EXPECT_TRUE(status.isOk());
+ }
+
+ EXPECT_FALSE(contextHub->registerEndpoint(endpointInfo2).isOk());
+}
+
+TEST_P(ContextHubAidl, RegisterEndpointSameIdFailure) {
+ EndpointInfo endpointInfo;
+ endpointInfo.id.id = 4;
+ endpointInfo.id.hubId = 0xCAFECAFECAFECAFE;
+ endpointInfo.type = EndpointInfo::EndpointType::NATIVE;
+ endpointInfo.name = String16("Test host endpoint 4");
+ endpointInfo.version = 42;
+
+ EndpointInfo endpointInfo2;
+ endpointInfo2.id.id = 4;
+ endpointInfo2.id.hubId = 0xCAFECAFECAFECAFE;
+ endpointInfo2.type = EndpointInfo::EndpointType::NATIVE;
+ endpointInfo2.name = String16("Test host endpoint - same ID test");
+ endpointInfo2.version = 42;
+
+ Status status = contextHub->registerEndpoint(endpointInfo);
+ if (status.exceptionCode() == Status::EX_UNSUPPORTED_OPERATION ||
+ status.transactionError() == android::UNKNOWN_TRANSACTION) {
+ GTEST_SKIP() << "Not supported -> old API; or not implemented";
+ } else {
+ EXPECT_TRUE(status.isOk());
+ }
+
+ EXPECT_FALSE(contextHub->registerEndpoint(endpointInfo2).isOk());
+}
+
+TEST_P(ContextHubAidl, UnregisterEndpoint) {
+ EndpointInfo endpointInfo;
+ endpointInfo.id.id = 6;
+ endpointInfo.id.hubId = 0xCAFECAFECAFECAFE;
+ endpointInfo.type = EndpointInfo::EndpointType::NATIVE;
+ endpointInfo.name = String16("Test host endpoint 6");
+ endpointInfo.version = 42;
+
+ Status status = contextHub->registerEndpoint(endpointInfo);
+ if (status.exceptionCode() == Status::EX_UNSUPPORTED_OPERATION ||
+ status.transactionError() == android::UNKNOWN_TRANSACTION) {
+ GTEST_SKIP() << "Not supported -> old API; or not implemented";
+ } else {
+ EXPECT_TRUE(status.isOk());
+ }
+
+ EXPECT_TRUE(contextHub->unregisterEndpoint(endpointInfo).isOk());
+}
+
+TEST_P(ContextHubAidl, UnregisterEndpointNonexistent) {
+ EndpointInfo endpointInfo;
+ endpointInfo.id.id = 100;
+ endpointInfo.id.hubId = 0xCAFECAFECAFECAFE;
+ endpointInfo.type = EndpointInfo::EndpointType::NATIVE;
+ endpointInfo.name = String16("Test host endpoint 100");
+ endpointInfo.version = 42;
+
+ Status status = contextHub->unregisterEndpoint(endpointInfo);
+ if (status.exceptionCode() == Status::EX_UNSUPPORTED_OPERATION ||
+ status.transactionError() == android::UNKNOWN_TRANSACTION) {
+ GTEST_SKIP() << "Not supported -> old API; or not implemented";
+ } else {
+ EXPECT_FALSE(status.isOk());
+ }
+}
+
+TEST_P(ContextHubAidl, RegisterCallback) {
+ auto cb = sp<TestEndpointCallback>::make();
+ Status status = contextHub->registerEndpointCallback(cb);
+ if (status.exceptionCode() == Status::EX_UNSUPPORTED_OPERATION ||
+ status.transactionError() == android::UNKNOWN_TRANSACTION) {
+ GTEST_SKIP() << "Not supported -> old API; or not implemented";
+ } else {
+ EXPECT_TRUE(status.isOk());
+ }
+}
+
+TEST_P(ContextHubAidl, OpenEndpointSessionInvalidRange) {
+ auto cb = sp<TestEndpointCallback>::make();
+ Status status = contextHub->registerEndpointCallback(cb);
+ if (status.exceptionCode() == Status::EX_UNSUPPORTED_OPERATION ||
+ status.transactionError() == android::UNKNOWN_TRANSACTION) {
+ GTEST_SKIP() << "Not supported -> old API; or not implemented";
+ } else {
+ EXPECT_TRUE(status.isOk());
+ }
+
+ // Register the endpoint
+ EndpointInfo initiatorEndpoint;
+ initiatorEndpoint.id.id = 7;
+ initiatorEndpoint.id.hubId = 0xCAFECAFECAFECAFE;
+ initiatorEndpoint.type = EndpointInfo::EndpointType::NATIVE;
+ initiatorEndpoint.name = String16("Test host endpoint 7");
+ initiatorEndpoint.version = 42;
+ EXPECT_TRUE(contextHub->registerEndpoint(initiatorEndpoint).isOk());
+
+ // Find the destination, if it exists
+ std::vector<EndpointInfo> endpoints;
+ EXPECT_TRUE(contextHub->getEndpoints(&endpoints).isOk());
+ const EndpointInfo* destinationEndpoint = nullptr;
+ for (const EndpointInfo& endpoint : endpoints) {
+ for (const Service& service : endpoint.services) {
+ if (service.serviceDescriptor == String16("ECHO")) {
+ destinationEndpoint = &endpoint;
+ break;
+ }
+ }
+ }
+ if (destinationEndpoint == nullptr) {
+ return; // no echo service endpoint -> just return
+ }
+
+ // Request the range
+ constexpr int32_t requestedRange = 100;
+ std::vector<int32_t> range;
+ ASSERT_TRUE(contextHub->requestSessionIdRange(requestedRange, &range).isOk());
+ EXPECT_EQ(range.size(), 2);
+ EXPECT_GE(range[1] - range[0] + 1, requestedRange);
+
+ // Open the session
+ cb->resetWasOnEndpointSessionOpenCompleteCalled();
+ int32_t sessionId = range[1] + 10; // invalid
+ EXPECT_FALSE(contextHub
+ ->openEndpointSession(sessionId, destinationEndpoint->id,
+ initiatorEndpoint.id,
+ /* in_serviceDescriptor= */ String16("ECHO"))
+ .isOk());
+ EXPECT_FALSE(cb->wasOnEndpointSessionOpenCompleteCalled());
+}
+
+TEST_P(ContextHubAidl, OpenEndpointSessionAndSendMessageEchoesBack) {
+ auto cb = sp<TestEndpointCallback>::make();
+ Status status = contextHub->registerEndpointCallback(cb);
+ if (status.exceptionCode() == Status::EX_UNSUPPORTED_OPERATION ||
+ status.transactionError() == android::UNKNOWN_TRANSACTION) {
+ GTEST_SKIP() << "Not supported -> old API; or not implemented";
+ } else {
+ EXPECT_TRUE(status.isOk());
+ }
+
+ // Register the endpoint
+ EndpointInfo initiatorEndpoint;
+ initiatorEndpoint.id.id = 8;
+ initiatorEndpoint.id.hubId = 0xCAFECAFECAFECAFE;
+ initiatorEndpoint.type = EndpointInfo::EndpointType::NATIVE;
+ initiatorEndpoint.name = String16("Test host endpoint 7");
+ initiatorEndpoint.version = 42;
+ EXPECT_TRUE(contextHub->registerEndpoint(initiatorEndpoint).isOk());
+
+ // Find the destination, if it exists
+ std::vector<EndpointInfo> endpoints;
+ EXPECT_TRUE(contextHub->getEndpoints(&endpoints).isOk());
+ const EndpointInfo* destinationEndpoint = nullptr;
+ for (const EndpointInfo& endpoint : endpoints) {
+ for (const Service& service : endpoint.services) {
+ if (service.serviceDescriptor == String16("ECHO")) {
+ destinationEndpoint = &endpoint;
+ break;
+ }
+ }
+ }
+ if (destinationEndpoint == nullptr) {
+ return; // no echo service endpoint -> just return
+ }
+
+ // Request the range
+ constexpr int32_t requestedRange = 100;
+ std::vector<int32_t> range;
+ ASSERT_TRUE(contextHub->requestSessionIdRange(requestedRange, &range).isOk());
+ EXPECT_EQ(range.size(), 2);
+ EXPECT_GE(range[1] - range[0] + 1, requestedRange);
+
+ // Open the session
+ cb->resetWasOnEndpointSessionOpenCompleteCalled();
+ int32_t sessionId = range[0];
+ ASSERT_TRUE(contextHub
+ ->openEndpointSession(sessionId, destinationEndpoint->id,
+ initiatorEndpoint.id,
+ /* in_serviceDescriptor= */ String16("ECHO"))
+ .isOk());
+ EXPECT_TRUE(cb->wasOnEndpointSessionOpenCompleteCalled());
+
+ // Send the message
+ Message message;
+ message.flags = 0;
+ message.sequenceNumber = 0;
+ message.content.push_back(42);
+ ASSERT_TRUE(contextHub->sendMessageToEndpoint(sessionId, message).isOk());
+
+ // Check for echo
+ EXPECT_FALSE(cb->getMessages().empty());
+ EXPECT_EQ(cb->getMessages().back().content.back(), 42);
+}
+
std::string PrintGeneratedTest(const testing::TestParamInfo<ContextHubAidl::ParamType>& info) {
return std::string("CONTEXT_HUB_ID_") + std::to_string(std::get<1>(info.param));
}
diff --git a/gnss/aidl/default/Gnss.cpp b/gnss/aidl/default/Gnss.cpp
index 4978281..41720c0 100644
--- a/gnss/aidl/default/Gnss.cpp
+++ b/gnss/aidl/default/Gnss.cpp
@@ -123,10 +123,13 @@
std::this_thread::sleep_for(std::chrono::milliseconds(TTFF_MILLIS));
mFirstFixReceived = true;
}
+ int reportGnssCount = 0;
do {
if (!mIsActive) {
+ ALOGD("Do not report location. mIsActive is false");
break;
}
+ reportGnssCount += 1;
if (!mGnssMeasurementEnabled || mMinIntervalMs <= mGnssMeasurementIntervalMs) {
this->reportSvStatus();
}
@@ -141,6 +144,7 @@
this->reportLocation(location);
}
} while (mIsActive && mThreadBlocker.wait_for(std::chrono::milliseconds(mMinIntervalMs)));
+ ALOGD("reportGnssCount: %d", reportGnssCount);
});
return ScopedAStatus::ok();
}
diff --git a/graphics/Android.bp b/graphics/Android.bp
index d768ecf..2213f15 100644
--- a/graphics/Android.bp
+++ b/graphics/Android.bp
@@ -64,14 +64,14 @@
aidl_interface_defaults {
name: "android.hardware.graphics.common-latest",
imports: [
- "android.hardware.graphics.common-V5",
+ "android.hardware.graphics.common-V6",
],
}
rust_defaults {
name: "android.hardware.graphics.common-latest-rust",
rustlibs: [
- "android.hardware.graphics.common-V5-rust",
+ "android.hardware.graphics.common-V6-rust",
],
}
@@ -80,7 +80,7 @@
target: {
linux: {
static_libs: [
- "android.hardware.graphics.common-V5-ndk",
+ "android.hardware.graphics.common-V6-ndk",
],
},
},
@@ -91,7 +91,7 @@
target: {
linux: {
shared_libs: [
- "android.hardware.graphics.common-V5-ndk",
+ "android.hardware.graphics.common-V6-ndk",
],
},
},
diff --git a/graphics/allocator/aidl/Android.bp b/graphics/allocator/aidl/Android.bp
index 30b341c..3f74b23 100644
--- a/graphics/allocator/aidl/Android.bp
+++ b/graphics/allocator/aidl/Android.bp
@@ -45,7 +45,7 @@
version: "2",
imports: [
"android.hardware.common-V2",
- "android.hardware.graphics.common-V5",
+ "android.hardware.graphics.common-V6",
],
},
diff --git a/graphics/composer/aidl/Android.bp b/graphics/composer/aidl/Android.bp
index f4264eb..655188d 100644
--- a/graphics/composer/aidl/Android.bp
+++ b/graphics/composer/aidl/Android.bp
@@ -59,21 +59,21 @@
{
version: "1",
imports: [
- "android.hardware.graphics.common-V5",
+ "android.hardware.graphics.common-V6",
"android.hardware.common-V2",
],
},
{
version: "2",
imports: [
- "android.hardware.graphics.common-V5",
+ "android.hardware.graphics.common-V6",
"android.hardware.common-V2",
],
},
{
version: "3",
imports: [
- "android.hardware.graphics.common-V5",
+ "android.hardware.graphics.common-V6",
"android.hardware.common-V2",
],
},
diff --git a/graphics/mapper/4.0/utils/vts/Android.bp b/graphics/mapper/4.0/utils/vts/Android.bp
index c5f124c..1be460e 100644
--- a/graphics/mapper/4.0/utils/vts/Android.bp
+++ b/graphics/mapper/4.0/utils/vts/Android.bp
@@ -48,7 +48,7 @@
],
export_static_lib_headers: [
"android.hardware.graphics.allocator@4.0",
- "android.hardware.graphics.common-V5-ndk",
+ "android.hardware.graphics.common-V6-ndk",
"android.hardware.graphics.mapper@4.0",
],
export_include_dirs: ["include"],
diff --git a/light/2.0/vts/functional/Android.bp b/light/2.0/vts/functional/Android.bp
index 91fb847..53e5446 100644
--- a/light/2.0/vts/functional/Android.bp
+++ b/light/2.0/vts/functional/Android.bp
@@ -15,6 +15,7 @@
//
package {
+ default_team: "trendy_team_android_kernel",
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// all of the 'license_kinds' from "hardware_interfaces_license"
diff --git a/light/aidl/vts/functional/Android.bp b/light/aidl/vts/functional/Android.bp
index 16804ea..ba05e2b 100644
--- a/light/aidl/vts/functional/Android.bp
+++ b/light/aidl/vts/functional/Android.bp
@@ -15,6 +15,7 @@
//
package {
+ default_team: "trendy_team_android_kernel",
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// all of the 'license_kinds' from "hardware_interfaces_license"
diff --git a/neuralnetworks/1.0/vts/functional/Android.bp b/neuralnetworks/1.0/vts/functional/Android.bp
index 8048e62..ed0e72b 100644
--- a/neuralnetworks/1.0/vts/functional/Android.bp
+++ b/neuralnetworks/1.0/vts/functional/Android.bp
@@ -15,6 +15,7 @@
//
package {
+ default_team: "trendy_team_android_kernel",
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// all of the 'license_kinds' from "hardware_interfaces_license"
diff --git a/neuralnetworks/1.1/vts/functional/Android.bp b/neuralnetworks/1.1/vts/functional/Android.bp
index 7c1c118..e65735f 100644
--- a/neuralnetworks/1.1/vts/functional/Android.bp
+++ b/neuralnetworks/1.1/vts/functional/Android.bp
@@ -15,6 +15,7 @@
//
package {
+ default_team: "trendy_team_android_kernel",
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// all of the 'license_kinds' from "hardware_interfaces_license"
diff --git a/neuralnetworks/1.2/vts/functional/Android.bp b/neuralnetworks/1.2/vts/functional/Android.bp
index 7e4b5bb..0a3c577 100644
--- a/neuralnetworks/1.2/vts/functional/Android.bp
+++ b/neuralnetworks/1.2/vts/functional/Android.bp
@@ -15,6 +15,7 @@
//
package {
+ default_team: "trendy_team_android_kernel",
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// all of the 'license_kinds' from "hardware_interfaces_license"
diff --git a/neuralnetworks/aidl/Android.bp b/neuralnetworks/aidl/Android.bp
index 9589750..45b34e6 100644
--- a/neuralnetworks/aidl/Android.bp
+++ b/neuralnetworks/aidl/Android.bp
@@ -43,28 +43,28 @@
version: "1",
imports: [
"android.hardware.common-V2",
- "android.hardware.graphics.common-V5",
+ "android.hardware.graphics.common-V6",
],
},
{
version: "2",
imports: [
"android.hardware.common-V2",
- "android.hardware.graphics.common-V5",
+ "android.hardware.graphics.common-V6",
],
},
{
version: "3",
imports: [
"android.hardware.common-V2",
- "android.hardware.graphics.common-V5",
+ "android.hardware.graphics.common-V6",
],
},
{
version: "4",
imports: [
"android.hardware.common-V2",
- "android.hardware.graphics.common-V5",
+ "android.hardware.graphics.common-V6",
],
},
diff --git a/neuralnetworks/aidl/vts/functional/Android.bp b/neuralnetworks/aidl/vts/functional/Android.bp
index 04b4a45..20686c1 100644
--- a/neuralnetworks/aidl/vts/functional/Android.bp
+++ b/neuralnetworks/aidl/vts/functional/Android.bp
@@ -15,6 +15,7 @@
//
package {
+ default_team: "trendy_team_android_kernel",
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// all of the 'license_kinds' from "hardware_interfaces_license"
diff --git a/nfc/aidl/aidl_api/android.hardware.nfc/current/android/hardware/nfc/ProtocolDiscoveryConfig.aidl b/nfc/aidl/aidl_api/android.hardware.nfc/current/android/hardware/nfc/ProtocolDiscoveryConfig.aidl
index 021dfe2..2df0d35 100644
--- a/nfc/aidl/aidl_api/android.hardware.nfc/current/android/hardware/nfc/ProtocolDiscoveryConfig.aidl
+++ b/nfc/aidl/aidl_api/android.hardware.nfc/current/android/hardware/nfc/ProtocolDiscoveryConfig.aidl
@@ -43,4 +43,5 @@
byte discoveryPollKovio;
byte discoveryPollBPrime;
byte discoveryListenBPrime;
+ byte protocolChineseId;
}
diff --git a/nfc/aidl/android/hardware/nfc/ProtocolDiscoveryConfig.aidl b/nfc/aidl/android/hardware/nfc/ProtocolDiscoveryConfig.aidl
index f8e3228..021e307 100644
--- a/nfc/aidl/android/hardware/nfc/ProtocolDiscoveryConfig.aidl
+++ b/nfc/aidl/android/hardware/nfc/ProtocolDiscoveryConfig.aidl
@@ -33,4 +33,5 @@
byte discoveryPollKovio;
byte discoveryPollBPrime;
byte discoveryListenBPrime;
+ byte protocolChineseId;
}
diff --git a/oemlock/1.0/vts/functional/Android.bp b/oemlock/1.0/vts/functional/Android.bp
index f1b8d2f..80b4fdb 100644
--- a/oemlock/1.0/vts/functional/Android.bp
+++ b/oemlock/1.0/vts/functional/Android.bp
@@ -15,6 +15,7 @@
//
package {
+ default_team: "trendy_team_pixel_watch_system_software",
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// all of the 'license_kinds' from "hardware_interfaces_license"
diff --git a/oemlock/aidl/vts/Android.bp b/oemlock/aidl/vts/Android.bp
index eb999a9..e19bc6a 100644
--- a/oemlock/aidl/vts/Android.bp
+++ b/oemlock/aidl/vts/Android.bp
@@ -15,6 +15,7 @@
//
package {
+ default_team: "trendy_team_pixel_watch_system_software",
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// all of the 'license_kinds' from "hardware_interfaces_license"
diff --git a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionMode.aidl b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionMode.aidl
index d0ae0ba..ffa790d 100644
--- a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionMode.aidl
+++ b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionMode.aidl
@@ -35,4 +35,5 @@
@Backing(type="int") @VintfStability
enum SessionMode {
POWER_EFFICIENCY,
+ GRAPHICS_PIPELINE,
}
diff --git a/power/aidl/android/hardware/power/SessionMode.aidl b/power/aidl/android/hardware/power/SessionMode.aidl
index f1ee64e..3d5a76f 100644
--- a/power/aidl/android/hardware/power/SessionMode.aidl
+++ b/power/aidl/android/hardware/power/SessionMode.aidl
@@ -25,4 +25,11 @@
* and can be safely scheduled to prefer power efficiency.
*/
POWER_EFFICIENCY,
+
+ /**
+ * This mode indicates that the threads associated with this hint session
+ * are part of the graphics pipeline, implying that they are on a critical path
+ * which will be called of higher priority in terms of CPU resources and scheduling.
+ */
+ GRAPHICS_PIPELINE,
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/current/android/hardware/radio/data/DataCallFailCause.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/current/android/hardware/radio/data/DataCallFailCause.aidl
index 009b428..b51205f 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.data/current/android/hardware/radio/data/DataCallFailCause.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.data/current/android/hardware/radio/data/DataCallFailCause.aidl
@@ -192,11 +192,29 @@
NON_IP_NOT_SUPPORTED = 0x815,
PDN_NON_IP_CALL_THROTTLED = 0x816,
PDN_NON_IP_CALL_DISALLOWED = 0x817,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
CDMA_LOCK = 0x818,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
CDMA_INTERCEPT = 0x819,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
CDMA_REORDER = 0x81A,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
CDMA_RELEASE_DUE_TO_SO_REJECTION = 0x81B,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
CDMA_INCOMING_CALL = 0x81C,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
CDMA_ALERT_STOP = 0x81D,
CHANNEL_ACQUISITION_FAILURE = 0x81E,
MAX_ACCESS_PROBE = 0x81F,
@@ -204,8 +222,14 @@
NO_RESPONSE_FROM_BASE_STATION = 0x821,
REJECTED_BY_BASE_STATION = 0x822,
CONCURRENT_SERVICES_INCOMPATIBLE = 0x823,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
NO_CDMA_SERVICE = 0x824,
RUIM_NOT_PRESENT = 0x825,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
CDMA_RETRY_ORDER = 0x826,
ACCESS_BLOCK = 0x827,
ACCESS_BLOCK_ALL = 0x828,
@@ -324,12 +348,33 @@
LOWER_LAYER_REGISTRATION_FAILURE = 0x895,
DATA_PLAN_EXPIRED = 0x896,
UMTS_HANDOVER_TO_IWLAN = 0x897,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY = 0x898,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE = 0x899,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
EVDO_HDR_CHANGED = 0x89A,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
EVDO_HDR_EXITED = 0x89B,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
EVDO_HDR_NO_SESSION = 0x89C,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL = 0x89D,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
EVDO_HDR_CONNECTION_SETUP_TIMEOUT = 0x89E,
FAILED_TO_ACQUIRE_COLOCATED_HDR = 0x89F,
OTASP_COMMIT_IN_PROGRESS = 0x8A0,
diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaBroadcastSmsConfigInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaBroadcastSmsConfigInfo.aidl
index abfb308..99ab0ea 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaBroadcastSmsConfigInfo.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaBroadcastSmsConfigInfo.aidl
@@ -35,7 +35,16 @@
/* @hide */
@JavaDerive(toString=true) @VintfStability
parcelable CdmaBroadcastSmsConfigInfo {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int serviceCategory;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int language;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
boolean selected;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaSmsAck.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaSmsAck.aidl
index ee8371c..00e584b 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaSmsAck.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaSmsAck.aidl
@@ -35,6 +35,12 @@
/* @hide */
@JavaDerive(toString=true) @VintfStability
parcelable CdmaSmsAck {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
boolean errorClass;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int smsCauseCode;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaSmsAddress.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaSmsAddress.aidl
index 7382b1f..6a64595 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaSmsAddress.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaSmsAddress.aidl
@@ -35,35 +35,128 @@
/* @hide */
@JavaDerive(toString=true) @VintfStability
parcelable CdmaSmsAddress {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int digitMode;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
boolean isNumberModeDataNetwork;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int numberType;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int numberPlan;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
byte[] digits;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int DIGIT_MODE_FOUR_BIT = 0;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int DIGIT_MODE_EIGHT_BIT = 1;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PLAN_UNKNOWN = 0;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PLAN_TELEPHONY = 1;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PLAN_RESERVED_2 = 2;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PLAN_DATA = 3;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PLAN_TELEX = 4;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PLAN_RESERVED_5 = 5;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PLAN_RESERVED_6 = 6;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PLAN_RESERVED_7 = 7;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PLAN_RESERVED_8 = 8;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PLAN_PRIVATE = 9;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PLAN_RESERVED_10 = 10;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PLAN_RESERVED_11 = 11;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PLAN_RESERVED_12 = 12;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PLAN_RESERVED_13 = 13;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PLAN_RESERVED_14 = 14;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PLAN_RESERVED_15 = 15;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_TYPE_UNKNOWN = 0;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_TYPE_INTERNATIONAL_OR_DATA_IP = 1;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_TYPE_NATIONAL_OR_INTERNET_MAIL = 2;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_TYPE_NETWORK = 3;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_TYPE_SUBSCRIBER = 4;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_TYPE_ALPHANUMERIC = 5;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_TYPE_ABBREVIATED = 6;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_TYPE_RESERVED_7 = 7;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaSmsMessage.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaSmsMessage.aidl
index 0e98f4b..bbf8983 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaSmsMessage.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaSmsMessage.aidl
@@ -35,10 +35,28 @@
/* @hide */
@JavaDerive(toString=true) @VintfStability
parcelable CdmaSmsMessage {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int teleserviceId;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
boolean isServicePresent;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int serviceCategory;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
android.hardware.radio.messaging.CdmaSmsAddress address;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
android.hardware.radio.messaging.CdmaSmsSubaddress subAddress;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
byte[] bearerData;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaSmsSubaddress.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaSmsSubaddress.aidl
index a0e3991..50c3af5 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaSmsSubaddress.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaSmsSubaddress.aidl
@@ -35,9 +35,24 @@
/* @hide */
@JavaDerive(toString=true) @VintfStability
parcelable CdmaSmsSubaddress {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int subaddressType;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
boolean odd;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
byte[] digits;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int SUBADDRESS_TYPE_NSAP = 0;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int SUBADDRESS_TYPE_USER_SPECIFIED = 1;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaSmsWriteArgs.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaSmsWriteArgs.aidl
index d6292e7..759407f 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaSmsWriteArgs.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/CdmaSmsWriteArgs.aidl
@@ -35,10 +35,28 @@
/* @hide */
@JavaDerive(toString=true) @VintfStability
parcelable CdmaSmsWriteArgs {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int status;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
android.hardware.radio.messaging.CdmaSmsMessage message;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int STATUS_REC_UNREAD = 0;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int STATUS_REC_READ = 1;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int STATUS_STO_UNSENT = 2;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int STATUS_STO_SENT = 3;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/IRadioMessaging.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/IRadioMessaging.aidl
index bf5fde5..c69fcac 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/IRadioMessaging.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/IRadioMessaging.aidl
@@ -36,26 +36,50 @@
@VintfStability
interface IRadioMessaging {
oneway void acknowledgeIncomingGsmSmsWithPdu(in int serial, in boolean success, in String ackPdu);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void acknowledgeLastIncomingCdmaSms(in int serial, in android.hardware.radio.messaging.CdmaSmsAck smsAck);
oneway void acknowledgeLastIncomingGsmSms(in int serial, in boolean success, in android.hardware.radio.messaging.SmsAcknowledgeFailCause cause);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void deleteSmsOnRuim(in int serial, in int index);
oneway void deleteSmsOnSim(in int serial, in int index);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void getCdmaBroadcastConfig(in int serial);
oneway void getGsmBroadcastConfig(in int serial);
oneway void getSmscAddress(in int serial);
oneway void reportSmsMemoryStatus(in int serial, in boolean available);
oneway void responseAcknowledgement();
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void sendCdmaSms(in int serial, in android.hardware.radio.messaging.CdmaSmsMessage sms);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void sendCdmaSmsExpectMore(in int serial, in android.hardware.radio.messaging.CdmaSmsMessage sms);
oneway void sendImsSms(in int serial, in android.hardware.radio.messaging.ImsSmsMessage message);
oneway void sendSms(in int serial, in android.hardware.radio.messaging.GsmSmsMessage message);
oneway void sendSmsExpectMore(in int serial, in android.hardware.radio.messaging.GsmSmsMessage message);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void setCdmaBroadcastActivation(in int serial, in boolean activate);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void setCdmaBroadcastConfig(in int serial, in android.hardware.radio.messaging.CdmaBroadcastSmsConfigInfo[] configInfo);
oneway void setGsmBroadcastActivation(in int serial, in boolean activate);
oneway void setGsmBroadcastConfig(in int serial, in android.hardware.radio.messaging.GsmBroadcastSmsConfigInfo[] configInfo);
oneway void setResponseFunctions(in android.hardware.radio.messaging.IRadioMessagingResponse radioMessagingResponse, in android.hardware.radio.messaging.IRadioMessagingIndication radioMessagingIndication);
oneway void setSmscAddress(in int serial, in String smsc);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void writeSmsToRuim(in int serial, in android.hardware.radio.messaging.CdmaSmsWriteArgs cdmaSms);
oneway void writeSmsToSim(in int serial, in android.hardware.radio.messaging.SmsWriteArgs smsWriteArgs);
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/IRadioMessagingIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/IRadioMessagingIndication.aidl
index 389fb26..a5cde9a 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/IRadioMessagingIndication.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/IRadioMessagingIndication.aidl
@@ -35,7 +35,13 @@
/* @hide */
@VintfStability
interface IRadioMessagingIndication {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void cdmaNewSms(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.messaging.CdmaSmsMessage msg);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void cdmaRuimSmsStorageFull(in android.hardware.radio.RadioIndicationType type);
oneway void newBroadcastSms(in android.hardware.radio.RadioIndicationType type, in byte[] data);
oneway void newSms(in android.hardware.radio.RadioIndicationType type, in byte[] pdu);
diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/IRadioMessagingResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/IRadioMessagingResponse.aidl
index 9b10464..c2403e4 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/IRadioMessagingResponse.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/IRadioMessagingResponse.aidl
@@ -36,25 +36,49 @@
@VintfStability
interface IRadioMessagingResponse {
oneway void acknowledgeIncomingGsmSmsWithPduResponse(in android.hardware.radio.RadioResponseInfo info);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void acknowledgeLastIncomingCdmaSmsResponse(in android.hardware.radio.RadioResponseInfo info);
oneway void acknowledgeLastIncomingGsmSmsResponse(in android.hardware.radio.RadioResponseInfo info);
oneway void acknowledgeRequest(in int serial);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void deleteSmsOnRuimResponse(in android.hardware.radio.RadioResponseInfo info);
oneway void deleteSmsOnSimResponse(in android.hardware.radio.RadioResponseInfo info);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void getCdmaBroadcastConfigResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.messaging.CdmaBroadcastSmsConfigInfo[] configs);
oneway void getGsmBroadcastConfigResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.messaging.GsmBroadcastSmsConfigInfo[] configs);
oneway void getSmscAddressResponse(in android.hardware.radio.RadioResponseInfo info, in String smsc);
oneway void reportSmsMemoryStatusResponse(in android.hardware.radio.RadioResponseInfo info);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void sendCdmaSmsExpectMoreResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.messaging.SendSmsResult sms);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void sendCdmaSmsResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.messaging.SendSmsResult sms);
oneway void sendImsSmsResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.messaging.SendSmsResult sms);
oneway void sendSmsExpectMoreResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.messaging.SendSmsResult sms);
oneway void sendSmsResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.messaging.SendSmsResult sms);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void setCdmaBroadcastActivationResponse(in android.hardware.radio.RadioResponseInfo info);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void setCdmaBroadcastConfigResponse(in android.hardware.radio.RadioResponseInfo info);
oneway void setGsmBroadcastActivationResponse(in android.hardware.radio.RadioResponseInfo info);
oneway void setGsmBroadcastConfigResponse(in android.hardware.radio.RadioResponseInfo info);
oneway void setSmscAddressResponse(in android.hardware.radio.RadioResponseInfo info);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void writeSmsToRuimResponse(in android.hardware.radio.RadioResponseInfo info, in int index);
oneway void writeSmsToSimResponse(in android.hardware.radio.RadioResponseInfo info, in int index);
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/ImsSmsMessage.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/ImsSmsMessage.aidl
index 40b9ddb..e52b57a 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/ImsSmsMessage.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/ImsSmsMessage.aidl
@@ -38,6 +38,9 @@
android.hardware.radio.RadioTechnologyFamily tech;
boolean retry;
int messageRef;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
android.hardware.radio.messaging.CdmaSmsMessage[] cdmaMessage;
android.hardware.radio.messaging.GsmSmsMessage[] gsmMessage;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/SendSmsResult.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/SendSmsResult.aidl
index 3f1d120..ae398a9 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/SendSmsResult.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/current/android/hardware/radio/messaging/SendSmsResult.aidl
@@ -35,7 +35,16 @@
/* @hide */
@JavaDerive(toString=true) @VintfStability
parcelable SendSmsResult {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int messageRef;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
String ackPDU;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int errorCode;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/AccessTechnologySpecificInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/AccessTechnologySpecificInfo.aidl
index 667a8a7..36b9cdd 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/AccessTechnologySpecificInfo.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/AccessTechnologySpecificInfo.aidl
@@ -36,6 +36,9 @@
@JavaDerive(toString=true) @VintfStability
union AccessTechnologySpecificInfo {
boolean noinit;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
android.hardware.radio.network.Cdma2000RegistrationInfo cdmaInfo;
android.hardware.radio.network.EutranRegistrationInfo eutranInfo;
android.hardware.radio.network.NrVopsInfo ngranNrVopsInfo;
diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/Cdma2000RegistrationInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/Cdma2000RegistrationInfo.aidl
index bc9c0ba..5fbd6c4 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/Cdma2000RegistrationInfo.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/Cdma2000RegistrationInfo.aidl
@@ -35,11 +35,32 @@
/* @hide */
@JavaDerive(toString=true) @VintfStability
parcelable Cdma2000RegistrationInfo {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
boolean cssSupported;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int roamingIndicator;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int systemIsInPrl;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int defaultRoamingIndicator;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int PRL_INDICATOR_NOT_REGISTERED = (-1) /* -1 */;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int PRL_INDICATOR_NOT_IN_PRL = 0;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int PRL_INDICATOR_IN_PRL = 1;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CdmaRoamingType.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CdmaRoamingType.aidl
index 84532e3..ed9a9eb 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CdmaRoamingType.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CdmaRoamingType.aidl
@@ -35,7 +35,16 @@
/* @hide */
@Backing(type="int") @JavaDerive(toString=true) @VintfStability
enum CdmaRoamingType {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
HOME_NETWORK,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
AFFILIATED_ROAM,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
ANY_ROAM,
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CdmaSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CdmaSignalStrength.aidl
index 94430a8..6e68665 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CdmaSignalStrength.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CdmaSignalStrength.aidl
@@ -35,6 +35,12 @@
/* @hide */
@JavaDerive(toString=true) @VintfStability
parcelable CdmaSignalStrength {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int dbm;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int ecio;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CellIdentity.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CellIdentity.aidl
index ba27b39..dbd1575 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CellIdentity.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CellIdentity.aidl
@@ -39,6 +39,9 @@
android.hardware.radio.network.CellIdentityGsm gsm;
android.hardware.radio.network.CellIdentityWcdma wcdma;
android.hardware.radio.network.CellIdentityTdscdma tdscdma;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
android.hardware.radio.network.CellIdentityCdma cdma;
android.hardware.radio.network.CellIdentityLte lte;
android.hardware.radio.network.CellIdentityNr nr;
diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CellIdentityCdma.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CellIdentityCdma.aidl
index 63571bb..548afd2 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CellIdentityCdma.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CellIdentityCdma.aidl
@@ -35,10 +35,28 @@
/* @hide */
@JavaDerive(toString=true) @VintfStability
parcelable CellIdentityCdma {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int networkId;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int systemId;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int baseStationId;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int longitude;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int latitude;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
android.hardware.radio.network.OperatorInfo operatorNames;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CellInfoCdma.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CellInfoCdma.aidl
index 6d76a26..18c9496 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CellInfoCdma.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CellInfoCdma.aidl
@@ -35,7 +35,16 @@
/* @hide */
@JavaDerive(toString=true) @VintfStability
parcelable CellInfoCdma {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
android.hardware.radio.network.CellIdentityCdma cellIdentityCdma;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
android.hardware.radio.network.CdmaSignalStrength signalStrengthCdma;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
android.hardware.radio.network.EvdoSignalStrength signalStrengthEvdo;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CellInfoRatSpecificInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CellInfoRatSpecificInfo.aidl
index fd3239d..732e70f 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CellInfoRatSpecificInfo.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/CellInfoRatSpecificInfo.aidl
@@ -40,5 +40,8 @@
android.hardware.radio.network.CellInfoTdscdma tdscdma;
android.hardware.radio.network.CellInfoLte lte;
android.hardware.radio.network.CellInfoNr nr;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
android.hardware.radio.network.CellInfoCdma cdma;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/EvdoSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/EvdoSignalStrength.aidl
index e97e17d..2a7eccb 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/EvdoSignalStrength.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/EvdoSignalStrength.aidl
@@ -35,7 +35,16 @@
/* @hide */
@JavaDerive(toString=true) @VintfStability
parcelable EvdoSignalStrength {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int dbm;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int ecio;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int signalNoiseRatio;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/IRadioNetwork.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/IRadioNetwork.aidl
index 8af617f..37737a7 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/IRadioNetwork.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/IRadioNetwork.aidl
@@ -39,6 +39,9 @@
oneway void getAvailableBandModes(in int serial);
oneway void getAvailableNetworks(in int serial);
oneway void getBarringInfo(in int serial);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void getCdmaRoamingPreference(in int serial);
oneway void getCellInfoList(in int serial);
oneway void getDataRegistrationState(in int serial);
@@ -57,6 +60,9 @@
oneway void setAllowedNetworkTypesBitmap(in int serial, in int networkTypeBitmap);
oneway void setBandMode(in int serial, in android.hardware.radio.network.RadioBandMode mode);
oneway void setBarringPassword(in int serial, in String facility, in String oldPassword, in String newPassword);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void setCdmaRoamingPreference(in int serial, in android.hardware.radio.network.CdmaRoamingType type);
oneway void setCellInfoListRate(in int serial, in int rate);
oneway void setIndicationFilter(in int serial, in int indicationFilter);
diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/IRadioNetworkIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/IRadioNetworkIndication.aidl
index 8eea14f..d4d6118 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/IRadioNetworkIndication.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/IRadioNetworkIndication.aidl
@@ -36,6 +36,9 @@
@VintfStability
interface IRadioNetworkIndication {
oneway void barringInfoChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.CellIdentity cellIdentity, in android.hardware.radio.network.BarringInfo[] barringInfos);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void cdmaPrlChanged(in android.hardware.radio.RadioIndicationType type, in int version);
oneway void cellInfoList(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.CellInfo[] records);
oneway void currentLinkCapacityEstimate(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.LinkCapacityEstimate lce);
diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/IRadioNetworkResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/IRadioNetworkResponse.aidl
index e7f2918..4c6d100 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/IRadioNetworkResponse.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/IRadioNetworkResponse.aidl
@@ -40,6 +40,9 @@
oneway void getAvailableBandModesResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.RadioBandMode[] bandModes);
oneway void getAvailableNetworksResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.OperatorInfo[] networkInfos);
oneway void getBarringInfoResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.CellIdentity cellIdentity, in android.hardware.radio.network.BarringInfo[] barringInfos);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void getCdmaRoamingPreferenceResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.CdmaRoamingType type);
oneway void getCellInfoListResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.CellInfo[] cellInfo);
oneway void getDataRegistrationStateResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.RegStateResult dataRegResponse);
@@ -57,6 +60,9 @@
oneway void setAllowedNetworkTypesBitmapResponse(in android.hardware.radio.RadioResponseInfo info);
oneway void setBandModeResponse(in android.hardware.radio.RadioResponseInfo info);
oneway void setBarringPasswordResponse(in android.hardware.radio.RadioResponseInfo info);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void setCdmaRoamingPreferenceResponse(in android.hardware.radio.RadioResponseInfo info);
oneway void setCellInfoListRateResponse(in android.hardware.radio.RadioResponseInfo info);
oneway void setIndicationFilterResponse(in android.hardware.radio.RadioResponseInfo info);
diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SignalStrength.aidl
index da7db9a..196ff19 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SignalStrength.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SignalStrength.aidl
@@ -36,7 +36,13 @@
@JavaDerive(toString=true) @VintfStability
parcelable SignalStrength {
android.hardware.radio.network.GsmSignalStrength gsm;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
android.hardware.radio.network.CdmaSignalStrength cdma;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
android.hardware.radio.network.EvdoSignalStrength evdo;
android.hardware.radio.network.LteSignalStrength lte;
android.hardware.radio.network.TdscdmaSignalStrength tdscdma;
diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/CardStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/CardStatus.aidl
index 1a9d621..4cdbf81 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/CardStatus.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/CardStatus.aidl
@@ -38,6 +38,9 @@
int cardState;
android.hardware.radio.sim.PinState universalPinState;
int gsmUmtsSubscriptionAppIndex;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int cdmaSubscriptionAppIndex;
int imsSubscriptionAppIndex;
android.hardware.radio.sim.AppStatus[] applications;
diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/CdmaSubscriptionSource.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/CdmaSubscriptionSource.aidl
index 13b06e7..d3e8295 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/CdmaSubscriptionSource.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/CdmaSubscriptionSource.aidl
@@ -35,6 +35,12 @@
/* @hide */
@Backing(type="int") @JavaDerive(toString=true) @VintfStability
enum CdmaSubscriptionSource {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
RUIM_SIM,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
NV,
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/IRadioSim.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/IRadioSim.aidl
index 1728e41..5a4c5c1 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/IRadioSim.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/IRadioSim.aidl
@@ -40,7 +40,13 @@
oneway void changeIccPinForApp(in int serial, in String oldPin, in String newPin, in String aid);
oneway void enableUiccApplications(in int serial, in boolean enable);
oneway void getAllowedCarriers(in int serial);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void getCdmaSubscription(in int serial);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void getCdmaSubscriptionSource(in int serial);
oneway void getFacilityLockForApp(in int serial, in String facility, in String password, in int serviceClass, in String appId);
oneway void getIccCardStatus(in int serial);
@@ -63,6 +69,9 @@
oneway void sendTerminalResponseToSim(in int serial, in String contents);
oneway void setAllowedCarriers(in int serial, in android.hardware.radio.sim.CarrierRestrictions carriers, in android.hardware.radio.sim.SimLockMultiSimPolicy multiSimPolicy);
oneway void setCarrierInfoForImsiEncryption(in int serial, in android.hardware.radio.sim.ImsiEncryptionInfo imsiEncryptionInfo);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void setCdmaSubscriptionSource(in int serial, in android.hardware.radio.sim.CdmaSubscriptionSource cdmaSub);
oneway void setFacilityLockForApp(in int serial, in String facility, in boolean lockState, in String password, in int serviceClass, in String appId);
oneway void setResponseFunctions(in android.hardware.radio.sim.IRadioSimResponse radioSimResponse, in android.hardware.radio.sim.IRadioSimIndication radioSimIndication);
diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/IRadioSimIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/IRadioSimIndication.aidl
index a74b65a..0c4df06 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/IRadioSimIndication.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/IRadioSimIndication.aidl
@@ -36,6 +36,9 @@
@VintfStability
interface IRadioSimIndication {
oneway void carrierInfoForImsiEncryption(in android.hardware.radio.RadioIndicationType info);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void cdmaSubscriptionSourceChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.sim.CdmaSubscriptionSource cdmaSource);
oneway void simPhonebookChanged(in android.hardware.radio.RadioIndicationType type);
oneway void simPhonebookRecordsReceived(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.sim.PbReceivedStatus status, in android.hardware.radio.sim.PhonebookRecordInfo[] records);
diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/IRadioSimResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/IRadioSimResponse.aidl
index c653847..a512bae 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/IRadioSimResponse.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/IRadioSimResponse.aidl
@@ -41,7 +41,13 @@
oneway void changeIccPinForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries);
oneway void enableUiccApplicationsResponse(in android.hardware.radio.RadioResponseInfo info);
oneway void getAllowedCarriersResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.CarrierRestrictions carriers, in android.hardware.radio.sim.SimLockMultiSimPolicy multiSimPolicy);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void getCdmaSubscriptionResponse(in android.hardware.radio.RadioResponseInfo info, in String mdn, in String hSid, in String hNid, in String min, in String prl);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void getCdmaSubscriptionSourceResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.CdmaSubscriptionSource source);
oneway void getFacilityLockForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int response);
oneway void getIccCardStatusResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.CardStatus cardStatus);
@@ -63,6 +69,9 @@
oneway void sendTerminalResponseToSimResponse(in android.hardware.radio.RadioResponseInfo info);
oneway void setAllowedCarriersResponse(in android.hardware.radio.RadioResponseInfo info);
oneway void setCarrierInfoForImsiEncryptionResponse(in android.hardware.radio.RadioResponseInfo info);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void setCdmaSubscriptionSourceResponse(in android.hardware.radio.RadioResponseInfo info);
oneway void setFacilityLockForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int retry);
oneway void setSimCardPowerResponse(in android.hardware.radio.RadioResponseInfo info);
diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/Call.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/Call.aidl
index b45a45b..8bfd7ed 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/Call.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/Call.aidl
@@ -42,6 +42,9 @@
boolean isMT;
byte als;
boolean isVoice;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
boolean isVoicePrivacy;
String number;
int numberPresentation;
diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaCallWaiting.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaCallWaiting.aidl
index 0b36be4..7eb8c4e 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaCallWaiting.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaCallWaiting.aidl
@@ -35,24 +35,84 @@
/* @hide */
@JavaDerive(toString=true) @VintfStability
parcelable CdmaCallWaiting {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
String number;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int numberPresentation;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
String name;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
android.hardware.radio.voice.CdmaSignalInfoRecord signalInfoRecord;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int numberType;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int numberPlan;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PLAN_UNKNOWN = 0;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PLAN_ISDN = 1;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PLAN_DATA = 3;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PLAN_TELEX = 4;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PLAN_NATIONAL = 8;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PLAN_PRIVATE = 9;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PRESENTATION_ALLOWED = 0;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PRESENTATION_RESTRICTED = 1;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_PRESENTATION_UNKNOWN = 2;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_TYPE_UNKNOWN = 0;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_TYPE_INTERNATIONAL = 1;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_TYPE_NATIONAL = 2;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_TYPE_NETWORK_SPECIFIC = 3;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NUMBER_TYPE_SUBSCRIBER = 4;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaDisplayInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaDisplayInfoRecord.aidl
index 300b03f..eb97488 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaDisplayInfoRecord.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaDisplayInfoRecord.aidl
@@ -35,6 +35,12 @@
/* @hide */
@JavaDerive(toString=true) @VintfStability
parcelable CdmaDisplayInfoRecord {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
String alphaBuf;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int CDMA_ALPHA_INFO_BUFFER_LENGTH = 64;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaInformationRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaInformationRecord.aidl
index 2f7f5f0..4f421b1 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaInformationRecord.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaInformationRecord.aidl
@@ -35,24 +35,84 @@
/* @hide */
@JavaDerive(toString=true) @VintfStability
parcelable CdmaInformationRecord {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int name;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
android.hardware.radio.voice.CdmaDisplayInfoRecord[] display;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
android.hardware.radio.voice.CdmaNumberInfoRecord[] number;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
android.hardware.radio.voice.CdmaSignalInfoRecord[] signal;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
android.hardware.radio.voice.CdmaRedirectingNumberInfoRecord[] redir;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
android.hardware.radio.voice.CdmaLineControlInfoRecord[] lineCtrl;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
android.hardware.radio.voice.CdmaT53ClirInfoRecord[] clir;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
android.hardware.radio.voice.CdmaT53AudioControlInfoRecord[] audioCtrl;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int CDMA_MAX_NUMBER_OF_INFO_RECS = 10;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NAME_DISPLAY = 0;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NAME_CALLED_PARTY_NUMBER = 1;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NAME_CALLING_PARTY_NUMBER = 2;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NAME_CONNECTED_NUMBER = 3;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NAME_SIGNAL = 4;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NAME_REDIRECTING_NUMBER = 5;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NAME_LINE_CONTROL = 6;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NAME_EXTENDED_DISPLAY = 7;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NAME_T53_CLIR = 8;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NAME_T53_RELEASE = 9;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int NAME_T53_AUDIO_CONTROL = 10;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaLineControlInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaLineControlInfoRecord.aidl
index 4e4a7ee..6968a8a 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaLineControlInfoRecord.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaLineControlInfoRecord.aidl
@@ -35,8 +35,20 @@
/* @hide */
@JavaDerive(toString=true) @VintfStability
parcelable CdmaLineControlInfoRecord {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
byte lineCtrlPolarityIncluded;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
byte lineCtrlToggle;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
byte lineCtrlReverse;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
byte lineCtrlPowerDenial;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaNumberInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaNumberInfoRecord.aidl
index c3b0d5a..d2c09d6 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaNumberInfoRecord.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaNumberInfoRecord.aidl
@@ -35,10 +35,28 @@
/* @hide */
@JavaDerive(toString=true) @VintfStability
parcelable CdmaNumberInfoRecord {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
String number;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
byte numberType;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
byte numberPlan;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
byte pi;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
byte si;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int CDMA_NUMBER_INFO_BUFFER_LENGTH = 81;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaOtaProvisionStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaOtaProvisionStatus.aidl
index ae35fba..0bf802d 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaOtaProvisionStatus.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaOtaProvisionStatus.aidl
@@ -35,16 +35,52 @@
/* @hide */
@Backing(type="int") @JavaDerive(toString=true) @VintfStability
enum CdmaOtaProvisionStatus {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
SPL_UNLOCKED,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
SPC_RETRIES_EXCEEDED,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
A_KEY_EXCHANGED,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
SSD_UPDATED,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
NAM_DOWNLOADED,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
MDN_DOWNLOADED,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
IMSI_DOWNLOADED,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
PRL_DOWNLOADED,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
COMMITTED,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
OTAPA_STARTED,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
OTAPA_STOPPED,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
OTAPA_ABORTED,
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaRedirectingNumberInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaRedirectingNumberInfoRecord.aidl
index 93c7c6b..4e40cc7 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaRedirectingNumberInfoRecord.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaRedirectingNumberInfoRecord.aidl
@@ -35,13 +35,40 @@
/* @hide */
@JavaDerive(toString=true) @VintfStability
parcelable CdmaRedirectingNumberInfoRecord {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
android.hardware.radio.voice.CdmaNumberInfoRecord redirectingNumber;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
int redirectingReason;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int REDIRECTING_REASON_UNKNOWN = 0;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int REDIRECTING_REASON_CALL_FORWARDING_BUSY = 1;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int REDIRECTING_REASON_CALL_FORWARDING_NO_REPLY = 2;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int REDIRECTING_REASON_CALLED_DTE_OUT_OF_ORDER = 9;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int REDIRECTING_REASON_CALL_FORWARDING_BY_THE_CALLED_DTE = 10;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int REDIRECTING_REASON_CALL_FORWARDING_UNCONDITIONAL = 15;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
const int REDIRECTING_REASON_RESERVED = 16;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaSignalInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaSignalInfoRecord.aidl
index 69447b4..04e7bdc 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaSignalInfoRecord.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaSignalInfoRecord.aidl
@@ -35,8 +35,20 @@
/* @hide */
@JavaDerive(toString=true) @VintfStability
parcelable CdmaSignalInfoRecord {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
boolean isPresent;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
byte signalType;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
byte alertPitch;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
byte signal;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaT53AudioControlInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaT53AudioControlInfoRecord.aidl
index 69d79aa..733d822 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaT53AudioControlInfoRecord.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaT53AudioControlInfoRecord.aidl
@@ -35,6 +35,12 @@
/* @hide */
@JavaDerive(toString=true) @VintfStability
parcelable CdmaT53AudioControlInfoRecord {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
byte upLink;
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
byte downLink;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaT53ClirInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaT53ClirInfoRecord.aidl
index 83b6fb9..9cf931c 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaT53ClirInfoRecord.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/CdmaT53ClirInfoRecord.aidl
@@ -35,5 +35,8 @@
/* @hide */
@JavaDerive(toString=true) @VintfStability
parcelable CdmaT53ClirInfoRecord {
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
byte cause;
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/IRadioVoice.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/IRadioVoice.aidl
index d0a9451..d519bd9 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/IRadioVoice.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/IRadioVoice.aidl
@@ -59,6 +59,9 @@
oneway void rejectCall(in int serial);
oneway void responseAcknowledgement();
oneway void sendBurstDtmf(in int serial, in String dtmf, in int on, in int off);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void sendCdmaFeatureCode(in int serial, in String featureCode);
oneway void sendDtmf(in int serial, in String s);
oneway void sendUssd(in int serial, in String ussd);
diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/IRadioVoiceIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/IRadioVoiceIndication.aidl
index 4614ee1..fac27f4 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/IRadioVoiceIndication.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/IRadioVoiceIndication.aidl
@@ -37,8 +37,17 @@
interface IRadioVoiceIndication {
oneway void callRing(in android.hardware.radio.RadioIndicationType type, in boolean isGsm, in android.hardware.radio.voice.CdmaSignalInfoRecord record);
oneway void callStateChanged(in android.hardware.radio.RadioIndicationType type);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void cdmaCallWaiting(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.voice.CdmaCallWaiting callWaitingRecord);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void cdmaInfoRec(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.voice.CdmaInformationRecord[] records);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void cdmaOtaProvisionStatus(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.voice.CdmaOtaProvisionStatus status);
oneway void currentEmergencyNumberList(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.voice.EmergencyNumber[] emergencyNumberList);
oneway void enterEmergencyCallbackMode(in android.hardware.radio.RadioIndicationType type);
diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/IRadioVoiceResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/IRadioVoiceResponse.aidl
index 46927c2..8a0af44 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/IRadioVoiceResponse.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/IRadioVoiceResponse.aidl
@@ -59,6 +59,9 @@
oneway void isVoNrEnabledResponse(in android.hardware.radio.RadioResponseInfo info, in boolean enable);
oneway void rejectCallResponse(in android.hardware.radio.RadioResponseInfo info);
oneway void sendBurstDtmfResponse(in android.hardware.radio.RadioResponseInfo info);
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
oneway void sendCdmaFeatureCodeResponse(in android.hardware.radio.RadioResponseInfo info);
oneway void sendDtmfResponse(in android.hardware.radio.RadioResponseInfo info);
oneway void sendUssdResponse(in android.hardware.radio.RadioResponseInfo info);
diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/LastCallFailCause.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/LastCallFailCause.aidl
index 0cac135..d3d62c3 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/LastCallFailCause.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.voice/current/android/hardware/radio/voice/LastCallFailCause.aidl
@@ -105,15 +105,45 @@
RADIO_RELEASE_ABNORMAL = 259,
ACCESS_CLASS_BLOCKED = 260,
NETWORK_DETACH = 261,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
CDMA_LOCKED_UNTIL_POWER_CYCLE = 1000,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
CDMA_DROP = 1001,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
CDMA_INTERCEPT = 1002,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
CDMA_REORDER = 1003,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
CDMA_SO_REJECT = 1004,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
CDMA_RETRY_ORDER = 1005,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
CDMA_ACCESS_FAILURE = 1006,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
CDMA_PREEMPTED = 1007,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
CDMA_NOT_EMERGENCY = 1008,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
CDMA_ACCESS_BLOCKED = 1009,
OEM_CAUSE_1 = 0xf001,
OEM_CAUSE_2 = 0xf002,
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/AccessNetwork.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/AccessNetwork.aidl
index 73a267b..c719846 100644
--- a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/AccessNetwork.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/AccessNetwork.aidl
@@ -39,6 +39,9 @@
GERAN,
UTRAN,
EUTRAN,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
CDMA2000,
IWLAN,
NGRAN,
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioAccessFamily.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioAccessFamily.aidl
index 1298ab0..b400bbe 100644
--- a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioAccessFamily.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioAccessFamily.aidl
@@ -41,12 +41,24 @@
UMTS = (1 << android.hardware.radio.RadioTechnology.UMTS) /* 8 */,
IS95A = (1 << android.hardware.radio.RadioTechnology.IS95A) /* 16 */,
IS95B = (1 << android.hardware.radio.RadioTechnology.IS95B) /* 32 */,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
ONE_X_RTT = (1 << android.hardware.radio.RadioTechnology.ONE_X_RTT) /* 64 */,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
EVDO_0 = (1 << android.hardware.radio.RadioTechnology.EVDO_0) /* 128 */,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
EVDO_A = (1 << android.hardware.radio.RadioTechnology.EVDO_A) /* 256 */,
HSDPA = (1 << android.hardware.radio.RadioTechnology.HSDPA) /* 512 */,
HSUPA = (1 << android.hardware.radio.RadioTechnology.HSUPA) /* 1024 */,
HSPA = (1 << android.hardware.radio.RadioTechnology.HSPA) /* 2048 */,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
EVDO_B = (1 << android.hardware.radio.RadioTechnology.EVDO_B) /* 4096 */,
EHRPD = (1 << android.hardware.radio.RadioTechnology.EHRPD) /* 8192 */,
LTE = (1 << android.hardware.radio.RadioTechnology.LTE) /* 16384 */,
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioTechnology.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioTechnology.aidl
index 7c6a657..7d2d08c 100644
--- a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioTechnology.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioTechnology.aidl
@@ -41,12 +41,24 @@
UMTS,
IS95A,
IS95B,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
ONE_X_RTT,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
EVDO_0,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
EVDO_A,
HSDPA,
HSUPA,
HSPA,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
EVDO_B,
EHRPD,
LTE,
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioTechnologyFamily.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioTechnologyFamily.aidl
index 85e9850..9b05c97 100644
--- a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioTechnologyFamily.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioTechnologyFamily.aidl
@@ -36,5 +36,8 @@
@Backing(type="int") @JavaDerive(toString=true) @VintfStability
enum RadioTechnologyFamily {
THREE_GPP,
+ /**
+ * @deprecated Legacy CDMA is unsupported.
+ */
THREE_GPP2,
}
diff --git a/radio/aidl/android/hardware/radio/AccessNetwork.aidl b/radio/aidl/android/hardware/radio/AccessNetwork.aidl
index 4099f83..0d10009 100644
--- a/radio/aidl/android/hardware/radio/AccessNetwork.aidl
+++ b/radio/aidl/android/hardware/radio/AccessNetwork.aidl
@@ -39,6 +39,7 @@
EUTRAN,
/**
* CDMA 2000 network
+ * @deprecated Legacy CDMA is unsupported.
*/
CDMA2000,
/**
diff --git a/radio/aidl/android/hardware/radio/RadioAccessFamily.aidl b/radio/aidl/android/hardware/radio/RadioAccessFamily.aidl
index 9ab4583..6d38d59 100644
--- a/radio/aidl/android/hardware/radio/RadioAccessFamily.aidl
+++ b/radio/aidl/android/hardware/radio/RadioAccessFamily.aidl
@@ -29,12 +29,16 @@
UMTS = 1 << RadioTechnology.UMTS,
IS95A = 1 << RadioTechnology.IS95A,
IS95B = 1 << RadioTechnology.IS95B,
+ /** @deprecated Legacy CDMA is unsupported. */
ONE_X_RTT = 1 << RadioTechnology.ONE_X_RTT,
+ /** @deprecated Legacy CDMA is unsupported. */
EVDO_0 = 1 << RadioTechnology.EVDO_0,
+ /** @deprecated Legacy CDMA is unsupported. */
EVDO_A = 1 << RadioTechnology.EVDO_A,
HSDPA = 1 << RadioTechnology.HSDPA,
HSUPA = 1 << RadioTechnology.HSUPA,
HSPA = 1 << RadioTechnology.HSPA,
+ /** @deprecated Legacy CDMA is unsupported. */
EVDO_B = 1 << RadioTechnology.EVDO_B,
EHRPD = 1 << RadioTechnology.EHRPD,
LTE = 1 << RadioTechnology.LTE,
diff --git a/radio/aidl/android/hardware/radio/RadioError.aidl b/radio/aidl/android/hardware/radio/RadioError.aidl
index 9c39bc4..4640122 100644
--- a/radio/aidl/android/hardware/radio/RadioError.aidl
+++ b/radio/aidl/android/hardware/radio/RadioError.aidl
@@ -60,12 +60,11 @@
*/
SMS_SEND_FAIL_RETRY = 10,
/**
- * Fail to set the location where CDMA subscription shall be retrieved because of SIM or
- * RUIM card absent
+ * SIM or RUIM card absent
*/
SIM_ABSENT = 11,
/**
- * Fail to find CDMA subscription from specified location
+ * Failed to find subscription from specified location
*/
SUBSCRIPTION_NOT_AVAILABLE = 12,
/**
diff --git a/radio/aidl/android/hardware/radio/RadioTechnology.aidl b/radio/aidl/android/hardware/radio/RadioTechnology.aidl
index 7ae428b..cd82ef5 100644
--- a/radio/aidl/android/hardware/radio/RadioTechnology.aidl
+++ b/radio/aidl/android/hardware/radio/RadioTechnology.aidl
@@ -27,12 +27,16 @@
UMTS,
IS95A,
IS95B,
+ /** @deprecated Legacy CDMA is unsupported. */
ONE_X_RTT,
+ /** @deprecated Legacy CDMA is unsupported. */
EVDO_0,
+ /** @deprecated Legacy CDMA is unsupported. */
EVDO_A,
HSDPA,
HSUPA,
HSPA,
+ /** @deprecated Legacy CDMA is unsupported. */
EVDO_B,
EHRPD,
LTE,
diff --git a/radio/aidl/android/hardware/radio/RadioTechnologyFamily.aidl b/radio/aidl/android/hardware/radio/RadioTechnologyFamily.aidl
index 4b5498c..a13c358 100644
--- a/radio/aidl/android/hardware/radio/RadioTechnologyFamily.aidl
+++ b/radio/aidl/android/hardware/radio/RadioTechnologyFamily.aidl
@@ -27,6 +27,7 @@
THREE_GPP,
/**
* 3GPP2 Technologies - CDMA
+ * @deprecated Legacy CDMA is unsupported.
*/
THREE_GPP2,
}
diff --git a/radio/aidl/android/hardware/radio/data/DataCallFailCause.aidl b/radio/aidl/android/hardware/radio/data/DataCallFailCause.aidl
index e015e8e..c5eeeb3 100644
--- a/radio/aidl/android/hardware/radio/data/DataCallFailCause.aidl
+++ b/radio/aidl/android/hardware/radio/data/DataCallFailCause.aidl
@@ -520,26 +520,32 @@
PDN_NON_IP_CALL_DISALLOWED = 0x817,
/**
* Device in CDMA locked state.
+ * @deprecated Legacy CDMA is unsupported.
*/
CDMA_LOCK = 0x818,
/**
* Received an intercept order from the base station.
+ * @deprecated Legacy CDMA is unsupported.
*/
CDMA_INTERCEPT = 0x819,
/**
* Receiving a reorder from the base station.
+ * @deprecated Legacy CDMA is unsupported.
*/
CDMA_REORDER = 0x81A,
/**
* Receiving a release from the base station with a SO (Service Option) Reject reason.
+ * @deprecated Legacy CDMA is unsupported.
*/
CDMA_RELEASE_DUE_TO_SO_REJECTION = 0x81B,
/**
* Receiving an incoming call from the base station.
+ * @deprecated Legacy CDMA is unsupported.
*/
CDMA_INCOMING_CALL = 0x81C,
/**
* Received an alert stop from the base station due to incoming only.
+ * @deprecated Legacy CDMA is unsupported.
*/
CDMA_ALERT_STOP = 0x81D,
/**
@@ -569,6 +575,7 @@
CONCURRENT_SERVICES_INCOMPATIBLE = 0x823,
/**
* Device does not have CDMA service.
+ * @deprecated Legacy CDMA is unsupported.
*/
NO_CDMA_SERVICE = 0x824,
/**
@@ -577,6 +584,7 @@
RUIM_NOT_PRESENT = 0x825,
/**
* Receiving a retry order from the base station.
+ * @deprecated Legacy CDMA is unsupported.
*/
CDMA_RETRY_ORDER = 0x826,
/**
@@ -1061,30 +1069,37 @@
UMTS_HANDOVER_TO_IWLAN = 0x897,
/**
* Received a connection deny due to general or network busy on EVDO network.
+ * @deprecated Legacy CDMA is unsupported.
*/
EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY = 0x898,
/**
* Received a connection deny due to billing or authentication failure on EVDO network.
+ * @deprecated Legacy CDMA is unsupported.
*/
EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE = 0x899,
/**
* HDR system has been changed due to redirection or the PRL was not preferred.
+ * @deprecated Legacy CDMA is unsupported.
*/
EVDO_HDR_CHANGED = 0x89A,
/**
* Device exited HDR due to redirection or the PRL was not preferred.
+ * @deprecated Legacy CDMA is unsupported.
*/
EVDO_HDR_EXITED = 0x89B,
/**
* Device does not have an HDR session.
+ * @deprecated Legacy CDMA is unsupported.
*/
EVDO_HDR_NO_SESSION = 0x89C,
/**
* It is ending an HDR call origination in favor of a GPS fix.
+ * @deprecated Legacy CDMA is unsupported.
*/
EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL = 0x89D,
/**
* Connection setup on the HDR system was time out.
+ * @deprecated Legacy CDMA is unsupported.
*/
EVDO_HDR_CONNECTION_SETUP_TIMEOUT = 0x89E,
/**
diff --git a/radio/aidl/android/hardware/radio/messaging/CdmaBroadcastSmsConfigInfo.aidl b/radio/aidl/android/hardware/radio/messaging/CdmaBroadcastSmsConfigInfo.aidl
index 35a6a8d..cef8f5d 100644
--- a/radio/aidl/android/hardware/radio/messaging/CdmaBroadcastSmsConfigInfo.aidl
+++ b/radio/aidl/android/hardware/radio/messaging/CdmaBroadcastSmsConfigInfo.aidl
@@ -23,15 +23,18 @@
/**
* Defines a broadcast message identifier whose value is 0x0000 - 0xFFFF as defined in
* C.R1001G 9.3.1 and 9.3.2.
+ * @deprecated Legacy CDMA is unsupported.
*/
int serviceCategory;
/**
* Language code of broadcast message whose value is 0x00 - 0x07 as defined in C.R1001G 9.2.
+ * @deprecated Legacy CDMA is unsupported.
*/
int language;
/**
* Selected false means message types specified in serviceCategory are not accepted,
* while true means accepted.
+ * @deprecated Legacy CDMA is unsupported.
*/
boolean selected;
}
diff --git a/radio/aidl/android/hardware/radio/messaging/CdmaSmsAck.aidl b/radio/aidl/android/hardware/radio/messaging/CdmaSmsAck.aidl
index 2544ab5..ea5d8b2 100644
--- a/radio/aidl/android/hardware/radio/messaging/CdmaSmsAck.aidl
+++ b/radio/aidl/android/hardware/radio/messaging/CdmaSmsAck.aidl
@@ -20,10 +20,12 @@
@VintfStability
@JavaDerive(toString=true)
parcelable CdmaSmsAck {
+ /** @deprecated Legacy CDMA is unsupported. */
boolean errorClass;
/**
* SMS cause code as defined in N.S00005, 6.5.2.125.
* Currently, only 35 (resource shortage) and 39 (other terminal problem) are reported.
+ * @deprecated Legacy CDMA is unsupported.
*/
int smsCauseCode;
}
diff --git a/radio/aidl/android/hardware/radio/messaging/CdmaSmsAddress.aidl b/radio/aidl/android/hardware/radio/messaging/CdmaSmsAddress.aidl
index a7ad233..11d953b 100644
--- a/radio/aidl/android/hardware/radio/messaging/CdmaSmsAddress.aidl
+++ b/radio/aidl/android/hardware/radio/messaging/CdmaSmsAddress.aidl
@@ -22,40 +22,60 @@
parcelable CdmaSmsAddress {
/**
* DTMF digits
+ * @deprecated Legacy CDMA is unsupported.
*/
const int DIGIT_MODE_FOUR_BIT = 0;
+ /** @deprecated Legacy CDMA is unsupported. */
const int DIGIT_MODE_EIGHT_BIT = 1;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_PLAN_UNKNOWN = 0;
/**
* CCITT E.164 and E.163, including ISDN plan
+ * @deprecated Legacy CDMA is unsupported.
*/
const int NUMBER_PLAN_TELEPHONY = 1;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_PLAN_RESERVED_2 = 2;
/**
* CCITT X.121
+ * @deprecated Legacy CDMA is unsupported.
*/
const int NUMBER_PLAN_DATA = 3;
/**
* CCITT F.69
+ * @deprecated Legacy CDMA is unsupported.
*/
const int NUMBER_PLAN_TELEX = 4;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_PLAN_RESERVED_5 = 5;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_PLAN_RESERVED_6 = 6;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_PLAN_RESERVED_7 = 7;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_PLAN_RESERVED_8 = 8;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_PLAN_PRIVATE = 9;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_PLAN_RESERVED_10 = 10;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_PLAN_RESERVED_11 = 11;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_PLAN_RESERVED_12 = 12;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_PLAN_RESERVED_13 = 13;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_PLAN_RESERVED_14 = 14;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_PLAN_RESERVED_15 = 15;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_TYPE_UNKNOWN = 0;
/**
* INTERNATIONAL is used when number mode is not data network address. DATA_IP is used when the
* number mode is data network address.
+ * @deprecated Legacy CDMA is unsupported.
*/
const int NUMBER_TYPE_INTERNATIONAL_OR_DATA_IP = 1;
/**
@@ -63,25 +83,33 @@
* when the number mode is data network address. For INTERNET_MAIL, in the address data
* "digits", each byte contains an ASCII character. Examples are: "x@y.com,a@b.com"
* Ref TIA/EIA-637A 3.4.3.3
+ * @deprecated Legacy CDMA is unsupported.
*/
const int NUMBER_TYPE_NATIONAL_OR_INTERNET_MAIL = 2;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_TYPE_NETWORK = 3;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_TYPE_SUBSCRIBER = 4;
/**
* GSM SMS: address value is GSM 7-bit chars
+ * @deprecated Legacy CDMA is unsupported.
*/
const int NUMBER_TYPE_ALPHANUMERIC = 5;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_TYPE_ABBREVIATED = 6;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_TYPE_RESERVED_7 = 7;
/**
* CdmaSmsDigitMode is of two types : 4 bit and 8 bit.
* For 4-bit type, only "digits" field defined below in this struct is used.
* Values are DIGIT_MODE_
+ * @deprecated Legacy CDMA is unsupported.
*/
int digitMode;
/**
* Used only when digitMode is 8-bit.
+ * @deprecated Legacy CDMA is unsupported.
*/
boolean isNumberModeDataNetwork;
/**
@@ -92,15 +120,18 @@
* numberPlan = TELEPHONY
* digits = ASCII digits, e.g. '1', '2', '3', '4', and '5'
* Values are NUMBER_TYPE_
+ * @deprecated Legacy CDMA is unsupported.
*/
int numberType;
/**
* Used only when digitMode is 8-bit.
* Values are NUMBER_PLAN_
+ * @deprecated Legacy CDMA is unsupported.
*/
int numberPlan;
/**
* Each byte in this array represents a 4 bit or 8-bit digit of address data.
+ * @deprecated Legacy CDMA is unsupported.
*/
byte[] digits;
}
diff --git a/radio/aidl/android/hardware/radio/messaging/CdmaSmsMessage.aidl b/radio/aidl/android/hardware/radio/messaging/CdmaSmsMessage.aidl
index 51388b6..5332d82 100644
--- a/radio/aidl/android/hardware/radio/messaging/CdmaSmsMessage.aidl
+++ b/radio/aidl/android/hardware/radio/messaging/CdmaSmsMessage.aidl
@@ -23,13 +23,19 @@
@VintfStability
@JavaDerive(toString=true)
parcelable CdmaSmsMessage {
+ /** @deprecated Legacy CDMA is unsupported. */
int teleserviceId;
+ /** @deprecated Legacy CDMA is unsupported. */
boolean isServicePresent;
+ /** @deprecated Legacy CDMA is unsupported. */
int serviceCategory;
+ /** @deprecated Legacy CDMA is unsupported. */
CdmaSmsAddress address;
+ /** @deprecated Legacy CDMA is unsupported. */
CdmaSmsSubaddress subAddress;
/**
* 3GPP2 C.S0015-B, v2.0
+ * @deprecated Legacy CDMA is unsupported.
*/
byte[] bearerData;
}
diff --git a/radio/aidl/android/hardware/radio/messaging/CdmaSmsSubaddress.aidl b/radio/aidl/android/hardware/radio/messaging/CdmaSmsSubaddress.aidl
index 19d84ff..0a894ff 100644
--- a/radio/aidl/android/hardware/radio/messaging/CdmaSmsSubaddress.aidl
+++ b/radio/aidl/android/hardware/radio/messaging/CdmaSmsSubaddress.aidl
@@ -22,23 +22,28 @@
parcelable CdmaSmsSubaddress {
/**
* CCITT X.213 or ISO 8348 AD2
+ * @deprecated Legacy CDMA is unsupported.
*/
const int SUBADDRESS_TYPE_NSAP = 0;
/**
* e.g. X.25
+ * @deprecated Legacy CDMA is unsupported.
*/
const int SUBADDRESS_TYPE_USER_SPECIFIED = 1;
/**
* Values are SUBADDRESS_TYPE_
+ * @deprecated Legacy CDMA is unsupported.
*/
int subaddressType;
/**
* True means the last byte's lower 4 bits must be ignored
+ * @deprecated Legacy CDMA is unsupported.
*/
boolean odd;
/**
* Each byte represents an 8-bit digit of subaddress data
+ * @deprecated Legacy CDMA is unsupported.
*/
byte[] digits;
}
diff --git a/radio/aidl/android/hardware/radio/messaging/CdmaSmsWriteArgs.aidl b/radio/aidl/android/hardware/radio/messaging/CdmaSmsWriteArgs.aidl
index 897ec80..3047859 100644
--- a/radio/aidl/android/hardware/radio/messaging/CdmaSmsWriteArgs.aidl
+++ b/radio/aidl/android/hardware/radio/messaging/CdmaSmsWriteArgs.aidl
@@ -22,15 +22,21 @@
@VintfStability
@JavaDerive(toString=true)
parcelable CdmaSmsWriteArgs {
+ /** @deprecated Legacy CDMA is unsupported. */
const int STATUS_REC_UNREAD = 0;
+ /** @deprecated Legacy CDMA is unsupported. */
const int STATUS_REC_READ = 1;
+ /** @deprecated Legacy CDMA is unsupported. */
const int STATUS_STO_UNSENT = 2;
+ /** @deprecated Legacy CDMA is unsupported. */
const int STATUS_STO_SENT = 3;
/**
* Status of message. See TS 27.005 3.1
* Values are STATUS_
+ * @deprecated Legacy CDMA is unsupported.
*/
int status;
+ /** @deprecated Legacy CDMA is unsupported. */
CdmaSmsMessage message;
}
diff --git a/radio/aidl/android/hardware/radio/messaging/IRadioMessaging.aidl b/radio/aidl/android/hardware/radio/messaging/IRadioMessaging.aidl
index 945453c..b60a225 100644
--- a/radio/aidl/android/hardware/radio/messaging/IRadioMessaging.aidl
+++ b/radio/aidl/android/hardware/radio/messaging/IRadioMessaging.aidl
@@ -65,6 +65,8 @@
* Response function is IRadioMessagingResponse.acknowledgeLastIncomingCdmaSmsResponse()
*
* This is available when android.hardware.telephony.cdma is defined.
+ *
+ * @deprecated Legacy CDMA is unsupported.
*/
void acknowledgeLastIncomingCdmaSms(in int serial, in CdmaSmsAck smsAck);
@@ -94,6 +96,8 @@
* Response function is IRadioMessagingResponse.deleteSmsOnRuimResponse()
*
* This is available when android.hardware.telephony.cdma is defined.
+ *
+ * @deprecated Legacy CDMA is unsupported.
*/
void deleteSmsOnRuim(in int serial, in int index);
@@ -117,6 +121,8 @@
* Response function is IRadioMessagingResponse.getCdmaBroadcastConfigResponse()
*
* This is available when android.hardware.telephony.cdma is defined.
+ *
+ * @deprecated Legacy CDMA is unsupported.
*/
void getCdmaBroadcastConfig(in int serial);
@@ -173,6 +179,8 @@
* Response function is IRadioMessagingResponse.sendCdmaSmsResponse()
*
* This is available when android.hardware.telephony.cdma is defined.
+ *
+ * @deprecated Legacy CDMA is unsupported.
*/
void sendCdmaSms(in int serial, in CdmaSmsMessage sms);
@@ -186,6 +194,8 @@
* Response function is IRadioMessagingResponse.sendCdmaSmsExpectMoreResponse()
*
* This is available when android.hardware.telephony.cdma is defined.
+ *
+ * @deprecated Legacy CDMA is unsupported.
*/
void sendCdmaSmsExpectMore(in int serial, in CdmaSmsMessage sms);
@@ -243,6 +253,8 @@
* Response function is IRadioMessagingResponse.setCdmaBroadcastActivationResponse()
*
* This is available when android.hardware.telephony.cdma is defined.
+ *
+ * @deprecated Legacy CDMA is unsupported.
*/
void setCdmaBroadcastActivation(in int serial, in boolean activate);
@@ -255,6 +267,8 @@
* Response function is IRadioMessagingResponse.setCdmaBroadcastConfigResponse()
*
* This is available when android.hardware.telephony.cdma is defined.
+ *
+ * @deprecated Legacy CDMA is unsupported.
*/
void setCdmaBroadcastConfig(in int serial, in CdmaBroadcastSmsConfigInfo[] configInfo);
@@ -315,6 +329,8 @@
* Response function is IRadioMessagingResponse.writeSmsToRuimResponse()
*
* This is available when android.hardware.telephony.cdma is defined.
+ *
+ * @deprecated Legacy CDMA is unsupported.
*/
void writeSmsToRuim(in int serial, in CdmaSmsWriteArgs cdmaSms);
diff --git a/radio/aidl/android/hardware/radio/messaging/IRadioMessagingIndication.aidl b/radio/aidl/android/hardware/radio/messaging/IRadioMessagingIndication.aidl
index a177c2c..4c6529b 100644
--- a/radio/aidl/android/hardware/radio/messaging/IRadioMessagingIndication.aidl
+++ b/radio/aidl/android/hardware/radio/messaging/IRadioMessagingIndication.aidl
@@ -32,6 +32,7 @@
*
* @param type Type of radio indication
* @param msg Cdma Sms Message
+ * @deprecated Legacy CDMA is unsupported.
*/
void cdmaNewSms(in RadioIndicationType type, in CdmaSmsMessage msg);
@@ -40,6 +41,7 @@
* space is freed.
*
* @param type Type of radio indication
+ * @deprecated Legacy CDMA is unsupported.
*/
void cdmaRuimSmsStorageFull(in RadioIndicationType type);
diff --git a/radio/aidl/android/hardware/radio/messaging/IRadioMessagingResponse.aidl b/radio/aidl/android/hardware/radio/messaging/IRadioMessagingResponse.aidl
index f0d7999..9b6e461 100644
--- a/radio/aidl/android/hardware/radio/messaging/IRadioMessagingResponse.aidl
+++ b/radio/aidl/android/hardware/radio/messaging/IRadioMessagingResponse.aidl
@@ -62,6 +62,7 @@
* RadioError:OPERATION_NOT_ALLOWED
* RadioError:NO_RESOURCES
* RadioError:CANCELLED
+ * @deprecated Legacy CDMA is unsupported.
*/
void acknowledgeLastIncomingCdmaSmsResponse(in RadioResponseInfo info);
@@ -108,6 +109,7 @@
* RadioError:INVALID_MODEM_STATE
* RadioError:OPERATION_NOT_ALLOWED
* RadioError:SIM_ABSENT
+ * @deprecated Legacy CDMA is unsupported.
*/
void deleteSmsOnRuimResponse(in RadioResponseInfo info);
@@ -153,6 +155,7 @@
* RadioError:NO_RESOURCES
* RadioError:CANCELLED
* RadioError:INVALID_MODEM_STATE
+ * @deprecated Legacy CDMA is unsupported.
*/
void getCdmaBroadcastConfigResponse(
in RadioResponseInfo info, in CdmaBroadcastSmsConfigInfo[] configs);
@@ -257,6 +260,7 @@
* RadioError:SIMULTANEOUS_SMS_AND_CALL_NOT_ALLOWED
* RadioError:ACCESS_BARRED
* RadioError:BLOCKED_DUE_TO_CALL
+ * @deprecated Legacy CDMA is unsupported.
*/
void sendCdmaSmsExpectMoreResponse(in RadioResponseInfo info, in SendSmsResult sms);
@@ -291,6 +295,7 @@
* RadioError:SIMULTANEOUS_SMS_AND_CALL_NOT_ALLOWED
* RadioError:ACCESS_BARRED
* RadioError:BLOCKED_DUE_TO_CALL
+ * @deprecated Legacy CDMA is unsupported.
*/
void sendCdmaSmsResponse(in RadioResponseInfo info, in SendSmsResult sms);
@@ -407,6 +412,7 @@
* RadioError:NO_RESOURCES
* RadioError:CANCELLED
* RadioError:INVALID_MODEM_STATE
+ * @deprecated Legacy CDMA is unsupported.
*/
void setCdmaBroadcastActivationResponse(in RadioResponseInfo info);
@@ -427,6 +433,7 @@
* RadioError:NO_RESOURCES
* RadioError:CANCELLED
* RadioError:INVALID_MODEM_STATE
+ * @deprecated Legacy CDMA is unsupported.
*/
void setCdmaBroadcastConfigResponse(in RadioResponseInfo info);
@@ -520,6 +527,7 @@
* RadioError:CANCELLED
* RadioError:INVALID_MODEM_STATE
* RadioError:SIM_ABSENT
+ * @deprecated Legacy CDMA is unsupported.
*/
void writeSmsToRuimResponse(in RadioResponseInfo info, in int index);
diff --git a/radio/aidl/android/hardware/radio/messaging/ImsSmsMessage.aidl b/radio/aidl/android/hardware/radio/messaging/ImsSmsMessage.aidl
index 5f9f82b..3efa523 100644
--- a/radio/aidl/android/hardware/radio/messaging/ImsSmsMessage.aidl
+++ b/radio/aidl/android/hardware/radio/messaging/ImsSmsMessage.aidl
@@ -37,6 +37,7 @@
/**
* Valid field if tech is 3GPP2 and size = 1 else must be empty. Only one of cdmaMessage and
* gsmMessage must be of size 1 based on the RadioTechnologyFamily and the other must be size 0.
+ * @deprecated Legacy CDMA is unsupported.
*/
CdmaSmsMessage[] cdmaMessage;
/**
diff --git a/radio/aidl/android/hardware/radio/messaging/SendSmsResult.aidl b/radio/aidl/android/hardware/radio/messaging/SendSmsResult.aidl
index ea93727..da41d84 100644
--- a/radio/aidl/android/hardware/radio/messaging/SendSmsResult.aidl
+++ b/radio/aidl/android/hardware/radio/messaging/SendSmsResult.aidl
@@ -23,15 +23,18 @@
/**
* TP-Message-Reference for GSM, and BearerData MessageId for CDMA.
* See 3GPP2 C.S0015-B, v2.0, table 4.5-1
+ * @deprecated Legacy CDMA is unsupported.
*/
int messageRef;
/**
* Ack PDU or empty string if n/a
+ * @deprecated Legacy CDMA is unsupported.
*/
String ackPDU;
/**
* See 3GPP 27.005, 3.2.5 for GSM/UMTS, 3GPP2 N.S0005 (IS-41C) Table 171 for CDMA.
* -1 if unknown or not applicable.
+ * @deprecated Legacy CDMA is unsupported.
*/
int errorCode;
}
diff --git a/radio/aidl/android/hardware/radio/modem/IRadioModem.aidl b/radio/aidl/android/hardware/radio/modem/IRadioModem.aidl
index bfca5a9..491657c 100644
--- a/radio/aidl/android/hardware/radio/modem/IRadioModem.aidl
+++ b/radio/aidl/android/hardware/radio/modem/IRadioModem.aidl
@@ -139,15 +139,14 @@
void nvReadItem(in int serial, in NvItem itemId);
/**
- * Reset the radio NV configuration to the factory state.
- * This is used for device configuration by some CDMA operators.
+ * Reset the radio NV configuration.
+ *
+ * This is also used to reboot the modem with ResetNvType.RELOAD.
*
* @param serial Serial number of request.
- * @param resetType ResetNvType
+ * @param resetType Type of reset operation
*
* Response function is IRadioModemResponse.nvResetConfigResponse()
- *
- * Note: This will be deprecated in favor of a rebootModem API in Android U.
*/
void nvResetConfig(in int serial, in ResetNvType resetType);
diff --git a/radio/aidl/android/hardware/radio/modem/IRadioModemResponse.aidl b/radio/aidl/android/hardware/radio/modem/IRadioModemResponse.aidl
index 6d2504c..498f228 100644
--- a/radio/aidl/android/hardware/radio/modem/IRadioModemResponse.aidl
+++ b/radio/aidl/android/hardware/radio/modem/IRadioModemResponse.aidl
@@ -175,8 +175,6 @@
* Valid errors returned:
* RadioError:NONE
* RadioError:RADIO_NOT_AVAILABLE
- *
- * Note: This will be deprecated in favor of a rebootModemResponse API in Android U.
*/
void nvResetConfigResponse(in RadioResponseInfo info);
diff --git a/radio/aidl/android/hardware/radio/modem/ResetNvType.aidl b/radio/aidl/android/hardware/radio/modem/ResetNvType.aidl
index b6be54d..71736d8 100644
--- a/radio/aidl/android/hardware/radio/modem/ResetNvType.aidl
+++ b/radio/aidl/android/hardware/radio/modem/ResetNvType.aidl
@@ -17,7 +17,6 @@
package android.hardware.radio.modem;
/**
- * Note: This will be deprecated along with nvResetConfig in Android U.
* @hide
*/
@VintfStability
@@ -26,7 +25,7 @@
@SuppressWarnings(value={"redundant-name"})
enum ResetNvType {
/**
- * Reload all NV items
+ * Reload all NV items. This may reboot modem.
*/
RELOAD,
/**
diff --git a/radio/aidl/android/hardware/radio/network/AccessTechnologySpecificInfo.aidl b/radio/aidl/android/hardware/radio/network/AccessTechnologySpecificInfo.aidl
index 9c48a8d..10421d6 100644
--- a/radio/aidl/android/hardware/radio/network/AccessTechnologySpecificInfo.aidl
+++ b/radio/aidl/android/hardware/radio/network/AccessTechnologySpecificInfo.aidl
@@ -25,6 +25,7 @@
@JavaDerive(toString=true)
union AccessTechnologySpecificInfo {
boolean noinit;
+ /** @deprecated Legacy CDMA is unsupported. */
Cdma2000RegistrationInfo cdmaInfo;
EutranRegistrationInfo eutranInfo;
/**
diff --git a/radio/aidl/android/hardware/radio/network/Cdma2000RegistrationInfo.aidl b/radio/aidl/android/hardware/radio/network/Cdma2000RegistrationInfo.aidl
index 91b8500..333a6c4 100644
--- a/radio/aidl/android/hardware/radio/network/Cdma2000RegistrationInfo.aidl
+++ b/radio/aidl/android/hardware/radio/network/Cdma2000RegistrationInfo.aidl
@@ -20,29 +20,36 @@
@VintfStability
@JavaDerive(toString=true)
parcelable Cdma2000RegistrationInfo {
+ /** @deprecated Legacy CDMA is unsupported. */
const int PRL_INDICATOR_NOT_REGISTERED = -1;
+ /** @deprecated Legacy CDMA is unsupported. */
const int PRL_INDICATOR_NOT_IN_PRL = 0;
+ /** @deprecated Legacy CDMA is unsupported. */
const int PRL_INDICATOR_IN_PRL = 1;
/**
* Concurrent services support indicator. if registered on a CDMA system.
* false - Concurrent services not supported,
* true - Concurrent services supported
+ * @deprecated Legacy CDMA is unsupported.
*/
boolean cssSupported;
/**
* TSB-58 Roaming Indicator if registered on a CDMA or EVDO system or -1 if not.
* Valid values are 0-255.
+ * @deprecated Legacy CDMA is unsupported.
*/
int roamingIndicator;
/**
* Indicates whether the current system is in the PRL if registered on a CDMA or EVDO system
* or -1 if not. 0=not in the PRL, 1=in the PRL.
* Values are PRL_INDICATOR_
+ * @deprecated Legacy CDMA is unsupported.
*/
int systemIsInPrl;
/**
* Default Roaming Indicator from the PRL if registered on a CDMA or EVDO system or -1 if not.
* Valid values are 0-255.
+ * @deprecated Legacy CDMA is unsupported.
*/
int defaultRoamingIndicator;
}
diff --git a/radio/aidl/android/hardware/radio/network/CdmaRoamingType.aidl b/radio/aidl/android/hardware/radio/network/CdmaRoamingType.aidl
index 0bb7c04..4cad136 100644
--- a/radio/aidl/android/hardware/radio/network/CdmaRoamingType.aidl
+++ b/radio/aidl/android/hardware/radio/network/CdmaRoamingType.aidl
@@ -21,7 +21,10 @@
@Backing(type="int")
@JavaDerive(toString=true)
enum CdmaRoamingType {
+ /** @deprecated Legacy CDMA is unsupported. */
HOME_NETWORK,
+ /** @deprecated Legacy CDMA is unsupported. */
AFFILIATED_ROAM,
+ /** @deprecated Legacy CDMA is unsupported. */
ANY_ROAM,
}
diff --git a/radio/aidl/android/hardware/radio/network/CdmaSignalStrength.aidl b/radio/aidl/android/hardware/radio/network/CdmaSignalStrength.aidl
index 0e241d3..214a512 100644
--- a/radio/aidl/android/hardware/radio/network/CdmaSignalStrength.aidl
+++ b/radio/aidl/android/hardware/radio/network/CdmaSignalStrength.aidl
@@ -23,11 +23,13 @@
/**
* This value is the actual RSSI value multiplied by -1. Example: If the actual RSSI is -75,
* then this response value will be 75. RadioConst:VALUE_UNAVAILABLE means invalid/unreported.
+ * @deprecated Legacy CDMA is unsupported.
*/
int dbm;
/**
* This value is the actual Ec/Io multiplied by -10. Example: If the actual Ec/Io is -12.5 dB,
* then this response value will be 125. RadioConst:VALUE_UNAVAILABLE means invalid/unreported.
+ * @deprecated Legacy CDMA is unsupported.
*/
int ecio;
}
diff --git a/radio/aidl/android/hardware/radio/network/CellIdentity.aidl b/radio/aidl/android/hardware/radio/network/CellIdentity.aidl
index 6142087..76a6675 100644
--- a/radio/aidl/android/hardware/radio/network/CellIdentity.aidl
+++ b/radio/aidl/android/hardware/radio/network/CellIdentity.aidl
@@ -34,6 +34,7 @@
CellIdentityGsm gsm;
CellIdentityWcdma wcdma;
CellIdentityTdscdma tdscdma;
+ /** @deprecated Legacy CDMA is unsupported. */
CellIdentityCdma cdma;
CellIdentityLte lte;
CellIdentityNr nr;
diff --git a/radio/aidl/android/hardware/radio/network/CellIdentityCdma.aidl b/radio/aidl/android/hardware/radio/network/CellIdentityCdma.aidl
index acf3db1..7f33d2d 100644
--- a/radio/aidl/android/hardware/radio/network/CellIdentityCdma.aidl
+++ b/radio/aidl/android/hardware/radio/network/CellIdentityCdma.aidl
@@ -24,30 +24,36 @@
parcelable CellIdentityCdma {
/**
* Network Id 0..65535, RadioConst:VALUE_UNAVAILABLE if unknown
+ * @deprecated Legacy CDMA is unsupported.
*/
int networkId;
/**
* CDMA System Id 0..32767, RadioConst:VALUE_UNAVAILABLE if unknown
+ * @deprecated Legacy CDMA is unsupported.
*/
int systemId;
/**
* Base Station Id 0..65535, RadioConst:VALUE_UNAVAILABLE if unknown
+ * @deprecated Legacy CDMA is unsupported.
*/
int baseStationId;
/**
* Longitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0. It is represented in
* units of 0.25 seconds and ranges from -2592000 to 2592000, both values inclusive
* (corresponding to a range of -180 to +180 degrees). RadioConst:VALUE_UNAVAILABLE if unknown
+ * @deprecated Legacy CDMA is unsupported.
*/
int longitude;
/**
* Latitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0. It is represented in
* units of 0.25 seconds and ranges from -1296000 to 1296000, both values inclusive
* (corresponding to a range of -90 to +90 degrees). RadioConst:VALUE_UNAVAILABLE if unknown
+ * @deprecated Legacy CDMA is unsupported.
*/
int latitude;
/**
* OperatorInfo containing alphaLong and alphaShort
+ * @deprecated Legacy CDMA is unsupported.
*/
OperatorInfo operatorNames;
}
diff --git a/radio/aidl/android/hardware/radio/network/CellInfoCdma.aidl b/radio/aidl/android/hardware/radio/network/CellInfoCdma.aidl
index 0a2bc54..0a0c0c0 100644
--- a/radio/aidl/android/hardware/radio/network/CellInfoCdma.aidl
+++ b/radio/aidl/android/hardware/radio/network/CellInfoCdma.aidl
@@ -24,7 +24,10 @@
@VintfStability
@JavaDerive(toString=true)
parcelable CellInfoCdma {
+ /** @deprecated Legacy CDMA is unsupported. */
CellIdentityCdma cellIdentityCdma;
+ /** @deprecated Legacy CDMA is unsupported. */
CdmaSignalStrength signalStrengthCdma;
+ /** @deprecated Legacy CDMA is unsupported. */
EvdoSignalStrength signalStrengthEvdo;
}
diff --git a/radio/aidl/android/hardware/radio/network/CellInfoRatSpecificInfo.aidl b/radio/aidl/android/hardware/radio/network/CellInfoRatSpecificInfo.aidl
index 10a4a5f..eebed9e 100644
--- a/radio/aidl/android/hardware/radio/network/CellInfoRatSpecificInfo.aidl
+++ b/radio/aidl/android/hardware/radio/network/CellInfoRatSpecificInfo.aidl
@@ -37,6 +37,7 @@
CellInfoNr nr;
/**
* 3gpp2 CellInfo types;
+ * @deprecated Legacy CDMA is unsupported.
*/
CellInfoCdma cdma;
}
diff --git a/radio/aidl/android/hardware/radio/network/EvdoSignalStrength.aidl b/radio/aidl/android/hardware/radio/network/EvdoSignalStrength.aidl
index ac6928e..e89eb88 100644
--- a/radio/aidl/android/hardware/radio/network/EvdoSignalStrength.aidl
+++ b/radio/aidl/android/hardware/radio/network/EvdoSignalStrength.aidl
@@ -23,16 +23,19 @@
/**
* This value is the actual RSSI value multiplied by -1. Example: If the actual RSSI is -75,
* then this response value will be 75; RadioConst:VALUE_UNAVAILABLE means invalid/unreported.
+ * @deprecated Legacy CDMA is unsupported.
*/
int dbm;
/**
* This value is the actual Ec/Io multiplied by -10. Example: If the actual Ec/Io is -12.5 dB,
* then this response value will be 125; RadioConst:VALUE_UNAVAILABLE means invalid/unreported.
+ * @deprecated Legacy CDMA is unsupported.
*/
int ecio;
/**
* Valid values are 0-8. 8 is the highest signal to noise ratio; RadioConst:VALUE_UNAVAILABLE
* means invalid/unreported.
+ * @deprecated Legacy CDMA is unsupported.
*/
int signalNoiseRatio;
}
diff --git a/radio/aidl/android/hardware/radio/network/IRadioNetwork.aidl b/radio/aidl/android/hardware/radio/network/IRadioNetwork.aidl
index a4f97e3..631901e 100644
--- a/radio/aidl/android/hardware/radio/network/IRadioNetwork.aidl
+++ b/radio/aidl/android/hardware/radio/network/IRadioNetwork.aidl
@@ -94,6 +94,8 @@
* Response function is IRadioNetworkResponse.getCdmaRoamingPreferenceResponse()
*
* This is available when android.hardware.telephony.cdma is defined.
+ *
+ * @deprecated Legacy CDMA is unsupported.
*/
void getCdmaRoamingPreference(in int serial);
@@ -272,6 +274,8 @@
* Response function is IRadioNetworkResponse.setCdmaRoamingPreferenceResponse()
*
* This is available when android.hardware.telephony.cdma is defined.
+ *
+ * @deprecated Legacy CDMA is unsupported.
*/
void setCdmaRoamingPreference(in int serial, in CdmaRoamingType type);
@@ -334,7 +338,7 @@
/**
* Enables/disables network state change notifications due to changes in LAC and/or CID (for
- * GSM) or BID/SID/NID/latitude/longitude (for CDMA). Basically +CREG=2 vs. +CREG=1 (TS 27.007).
+ * GSM). Basically +CREG=2 vs. +CREG=1 (TS 27.007).
* The Radio implementation must default to "updates enabled" when the screen is on and
* "updates disabled" when the screen is off.
*
diff --git a/radio/aidl/android/hardware/radio/network/IRadioNetworkIndication.aidl b/radio/aidl/android/hardware/radio/network/IRadioNetworkIndication.aidl
index 34948fb..f752f68 100644
--- a/radio/aidl/android/hardware/radio/network/IRadioNetworkIndication.aidl
+++ b/radio/aidl/android/hardware/radio/network/IRadioNetworkIndication.aidl
@@ -63,6 +63,7 @@
*
* @param type Type of radio indication
* @param version PRL version after PRL changes
+ * @deprecated Legacy CDMA is unsupported.
*/
void cdmaPrlChanged(in RadioIndicationType type, in int version);
diff --git a/radio/aidl/android/hardware/radio/network/IRadioNetworkResponse.aidl b/radio/aidl/android/hardware/radio/network/IRadioNetworkResponse.aidl
index b67e8e0..1d301a5 100644
--- a/radio/aidl/android/hardware/radio/network/IRadioNetworkResponse.aidl
+++ b/radio/aidl/android/hardware/radio/network/IRadioNetworkResponse.aidl
@@ -136,6 +136,7 @@
* RadioError:NO_RESOURCES
* RadioError:CANCELLED
* RadioError:SIM_ABSENT
+ * @deprecated Legacy CDMA is unsupported.
*/
void getCdmaRoamingPreferenceResponse(in RadioResponseInfo info, in CdmaRoamingType type);
@@ -372,6 +373,7 @@
* RadioError:NO_RESOURCES
* RadioError:CANCELLED
* RadioError:SIM_ABSENT
+ * @deprecated Legacy CDMA is unsupported.
*/
void setCdmaRoamingPreferenceResponse(in RadioResponseInfo info);
diff --git a/radio/aidl/android/hardware/radio/network/RegStateResult.aidl b/radio/aidl/android/hardware/radio/network/RegStateResult.aidl
index 57a73c0..aa4cdfc 100644
--- a/radio/aidl/android/hardware/radio/network/RegStateResult.aidl
+++ b/radio/aidl/android/hardware/radio/network/RegStateResult.aidl
@@ -27,7 +27,7 @@
@JavaDerive(toString=true)
parcelable RegStateResult {
/**
- * Registration state. If the RAT is indicated as a GERAN, UTRAN, or CDMA2000 technology, this
+ * Registration state. If the RAT is indicated as a GERAN or UTRAN technology, this
* value reports registration in the Circuit-switched domain. If the RAT is indicated as an
* EUTRAN, NGRAN, or another technology that does not support circuit-switched services, this
* value reports registration in the Packet-switched domain.
@@ -57,7 +57,7 @@
*/
String registeredPlmn;
/**
- * Access-technology-specific registration information, such as for CDMA2000.
+ * Access-technology-specific registration information.
*/
AccessTechnologySpecificInfo accessTechnologySpecificInfo;
}
diff --git a/radio/aidl/android/hardware/radio/network/SignalStrength.aidl b/radio/aidl/android/hardware/radio/network/SignalStrength.aidl
index fbe3be2..4e3bcf0 100644
--- a/radio/aidl/android/hardware/radio/network/SignalStrength.aidl
+++ b/radio/aidl/android/hardware/radio/network/SignalStrength.aidl
@@ -36,11 +36,13 @@
/**
* If CDMA measurements are provided, this structure must contain valid measurements; otherwise
* all fields should be set to RadioConst:VALUE_UNAVAILABLE to mark them as invalid.
+ * @deprecated Legacy CDMA is unsupported.
*/
CdmaSignalStrength cdma;
/**
* If EvDO measurements are provided, this structure must contain valid measurements; otherwise
* all fields should be set to RadioConst:VALUE_UNAVAILABLE to mark them as invalid.
+ * @deprecated Legacy CDMA is unsupported.
*/
EvdoSignalStrength evdo;
/**
diff --git a/radio/aidl/android/hardware/radio/network/SignalThresholdInfo.aidl b/radio/aidl/android/hardware/radio/network/SignalThresholdInfo.aidl
index e440a64..b7e5fa5 100644
--- a/radio/aidl/android/hardware/radio/network/SignalThresholdInfo.aidl
+++ b/radio/aidl/android/hardware/radio/network/SignalThresholdInfo.aidl
@@ -28,7 +28,7 @@
/**
* Received Signal Strength Indication.
* Range: -113 dBm and -51 dBm
- * Used RAN: GERAN, CDMA2000
+ * Used RAN: GERAN
* Reference: 3GPP TS 27.007 section 8.5.
*/
const int SIGNAL_MEASUREMENT_TYPE_RSSI = 1;
diff --git a/radio/aidl/android/hardware/radio/sim/CardStatus.aidl b/radio/aidl/android/hardware/radio/sim/CardStatus.aidl
index 043bfa4..43e2467 100644
--- a/radio/aidl/android/hardware/radio/sim/CardStatus.aidl
+++ b/radio/aidl/android/hardware/radio/sim/CardStatus.aidl
@@ -54,7 +54,8 @@
*/
int gsmUmtsSubscriptionAppIndex;
/**
- * Value < RadioConst:CARD_MAX_APPS, -1 if none
+ * Value ignored.
+ * @deprecated Legacy CDMA is unsupported.
*/
int cdmaSubscriptionAppIndex;
/**
diff --git a/radio/aidl/android/hardware/radio/sim/CdmaSubscriptionSource.aidl b/radio/aidl/android/hardware/radio/sim/CdmaSubscriptionSource.aidl
index 4c6c1ef..2dbd6a8 100644
--- a/radio/aidl/android/hardware/radio/sim/CdmaSubscriptionSource.aidl
+++ b/radio/aidl/android/hardware/radio/sim/CdmaSubscriptionSource.aidl
@@ -21,6 +21,8 @@
@Backing(type="int")
@JavaDerive(toString=true)
enum CdmaSubscriptionSource {
+ /** @deprecated Legacy CDMA is unsupported. */
RUIM_SIM,
+ /** @deprecated Legacy CDMA is unsupported. */
NV,
}
diff --git a/radio/aidl/android/hardware/radio/sim/IRadioSim.aidl b/radio/aidl/android/hardware/radio/sim/IRadioSim.aidl
index 1e010b9..24c7320 100644
--- a/radio/aidl/android/hardware/radio/sim/IRadioSim.aidl
+++ b/radio/aidl/android/hardware/radio/sim/IRadioSim.aidl
@@ -123,6 +123,8 @@
* Response function is IRadioSimResponse.getCdmaSubscriptionResponse()
*
* This is available when android.hardware.telephony.cdma is defined.
+ *
+ * @deprecated Legacy CDMA is unsupported.
*/
void getCdmaSubscription(in int serial);
@@ -134,6 +136,8 @@
* Response function is IRadioSimResponse.getCdmaSubscriptionSourceResponse()
*
* This is available when android.hardware.telephony.cdma is defined.
+ *
+ * @deprecated Legacy CDMA is unsupported.
*/
void getCdmaSubscriptionSource(in int serial);
@@ -255,7 +259,7 @@
/**
* Request APDU exchange on the basic channel. This command reflects TS 27.007
- * "generic SIM access" operation (+CSIM). The modem must ensure proper function of GSM/CDMA,
+ * "generic SIM access" operation (+CSIM). The modem must ensure proper function of GSM,
* and filter commands appropriately. It must filter channel management and SELECT by DF
* name commands. "sessionId" field is always 0 (for aid="") and may be ignored.
*
@@ -406,6 +410,8 @@
* Response function is IRadioSimResponse.setCdmaSubscriptionSourceResponse()
*
* This is available when android.hardware.telephony.cdma is defined.
+ *
+ * @deprecated Legacy CDMA is unsupported.
*/
void setCdmaSubscriptionSource(in int serial, in CdmaSubscriptionSource cdmaSub);
diff --git a/radio/aidl/android/hardware/radio/sim/IRadioSimIndication.aidl b/radio/aidl/android/hardware/radio/sim/IRadioSimIndication.aidl
index fc6355d..d9735d3 100644
--- a/radio/aidl/android/hardware/radio/sim/IRadioSimIndication.aidl
+++ b/radio/aidl/android/hardware/radio/sim/IRadioSimIndication.aidl
@@ -41,6 +41,7 @@
*
* @param type Type of radio indication
* @param cdmaSource New CdmaSubscriptionSource
+ * @deprecated Legacy CDMA is unsupported.
*/
void cdmaSubscriptionSourceChanged(
in RadioIndicationType type, in CdmaSubscriptionSource cdmaSource);
diff --git a/radio/aidl/android/hardware/radio/sim/IRadioSimResponse.aidl b/radio/aidl/android/hardware/radio/sim/IRadioSimResponse.aidl
index 8666e03..92815d2 100644
--- a/radio/aidl/android/hardware/radio/sim/IRadioSimResponse.aidl
+++ b/radio/aidl/android/hardware/radio/sim/IRadioSimResponse.aidl
@@ -145,6 +145,7 @@
* RadioError:NO_RESOURCES
* RadioError:CANCELLED
* RadioError:SIM_ABSENT
+ * @deprecated Legacy CDMA is unsupported.
*/
void getCdmaSubscriptionResponse(in RadioResponseInfo info, in String mdn, in String hSid,
in String hNid, in String min, in String prl);
@@ -163,6 +164,7 @@
* RadioError:NO_RESOURCES
* RadioError:CANCELLED
* RadioError:SIM_ABSENT
+ * @deprecated Legacy CDMA is unsupported.
*/
void getCdmaSubscriptionSourceResponse(
in RadioResponseInfo info, in CdmaSubscriptionSource source);
@@ -484,6 +486,7 @@
* RadioError:NO_MEMORY
* RadioError:NO_RESOURCES
* RadioError:CANCELLED
+ * @deprecated Legacy CDMA is unsupported.
*/
void setCdmaSubscriptionSourceResponse(in RadioResponseInfo info);
diff --git a/radio/aidl/android/hardware/radio/voice/Call.aidl b/radio/aidl/android/hardware/radio/voice/Call.aidl
index ee0b025..27dab9c 100644
--- a/radio/aidl/android/hardware/radio/voice/Call.aidl
+++ b/radio/aidl/android/hardware/radio/voice/Call.aidl
@@ -77,6 +77,7 @@
boolean isVoice;
/**
* true if CDMA voice privacy mode is active
+ * @deprecated Legacy CDMA is unsupported.
*/
boolean isVoicePrivacy;
/**
diff --git a/radio/aidl/android/hardware/radio/voice/CdmaCallWaiting.aidl b/radio/aidl/android/hardware/radio/voice/CdmaCallWaiting.aidl
index d97b319..c77f3ec 100644
--- a/radio/aidl/android/hardware/radio/voice/CdmaCallWaiting.aidl
+++ b/radio/aidl/android/hardware/radio/voice/CdmaCallWaiting.aidl
@@ -22,44 +22,64 @@
@VintfStability
@JavaDerive(toString=true)
parcelable CdmaCallWaiting {
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_PLAN_UNKNOWN = 0;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_PLAN_ISDN = 1;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_PLAN_DATA = 3;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_PLAN_TELEX = 4;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_PLAN_NATIONAL = 8;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_PLAN_PRIVATE = 9;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_PRESENTATION_ALLOWED = 0;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_PRESENTATION_RESTRICTED = 1;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_PRESENTATION_UNKNOWN = 2;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_TYPE_UNKNOWN = 0;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_TYPE_INTERNATIONAL = 1;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_TYPE_NATIONAL = 2;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_TYPE_NETWORK_SPECIFIC = 3;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NUMBER_TYPE_SUBSCRIBER = 4;
/**
* Remote party number
+ * @deprecated Legacy CDMA is unsupported.
*/
String number;
/**
* Values are NUMBER_PRESENTATION_
+ * @deprecated Legacy CDMA is unsupported.
*/
int numberPresentation;
/**
* Remote party name
+ * @deprecated Legacy CDMA is unsupported.
*/
String name;
+ /** @deprecated Legacy CDMA is unsupported. */
CdmaSignalInfoRecord signalInfoRecord;
/**
* Required to support International Call Waiting
* Values are NUMBER_TYPE_
+ * @deprecated Legacy CDMA is unsupported.
*/
int numberType;
/**
* Required to support International Call Waiting
* Values are NUMBER_PLAN_
+ * @deprecated Legacy CDMA is unsupported.
*/
int numberPlan;
}
diff --git a/radio/aidl/android/hardware/radio/voice/CdmaDisplayInfoRecord.aidl b/radio/aidl/android/hardware/radio/voice/CdmaDisplayInfoRecord.aidl
index 7e5a68d..506e407 100644
--- a/radio/aidl/android/hardware/radio/voice/CdmaDisplayInfoRecord.aidl
+++ b/radio/aidl/android/hardware/radio/voice/CdmaDisplayInfoRecord.aidl
@@ -27,9 +27,11 @@
@VintfStability
@JavaDerive(toString=true)
parcelable CdmaDisplayInfoRecord {
+ /** @deprecated Legacy CDMA is unsupported. */
const int CDMA_ALPHA_INFO_BUFFER_LENGTH = 64;
/**
* Max length = CDMA_ALPHA_INFO_BUFFER_LENGTH
+ * @deprecated Legacy CDMA is unsupported.
*/
String alphaBuf;
}
diff --git a/radio/aidl/android/hardware/radio/voice/CdmaInformationRecord.aidl b/radio/aidl/android/hardware/radio/voice/CdmaInformationRecord.aidl
index f5c656b..664ed5b 100644
--- a/radio/aidl/android/hardware/radio/voice/CdmaInformationRecord.aidl
+++ b/radio/aidl/android/hardware/radio/voice/CdmaInformationRecord.aidl
@@ -31,54 +31,74 @@
@VintfStability
@JavaDerive(toString=true)
parcelable CdmaInformationRecord {
+ /** @deprecated Legacy CDMA is unsupported. */
const int CDMA_MAX_NUMBER_OF_INFO_RECS = 10;
/**
* Names of the CDMA info records (C.S0005 section 3.7.5)
+ * @deprecated Legacy CDMA is unsupported.
*/
const int NAME_DISPLAY = 0;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NAME_CALLED_PARTY_NUMBER = 1;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NAME_CALLING_PARTY_NUMBER = 2;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NAME_CONNECTED_NUMBER = 3;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NAME_SIGNAL = 4;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NAME_REDIRECTING_NUMBER = 5;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NAME_LINE_CONTROL = 6;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NAME_EXTENDED_DISPLAY = 7;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NAME_T53_CLIR = 8;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NAME_T53_RELEASE = 9;
+ /** @deprecated Legacy CDMA is unsupported. */
const int NAME_T53_AUDIO_CONTROL = 10;
/**
* Based on CdmaInfoRecName, only one of the below vectors must have size = 1.
* All other vectors must have size 0.
* Values are NAME_
+ * @deprecated Legacy CDMA is unsupported.
*/
int name;
/**
* Display and extended display info rec
+ * @deprecated Legacy CDMA is unsupported.
*/
CdmaDisplayInfoRecord[] display;
/**
* Called party number, calling party number, connected number info rec
+ * @deprecated Legacy CDMA is unsupported.
*/
CdmaNumberInfoRecord[] number;
/**
* Signal info rec
+ * @deprecated Legacy CDMA is unsupported.
*/
CdmaSignalInfoRecord[] signal;
/**
* Redirecting number info rec
+ * @deprecated Legacy CDMA is unsupported.
*/
CdmaRedirectingNumberInfoRecord[] redir;
/**
* Line control info rec
+ * @deprecated Legacy CDMA is unsupported.
*/
CdmaLineControlInfoRecord[] lineCtrl;
/**
* T53 CLIR info rec
+ * @deprecated Legacy CDMA is unsupported.
*/
CdmaT53ClirInfoRecord[] clir;
/**
* T53 Audio Control info rec
+ * @deprecated Legacy CDMA is unsupported.
*/
CdmaT53AudioControlInfoRecord[] audioCtrl;
}
diff --git a/radio/aidl/android/hardware/radio/voice/CdmaLineControlInfoRecord.aidl b/radio/aidl/android/hardware/radio/voice/CdmaLineControlInfoRecord.aidl
index 15c22a0..9cf0103 100644
--- a/radio/aidl/android/hardware/radio/voice/CdmaLineControlInfoRecord.aidl
+++ b/radio/aidl/android/hardware/radio/voice/CdmaLineControlInfoRecord.aidl
@@ -23,8 +23,12 @@
@VintfStability
@JavaDerive(toString=true)
parcelable CdmaLineControlInfoRecord {
+ /** @deprecated Legacy CDMA is unsupported. */
byte lineCtrlPolarityIncluded;
+ /** @deprecated Legacy CDMA is unsupported. */
byte lineCtrlToggle;
+ /** @deprecated Legacy CDMA is unsupported. */
byte lineCtrlReverse;
+ /** @deprecated Legacy CDMA is unsupported. */
byte lineCtrlPowerDenial;
}
diff --git a/radio/aidl/android/hardware/radio/voice/CdmaNumberInfoRecord.aidl b/radio/aidl/android/hardware/radio/voice/CdmaNumberInfoRecord.aidl
index b04e273..0864ce5 100644
--- a/radio/aidl/android/hardware/radio/voice/CdmaNumberInfoRecord.aidl
+++ b/radio/aidl/android/hardware/radio/voice/CdmaNumberInfoRecord.aidl
@@ -25,13 +25,19 @@
@VintfStability
@JavaDerive(toString=true)
parcelable CdmaNumberInfoRecord {
+ /** @deprecated Legacy CDMA is unsupported. */
const int CDMA_NUMBER_INFO_BUFFER_LENGTH = 81;
/**
* Max length = CDMA_NUMBER_INFO_BUFFER_LENGTH
+ * @deprecated Legacy CDMA is unsupported.
*/
String number;
+ /** @deprecated Legacy CDMA is unsupported. */
byte numberType;
+ /** @deprecated Legacy CDMA is unsupported. */
byte numberPlan;
+ /** @deprecated Legacy CDMA is unsupported. */
byte pi;
+ /** @deprecated Legacy CDMA is unsupported. */
byte si;
}
diff --git a/radio/aidl/android/hardware/radio/voice/CdmaOtaProvisionStatus.aidl b/radio/aidl/android/hardware/radio/voice/CdmaOtaProvisionStatus.aidl
index b6444ab..1f003a8 100644
--- a/radio/aidl/android/hardware/radio/voice/CdmaOtaProvisionStatus.aidl
+++ b/radio/aidl/android/hardware/radio/voice/CdmaOtaProvisionStatus.aidl
@@ -21,16 +21,28 @@
@Backing(type="int")
@JavaDerive(toString=true)
enum CdmaOtaProvisionStatus {
+ /** @deprecated Legacy CDMA is unsupported. */
SPL_UNLOCKED,
+ /** @deprecated Legacy CDMA is unsupported. */
SPC_RETRIES_EXCEEDED,
+ /** @deprecated Legacy CDMA is unsupported. */
A_KEY_EXCHANGED,
+ /** @deprecated Legacy CDMA is unsupported. */
SSD_UPDATED,
+ /** @deprecated Legacy CDMA is unsupported. */
NAM_DOWNLOADED,
+ /** @deprecated Legacy CDMA is unsupported. */
MDN_DOWNLOADED,
+ /** @deprecated Legacy CDMA is unsupported. */
IMSI_DOWNLOADED,
+ /** @deprecated Legacy CDMA is unsupported. */
PRL_DOWNLOADED,
+ /** @deprecated Legacy CDMA is unsupported. */
COMMITTED,
+ /** @deprecated Legacy CDMA is unsupported. */
OTAPA_STARTED,
+ /** @deprecated Legacy CDMA is unsupported. */
OTAPA_STOPPED,
+ /** @deprecated Legacy CDMA is unsupported. */
OTAPA_ABORTED,
}
diff --git a/radio/aidl/android/hardware/radio/voice/CdmaRedirectingNumberInfoRecord.aidl b/radio/aidl/android/hardware/radio/voice/CdmaRedirectingNumberInfoRecord.aidl
index 691712e..4b93303 100644
--- a/radio/aidl/android/hardware/radio/voice/CdmaRedirectingNumberInfoRecord.aidl
+++ b/radio/aidl/android/hardware/radio/voice/CdmaRedirectingNumberInfoRecord.aidl
@@ -24,19 +24,28 @@
parcelable CdmaRedirectingNumberInfoRecord {
/**
* Redirecting Number Information Record as defined in C.S0005 section 3.7.5.11
+ * @deprecated Legacy CDMA is unsupported.
*/
const int REDIRECTING_REASON_UNKNOWN = 0;
+ /** @deprecated Legacy CDMA is unsupported. */
const int REDIRECTING_REASON_CALL_FORWARDING_BUSY = 1;
+ /** @deprecated Legacy CDMA is unsupported. */
const int REDIRECTING_REASON_CALL_FORWARDING_NO_REPLY = 2;
+ /** @deprecated Legacy CDMA is unsupported. */
const int REDIRECTING_REASON_CALLED_DTE_OUT_OF_ORDER = 9;
+ /** @deprecated Legacy CDMA is unsupported. */
const int REDIRECTING_REASON_CALL_FORWARDING_BY_THE_CALLED_DTE = 10;
+ /** @deprecated Legacy CDMA is unsupported. */
const int REDIRECTING_REASON_CALL_FORWARDING_UNCONDITIONAL = 15;
+ /** @deprecated Legacy CDMA is unsupported. */
const int REDIRECTING_REASON_RESERVED = 16;
+ /** @deprecated Legacy CDMA is unsupported. */
CdmaNumberInfoRecord redirectingNumber;
/**
* Set to UNKNOWN if not included.
* Values are REDIRECTING_REASON_
+ * @deprecated Legacy CDMA is unsupported.
*/
int redirectingReason;
}
diff --git a/radio/aidl/android/hardware/radio/voice/CdmaSignalInfoRecord.aidl b/radio/aidl/android/hardware/radio/voice/CdmaSignalInfoRecord.aidl
index 4302ba4..2ada10b 100644
--- a/radio/aidl/android/hardware/radio/voice/CdmaSignalInfoRecord.aidl
+++ b/radio/aidl/android/hardware/radio/voice/CdmaSignalInfoRecord.aidl
@@ -25,18 +25,22 @@
parcelable CdmaSignalInfoRecord {
/**
* True if signal information record is present
+ * @deprecated Legacy CDMA is unsupported.
*/
boolean isPresent;
/**
* Defined in 3.7.5.5-1
+ * @deprecated Legacy CDMA is unsupported.
*/
byte signalType;
/**
* Defined in 3.7.5.5-2
+ * @deprecated Legacy CDMA is unsupported.
*/
byte alertPitch;
/**
* Defined in 3.7.5.5-3, 3.7.5.5-4 or 3.7.5.5-5
+ * @deprecated Legacy CDMA is unsupported.
*/
byte signal;
}
diff --git a/radio/aidl/android/hardware/radio/voice/CdmaT53AudioControlInfoRecord.aidl b/radio/aidl/android/hardware/radio/voice/CdmaT53AudioControlInfoRecord.aidl
index 44ac2b4..68b19b8 100644
--- a/radio/aidl/android/hardware/radio/voice/CdmaT53AudioControlInfoRecord.aidl
+++ b/radio/aidl/android/hardware/radio/voice/CdmaT53AudioControlInfoRecord.aidl
@@ -23,6 +23,8 @@
@VintfStability
@JavaDerive(toString=true)
parcelable CdmaT53AudioControlInfoRecord {
+ /** @deprecated Legacy CDMA is unsupported. */
byte upLink;
+ /** @deprecated Legacy CDMA is unsupported. */
byte downLink;
}
diff --git a/radio/aidl/android/hardware/radio/voice/CdmaT53ClirInfoRecord.aidl b/radio/aidl/android/hardware/radio/voice/CdmaT53ClirInfoRecord.aidl
index 564d761..6a1b992 100644
--- a/radio/aidl/android/hardware/radio/voice/CdmaT53ClirInfoRecord.aidl
+++ b/radio/aidl/android/hardware/radio/voice/CdmaT53ClirInfoRecord.aidl
@@ -23,5 +23,6 @@
@VintfStability
@JavaDerive(toString=true)
parcelable CdmaT53ClirInfoRecord {
+ /** @deprecated Legacy CDMA is unsupported. */
byte cause;
}
diff --git a/radio/aidl/android/hardware/radio/voice/IRadioVoice.aidl b/radio/aidl/android/hardware/radio/voice/IRadioVoice.aidl
index 0c2b51d..74b1d5f 100644
--- a/radio/aidl/android/hardware/radio/voice/IRadioVoice.aidl
+++ b/radio/aidl/android/hardware/radio/voice/IRadioVoice.aidl
@@ -369,6 +369,8 @@
* Response function is IRadioVoiceResponse.sendCdmaFeatureCodeResponse()
*
* This is available when android.hardware.telephony.cdma is defined.
+ *
+ * @deprecated Legacy CDMA is unsupported.
*/
void sendCdmaFeatureCode(in int serial, in String featureCode);
diff --git a/radio/aidl/android/hardware/radio/voice/IRadioVoiceIndication.aidl b/radio/aidl/android/hardware/radio/voice/IRadioVoiceIndication.aidl
index 9de6364..f8bd999 100644
--- a/radio/aidl/android/hardware/radio/voice/IRadioVoiceIndication.aidl
+++ b/radio/aidl/android/hardware/radio/voice/IRadioVoiceIndication.aidl
@@ -42,8 +42,8 @@
* value of 3000 (3 seconds) if absent.
*
* @param type Type of radio indication
- * @param isGsm true for GSM & false for CDMA
- * @param record Cdma Signal Information
+ * @param isGsm Always true (Legacy CDMA is unsupported)
+ * @param record Always empty (Legacy CDMA is unsupported)
*/
void callRing(in RadioIndicationType type, in boolean isGsm, in CdmaSignalInfoRecord record);
@@ -62,6 +62,7 @@
*
* @param type Type of radio indication
* @param callWaitingRecord Cdma CallWaiting information
+ * @deprecated Legacy CDMA is unsupported.
*/
void cdmaCallWaiting(in RadioIndicationType type, in CdmaCallWaiting callWaitingRecord);
@@ -71,6 +72,7 @@
* @param type Type of radio indication
* @param records New CDMA information records.
* Max length is RadioConst:CDMA_MAX_NUMBER_OF_INFO_RECS
+ * @deprecated Legacy CDMA is unsupported.
*/
void cdmaInfoRec(in RadioIndicationType type, in CdmaInformationRecord[] records);
@@ -79,6 +81,7 @@
*
* @param type Type of radio indication
* @param status Cdma OTA provision status
+ * @deprecated Legacy CDMA is unsupported.
*/
void cdmaOtaProvisionStatus(in RadioIndicationType type, in CdmaOtaProvisionStatus status);
diff --git a/radio/aidl/android/hardware/radio/voice/IRadioVoiceResponse.aidl b/radio/aidl/android/hardware/radio/voice/IRadioVoiceResponse.aidl
index a904eaa..cf36ef9 100644
--- a/radio/aidl/android/hardware/radio/voice/IRadioVoiceResponse.aidl
+++ b/radio/aidl/android/hardware/radio/voice/IRadioVoiceResponse.aidl
@@ -564,6 +564,7 @@
* RadioError:NO_RESOURCES
* RadioError:CANCELLED
* RadioError:OPERATION_NOT_ALLOWED
+ * @deprecated Legacy CDMA is unsupported.
*/
void sendCdmaFeatureCodeResponse(in RadioResponseInfo info);
diff --git a/radio/aidl/android/hardware/radio/voice/LastCallFailCause.aidl b/radio/aidl/android/hardware/radio/voice/LastCallFailCause.aidl
index 9a38197..f37c10c 100644
--- a/radio/aidl/android/hardware/radio/voice/LastCallFailCause.aidl
+++ b/radio/aidl/android/hardware/radio/voice/LastCallFailCause.aidl
@@ -139,18 +139,28 @@
* Explicit network detach
*/
NETWORK_DETACH = 261,
+ /** @deprecated Legacy CDMA is unsupported. */
CDMA_LOCKED_UNTIL_POWER_CYCLE = 1000,
+ /** @deprecated Legacy CDMA is unsupported. */
CDMA_DROP = 1001,
+ /** @deprecated Legacy CDMA is unsupported. */
CDMA_INTERCEPT = 1002,
+ /** @deprecated Legacy CDMA is unsupported. */
CDMA_REORDER = 1003,
+ /** @deprecated Legacy CDMA is unsupported. */
CDMA_SO_REJECT = 1004,
+ /** @deprecated Legacy CDMA is unsupported. */
CDMA_RETRY_ORDER = 1005,
+ /** @deprecated Legacy CDMA is unsupported. */
CDMA_ACCESS_FAILURE = 1006,
+ /** @deprecated Legacy CDMA is unsupported. */
CDMA_PREEMPTED = 1007,
/**
* For non-emergency number dialed during emergency callback mode
+ * @deprecated Legacy CDMA is unsupported.
*/
CDMA_NOT_EMERGENCY = 1008,
+ /** @deprecated Legacy CDMA is unsupported. */
CDMA_ACCESS_BLOCKED = 1009,
/**
* OEM specific error codes. Used to distinguish error from
diff --git a/security/keymint/aidl/android/hardware/security/keymint/KeyCreationResult.aidl b/security/keymint/aidl/android/hardware/security/keymint/KeyCreationResult.aidl
index 294c205..6ff66e7 100644
--- a/security/keymint/aidl/android/hardware/security/keymint/KeyCreationResult.aidl
+++ b/security/keymint/aidl/android/hardware/security/keymint/KeyCreationResult.aidl
@@ -125,9 +125,9 @@
* straightforward translation of the KeyMint tag/value parameter lists to ASN.1.
*
* KeyDescription ::= SEQUENCE {
- * attestationVersion INTEGER, # Value 300
+ * attestationVersion INTEGER, # Value 400
* attestationSecurityLevel SecurityLevel, # See below
- * keyMintVersion INTEGER, # Value 300
+ * keyMintVersion INTEGER, # Value 400
* keymintSecurityLevel SecurityLevel, # See below
* attestationChallenge OCTET_STRING, # Tag::ATTESTATION_CHALLENGE from attestParams
* uniqueId OCTET_STRING, # Empty unless key has Tag::INCLUDE_UNIQUE_ID
@@ -145,9 +145,9 @@
* verifiedBootKey OCTET_STRING,
* deviceLocked BOOLEAN,
* verifiedBootState VerifiedBootState,
- * # verifiedBootHash must contain 32-byte value that represents the state of all binaries
- * # or other components validated by verified boot. Updating any verified binary or
- * # component must cause this value to change.
+ * # verifiedBootHash must contain a SHA-256 digest of all binaries and components validated
+ * # by Verified Boot. Updating any verified binary or component must cause this value to
+ * # change.
* verifiedBootHash OCTET_STRING,
* }
*
@@ -158,6 +158,17 @@
* Failed (3),
* }
*
+ * # Modules contains version info about APEX modules that have been updated after the last OTA.
+ * # Note that the Modules information is DER-encoded before being hashed, which requires a
+ * # specific ordering (lexicographic by encoded value) for the constituent Module entries. This
+ * # ensures that the ordering of Module entries is predictable and that the resulting SHA-256
+ * # hash value is identical for the same set of modules.
+ * Modules ::= SET OF Module
+ * Module ::= SEQUENCE {
+ * packageName OCTET_STRING,
+ * version INTEGER, # As determined at boot time
+ * }
+ *
* -- Note that the AuthorizationList SEQUENCE is also used in IKeyMintDevice::importWrappedKey
* -- as a way of describing the authorizations associated with a key that is being securely
* -- imported. As such, it includes the ability to describe tags that are only relevant for
@@ -210,6 +221,7 @@
* bootPatchLevel [719] EXPLICIT INTEGER OPTIONAL,
* deviceUniqueAttestation [720] EXPLICIT NULL OPTIONAL,
* attestationIdSecondImei [723] EXPLICIT OCTET_STRING OPTIONAL,
+ * moduleHash [724] EXPLICIT OCTET_STRING OPTIONAL, -- SHA-256 hash of DER-encoded `Modules`
* }
*/
Certificate[] certificateChain;
diff --git a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp
index 48b12a4..51afa12 100644
--- a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp
+++ b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp
@@ -149,7 +149,7 @@
// The multiplier should never be higher than the AIDL version, but can be less
// (for example, if the implementation is from an earlier version but the HAL service
// uses the default libraries and so reports the current AIDL version).
- EXPECT_TRUE((attestation_version / 100) <= aidl_version);
+ EXPECT_LE((attestation_version / 100), aidl_version);
}
bool avb_verification_enabled() {
@@ -1142,13 +1142,12 @@
int openssl_padding = RSA_NO_PADDING;
switch (padding) {
case PaddingMode::NONE:
- ASSERT_TRUE(data_size <= key_len);
+ ASSERT_LE(data_size, key_len);
ASSERT_EQ(key_len, signature.size());
openssl_padding = RSA_NO_PADDING;
break;
case PaddingMode::RSA_PKCS1_1_5_SIGN:
- ASSERT_TRUE(data_size + kPkcs1UndigestedSignaturePaddingOverhead <=
- key_len);
+ ASSERT_LE(data_size + kPkcs1UndigestedSignaturePaddingOverhead, key_len);
openssl_padding = RSA_PKCS1_PADDING;
break;
default:
@@ -1905,7 +1904,7 @@
}
}
- // Verified boot key should be all 0's if the boot state is not verified or self signed
+ // Verified Boot key should be all zeroes if the boot state is "orange".
std::string empty_boot_key(32, '\0');
std::string verified_boot_key_str((const char*)verified_boot_key.data(),
verified_boot_key.size());
@@ -2364,7 +2363,7 @@
// ATTESTATION_IDS_NOT_PROVISIONED in this case.
ASSERT_TRUE((tag == TAG_ATTESTATION_ID_IMEI || tag == TAG_ATTESTATION_ID_MEID ||
tag == TAG_ATTESTATION_ID_SECOND_IMEI))
- << "incorrect error code on attestation ID mismatch";
+ << "incorrect error code on attestation ID mismatch for " << tag;
} else {
ADD_FAILURE() << "Error code " << result
<< " returned on attestation ID mismatch, should be CANNOT_ATTEST_IDS";
diff --git a/security/keymint/aidl/vts/functional/KeyMintTest.cpp b/security/keymint/aidl/vts/functional/KeyMintTest.cpp
index e32c2db..067db78 100644
--- a/security/keymint/aidl/vts/functional/KeyMintTest.cpp
+++ b/security/keymint/aidl/vts/functional/KeyMintTest.cpp
@@ -2584,7 +2584,8 @@
auto result = GenerateKey(
AuthorizationSetBuilder().EcdsaKey(256).Digest(Digest::NONE).SetDefaultValidity());
ASSERT_TRUE(result == ErrorCode::UNSUPPORTED_KEY_SIZE ||
- result == ErrorCode::UNSUPPORTED_EC_CURVE);
+ result == ErrorCode::UNSUPPORTED_EC_CURVE)
+ << "unexpected result " << result;
}
/*
@@ -2605,7 +2606,7 @@
.SigningKey()
.Digest(Digest::NONE)
.SetDefaultValidity());
- ASSERT_TRUE(result == ErrorCode::INVALID_ARGUMENT);
+ ASSERT_EQ(result, ErrorCode::INVALID_ARGUMENT);
}
/*
@@ -3184,7 +3185,8 @@
string result;
ErrorCode finish_error_code = Finish(message, &result);
EXPECT_TRUE(finish_error_code == ErrorCode::INVALID_INPUT_LENGTH ||
- finish_error_code == ErrorCode::INVALID_ARGUMENT);
+ finish_error_code == ErrorCode::INVALID_ARGUMENT)
+ << "unexpected error code " << finish_error_code;
// Very large message that should exceed the transfer buffer size of any reasonable TEE.
message = string(128 * 1024, 'a');
@@ -3194,7 +3196,8 @@
.Padding(PaddingMode::RSA_PKCS1_1_5_SIGN)));
finish_error_code = Finish(message, &result);
EXPECT_TRUE(finish_error_code == ErrorCode::INVALID_INPUT_LENGTH ||
- finish_error_code == ErrorCode::INVALID_ARGUMENT);
+ finish_error_code == ErrorCode::INVALID_ARGUMENT)
+ << "unexpected error code " << finish_error_code;
}
/*
@@ -3248,7 +3251,8 @@
.Digest(Digest::NONE)
.Digest(Digest::SHA1)
.Padding(PaddingMode::RSA_PKCS1_1_5_SIGN));
- ASSERT_TRUE(result == ErrorCode::UNSUPPORTED_DIGEST || result == ErrorCode::INVALID_ARGUMENT);
+ ASSERT_TRUE(result == ErrorCode::UNSUPPORTED_DIGEST || result == ErrorCode::INVALID_ARGUMENT)
+ << "unexpected result " << result;
ASSERT_EQ(ErrorCode::UNSUPPORTED_DIGEST,
Begin(KeyPurpose::SIGN,
@@ -3421,7 +3425,8 @@
}
auto rc = DeleteKey();
- ASSERT_TRUE(rc == ErrorCode::OK || rc == ErrorCode::UNIMPLEMENTED);
+ ASSERT_TRUE(rc == ErrorCode::OK || rc == ErrorCode::UNIMPLEMENTED)
+ << "unexpected result " << rc;
}
}
@@ -5705,7 +5710,8 @@
// is checked against those values, and found absent.
auto result = Begin(KeyPurpose::DECRYPT, params);
EXPECT_TRUE(result == ErrorCode::UNSUPPORTED_MGF_DIGEST ||
- result == ErrorCode::INCOMPATIBLE_MGF_DIGEST);
+ result == ErrorCode::INCOMPATIBLE_MGF_DIGEST)
+ << "unexpected result " << result;
}
/*
@@ -5970,14 +5976,16 @@
.BlockMode(BlockMode::ECB)
.Padding(PaddingMode::NONE));
EXPECT_TRUE(result == ErrorCode::INCOMPATIBLE_BLOCK_MODE ||
- result == ErrorCode::UNSUPPORTED_BLOCK_MODE);
+ result == ErrorCode::UNSUPPORTED_BLOCK_MODE)
+ << "unexpected result " << result;
result = Begin(KeyPurpose::ENCRYPT, AuthorizationSetBuilder()
.BlockMode(BlockMode::ECB)
.Padding(PaddingMode::NONE)
.Padding(PaddingMode::PKCS7));
EXPECT_TRUE(result == ErrorCode::INCOMPATIBLE_PADDING_MODE ||
- result == ErrorCode::UNSUPPORTED_PADDING_MODE);
+ result == ErrorCode::UNSUPPORTED_PADDING_MODE)
+ << "unexpected result " << result;
}
/*
@@ -8760,7 +8768,8 @@
// Re-enable and run at your own risk.
TEST_P(DestroyAttestationIdsTest, DISABLED_DestroyTest) {
auto result = DestroyAttestationIds();
- EXPECT_TRUE(result == ErrorCode::OK || result == ErrorCode::UNIMPLEMENTED);
+ EXPECT_TRUE(result == ErrorCode::OK || result == ErrorCode::UNIMPLEMENTED)
+ << "unexpected result " << result;
}
INSTANTIATE_KEYMINT_AIDL_TEST(DestroyAttestationIdsTest);
diff --git a/staging/security/see/Android.bp b/staging/security/see/Android.bp
new file mode 100644
index 0000000..a83b65d
--- /dev/null
+++ b/staging/security/see/Android.bp
@@ -0,0 +1,5 @@
+dirgroup {
+ name: "trusty_dirgroup_hardware_interfaces_staging_security_see",
+ dirs: ["."],
+ visibility: ["//trusty/vendor/google/aosp/scripts"],
+}
diff --git a/staging/security/see/hwcrypto/aidl/Android.bp b/staging/security/see/hwcrypto/aidl/Android.bp
index 0a7e8be..2da59a4 100644
--- a/staging/security/see/hwcrypto/aidl/Android.bp
+++ b/staging/security/see/hwcrypto/aidl/Android.bp
@@ -28,4 +28,5 @@
enabled: true,
},
},
+ frozen: false,
}
diff --git a/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/IHwCryptoKey.aidl b/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/IHwCryptoKey.aidl
index 6837a2f..5b34572 100644
--- a/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/IHwCryptoKey.aidl
+++ b/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/IHwCryptoKey.aidl
@@ -40,10 +40,14 @@
android.hardware.security.see.hwcrypto.IOpaqueKey importClearKey(in android.hardware.security.see.hwcrypto.types.ExplicitKeyMaterial keyMaterial, in android.hardware.security.see.hwcrypto.KeyPolicy newKeyPolicy);
byte[] getCurrentDicePolicy();
android.hardware.security.see.hwcrypto.IOpaqueKey keyTokenImport(in android.hardware.security.see.hwcrypto.types.OpaqueKeyToken requestedKey, in byte[] sealingDicePolicy);
+ android.hardware.security.see.hwcrypto.IOpaqueKey getKeyslotData(android.hardware.security.see.hwcrypto.IHwCryptoKey.KeySlot slotId);
enum DeviceKeyId {
DEVICE_BOUND_KEY,
BATCH_KEY,
}
+ enum KeySlot {
+ KEYMINT_SHARED_HMAC_KEY,
+ }
union DiceBoundDerivationKey {
android.hardware.security.see.hwcrypto.IOpaqueKey opaqueKey;
android.hardware.security.see.hwcrypto.IHwCryptoKey.DeviceKeyId keyId;
diff --git a/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/IOpaqueKey.aidl b/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/IOpaqueKey.aidl
index c74e71f..88dbdf1 100644
--- a/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/IOpaqueKey.aidl
+++ b/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/IOpaqueKey.aidl
@@ -37,4 +37,5 @@
android.hardware.security.see.hwcrypto.KeyPolicy getKeyPolicy();
byte[] getPublicKey();
android.hardware.security.see.hwcrypto.types.OpaqueKeyToken getShareableToken(in byte[] sealingDicePolicy);
+ void setProtectionId(in android.hardware.security.see.hwcrypto.types.ProtectionId protectionId, in android.hardware.security.see.hwcrypto.types.OperationType[] allowedOperations);
}
diff --git a/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/OperationParameters.aidl b/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/OperationParameters.aidl
index 017e51c..e069610 100644
--- a/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/OperationParameters.aidl
+++ b/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/OperationParameters.aidl
@@ -35,4 +35,5 @@
union OperationParameters {
android.hardware.security.see.hwcrypto.types.SymmetricAuthOperationParameters symmetricAuthCrypto;
android.hardware.security.see.hwcrypto.types.SymmetricOperationParameters symmetricCrypto;
+ android.hardware.security.see.hwcrypto.types.HmacOperationParameters hmac;
}
diff --git a/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/types/ExplicitKeyMaterial.aidl b/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/types/ExplicitKeyMaterial.aidl
index 933fb67..9970678 100644
--- a/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/types/ExplicitKeyMaterial.aidl
+++ b/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/types/ExplicitKeyMaterial.aidl
@@ -34,4 +34,5 @@
package android.hardware.security.see.hwcrypto.types;
union ExplicitKeyMaterial {
android.hardware.security.see.hwcrypto.types.AesKey aes;
+ android.hardware.security.see.hwcrypto.types.HmacKey hmac;
}
diff --git a/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/types/HalErrorCode.aidl b/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/types/HalErrorCode.aidl
index cd8b3c6..742314c 100644
--- a/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/types/HalErrorCode.aidl
+++ b/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/types/HalErrorCode.aidl
@@ -41,4 +41,5 @@
const int ALLOCATION_ERROR = (-5) /* -5 */;
const int INVALID_KEY = (-6) /* -6 */;
const int BAD_PARAMETER = (-7) /* -7 */;
+ const int UNAUTHORIZED = (-8) /* -8 */;
}
diff --git a/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/types/HmacKey.aidl b/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/types/HmacKey.aidl
new file mode 100644
index 0000000..f8de94a
--- /dev/null
+++ b/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/types/HmacKey.aidl
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.hardware.security.see.hwcrypto.types;
+union HmacKey {
+ byte[32] sha256 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+ byte[64] sha512;
+}
diff --git a/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/types/HmacOperationParameters.aidl b/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/types/HmacOperationParameters.aidl
new file mode 100644
index 0000000..532cd8d
--- /dev/null
+++ b/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/types/HmacOperationParameters.aidl
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.hardware.security.see.hwcrypto.types;
+parcelable HmacOperationParameters {
+ android.hardware.security.see.hwcrypto.IOpaqueKey key;
+}
diff --git a/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/types/ProtectionId.aidl b/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/types/ProtectionId.aidl
new file mode 100644
index 0000000..1e304ab
--- /dev/null
+++ b/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/types/ProtectionId.aidl
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.hardware.security.see.hwcrypto.types;
+enum ProtectionId {
+ WIDEVINE_OUTPUT_BUFFER = 1,
+}
diff --git a/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/IHwCryptoKey.aidl b/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/IHwCryptoKey.aidl
index e472f4c..bb194a3 100644
--- a/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/IHwCryptoKey.aidl
+++ b/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/IHwCryptoKey.aidl
@@ -37,6 +37,19 @@
DEVICE_BOUND_KEY,
BATCH_KEY,
}
+
+ /*
+ * Identifier for the requested key slot. The currently supported identifiers are:
+ *
+ * KEYMINT_SHARED_HMAC_KEY:
+ * This is the shared HMAC key that will now be computed by HwCryptoKey after participating
+ * in the ISharedSecret protocol that can be shared with KeyMint and authenticators. See
+ * ISharedSecret.aidl for more information.
+ */
+ enum KeySlot {
+ KEYMINT_SHARED_HMAC_KEY,
+ }
+
union DiceBoundDerivationKey {
/*
* Opaque to be used to derive the DICE bound key.
@@ -256,4 +269,21 @@
* success, service specific error based on <code>HalErrorCode</code> otherwise.
*/
IOpaqueKey keyTokenImport(in OpaqueKeyToken requestedKey, in byte[] sealingDicePolicy);
+
+ /*
+ * getKeyslotData() - Gets the keyslot key material referenced by slotId.
+ *
+ * @slotId:
+ * Identifier for the requested keyslot
+ *
+ * This interface is used to access device specific keys with known types and uses. Because the
+ * returned key is opaque, it can only be used through the different HwCrypto interfaces.
+ * Because the keys live in a global namespace the identity of the caller needs to be
+ * checked to verify that it has permission to accesses the requested key.
+ *
+ * Return:
+ * Ok(IOpaqueKey) on success, UNAUTHORIZED if the caller cannot access the requested key,
+ * another specific error code otherwise.
+ */
+ IOpaqueKey getKeyslotData(KeySlot slotId);
}
diff --git a/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/IOpaqueKey.aidl b/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/IOpaqueKey.aidl
index eba4d1c..9a72639 100644
--- a/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/IOpaqueKey.aidl
+++ b/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/IOpaqueKey.aidl
@@ -18,6 +18,7 @@
import android.hardware.security.see.hwcrypto.KeyPolicy;
import android.hardware.security.see.hwcrypto.types.OpaqueKeyToken;
import android.hardware.security.see.hwcrypto.types.OperationType;
+import android.hardware.security.see.hwcrypto.types.ProtectionId;
interface IOpaqueKey {
/*
@@ -65,4 +66,25 @@
* <code>HalErrorCode</code> otherwise.
*/
OpaqueKeyToken getShareableToken(in byte[] sealingDicePolicy);
+
+ /*
+ * setProtectionId() - Sets the protectionID associated with the buffers where the operation
+ * will be performed. A protection ID serves as a limitation on the key so
+ * it can only operate on buffers with a matching protection ID.
+ * The client calling this functions needs to have the necessary permissions
+ * to read and/or write to this buffer. Setting this parameter means that
+ * if the key is shared with a different client, the client receiving the
+ * key will be limited in which buffers can be used to read/write data for
+ * this operation.
+ *
+ * @protectionId:
+ * ID of the given use case to provide protection for. The method of protecting the buffer
+ * will be platform dependent.
+ * @allowedOperations:
+ * array of allowed operations. Allowed operations are either READ or WRITE.
+ *
+ * Return:
+ * service specific error based on <code>HalErrorCode</code> on failure.
+ */
+ void setProtectionId(in ProtectionId protectionId, in OperationType[] allowedOperations);
}
diff --git a/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/OperationParameters.aidl b/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/OperationParameters.aidl
index 9e2fc6c..a977f56 100644
--- a/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/OperationParameters.aidl
+++ b/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/OperationParameters.aidl
@@ -15,6 +15,7 @@
*/
package android.hardware.security.see.hwcrypto;
+import android.hardware.security.see.hwcrypto.types.HmacOperationParameters;
import android.hardware.security.see.hwcrypto.types.SymmetricAuthOperationParameters;
import android.hardware.security.see.hwcrypto.types.SymmetricOperationParameters;
@@ -31,4 +32,9 @@
* Parameters for non-authenticated symmetric cryptography (AES/TDES).
*/
SymmetricOperationParameters symmetricCrypto;
+
+ /*
+ * Parameters for hash based message authenticated code operations.
+ */
+ HmacOperationParameters hmac;
}
diff --git a/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/types/ExplicitKeyMaterial.aidl b/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/types/ExplicitKeyMaterial.aidl
index 4298ba9..3aa5611 100644
--- a/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/types/ExplicitKeyMaterial.aidl
+++ b/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/types/ExplicitKeyMaterial.aidl
@@ -16,10 +16,12 @@
package android.hardware.security.see.hwcrypto.types;
import android.hardware.security.see.hwcrypto.types.AesKey;
+import android.hardware.security.see.hwcrypto.types.HmacKey;
/*
* Type encapsulating a clear key.
*/
union ExplicitKeyMaterial {
AesKey aes;
+ HmacKey hmac;
}
diff --git a/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/types/HalErrorCode.aidl b/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/types/HalErrorCode.aidl
index e8e8539..f536c0e 100644
--- a/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/types/HalErrorCode.aidl
+++ b/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/types/HalErrorCode.aidl
@@ -42,4 +42,7 @@
/* Bad parameter supplied for the desired operation */
const int BAD_PARAMETER = -7;
+
+ /* Caller is not authorized to make this call */
+ const int UNAUTHORIZED = -8;
}
diff --git a/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/types/HmacKey.aidl b/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/types/HmacKey.aidl
new file mode 100644
index 0000000..a0b6ba7
--- /dev/null
+++ b/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/types/HmacKey.aidl
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package android.hardware.security.see.hwcrypto.types;
+
+/*
+ * Type that represents an Hmac key.
+ */
+union HmacKey {
+ /*
+ * Raw Hmac key for use with sha256.
+ */
+ byte[32] sha256 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0};
+
+ /*
+ * Raw Hmac key for use with sha512.
+ */
+ byte[64] sha512;
+}
diff --git a/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/types/HmacOperationParameters.aidl b/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/types/HmacOperationParameters.aidl
new file mode 100644
index 0000000..da09a2c
--- /dev/null
+++ b/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/types/HmacOperationParameters.aidl
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package android.hardware.security.see.hwcrypto.types;
+
+import android.hardware.security.see.hwcrypto.IOpaqueKey;
+/*
+ * Data needed to perform HMAC operations.
+ */
+parcelable HmacOperationParameters {
+ /*
+ * Key to be used for the HMAC operation.
+ */
+ IOpaqueKey key;
+}
diff --git a/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/types/ProtectionId.aidl b/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/types/ProtectionId.aidl
new file mode 100644
index 0000000..8686882
--- /dev/null
+++ b/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/types/ProtectionId.aidl
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package android.hardware.security.see.hwcrypto.types;
+
+/*
+ * Enum describing the different types of protected buffers. Protected buffers are named by its
+ * corresponding use case and its underlaying implementation is platform dependant.
+ */
+enum ProtectionId {
+ /*
+ * ProtectionID used by HwCrypto to enable Keys that can be used for Widevine video buffers.
+ * These buffers should not be readable by non-trusted entities and HwCrypto should not allow
+ * any read access to them through its interface.
+ */
+ WIDEVINE_OUTPUT_BUFFER = 1,
+}
diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/ISecureStorage.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/ISecureStorage.aidl
index 022de9a..1841bf5 100644
--- a/staging/security/see/storage/aidl/android/hardware/security/see/storage/ISecureStorage.aidl
+++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/ISecureStorage.aidl
@@ -34,6 +34,13 @@
/**
* Starts a storage session for a filesystem.
*
+ * Clients should be prepared for `startSession` and any methods called on the `IStorageSession`
+ * or its sub-interfaces to return `WOULD_BLOCK` (a `binder::Status` with an exception code of
+ * `EX_TRANSACTION_FAILED` and a transaction error code of `android::WOULD_BLOCK`), which
+ * indicates that the requested storage is not currently available. Possible cases that might
+ * cause this return code might be accessing the data partition during boot stages where it
+ * isn't yet mounted or attempting to commit changes while an A/B update is in progress.
+ *
* @filesystem:
* The minimum filesystem properties requested.
*
diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl
index 87257be..9d62431 100644
--- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl
+++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl
@@ -71,4 +71,6 @@
long baseAkm;
long cipherSuite;
int secureHeLtfProtocolVersion;
+ long pasnComebackAfterMillis;
+ @nullable byte[] pasnComebackCookie;
}
diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttSecureConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttSecureConfig.aidl
index c2d7866..64e81de 100644
--- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttSecureConfig.aidl
+++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttSecureConfig.aidl
@@ -37,4 +37,5 @@
android.hardware.wifi.PasnConfig pasnConfig;
boolean enableSecureHeLtf;
boolean enableRangingFrameProtection;
+ byte[] pasnComebackCookie;
}
diff --git a/wifi/aidl/android/hardware/wifi/RttResult.aidl b/wifi/aidl/android/hardware/wifi/RttResult.aidl
index dd41868..16b823d 100644
--- a/wifi/aidl/android/hardware/wifi/RttResult.aidl
+++ b/wifi/aidl/android/hardware/wifi/RttResult.aidl
@@ -234,4 +234,19 @@
* Secure HE-LTF protocol version used.
*/
int secureHeLtfProtocolVersion;
+ /**
+ * When an AP receives a large volume of initial PASN Authentication frames, it can use the
+ * comeback after field in the PASN Parameters element to indicate a deferral time and
+ * optionally provide a comeback cookie which is an opaque sequence of octets. This field is
+ * set to 0 to indicate that the subsequent ranging request can be retried with the
+ * |pasnComebackCookie|.
+ */
+ long pasnComebackAfterMillis;
+ /**
+ * Comeback cookie is an opaque sequence of octects sent by the AP when PASN authentication
+ * needs to be deferred. The same cookie needs to be passed in |RttSecureConfig| when the
+ * station has to range with the AP after |RttResult.pasnComebackAfterMillis|. Maximum size of
+ * cookie is 255 bytes. Refer IEEE Std 802.11az‐2022, section 9.4.2.303 PASN Parameters element.
+ */
+ @nullable byte[] pasnComebackCookie;
}
diff --git a/wifi/aidl/android/hardware/wifi/RttSecureConfig.aidl b/wifi/aidl/android/hardware/wifi/RttSecureConfig.aidl
index c10e6b5..d1394ab 100644
--- a/wifi/aidl/android/hardware/wifi/RttSecureConfig.aidl
+++ b/wifi/aidl/android/hardware/wifi/RttSecureConfig.aidl
@@ -35,4 +35,8 @@
* Enable Ranging frame protection.
*/
boolean enableRangingFrameProtection;
+ /**
+ * Comeback cookie is an opaque sequence of octets retrieved from |RttResult|.
+ */
+ byte[] pasnComebackCookie;
}
diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/ApInfo.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/ApInfo.aidl
index 1a66105..f8320c6 100644
--- a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/ApInfo.aidl
+++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/ApInfo.aidl
@@ -41,4 +41,5 @@
android.hardware.wifi.hostapd.Generation generation;
byte[] apIfaceInstanceMacAddress;
@nullable android.hardware.wifi.common.OuiKeyedData[] vendorData;
+ @nullable byte[] mldMacAddress;
}
diff --git a/wifi/hostapd/aidl/android/hardware/wifi/hostapd/ApInfo.aidl b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/ApInfo.aidl
index f2b2ee6..4e1e1c8 100644
--- a/wifi/hostapd/aidl/android/hardware/wifi/hostapd/ApInfo.aidl
+++ b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/ApInfo.aidl
@@ -63,4 +63,9 @@
* Optional vendor-specific information.
*/
@nullable OuiKeyedData[] vendorData;
+
+ /**
+ * MAC Address of the multiple link device (MLD) which apIfaceInstance is associated with.
+ */
+ @nullable byte[] mldMacAddress;
}
diff --git a/wifi/legacy_headers/include/hardware_legacy/rtt.h b/wifi/legacy_headers/include/hardware_legacy/rtt.h
index 93ea145..3fa4e95 100644
--- a/wifi/legacy_headers/include/hardware_legacy/rtt.h
+++ b/wifi/legacy_headers/include/hardware_legacy/rtt.h
@@ -100,6 +100,7 @@
#define RTT_SECURITY_MAX_PASSPHRASE_LEN 63
#define PMKID_LEN 16
+#define RTT_MAX_COOKIE_LEN 255
typedef struct {
wifi_rtt_akm base_akm; // Base Authentication and Key Management (AKM) protocol used for PASN
@@ -111,7 +112,9 @@
u32 pmkid_len;
u8 pmkid[PMKID_LEN]; // PMKID corresponding to the cached PMK from the base AKM. PMKID can be
// null if no cached PMK is present.
-
+ u8 comeback_cookie_len; // Comeback cookie length. If the length is 0, it indicates there is no
+ // cookie.
+ u8 comeback_cookie[RTT_MAX_COOKIE_LEN]; // Comeback cookie indicated over wifi_rtt_result_v4.
} wifi_rtt_pasn_config;
typedef struct {
@@ -261,6 +264,11 @@
wifi_rtt_akm base_akm;
wifi_rtt_cipher_suite cipher_suite;
int secure_he_ltf_protocol_version;
+ u16 pasn_comeback_after_millis; // The time in milliseconds after which the non-AP STA is
+ // requested to retry the PASN authentication.
+ u8 pasn_comeback_cookie_len; // Comeback cookie length. If the length is 0, it indicates there
+ // is no cookie.
+ u8 pasn_comeback_cookie[RTT_MAX_COOKIE_LEN]; // Comeback cookie octets.
} wifi_rtt_result_v4;
/* RTT result callbacks */
diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl
index b617c57..e96b386 100644
--- a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl
+++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl
@@ -86,6 +86,6 @@
enum MloLinkInfoChangeReason {
TID_TO_LINK_MAP = 0,
MULTI_LINK_RECONFIG_AP_REMOVAL = 1,
- MULTI_LINK_RECONFIG_AP_ADDITION = 2,
+ MULTI_LINK_DYNAMIC_RECONFIG = 2,
}
}
diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl
index 8740ad0..e5e2e84 100644
--- a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl
+++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl
@@ -336,21 +336,24 @@
*/
TID_TO_LINK_MAP = 0,
/**
- * Multi-link reconfiguration - AP removal as described in
- * IEEE 802.11be spec, section 35.3.6. This is a mandatory feature for
- * station according to Wi-Fi 7 R1 MRD.
+ * Multi-link reconfiguration - AP removal as described in the Wi-Fi 7 R1 MRD section
+ * 6.3.2.18. This is a mandatory feature for station.
*
* Removed link will not be present in |ISupplicantStaIface.getConnectionMloLinksInfo|.
*/
MULTI_LINK_RECONFIG_AP_REMOVAL = 1,
/**
- * Multi-link reconfiguration - Adding affiliated AP(s) as described in
- * IEEE 802.11be spec, section 35.3.6. This is an optional feature for
- * station according to Wi-Fi 7 R2 MRD.
+ * Multi-link reconfiguration add/delete links without re-association as described in
+ * the Wi-Fi 7 R2 MRD section 6.4.2.4. This is an optional feature.
+ *
+ * This feature enables dynamic link reconfiguration operations (add link and/or delete
+ * link) on the multi-link setup of a STA MLD, either triggered by the AP MLD or initiated
+ * by the STA MLD itself. This avoids reassociation for any link reconfiguration operation.
*
* Added link will be present in |ISupplicantStaIface.getConnectionMloLinksInfo|.
+ * Deleted link will not be present in |ISupplicantStaIface.getConnectionMloLinksInfo|.
*/
- MULTI_LINK_RECONFIG_AP_ADDITION = 2,
+ MULTI_LINK_DYNAMIC_RECONFIG = 2,
}
/**