diff options
479 files changed, 29764 insertions, 239 deletions
diff --git a/audio/core/all-versions/vts/functional/OWNERS b/audio/core/all-versions/vts/functional/OWNERS new file mode 100644 index 0000000000..448d9fe960 --- /dev/null +++ b/audio/core/all-versions/vts/functional/OWNERS @@ -0,0 +1,2 @@ +# Bug component: 48436 +mnaganov@google.com diff --git a/audio/effect/all-versions/vts/functional/OWNERS b/audio/effect/all-versions/vts/functional/OWNERS new file mode 100644 index 0000000000..448d9fe960 --- /dev/null +++ b/audio/effect/all-versions/vts/functional/OWNERS @@ -0,0 +1,2 @@ +# Bug component: 48436 +mnaganov@google.com diff --git a/audio/policy/1.0/vts/functional/OWNERS b/audio/policy/1.0/vts/functional/OWNERS new file mode 100644 index 0000000000..448d9fe960 --- /dev/null +++ b/audio/policy/1.0/vts/functional/OWNERS @@ -0,0 +1,2 @@ +# Bug component: 48436 +mnaganov@google.com diff --git a/automotive/evs/1.0/vts/functional/OWNERS b/automotive/evs/1.0/vts/functional/OWNERS new file mode 100644 index 0000000000..ea4b61313f --- /dev/null +++ b/automotive/evs/1.0/vts/functional/OWNERS @@ -0,0 +1,2 @@ +# Bug component: 853002 +changyeon@google.com diff --git a/automotive/evs/1.1/vts/functional/OWNERS b/automotive/evs/1.1/vts/functional/OWNERS new file mode 100644 index 0000000000..ea4b61313f --- /dev/null +++ b/automotive/evs/1.1/vts/functional/OWNERS @@ -0,0 +1,2 @@ +# Bug component: 853002 +changyeon@google.com diff --git a/biometrics/fingerprint/2.2/vts/functional/OWNERS b/biometrics/fingerprint/2.2/vts/functional/OWNERS new file mode 100644 index 0000000000..0014ce917a --- /dev/null +++ b/biometrics/fingerprint/2.2/vts/functional/OWNERS @@ -0,0 +1,2 @@ +# Bug component: 114777 +ilyamaty@google.com diff --git a/bluetooth/1.0/default/Android.bp b/bluetooth/1.0/default/Android.bp index ee368fd6eb..84a49cf0a7 100644 --- a/bluetooth/1.0/default/Android.bp +++ b/bluetooth/1.0/default/Android.bp @@ -22,9 +22,8 @@ package { default_applicable_licenses: ["hardware_interfaces_license"], } -cc_library { - name: "android.hardware.bluetooth@1.0-impl", - defaults: ["hidl_defaults"], +cc_defaults { + name: "android.hardware.bluetooth@1.0-defaults", vendor: true, relative_install_path: "hw", srcs: [ @@ -47,6 +46,25 @@ cc_library { ], } +cc_library { + name: "android.hardware.bluetooth@1.0-impl", + defaults: [ + "hidl_defaults", + "android.hardware.bluetooth@1.0-defaults", + ], +} + +cc_library { + name: "android.hardware.bluetooth@1.0-impl-test", + defaults: [ + "hidl_defaults", + "android.hardware.bluetooth@1.0-defaults", + ], + cflags: [ + "-DBT_FUZZER", + ], +} + cc_library_static { name: "android.hardware.bluetooth-async", vendor: true, diff --git a/bluetooth/1.0/default/test/fuzzer/Android.bp b/bluetooth/1.0/default/test/fuzzer/Android.bp new file mode 100644 index 0000000000..81f328e4de --- /dev/null +++ b/bluetooth/1.0/default/test/fuzzer/Android.bp @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2021 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 { + // 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" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: ["hardware_interfaces_license"], +} + +cc_library { + name: "libbt-vendor-fuzz", + vendor: true, + srcs: [ + "bt_vendor.cpp", + ], + static_libs: [ + "android.hardware.bluetooth@1.0-impl-test", + "android.hardware.bluetooth-hci", + ], +} + +cc_fuzz { + name: "bluetoothV1.0_fuzzer", + vendor: true, + srcs: [ + "bluetoothV1.0_fuzzer.cpp", + ], + static_libs: [ + "android.hardware.bluetooth@1.0-impl-test", + "android.hardware.bluetooth-async", + "android.hardware.bluetooth-hci", + "libcutils", + "libutils", + ], + shared_libs: [ + "android.hardware.bluetooth@1.0", + "libhardware", + "libhidlbase", + "libbt-vendor-fuzz", + "liblog", + ], + fuzz_config: { + cc: [ + "android-media-fuzzing-reports@google.com", + ], + componentid: 533764, + }, +} diff --git a/bluetooth/1.0/default/test/fuzzer/README.md b/bluetooth/1.0/default/test/fuzzer/README.md new file mode 100644 index 0000000000..edd4fb655e --- /dev/null +++ b/bluetooth/1.0/default/test/fuzzer/README.md @@ -0,0 +1,48 @@ +# Fuzzer for android.hardware.bluetooth@1.0-impl-test + +## Plugin Design Considerations +The fuzzer plugin for android.hardware.bluetooth@1.0-impl-test is designed based on the understanding of the source code and tries to achieve the following: + +##### Maximize code coverage +1. The configuration parameters are not hardcoded, but instead selected based on +incoming data. This ensures more code paths are reached by the fuzzer. + +2. A new library *'libbt-vendor-fuzz.so'* is created that implements functions of `bt_vendor_interface_t` and calls them in order to maximize the code coverage + +android.hardware.bluetooth@1.0-impl-test supports the following parameters: + +1. Bluetooth Address (parameter name: `btAddress`) + +| Parameter| Valid Values| Configured Value| +|------------- |-------------| ----- | +| `btAddress` | Values inside array ranges from `0x0` to `0xFF`| Value obtained from FuzzedDataProvider| + +This also ensures that the plugin is always deterministic for any given input. + +##### Maximize utilization of input data +The plugin feeds the entire input data to the module. +This ensures that the plugin tolerates any kind of input (empty, huge, +malformed, etc) and doesnt `exit()` on any input and thereby increasing the +chance of identifying vulnerabilities. + +## Build + +This describes steps to build bluetoothV1.0_fuzzer binary. + +### Android + +#### Steps to build +Build the fuzzer +``` + $ mm -j$(nproc) bluetoothV1.0_fuzzer +``` +#### Steps to run +To run on device +``` + $ adb sync data + $ adb shell LD_LIBRARY_PATH=/data/fuzz/${TARGET_ARCH}/lib/ /data/fuzz/${TARGET_ARCH}/bluetoothV1.0_fuzzer/bluetoothV1.0_fuzzer +``` + +## References: + * http://llvm.org/docs/LibFuzzer.html + * https://github.com/google/oss-fuzz diff --git a/bluetooth/1.0/default/test/fuzzer/bluetoothV1.0_fuzzer.cpp b/bluetooth/1.0/default/test/fuzzer/bluetoothV1.0_fuzzer.cpp new file mode 100644 index 0000000000..90cdc66bdc --- /dev/null +++ b/bluetooth/1.0/default/test/fuzzer/bluetoothV1.0_fuzzer.cpp @@ -0,0 +1,198 @@ +/* + * Copyright (C) 2021 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. + * + */ +#include <android/hardware/bluetooth/1.0/IBluetoothHci.h> +#include <android/hardware/bluetooth/1.0/IBluetoothHciCallbacks.h> +#include <bluetooth_address.h> +#include <bluetooth_hci.h> +#include <cutils/properties.h> +#include <fuzzer/FuzzedDataProvider.h> +#include <log/log.h> + +#include "bt_vendor.h" + +using namespace std; +using ::android::sp; +using ::android::hardware::hidl_vec; +using ::android::hardware::Return; +using ::android::hardware::bluetooth::V1_0::IBluetoothHci; +using ::android::hardware::bluetooth::V1_0::IBluetoothHciCallbacks; +using ::android::hardware::bluetooth::V1_0::Status; +using ::android::hardware::bluetooth::V1_0::implementation::BluetoothAddress; +using ::android::hardware::bluetooth::V1_0::implementation::BluetoothHci; +using ::android::hardware::bluetooth::V1_0::implementation:: + FACTORY_BDADDR_PROPERTY; +using ::android::hardware::bluetooth::V1_0::implementation:: + PERSIST_BDADDR_PROPERTY; +using ::android::hardware::bluetooth::V1_0::implementation:: + PROPERTY_BT_BDADDR_PATH; + +constexpr size_t kMaxPacketSize = 100; +constexpr size_t kMinFdcount = 2; + +template <typename T> +const hidl_vec<T> toHidlVec(const std::vector<T>& vec) { + hidl_vec<T> hVec; + hVec.setToExternal(const_cast<T*>(vec.data()), vec.size()); + return hVec; +} + +class BluetoothHciCallbacks : public IBluetoothHciCallbacks { + public: + virtual ~BluetoothHciCallbacks() = default; + + Return<void> initializationComplete(Status status) override { + if (status == Status::SUCCESS) { + isInitialized = true; + } else { + isInitialized = false; + } + return Return<void>(); + }; + + Return<void> hciEventReceived( + const ::android::hardware::hidl_vec<uint8_t>& /*event*/) override { + return Return<void>(); + }; + + Return<void> aclDataReceived( + const ::android::hardware::hidl_vec<uint8_t>& /*data*/) override { + return Return<void>(); + }; + + Return<void> scoDataReceived( + const ::android::hardware::hidl_vec<uint8_t>& /*data*/) override { + return Return<void>(); + }; + bool isInitialized; +}; + +class BluetoothFuzzer { + public: + ~BluetoothFuzzer() { + if (mFdp) { + delete mFdp; + } + mBtHci->close(); + mBtHci.clear(); + } + bool init(const uint8_t* data, size_t size); + void process(); + + private: + sp<BluetoothHci> mBtHci = nullptr; + FuzzedDataProvider* mFdp = nullptr; +}; + +bool BluetoothFuzzer::init(const uint8_t* data, size_t size) { + mBtHci = sp<BluetoothHci>::make(); + if (!mBtHci) { + return false; + } + mFdp = new FuzzedDataProvider(data, size); + return true; +} + +void BluetoothFuzzer::process() { + sp<BluetoothHciCallbacks> bluetoothCallback = + sp<BluetoothHciCallbacks>::make(); + + uint8_t btAddress[BluetoothAddress::kBytes]; + mFdp->ConsumeData(btAddress, sizeof(uint8_t) * BluetoothAddress::kBytes); + + char btAddrString[BluetoothAddress::kStringLength + 1]; + BluetoothAddress::bytes_to_string(btAddress, btAddrString); + + /* property_set() is called so that BluetoothAddress::get_local_address() + * could return true and the LOG_ALWAYS_FATAL() that aborts the run, if + * BluetoothAddress::get_local_address() returns false, could be avoided. + * + * BluetoothAddress::get_local_address() first searches if + * PROPERTY_BT_BDADDR_PATH is set, if it fails to get PROPERTY_BT_BDADDR_PATH, + * it searches for FACTORY_BDADDR_PROPERTY. If it fails to get + * FACTORY_BDADDR_PROPERTY, it then searches for PERSIST_BDADDR_PROPERTY. If + * PERSIST_BDADDR_PROPERTY is also not set, it results in an abort. + */ + property_set(PERSIST_BDADDR_PROPERTY, btAddrString); + + if (mFdp->ConsumeBool()) { + property_set(FACTORY_BDADDR_PROPERTY, btAddrString); + } + + if (mFdp->ConsumeBool()) { + char property[PROPERTY_VALUE_MAX] = {0}; + property_get("ro.vendor.bt.bdaddr_path", property, NULL); + // get the value of ro.vendor.bt.bdaddr_path and set it to + // PROPERTY_BT_BDADDR_PATH + property_set(PROPERTY_BT_BDADDR_PATH, property); + } + + bool shouldSetH4Protocol = mFdp->ConsumeBool(); + BtVendor* btVendor = BtVendor::getInstance(); + + size_t fdcount = 1; + int32_t fdList[CH_MAX] = {0}; + if (!shouldSetH4Protocol) { + fdcount = mFdp->ConsumeIntegralInRange<size_t>(kMinFdcount, CH_MAX - 1); + } + + for (size_t i = 0; i < fdcount; ++i) { + fdList[i] = open("/dev/null", O_RDWR | O_CREAT); + } + + btVendor->populateFdList(fdList, fdcount); + mBtHci->initialize(bluetoothCallback); + + if (!bluetoothCallback->isInitialized) { + return; + } + + std::vector<uint8_t> hciPacket, aclPacket; + + size_t hciPacketSize = + mFdp->ConsumeIntegralInRange<size_t>(0, kMaxPacketSize); + hciPacket = mFdp->ConsumeBytes<uint8_t>(hciPacketSize); + mBtHci->sendHciCommand(toHidlVec(hciPacket)); + + size_t aclPacketSize = + mFdp->ConsumeIntegralInRange<size_t>(0, kMaxPacketSize); + aclPacket = mFdp->ConsumeBytes<uint8_t>(aclPacketSize); + mBtHci->sendAclData(toHidlVec(aclPacket)); + + if (shouldSetH4Protocol) { + std::vector<uint8_t> scoPacket; + size_t scoPacketSize = + mFdp->ConsumeIntegralInRange<size_t>(0, kMaxPacketSize); + scoPacket = mFdp->ConsumeBytes<uint8_t>(scoPacketSize); + mBtHci->sendScoData(toHidlVec(scoPacket)); + } + + btVendor->callRemainingCbacks(); + + for (size_t i = 0; i < fdcount; ++i) { + if (fdList[i]) { + close(fdList[i]); + } + } +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + BluetoothFuzzer bluetoothFuzzer; + if (bluetoothFuzzer.init(data, size)) { + bluetoothFuzzer.process(); + } + return 0; +} diff --git a/bluetooth/1.0/default/test/fuzzer/bt_vendor.cpp b/bluetooth/1.0/default/test/fuzzer/bt_vendor.cpp new file mode 100644 index 0000000000..897fb67d98 --- /dev/null +++ b/bluetooth/1.0/default/test/fuzzer/bt_vendor.cpp @@ -0,0 +1,162 @@ +/* + * Copyright (C) 2021 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. + * + */ +#include "bt_vendor.h" + +#define UNUSED_PARAM __attribute__((unused)) +#define HCI_CMD_PREAMBLE_SIZE 3 +#define HCI_RESET 0x0C03 +#define HCI_EVT_CMD_CMPL_OPCODE 3 +#define HCI_EVT_CMD_CMPL_STATUS_RET_BYTE 5 +#define MSG_STACK_TO_HC_HCI_CMD 0x2000 +#define BT_HC_HDR_SIZE (sizeof(HC_BT_HDR)) +#define STREAM_TO_UINT16(u16, p) \ + { \ + u16 = ((uint16_t)(*(p)) + (((uint16_t)(*((p) + 1))) << 8)); \ + (p) += 2; \ + } +#define UINT16_TO_STREAM(p, u16) \ + { \ + *(p)++ = (uint8_t)(u16); \ + *(p)++ = (uint8_t)((u16) >> 8); \ + } +bt_vendor_callbacks_t* bt_vendor_cbacks = nullptr; + +void hw_epilog_cback(void* p_mem) { + HC_BT_HDR* p_evt_buf = (HC_BT_HDR*)p_mem; + uint8_t *p, status; + uint16_t opcode; + + status = *((uint8_t*)(p_evt_buf + 1) + HCI_EVT_CMD_CMPL_STATUS_RET_BYTE); + p = (uint8_t*)(p_evt_buf + 1) + HCI_EVT_CMD_CMPL_OPCODE; + STREAM_TO_UINT16(opcode, p); + + if (!bt_vendor_cbacks) { + return; + } + /* Must free the RX event buffer */ + bt_vendor_cbacks->dealloc(p_evt_buf); + + /* Once epilog process is done, must call callback to notify caller */ + bt_vendor_cbacks->epilog_cb(BT_VND_OP_RESULT_SUCCESS); + return; +} + +static int testInit(const bt_vendor_callbacks_t* cb, + unsigned char* bdaddr UNUSED_PARAM) { + if (cb == nullptr) { + return -1; + } + /*store reference to user callbacks */ + bt_vendor_cbacks = (bt_vendor_callbacks_t*)cb; + return 0; +} + +static int testOperations(bt_vendor_opcode_t opcode, void* param UNUSED_PARAM) { + BtVendor* btVendor = BtVendor::getInstance(); + if (bt_vendor_cbacks) { + btVendor->setVendorCback(bt_vendor_cbacks, opcode); + } + switch (opcode) { + case BT_VND_OP_POWER_CTRL: { + // No callback for this opcode + break; + } + case BT_VND_OP_USERIAL_OPEN: { + int32_t(*fd_array)[] = (int32_t(*)[])param; + int32_t fdArray[CH_MAX]; + *fdArray = *(btVendor->queryFdList()); + size_t fdcount = btVendor->queryFdCount(); + for (size_t i = 0; i < fdcount; ++i) { + (*fd_array)[i] = fdArray[i]; + } + return fdcount; + break; + } + case BT_VND_OP_FW_CFG: { + if (bt_vendor_cbacks) { + bt_vendor_cbacks->fwcfg_cb(BT_VND_OP_RESULT_SUCCESS); + } + break; + } + case BT_VND_OP_GET_LPM_IDLE_TIMEOUT: { + // No callback for this opcode + uint32_t* timeout_ms = (uint32_t*)param; + *timeout_ms = 0; + break; + } + case BT_VND_OP_LPM_SET_MODE: { + if (bt_vendor_cbacks) { + bt_vendor_cbacks->lpm_cb(BT_VND_OP_RESULT_SUCCESS); + } + break; + } + case BT_VND_OP_USERIAL_CLOSE: { + // No callback for this opcode + break; + } + case BT_VND_OP_LPM_WAKE_SET_STATE: { + // No callback for this opcode + break; + } + default: + break; + } + return 0; +} + +static void testCleanup(void) { bt_vendor_cbacks = nullptr; } + +const bt_vendor_interface_t BLUETOOTH_VENDOR_LIB_INTERFACE = { + sizeof(bt_vendor_interface_t), testInit, testOperations, testCleanup}; + +void BtVendor::populateFdList(int32_t list[], size_t count) { + fdCount = count; + for (size_t i = 0; i < count; ++i) { + fdList[i] = list[i]; + } +} + +void BtVendor::callRemainingCbacks() { + if (mCbacks) { + mCbacks->audio_state_cb(BT_VND_OP_RESULT_SUCCESS); + mCbacks->scocfg_cb(BT_VND_OP_RESULT_SUCCESS); + mCbacks->a2dp_offload_cb(BT_VND_OP_RESULT_SUCCESS, mOpcode, 0); + mCbacks->epilog_cb(BT_VND_OP_RESULT_SUCCESS); + + HC_BT_HDR* p_buf = NULL; + uint8_t* p; + + /* Sending a HCI_RESET */ + /* Must allocate command buffer via HC's alloc API */ + p_buf = (HC_BT_HDR*)mCbacks->alloc(BT_HC_HDR_SIZE + HCI_CMD_PREAMBLE_SIZE); + if (p_buf) { + p_buf->event = MSG_STACK_TO_HC_HCI_CMD; + p_buf->offset = 0; + p_buf->layer_specific = 0; + p_buf->len = HCI_CMD_PREAMBLE_SIZE; + + p = (uint8_t*)(p_buf + 1); + UINT16_TO_STREAM(p, HCI_RESET); + *p = 0; /* parameter length */ + + /* Send command via HC's xmit_cb API */ + mCbacks->xmit_cb(HCI_RESET, p_buf, hw_epilog_cback); + } else { + mCbacks->epilog_cb(BT_VND_OP_RESULT_FAIL); + } + } +} diff --git a/bluetooth/1.0/default/test/fuzzer/bt_vendor.h b/bluetooth/1.0/default/test/fuzzer/bt_vendor.h new file mode 100644 index 0000000000..ca227eafd1 --- /dev/null +++ b/bluetooth/1.0/default/test/fuzzer/bt_vendor.h @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2021 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. + * + */ +#ifndef __BT_VENDOR_H__ +#define __BT_VENDOR_H__ + +#include "bt_vendor_lib.h" + +class BtVendor { + public: + static BtVendor* getInstance() { + if (!mInstance) { + mInstance = new BtVendor; + } + return mInstance; + } + + void setVendorCback(bt_vendor_callbacks_t* cb, bt_vendor_opcode_t opcode) { + mCbacks = cb; + mOpcode = opcode; + } + + int32_t* queryFdList() { return fdList; } + size_t queryFdCount() { return fdCount; } + void callRemainingCbacks(); + void populateFdList(int32_t list[], size_t count); + + private: + BtVendor() = default; + + ~BtVendor() { + if (mInstance) { + delete mInstance; + mInstance = nullptr; + } + mCbacks = nullptr; + } + + static BtVendor* mInstance; + bt_vendor_callbacks_t* mCbacks = nullptr; + bt_vendor_opcode_t mOpcode; + int32_t fdCount; + int32_t fdList[CH_MAX] = {0}; +}; + +BtVendor* BtVendor::mInstance = nullptr; +#endif // __BT_VENDOR_H__ diff --git a/bluetooth/1.0/default/vendor_interface.cc b/bluetooth/1.0/default/vendor_interface.cc index d809313db6..1d15dd6f11 100644 --- a/bluetooth/1.0/default/vendor_interface.cc +++ b/bluetooth/1.0/default/vendor_interface.cc @@ -27,7 +27,11 @@ #include "h4_protocol.h" #include "mct_protocol.h" +#ifdef BT_FUZZER +static const char* VENDOR_LIBRARY_NAME = "libbt-vendor-fuzz.so"; +#else static const char* VENDOR_LIBRARY_NAME = "libbt-vendor.so"; +#endif static const char* VENDOR_LIBRARY_SYMBOL_NAME = "BLUETOOTH_VENDOR_LIB_INTERFACE"; diff --git a/compatibility_matrices/compatibility_matrix.current.xml b/compatibility_matrices/compatibility_matrix.current.xml index 0b779eee4f..ae5b736c02 100644 --- a/compatibility_matrices/compatibility_matrix.current.xml +++ b/compatibility_matrices/compatibility_matrix.current.xml @@ -413,6 +413,16 @@ <instance>default</instance> </interface> </hal> + <hal format="aidl" optional="true"> + <name>android.hardware.radio</name> + <version>1</version> + <interface> + <name>IRadio</name> + <instance>slot1</instance> + <instance>slot2</instance> + <instance>slot3</instance> + </interface> + </hal> <hal format="hidl" optional="true"> <name>android.hardware.radio</name> <version>1.6</version> @@ -611,6 +621,14 @@ <instance>default</instance> </interface> </hal> + <hal format="aidl" optional="true"> + <name>android.hardware.wifi.hostapd</name> + <version>1</version> + <interface> + <name>IHostapd</name> + <instance>default</instance> + </interface> + </hal> <hal format="hidl" optional="true"> <name>android.hardware.wifi.supplicant</name> <version>1.2-3</version> diff --git a/current.txt b/current.txt index 88b067d63f..a2b21d49d1 100644 --- a/current.txt +++ b/current.txt @@ -828,7 +828,7 @@ c17d9e27abd37ae5a8ff8da08fc5c9b13a264670feef6bbbc9d3ab1915216130 android.hardwar 3e8866987de4ecb48807c09d4c88ec38365930a22415f1b74edf8b14da17846b android.hardware.radio@1.6::IRadio 715789427a44cc78f9d123b0ceb9e035e4ac2b1049501337c23a512e85b87850 android.hardware.radio@1.6::IRadioIndication 2e9c08c4bc9539d8da28d7de33500f87148f7fa2e377238ee898b41752ac4f29 android.hardware.radio@1.6::IRadioResponse -6475887a9cd5cc8cb803e3a78956d84d7a5fde571407ede2396f3ea5e0c0d3ad android.hardware.radio@1.6::types +278e1997a379f2e93f0b7743c5bb28afb0cd6922915a760d58c2dd8177fde6ee android.hardware.radio@1.6::types f22813615be1445ddd817655c054fc69dc9efea56c9035cd0757f3cbed190641 android.hardware.radio.config@1.3::IRadioConfig c9ad18729268593d14681d88ffad1c97e707444a45e1b4ed804dab949edbd84f android.hardware.radio.config@1.3::IRadioConfigResponse 78dcb9a6975e8b377cb90bbe952078162960941468c992dcd2e1830a477b8c03 android.hardware.radio.config@1.3::types @@ -838,5 +838,7 @@ e34b4c7bec5e032c14804707ca924dd6b99ed5ba139da7505fe7d698d0fe178f android.hardwar # ABI preserving changes to HALs during Android T 62ace52d9c3ff1f60f94118557a2aaf0b953513e59dcd34d5f94ae28d4c7e780 android.hardware.fastboot@1.0::IFastboot +ca62a2a95d173ed323309e5e00f653ad3cceec82a6e5e4976a249cb5aafe2515 android.hardware.neuralnetworks@1.2::types +fa76bced6b1b71c40fc706c508a9011284c57f57831cd0cf5f45653ed4ea463e android.hardware.neuralnetworks@1.3::types # There should be no more HIDL HALs - please use AIDL instead. diff --git a/drm/1.0/vts/functional/OWNERS b/drm/1.0/vts/functional/OWNERS new file mode 100644 index 0000000000..0b13790bd5 --- /dev/null +++ b/drm/1.0/vts/functional/OWNERS @@ -0,0 +1,4 @@ +# Bug component: 49079 +jtinker@google.com +robertshih@google.com +edwinwong@google.com
\ No newline at end of file diff --git a/drm/1.1/vts/functional/OWNERS b/drm/1.1/vts/functional/OWNERS new file mode 100644 index 0000000000..0b13790bd5 --- /dev/null +++ b/drm/1.1/vts/functional/OWNERS @@ -0,0 +1,4 @@ +# Bug component: 49079 +jtinker@google.com +robertshih@google.com +edwinwong@google.com
\ No newline at end of file diff --git a/drm/1.2/vts/functional/OWNERS b/drm/1.2/vts/functional/OWNERS new file mode 100644 index 0000000000..0b13790bd5 --- /dev/null +++ b/drm/1.2/vts/functional/OWNERS @@ -0,0 +1,4 @@ +# Bug component: 49079 +jtinker@google.com +robertshih@google.com +edwinwong@google.com
\ No newline at end of file diff --git a/gatekeeper/1.0/vts/functional/VtsHalGatekeeperV1_0TargetTest.cpp b/gatekeeper/1.0/vts/functional/VtsHalGatekeeperV1_0TargetTest.cpp index 618624e1d4..f3fa0b469e 100644 --- a/gatekeeper/1.0/vts/functional/VtsHalGatekeeperV1_0TargetTest.cpp +++ b/gatekeeper/1.0/vts/functional/VtsHalGatekeeperV1_0TargetTest.cpp @@ -310,8 +310,6 @@ TEST_P(GatekeeperHidlTest, UntrustedReenroll) { if (first != nullptr && second != nullptr) { EXPECT_NE(first->user_id, second->user_id); } - // the old enrollment should be invalid now - verifyPassword(password, enrollRsp.data, 0, verifyRsp, false); ALOGI("Testing Untrusted Reenroll done"); } diff --git a/gnss/2.1/vts/functional/OWNERS b/gnss/2.1/vts/functional/OWNERS new file mode 100644 index 0000000000..b831eb45ff --- /dev/null +++ b/gnss/2.1/vts/functional/OWNERS @@ -0,0 +1,2 @@ +# Bug component: 393449 +yuhany@google.com diff --git a/graphics/composer/2.1/vts/functional/OWNERS b/graphics/composer/2.1/vts/functional/OWNERS new file mode 100644 index 0000000000..a2ed8c8500 --- /dev/null +++ b/graphics/composer/2.1/vts/functional/OWNERS @@ -0,0 +1,2 @@ +# Bug component: 25423 +sumir@google.com diff --git a/graphics/mapper/2.0/vts/functional/OWNERS b/graphics/mapper/2.0/vts/functional/OWNERS new file mode 100644 index 0000000000..a2ed8c8500 --- /dev/null +++ b/graphics/mapper/2.0/vts/functional/OWNERS @@ -0,0 +1,2 @@ +# Bug component: 25423 +sumir@google.com diff --git a/graphics/mapper/2.1/vts/functional/OWNERS b/graphics/mapper/2.1/vts/functional/OWNERS new file mode 100644 index 0000000000..a2ed8c8500 --- /dev/null +++ b/graphics/mapper/2.1/vts/functional/OWNERS @@ -0,0 +1,2 @@ +# Bug component: 25423 +sumir@google.com diff --git a/identity/aidl/default/FakeSecureHardwareProxy.cpp b/identity/aidl/default/FakeSecureHardwareProxy.cpp index 287ffb82e1..f0307dc324 100644 --- a/identity/aidl/default/FakeSecureHardwareProxy.cpp +++ b/identity/aidl/default/FakeSecureHardwareProxy.cpp @@ -70,6 +70,7 @@ bool FakeSecureHardwareProvisioningProxy::initialize(bool testCredential) { bool FakeSecureHardwareProvisioningProxy::initializeForUpdate( bool testCredential, string docType, vector<uint8_t> encryptedCredentialKeys) { return eicProvisioningInitForUpdate(&ctx_, testCredential, docType.c_str(), + docType.size(), encryptedCredentialKeys.data(), encryptedCredentialKeys.size()); } @@ -92,8 +93,11 @@ optional<vector<uint8_t>> FakeSecureHardwareProvisioningProxy::createCredentialK bool FakeSecureHardwareProvisioningProxy::startPersonalization( int accessControlProfileCount, vector<int> entryCounts, const string& docType, size_t expectedProofOfProvisioningSize) { - if (!eicProvisioningStartPersonalization(&ctx_, accessControlProfileCount, entryCounts.data(), - entryCounts.size(), docType.c_str(), + + if (!eicProvisioningStartPersonalization(&ctx_, accessControlProfileCount, + entryCounts.data(), + entryCounts.size(), + docType.c_str(), docType.size(), expectedProofOfProvisioningSize)) { return false; } @@ -105,9 +109,11 @@ optional<vector<uint8_t>> FakeSecureHardwareProvisioningProxy::addAccessControlP int id, const vector<uint8_t>& readerCertificate, bool userAuthenticationRequired, uint64_t timeoutMillis, uint64_t secureUserId) { vector<uint8_t> mac(28); + uint8_t scratchSpace[512]; if (!eicProvisioningAddAccessControlProfile( &ctx_, id, readerCertificate.data(), readerCertificate.size(), - userAuthenticationRequired, timeoutMillis, secureUserId, mac.data())) { + userAuthenticationRequired, timeoutMillis, secureUserId, mac.data(), + scratchSpace, sizeof(scratchSpace))) { return {}; } return mac; @@ -117,9 +123,15 @@ bool FakeSecureHardwareProvisioningProxy::beginAddEntry(const vector<int>& acces const string& nameSpace, const string& name, uint64_t entrySize) { uint8_t scratchSpace[512]; - return eicProvisioningBeginAddEntry(&ctx_, accessControlProfileIds.data(), - accessControlProfileIds.size(), nameSpace.c_str(), - name.c_str(), entrySize, scratchSpace, sizeof scratchSpace); + vector<uint8_t> uint8AccessControlProfileIds; + for (size_t i = 0; i < accessControlProfileIds.size(); i++) { + uint8AccessControlProfileIds.push_back(accessControlProfileIds[i] & 0xFF); + } + + return eicProvisioningBeginAddEntry(&ctx_, uint8AccessControlProfileIds.data(), + uint8AccessControlProfileIds.size(), nameSpace.c_str(), + nameSpace.size(), name.c_str(), name.size(), entrySize, + scratchSpace, sizeof(scratchSpace)); } // Returns encryptedContent. @@ -128,11 +140,16 @@ optional<vector<uint8_t>> FakeSecureHardwareProvisioningProxy::addEntryValue( const vector<uint8_t>& content) { vector<uint8_t> eicEncryptedContent; uint8_t scratchSpace[512]; + vector<uint8_t> uint8AccessControlProfileIds; + for (size_t i = 0; i < accessControlProfileIds.size(); i++) { + uint8AccessControlProfileIds.push_back(accessControlProfileIds[i] & 0xFF); + } + eicEncryptedContent.resize(content.size() + 28); if (!eicProvisioningAddEntryValue( - &ctx_, accessControlProfileIds.data(), accessControlProfileIds.size(), - nameSpace.c_str(), name.c_str(), content.data(), content.size(), - eicEncryptedContent.data(), scratchSpace, sizeof scratchSpace)) { + &ctx_, uint8AccessControlProfileIds.data(), uint8AccessControlProfileIds.size(), + nameSpace.c_str(), nameSpace.size(), name.c_str(), name.size(), content.data(), + content.size(), eicEncryptedContent.data(), scratchSpace, sizeof(scratchSpace))) { return {}; } return eicEncryptedContent; @@ -152,7 +169,7 @@ optional<vector<uint8_t>> FakeSecureHardwareProvisioningProxy::finishGetCredenti const string& docType) { vector<uint8_t> encryptedCredentialKeys(116); size_t size = encryptedCredentialKeys.size(); - if (!eicProvisioningFinishGetCredentialData(&ctx_, docType.c_str(), + if (!eicProvisioningFinishGetCredentialData(&ctx_, docType.c_str(), docType.size(), encryptedCredentialKeys.data(), &size)) { return {}; } @@ -170,7 +187,7 @@ bool FakeSecureHardwarePresentationProxy::initialize(bool testCredential, string vector<uint8_t> encryptedCredentialKeys) { LOG(INFO) << "FakeSecureHardwarePresentationProxy created, sizeof(EicPresentation): " << sizeof(EicPresentation); - return eicPresentationInit(&ctx_, testCredential, docType.c_str(), + return eicPresentationInit(&ctx_, testCredential, docType.c_str(), docType.size(), encryptedCredentialKeys.data(), encryptedCredentialKeys.size()); } @@ -181,8 +198,9 @@ FakeSecureHardwarePresentationProxy::generateSigningKeyPair(string docType, time size_t publicKeyCertSize = sizeof(publicKeyCert); vector<uint8_t> signingKeyBlob(60); - if (!eicPresentationGenerateSigningKeyPair(&ctx_, docType.c_str(), now, publicKeyCert, - &publicKeyCertSize, signingKeyBlob.data())) { + if (!eicPresentationGenerateSigningKeyPair(&ctx_, docType.c_str(), docType.size(), now, + publicKeyCert, &publicKeyCertSize, + signingKeyBlob.data())) { return {}; } @@ -244,10 +262,12 @@ optional<bool> FakeSecureHardwarePresentationProxy::validateAccessControlProfile int id, const vector<uint8_t>& readerCertificate, bool userAuthenticationRequired, int timeoutMillis, uint64_t secureUserId, const vector<uint8_t>& mac) { bool accessGranted = false; + uint8_t scratchSpace[512]; if (!eicPresentationValidateAccessControlProfile(&ctx_, id, readerCertificate.data(), readerCertificate.size(), userAuthenticationRequired, timeoutMillis, - secureUserId, mac.data(), &accessGranted)) { + secureUserId, mac.data(), &accessGranted, + scratchSpace, sizeof(scratchSpace))) { return {}; } return accessGranted; @@ -267,7 +287,7 @@ bool FakeSecureHardwarePresentationProxy::calcMacKey( } return eicPresentationCalcMacKey(&ctx_, sessionTranscript.data(), sessionTranscript.size(), readerEphemeralPublicKey.data(), signingKeyBlob.data(), - docType.c_str(), numNamespacesWithValues, + docType.c_str(), docType.size(), numNamespacesWithValues, expectedProofOfProvisioningSize); } @@ -275,10 +295,16 @@ AccessCheckResult FakeSecureHardwarePresentationProxy::startRetrieveEntryValue( const string& nameSpace, const string& name, unsigned int newNamespaceNumEntries, int32_t entrySize, const vector<int32_t>& accessControlProfileIds) { uint8_t scratchSpace[512]; + vector<uint8_t> uint8AccessControlProfileIds; + for (size_t i = 0; i < accessControlProfileIds.size(); i++) { + uint8AccessControlProfileIds.push_back(accessControlProfileIds[i] & 0xFF); + } + EicAccessCheckResult result = eicPresentationStartRetrieveEntryValue( - &ctx_, nameSpace.c_str(), name.c_str(), newNamespaceNumEntries, entrySize, - accessControlProfileIds.data(), accessControlProfileIds.size(), scratchSpace, - sizeof scratchSpace); + &ctx_, nameSpace.c_str(), nameSpace.size(), name.c_str(), name.size(), + newNamespaceNumEntries, entrySize, uint8AccessControlProfileIds.data(), + uint8AccessControlProfileIds.size(), scratchSpace, + sizeof(scratchSpace)); switch (result) { case EIC_ACCESS_CHECK_RESULT_OK: return AccessCheckResult::kOk; @@ -299,12 +325,18 @@ optional<vector<uint8_t>> FakeSecureHardwarePresentationProxy::retrieveEntryValu const vector<uint8_t>& encryptedContent, const string& nameSpace, const string& name, const vector<int32_t>& accessControlProfileIds) { uint8_t scratchSpace[512]; + vector<uint8_t> uint8AccessControlProfileIds; + for (size_t i = 0; i < accessControlProfileIds.size(); i++) { + uint8AccessControlProfileIds.push_back(accessControlProfileIds[i] & 0xFF); + } + vector<uint8_t> content; content.resize(encryptedContent.size() - 28); if (!eicPresentationRetrieveEntryValue( &ctx_, encryptedContent.data(), encryptedContent.size(), content.data(), - nameSpace.c_str(), name.c_str(), accessControlProfileIds.data(), - accessControlProfileIds.size(), scratchSpace, sizeof scratchSpace)) { + nameSpace.c_str(), nameSpace.size(), name.c_str(), name.size(), + uint8AccessControlProfileIds.data(), uint8AccessControlProfileIds.size(), + scratchSpace, sizeof(scratchSpace))) { return {}; } return content; @@ -324,9 +356,9 @@ optional<vector<uint8_t>> FakeSecureHardwarePresentationProxy::deleteCredential( const string& docType, const vector<uint8_t>& challenge, bool includeChallenge, size_t proofOfDeletionCborSize) { vector<uint8_t> signatureOfToBeSigned(EIC_ECDSA_P256_SIGNATURE_SIZE); - if (!eicPresentationDeleteCredential(&ctx_, docType.c_str(), challenge.data(), challenge.size(), - includeChallenge, proofOfDeletionCborSize, - signatureOfToBeSigned.data())) { + if (!eicPresentationDeleteCredential(&ctx_, docType.c_str(), docType.size(), challenge.data(), + challenge.size(), includeChallenge, + proofOfDeletionCborSize, signatureOfToBeSigned.data())) { return {}; } return signatureOfToBeSigned; @@ -336,8 +368,8 @@ optional<vector<uint8_t>> FakeSecureHardwarePresentationProxy::proveOwnership( const string& docType, bool testCredential, const vector<uint8_t>& challenge, size_t proofOfOwnershipCborSize) { vector<uint8_t> signatureOfToBeSigned(EIC_ECDSA_P256_SIGNATURE_SIZE); - if (!eicPresentationProveOwnership(&ctx_, docType.c_str(), testCredential, challenge.data(), - challenge.size(), proofOfOwnershipCborSize, + if (!eicPresentationProveOwnership(&ctx_, docType.c_str(), docType.size(), testCredential, + challenge.data(), challenge.size(), proofOfOwnershipCborSize, signatureOfToBeSigned.data())) { return {}; } diff --git a/identity/aidl/default/libeic/EicCbor.c b/identity/aidl/default/libeic/EicCbor.c index 0e2684fec4..b9304bcacb 100644 --- a/identity/aidl/default/libeic/EicCbor.c +++ b/identity/aidl/default/libeic/EicCbor.c @@ -91,7 +91,7 @@ size_t eicCborAdditionalLengthBytesFor(size_t size) { return 8; } -void eicCborBegin(EicCbor* cbor, int majorType, size_t size) { +void eicCborBegin(EicCbor* cbor, int majorType, uint64_t size) { uint8_t data[9]; if (size < 24) { @@ -132,10 +132,13 @@ void eicCborAppendByteString(EicCbor* cbor, const uint8_t* data, size_t dataSize eicCborAppend(cbor, data, dataSize); } -void eicCborAppendString(EicCbor* cbor, const char* str) { - size_t length = eicStrLen(str); - eicCborBegin(cbor, EIC_CBOR_MAJOR_TYPE_STRING, length); - eicCborAppend(cbor, (const uint8_t*)str, length); +void eicCborAppendString(EicCbor* cbor, const char* str, size_t strLength) { + eicCborBegin(cbor, EIC_CBOR_MAJOR_TYPE_STRING, strLength); + eicCborAppend(cbor, (const uint8_t*)str, strLength); +} + +void eicCborAppendStringZ(EicCbor* cbor, const char* str) { + eicCborAppendString(cbor, str, eicStrLen(str)); } void eicCborAppendSimple(EicCbor* cbor, uint8_t simpleValue) { @@ -153,13 +156,13 @@ void eicCborAppendSemantic(EicCbor* cbor, uint64_t value) { } void eicCborAppendUnsigned(EicCbor* cbor, uint64_t value) { - size_t encoded = value; + uint64_t encoded = value; eicCborBegin(cbor, EIC_CBOR_MAJOR_TYPE_UNSIGNED, encoded); } void eicCborAppendNumber(EicCbor* cbor, int64_t value) { if (value < 0) { - size_t encoded = -1 - value; + uint64_t encoded = -1 - value; eicCborBegin(cbor, EIC_CBOR_MAJOR_TYPE_NEGATIVE, encoded); } else { eicCborAppendUnsigned(cbor, value); @@ -188,19 +191,19 @@ bool eicCborCalcAccessControl(EicCbor* cborBuilder, int id, const uint8_t* reade } } eicCborAppendMap(cborBuilder, numPairs); - eicCborAppendString(cborBuilder, "id"); + eicCborAppendStringZ(cborBuilder, "id"); eicCborAppendUnsigned(cborBuilder, id); if (readerCertificateSize > 0) { - eicCborAppendString(cborBuilder, "readerCertificate"); + eicCborAppendStringZ(cborBuilder, "readerCertificate"); eicCborAppendByteString(cborBuilder, readerCertificate, readerCertificateSize); } if (userAuthenticationRequired) { - eicCborAppendString(cborBuilder, "userAuthenticationRequired"); + eicCborAppendStringZ(cborBuilder, "userAuthenticationRequired"); eicCborAppendBool(cborBuilder, userAuthenticationRequired); - eicCborAppendString(cborBuilder, "timeoutMillis"); + eicCborAppendStringZ(cborBuilder, "timeoutMillis"); eicCborAppendUnsigned(cborBuilder, timeoutMillis); if (secureUserId > 0) { - eicCborAppendString(cborBuilder, "secureUserId"); + eicCborAppendStringZ(cborBuilder, "secureUserId"); eicCborAppendUnsigned(cborBuilder, secureUserId); } } @@ -214,20 +217,21 @@ bool eicCborCalcAccessControl(EicCbor* cborBuilder, int id, const uint8_t* reade return true; } -bool eicCborCalcEntryAdditionalData(const int* accessControlProfileIds, +bool eicCborCalcEntryAdditionalData(const uint8_t* accessControlProfileIds, size_t numAccessControlProfileIds, const char* nameSpace, - const char* name, uint8_t* cborBuffer, size_t cborBufferSize, - size_t* outAdditionalDataCborSize, + size_t nameSpaceLength, const char* name, + size_t nameLength, uint8_t* cborBuffer, + size_t cborBufferSize, size_t* outAdditionalDataCborSize, uint8_t additionalDataSha256[EIC_SHA256_DIGEST_SIZE]) { EicCbor cborBuilder; eicCborInit(&cborBuilder, cborBuffer, cborBufferSize); eicCborAppendMap(&cborBuilder, 3); - eicCborAppendString(&cborBuilder, "Namespace"); - eicCborAppendString(&cborBuilder, nameSpace); - eicCborAppendString(&cborBuilder, "Name"); - eicCborAppendString(&cborBuilder, name); - eicCborAppendString(&cborBuilder, "AccessControlProfileIds"); + eicCborAppendStringZ(&cborBuilder, "Namespace"); + eicCborAppendString(&cborBuilder, nameSpace, nameSpaceLength); + eicCborAppendStringZ(&cborBuilder, "Name"); + eicCborAppendString(&cborBuilder, name, nameLength); + eicCborAppendStringZ(&cborBuilder, "AccessControlProfileIds"); eicCborAppendArray(&cborBuilder, numAccessControlProfileIds); for (size_t n = 0; n < numAccessControlProfileIds; n++) { eicCborAppendNumber(&cborBuilder, accessControlProfileIds[n]); diff --git a/identity/aidl/default/libeic/EicCbor.h b/identity/aidl/default/libeic/EicCbor.h index 9c0f531e4a..16f7ab6619 100644 --- a/identity/aidl/default/libeic/EicCbor.h +++ b/identity/aidl/default/libeic/EicCbor.h @@ -102,13 +102,16 @@ void eicCborAppend(EicCbor* cbor, const uint8_t* data, size_t size); #define EIC_CBOR_SEMANTIC_TAG_ENCODED_CBOR 24 /* Begins a new CBOR value. */ -void eicCborBegin(EicCbor* cbor, int majorType, size_t size); +void eicCborBegin(EicCbor* cbor, int majorType, uint64_t size); /* Appends a bytestring. */ void eicCborAppendByteString(EicCbor* cbor, const uint8_t* data, size_t dataSize); +/* Appends a UTF-8 string. */ +void eicCborAppendString(EicCbor* cbor, const char* str, size_t strLength); + /* Appends a NUL-terminated UTF-8 string. */ -void eicCborAppendString(EicCbor* cbor, const char* str); +void eicCborAppendStringZ(EicCbor* cbor, const char* str); /* Appends a simple value. */ void eicCborAppendSimple(EicCbor* cbor, uint8_t simpleValue); @@ -144,22 +147,13 @@ bool eicCborCalcAccessControl(EicCbor* cborBuilder, int id, const uint8_t* reade size_t readerCertificateSize, bool userAuthenticationRequired, uint64_t timeoutMillis, uint64_t secureUserId); -bool eicCborCalcEntryAdditionalData(const int* accessControlProfileIds, +bool eicCborCalcEntryAdditionalData(const uint8_t* accessControlProfileIds, size_t numAccessControlProfileIds, const char* nameSpace, - const char* name, uint8_t* cborBuffer, size_t cborBufferSize, - size_t* outAdditionalDataCborSize, + size_t nameSpaceLength, const char* name, + size_t nameLength, uint8_t* cborBuffer, + size_t cborBufferSize, size_t* outAdditionalDataCborSize, uint8_t additionalDataSha256[EIC_SHA256_DIGEST_SIZE]); -// The maximum size of an encoded Secure Access Control Profile that we -// support. Since the SACP may contain a reader certificate chain these can get -// pretty big. -// -// Currently we allocate space on the stack for this structure which is why we -// have a maximum size. We can get rid of the maximum size by incrementally -// building/verifying the SACP. TODO: actually do this. -// -#define EIC_MAX_CBOR_SIZE_FOR_ACCESS_CONTROL_PROFILE 512 - #ifdef __cplusplus } #endif diff --git a/identity/aidl/default/libeic/EicCommon.h b/identity/aidl/default/libeic/EicCommon.h new file mode 100644 index 0000000000..476276ebcf --- /dev/null +++ b/identity/aidl/default/libeic/EicCommon.h @@ -0,0 +1,44 @@ +/* + * Copyright 2020, 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. + */ + +#if !defined(EIC_INSIDE_LIBEIC_H) && !defined(EIC_COMPILATION) +#error "Never include this file directly, include libeic.h instead." +#endif + +#ifndef ANDROID_HARDWARE_IDENTITY_EIC_COMMON_H +#define ANDROID_HARDWARE_IDENTITY_EIC_COMMON_H + +// Feature version 202009: +// +// CredentialKeys = [ +// bstr, ; storageKey, a 128-bit AES key +// bstr, ; credentialPrivKey, the private key for credentialKey +// ] +// +// Feature version 202101: +// +// CredentialKeys = [ +// bstr, ; storageKey, a 128-bit AES key +// bstr, ; credentialPrivKey, the private key for credentialKey +// bstr ; proofOfProvisioning SHA-256 +// ] +// +// where storageKey is 16 bytes, credentialPrivateKey is 32 bytes, and proofOfProvisioning +// SHA-256 is 32 bytes. +#define EIC_CREDENTIAL_KEYS_CBOR_SIZE_FEATURE_VERSION_202009 52 +#define EIC_CREDENTIAL_KEYS_CBOR_SIZE_FEATURE_VERSION_202101 86 + +#endif // ANDROID_HARDWARE_IDENTITY_EIC_COMMON_H diff --git a/identity/aidl/default/libeic/EicPresentation.c b/identity/aidl/default/libeic/EicPresentation.c index 3d13766f1e..0d03ae9620 100644 --- a/identity/aidl/default/libeic/EicPresentation.c +++ b/identity/aidl/default/libeic/EicPresentation.c @@ -15,22 +15,23 @@ */ #include "EicPresentation.h" +#include "EicCommon.h" #include <inttypes.h> bool eicPresentationInit(EicPresentation* ctx, bool testCredential, const char* docType, - const uint8_t* encryptedCredentialKeys, + size_t docTypeLength, const uint8_t* encryptedCredentialKeys, size_t encryptedCredentialKeysSize) { - uint8_t credentialKeys[86]; + uint8_t credentialKeys[EIC_CREDENTIAL_KEYS_CBOR_SIZE_FEATURE_VERSION_202101]; bool expectPopSha256 = false; // For feature version 202009 it's 52 bytes long and for feature version 202101 it's 86 // bytes (the additional data is the ProofOfProvisioning SHA-256). We need // to support loading all feature versions. // - if (encryptedCredentialKeysSize == 52 + 28) { + if (encryptedCredentialKeysSize == EIC_CREDENTIAL_KEYS_CBOR_SIZE_FEATURE_VERSION_202009 + 28) { /* do nothing */ - } else if (encryptedCredentialKeysSize == 86 + 28) { + } else if (encryptedCredentialKeysSize == EIC_CREDENTIAL_KEYS_CBOR_SIZE_FEATURE_VERSION_202101 + 28) { expectPopSha256 = true; } else { eicDebug("Unexpected size %zd for encryptedCredentialKeys", encryptedCredentialKeysSize); @@ -42,7 +43,7 @@ bool eicPresentationInit(EicPresentation* ctx, bool testCredential, const char* if (!eicOpsDecryptAes128Gcm(eicOpsGetHardwareBoundKey(testCredential), encryptedCredentialKeys, encryptedCredentialKeysSize, // DocType is the additionalAuthenticatedData - (const uint8_t*)docType, eicStrLen(docType), credentialKeys)) { + (const uint8_t*)docType, docTypeLength, credentialKeys)) { eicDebug("Error decrypting CredentialKeys"); return false; } @@ -88,7 +89,8 @@ bool eicPresentationInit(EicPresentation* ctx, bool testCredential, const char* return true; } -bool eicPresentationGenerateSigningKeyPair(EicPresentation* ctx, const char* docType, time_t now, +bool eicPresentationGenerateSigningKeyPair(EicPresentation* ctx, const char* docType, + size_t docTypeLength, time_t now, uint8_t* publicKeyCert, size_t* publicKeyCertSize, uint8_t signingKeyBlob[60]) { uint8_t signingKeyPriv[EIC_P256_PRIV_KEY_SIZE]; @@ -114,7 +116,7 @@ bool eicPresentationGenerateSigningKeyPair(EicPresentation* ctx, const char* doc EicCbor cbor; eicCborInit(&cbor, cborBuf, sizeof cborBuf); eicCborAppendArray(&cbor, 2); - eicCborAppendString(&cbor, "ProofOfBinding"); + eicCborAppendStringZ(&cbor, "ProofOfBinding"); eicCborAppendByteString(&cbor, ctx->proofOfProvisioningSha256, EIC_SHA256_DIGEST_SIZE); if (cbor.size > sizeof(cborBuf)) { eicDebug("Exceeded buffer size"); @@ -147,7 +149,7 @@ bool eicPresentationGenerateSigningKeyPair(EicPresentation* ctx, const char* doc } if (!eicOpsEncryptAes128Gcm(ctx->storageKey, nonce, signingKeyPriv, sizeof(signingKeyPriv), // DocType is the additionalAuthenticatedData - (const uint8_t*)docType, eicStrLen(docType), signingKeyBlob)) { + (const uint8_t*)docType, docTypeLength, signingKeyBlob)) { eicDebug("Error encrypting signing key"); return false; } @@ -219,7 +221,7 @@ bool eicPresentationValidateRequestMessage(EicPresentation* ctx, const uint8_t* EicCbor cbor; eicCborInit(&cbor, NULL, 0); eicCborAppendArray(&cbor, 4); - eicCborAppendString(&cbor, "Signature1"); + eicCborAppendStringZ(&cbor, "Signature1"); // The COSE Encoded protected headers is just a single field with // COSE_LABEL_ALG (1) -> coseSignAlg (e.g. -7). For simplicitly we just @@ -277,7 +279,7 @@ bool eicPresentationValidateRequestMessage(EicPresentation* ctx, const uint8_t* // size_t payloadOffset = cbor.size; eicCborBegin(&cbor, EIC_CBOR_MAJOR_TYPE_ARRAY, 3); - eicCborAppendString(&cbor, "ReaderAuthentication"); + eicCborAppendStringZ(&cbor, "ReaderAuthentication"); eicCborAppend(&cbor, sessionTranscript, sessionTranscriptSize); eicCborAppendSemantic(&cbor, EIC_CBOR_SEMANTIC_TAG_ENCODED_CBOR); eicCborBegin(&cbor, EIC_CBOR_MAJOR_TYPE_BYTE_STRING, requestMessageSize); @@ -438,18 +440,18 @@ bool eicPresentationValidateAccessControlProfile(EicPresentation* ctx, int id, size_t readerCertificateSize, bool userAuthenticationRequired, int timeoutMillis, uint64_t secureUserId, const uint8_t mac[28], - bool* accessGranted) { + bool* accessGranted, + uint8_t* scratchSpace, + size_t scratchSpaceSize) { *accessGranted = false; - if (id < 0 || id >= 32) { eicDebug("id value of %d is out of allowed range [0, 32[", id); return false; } // Validate the MAC - uint8_t cborBuffer[EIC_MAX_CBOR_SIZE_FOR_ACCESS_CONTROL_PROFILE]; EicCbor cborBuilder; - eicCborInit(&cborBuilder, cborBuffer, EIC_MAX_CBOR_SIZE_FOR_ACCESS_CONTROL_PROFILE); + eicCborInit(&cborBuilder, scratchSpace, scratchSpaceSize); if (!eicCborCalcAccessControl(&cborBuilder, id, readerCertificate, readerCertificateSize, userAuthenticationRequired, timeoutMillis, secureUserId)) { return false; @@ -464,15 +466,15 @@ bool eicPresentationValidateAccessControlProfile(EicPresentation* ctx, int id, checkUserAuth(ctx, userAuthenticationRequired, timeoutMillis, secureUserId); bool passedReaderAuth = checkReaderAuth(ctx, readerCertificate, readerCertificateSize); - ctx->accessControlProfileMaskValidated |= (1 << id); + ctx->accessControlProfileMaskValidated |= (1U << id); if (readerCertificateSize > 0) { - ctx->accessControlProfileMaskUsesReaderAuth |= (1 << id); + ctx->accessControlProfileMaskUsesReaderAuth |= (1U << id); } if (!passedReaderAuth) { - ctx->accessControlProfileMaskFailedReaderAuth |= (1 << id); + ctx->accessControlProfileMaskFailedReaderAuth |= (1U << id); } if (!passedUserAuth) { - ctx->accessControlProfileMaskFailedUserAuth |= (1 << id); + ctx->accessControlProfileMaskFailedUserAuth |= (1U << id); } if (passedUserAuth && passedReaderAuth) { @@ -486,11 +488,11 @@ bool eicPresentationCalcMacKey(EicPresentation* ctx, const uint8_t* sessionTrans size_t sessionTranscriptSize, const uint8_t readerEphemeralPublicKey[EIC_P256_PUB_KEY_SIZE], const uint8_t signingKeyBlob[60], const char* docType, - unsigned int numNamespacesWithValues, + size_t docTypeLength, unsigned int numNamespacesWithValues, size_t expectedDeviceNamespacesSize) { uint8_t signingKeyPriv[EIC_P256_PRIV_KEY_SIZE]; if (!eicOpsDecryptAes128Gcm(ctx->storageKey, signingKeyBlob, 60, (const uint8_t*)docType, - eicStrLen(docType), signingKeyPriv)) { + docTypeLength, signingKeyPriv)) { eicDebug("Error decrypting signingKeyBlob"); return false; } @@ -530,7 +532,7 @@ bool eicPresentationCalcMacKey(EicPresentation* ctx, const uint8_t* sessionTrans // ] // eicCborAppendArray(&ctx->cbor, 4); - eicCborAppendString(&ctx->cbor, "MAC0"); + eicCborAppendStringZ(&ctx->cbor, "MAC0"); // The COSE Encoded protected headers is just a single field with // COSE_LABEL_ALG (1) -> COSE_ALG_HMAC_256_256 (5). For simplicitly we just @@ -566,8 +568,7 @@ bool eicPresentationCalcMacKey(EicPresentation* ctx, const uint8_t* sessionTrans calculatedSize += 1; // "DeviceAuthentication" less than 24 bytes calculatedSize += sizeof("DeviceAuthentication") - 1; // Don't include trailing NUL calculatedSize += sessionTranscriptSize; // Already CBOR encoded - size_t docTypeLen = eicStrLen(docType); - calculatedSize += 1 + eicCborAdditionalLengthBytesFor(docTypeLen) + docTypeLen; + calculatedSize += 1 + eicCborAdditionalLengthBytesFor(docTypeLength) + docTypeLength; calculatedSize += 2; // Semantic tag EIC_CBOR_SEMANTIC_TAG_ENCODED_CBOR (24) calculatedSize += 1 + eicCborAdditionalLengthBytesFor(expectedDeviceNamespacesSize); calculatedSize += expectedDeviceNamespacesSize; @@ -589,9 +590,9 @@ bool eicPresentationCalcMacKey(EicPresentation* ctx, const uint8_t* sessionTrans eicCborBegin(&ctx->cbor, EIC_CBOR_MAJOR_TYPE_BYTE_STRING, calculatedSize); eicCborAppendArray(&ctx->cbor, 4); - eicCborAppendString(&ctx->cbor, "DeviceAuthentication"); + eicCborAppendStringZ(&ctx->cbor, "DeviceAuthentication"); eicCborAppend(&ctx->cbor, sessionTranscript, sessionTranscriptSize); - eicCborAppendString(&ctx->cbor, docType); + eicCborAppendString(&ctx->cbor, docType, docTypeLength); // For the payload, the _encoded_ form follows here. We handle this by simply // opening a bstr, and then writing the CBOR. This requires us to know the @@ -618,16 +619,18 @@ bool eicPresentationStartRetrieveEntries(EicPresentation* ctx) { } EicAccessCheckResult eicPresentationStartRetrieveEntryValue( - EicPresentation* ctx, const char* nameSpace, const char* name, - unsigned int newNamespaceNumEntries, int32_t /* entrySize */, - const int* accessControlProfileIds, size_t numAccessControlProfileIds, + EicPresentation* ctx, const char* nameSpace, size_t nameSpaceLength, + const char* name, size_t nameLength, + unsigned int newNamespaceNumEntries, int32_t entrySize, + const uint8_t* accessControlProfileIds, size_t numAccessControlProfileIds, uint8_t* scratchSpace, size_t scratchSpaceSize) { + (void)entrySize; uint8_t* additionalDataCbor = scratchSpace; - const size_t additionalDataCborBufSize = scratchSpaceSize; + size_t additionalDataCborBufferSize = scratchSpaceSize; size_t additionalDataCborSize; if (newNamespaceNumEntries > 0) { - eicCborAppendString(&ctx->cbor, nameSpace); + eicCborAppendString(&ctx->cbor, nameSpace, nameSpaceLength); eicCborAppendMap(&ctx->cbor, newNamespaceNumEntries); } @@ -636,8 +639,9 @@ EicAccessCheckResult eicPresentationStartRetrieveEntryValue( // ctx->accessCheckOk = false; if (!eicCborCalcEntryAdditionalData(accessControlProfileIds, numAccessControlProfileIds, - nameSpace, name, additionalDataCbor, - additionalDataCborBufSize, &additionalDataCborSize, + nameSpace, nameSpaceLength, name, nameLength, + additionalDataCbor, additionalDataCborBufferSize, + &additionalDataCborSize, ctx->additionalDataSha256)) { return EIC_ACCESS_CHECK_RESULT_FAILED; } @@ -681,7 +685,7 @@ EicAccessCheckResult eicPresentationStartRetrieveEntryValue( eicDebug("Result %d for name %s", result, name); if (result == EIC_ACCESS_CHECK_RESULT_OK) { - eicCborAppendString(&ctx->cbor, name); + eicCborAppendString(&ctx->cbor, name, nameLength); ctx->accessCheckOk = true; } return result; @@ -690,18 +694,21 @@ EicAccessCheckResult eicPresentationStartRetrieveEntryValue( // Note: |content| must be big enough to hold |encryptedContentSize| - 28 bytes. bool eicPresentationRetrieveEntryValue(EicPresentation* ctx, const uint8_t* encryptedContent, size_t encryptedContentSize, uint8_t* content, - const char* nameSpace, const char* name, - const int* accessControlProfileIds, - size_t numAccessControlProfileIds, uint8_t* scratchSpace, + const char* nameSpace, size_t nameSpaceLength, + const char* name, size_t nameLength, + const uint8_t* accessControlProfileIds, + size_t numAccessControlProfileIds, + uint8_t* scratchSpace, size_t scratchSpaceSize) { uint8_t* additionalDataCbor = scratchSpace; - const size_t additionalDataCborBufSize = scratchSpaceSize; + size_t additionalDataCborBufferSize = scratchSpaceSize; size_t additionalDataCborSize; uint8_t calculatedSha256[EIC_SHA256_DIGEST_SIZE]; if (!eicCborCalcEntryAdditionalData(accessControlProfileIds, numAccessControlProfileIds, - nameSpace, name, additionalDataCbor, - additionalDataCborBufSize, &additionalDataCborSize, + nameSpace, nameSpaceLength, name, nameLength, + additionalDataCbor, additionalDataCborBufferSize, + &additionalDataCborSize, calculatedSha256)) { return false; } @@ -746,9 +753,10 @@ bool eicPresentationFinishRetrieval(EicPresentation* ctx, uint8_t* digestToBeMac return true; } -bool eicPresentationDeleteCredential(EicPresentation* ctx, const char* docType, +bool eicPresentationDeleteCredential(EicPresentation* ctx, const char* docType, size_t docTypeLength, const uint8_t* challenge, size_t challengeSize, - bool includeChallenge, size_t proofOfDeletionCborSize, + bool includeChallenge, + size_t proofOfDeletionCborSize, uint8_t signatureOfToBeSigned[EIC_ECDSA_P256_SIGNATURE_SIZE]) { EicCbor cbor; @@ -766,7 +774,7 @@ bool eicPresentationDeleteCredential(EicPresentation* ctx, const char* docType, // ] // eicCborAppendArray(&cbor, 4); - eicCborAppendString(&cbor, "Signature1"); + eicCborAppendStringZ(&cbor, "Signature1"); // The COSE Encoded protected headers is just a single field with // COSE_LABEL_ALG (1) -> COSE_ALG_ECSDA_256 (-7). For simplicitly we just @@ -787,8 +795,8 @@ bool eicPresentationDeleteCredential(EicPresentation* ctx, const char* docType, // Finally, the CBOR that we're actually signing. eicCborAppendArray(&cbor, includeChallenge ? 4 : 3); - eicCborAppendString(&cbor, "ProofOfDeletion"); - eicCborAppendString(&cbor, docType); + eicCborAppendStringZ(&cbor, "ProofOfDeletion"); + eicCborAppendString(&cbor, docType, docTypeLength); if (includeChallenge) { eicCborAppendByteString(&cbor, challenge, challengeSize); } @@ -804,7 +812,8 @@ bool eicPresentationDeleteCredential(EicPresentation* ctx, const char* docType, return true; } -bool eicPresentationProveOwnership(EicPresentation* ctx, const char* docType, bool testCredential, +bool eicPresentationProveOwnership(EicPresentation* ctx, const char* docType, + size_t docTypeLength, bool testCredential, const uint8_t* challenge, size_t challengeSize, size_t proofOfOwnershipCborSize, uint8_t signatureOfToBeSigned[EIC_ECDSA_P256_SIGNATURE_SIZE]) { @@ -824,7 +833,7 @@ bool eicPresentationProveOwnership(EicPresentation* ctx, const char* docType, bo // ] // eicCborAppendArray(&cbor, 4); - eicCborAppendString(&cbor, "Signature1"); + eicCborAppendStringZ(&cbor, "Signature1"); // The COSE Encoded protected headers is just a single field with // COSE_LABEL_ALG (1) -> COSE_ALG_ECSDA_256 (-7). For simplicitly we just @@ -845,8 +854,8 @@ bool eicPresentationProveOwnership(EicPresentation* ctx, const char* docType, bo // Finally, the CBOR that we're actually signing. eicCborAppendArray(&cbor, 4); - eicCborAppendString(&cbor, "ProofOfOwnership"); - eicCborAppendString(&cbor, docType); + eicCborAppendStringZ(&cbor, "ProofOfOwnership"); + eicCborAppendString(&cbor, docType, docTypeLength); eicCborAppendByteString(&cbor, challenge, challengeSize); eicCborAppendBool(&cbor, testCredential); diff --git a/identity/aidl/default/libeic/EicPresentation.h b/identity/aidl/default/libeic/EicPresentation.h index c888049dbe..6f7f432960 100644 --- a/identity/aidl/default/libeic/EicPresentation.h +++ b/identity/aidl/default/libeic/EicPresentation.h @@ -94,10 +94,11 @@ typedef struct { } EicPresentation; bool eicPresentationInit(EicPresentation* ctx, bool testCredential, const char* docType, - const uint8_t* encryptedCredentialKeys, + size_t docTypeLength, const uint8_t* encryptedCredentialKeys, size_t encryptedCredentialKeysSize); -bool eicPresentationGenerateSigningKeyPair(EicPresentation* ctx, const char* docType, time_t now, +bool eicPresentationGenerateSigningKeyPair(EicPresentation* ctx, const char* docType, + size_t docTypeLength, time_t now, uint8_t* publicKeyCert, size_t* publicKeyCertSize, uint8_t signingKeyBlob[60]); @@ -148,12 +149,17 @@ bool eicPresentationPushReaderCert(EicPresentation* ctx, const uint8_t* certX509 // be called after pushing that certificate using // eicPresentationPushReaderCert(). // +// The scratchSpace should be set to a buffer at least 512 bytes. It's done +// this way to avoid allocating stack space. +// bool eicPresentationValidateAccessControlProfile(EicPresentation* ctx, int id, const uint8_t* readerCertificate, size_t readerCertificateSize, bool userAuthenticationRequired, int timeoutMillis, uint64_t secureUserId, const uint8_t mac[28], - bool* accessGranted); + bool* accessGranted, + uint8_t* scratchSpace, + size_t scratchSpaceSize); // Validates that the given requestMessage is signed by the public key in the // certificate last set with eicPresentationPushReaderCert(). @@ -196,7 +202,7 @@ bool eicPresentationCalcMacKey(EicPresentation* ctx, const uint8_t* sessionTrans size_t sessionTranscriptSize, const uint8_t readerEphemeralPublicKey[EIC_P256_PUB_KEY_SIZE], const uint8_t signingKeyBlob[60], const char* docType, - unsigned int numNamespacesWithValues, + size_t docTypeLength, unsigned int numNamespacesWithValues, size_t expectedDeviceNamespacesSize); // The scratchSpace should be set to a buffer at least 512 bytes (ideally 1024 @@ -204,9 +210,11 @@ bool eicPresentationCalcMacKey(EicPresentation* ctx, const uint8_t* sessionTrans // space. // EicAccessCheckResult eicPresentationStartRetrieveEntryValue( - EicPresentation* ctx, const char* nameSpace, const char* name, - unsigned int newNamespaceNumEntries, int32_t entrySize, const int* accessControlProfileIds, - size_t numAccessControlProfileIds, uint8_t* scratchSpace, size_t scratchSpaceSize); + EicPresentation* ctx, const char* nameSpace, size_t nameSpaceLength, + const char* name, size_t nameLength, + unsigned int newNamespaceNumEntries, int32_t entrySize, + const uint8_t* accessControlProfileIds, size_t numAccessControlProfileIds, + uint8_t* scratchSpace, size_t scratchSpaceSize); // Note: |content| must be big enough to hold |encryptedContentSize| - 28 bytes. // @@ -215,9 +223,11 @@ EicAccessCheckResult eicPresentationStartRetrieveEntryValue( // bool eicPresentationRetrieveEntryValue(EicPresentation* ctx, const uint8_t* encryptedContent, size_t encryptedContentSize, uint8_t* content, - const char* nameSpace, const char* name, - const int* accessControlProfileIds, - size_t numAccessControlProfileIds, uint8_t* scratchSpace, + const char* nameSpace, size_t nameSpaceLength, + const char* name, size_t nameLength, + const uint8_t* accessControlProfileIds, + size_t numAccessControlProfileIds, + uint8_t* scratchSpace, size_t scratchSpaceSize); // Returns the HMAC-SHA256 of |ToBeMaced| as per RFC 8051 "6.3. How to Compute @@ -229,7 +239,7 @@ bool eicPresentationFinishRetrieval(EicPresentation* ctx, uint8_t* digestToBeMac // the ToBeSigned CBOR from RFC 8051 "4.4. Signing and Verification Process" // where content is set to the ProofOfDeletion CBOR. // -bool eicPresentationDeleteCredential(EicPresentation* ctx, const char* docType, +bool eicPresentationDeleteCredential(EicPresentation* ctx, const char* docType, size_t docTypeLength, const uint8_t* challenge, size_t challengeSize, bool includeChallenge, size_t proofOfDeletionCborSize, uint8_t signatureOfToBeSigned[EIC_ECDSA_P256_SIGNATURE_SIZE]); @@ -238,8 +248,8 @@ bool eicPresentationDeleteCredential(EicPresentation* ctx, const char* docType, // the ToBeSigned CBOR from RFC 8051 "4.4. Signing and Verification Process" // where content is set to the ProofOfOwnership CBOR. // -bool eicPresentationProveOwnership(EicPresentation* ctx, const char* docType, bool testCredential, - const uint8_t* challenge, size_t challengeSize, +bool eicPresentationProveOwnership(EicPresentation* ctx, const char* docType, size_t docTypeLength, + bool testCredential, const uint8_t* challenge, size_t challengeSize, size_t proofOfOwnershipCborSize, uint8_t signatureOfToBeSigned[EIC_ECDSA_P256_SIGNATURE_SIZE]); diff --git a/identity/aidl/default/libeic/EicProvisioning.c b/identity/aidl/default/libeic/EicProvisioning.c index 3b4148e571..c9df4fd74f 100644 --- a/identity/aidl/default/libeic/EicProvisioning.c +++ b/identity/aidl/default/libeic/EicProvisioning.c @@ -15,6 +15,7 @@ */ #include "EicProvisioning.h" +#include "EicCommon.h" bool eicProvisioningInit(EicProvisioning* ctx, bool testCredential) { eicMemSet(ctx, '\0', sizeof(EicProvisioning)); @@ -27,18 +28,18 @@ bool eicProvisioningInit(EicProvisioning* ctx, bool testCredential) { } bool eicProvisioningInitForUpdate(EicProvisioning* ctx, bool testCredential, const char* docType, - const uint8_t* encryptedCredentialKeys, + size_t docTypeLength, const uint8_t* encryptedCredentialKeys, size_t encryptedCredentialKeysSize) { - uint8_t credentialKeys[86]; + uint8_t credentialKeys[EIC_CREDENTIAL_KEYS_CBOR_SIZE_FEATURE_VERSION_202101]; // For feature version 202009 it's 52 bytes long and for feature version 202101 it's 86 // bytes (the additional data is the ProofOfProvisioning SHA-256). We need // to support loading all feature versions. // bool expectPopSha256 = false; - if (encryptedCredentialKeysSize == 52 + 28) { + if (encryptedCredentialKeysSize == EIC_CREDENTIAL_KEYS_CBOR_SIZE_FEATURE_VERSION_202009 + 28) { /* do nothing */ - } else if (encryptedCredentialKeysSize == 86 + 28) { + } else if (encryptedCredentialKeysSize == EIC_CREDENTIAL_KEYS_CBOR_SIZE_FEATURE_VERSION_202101 + 28) { expectPopSha256 = true; } else { eicDebug("Unexpected size %zd for encryptedCredentialKeys", encryptedCredentialKeysSize); @@ -51,7 +52,7 @@ bool eicProvisioningInitForUpdate(EicProvisioning* ctx, bool testCredential, con if (!eicOpsDecryptAes128Gcm(eicOpsGetHardwareBoundKey(testCredential), encryptedCredentialKeys, encryptedCredentialKeysSize, // DocType is the additionalAuthenticatedData - (const uint8_t*)docType, eicStrLen(docType), credentialKeys)) { + (const uint8_t*)docType, docTypeLength, credentialKeys)) { eicDebug("Error decrypting CredentialKeys"); return false; } @@ -114,7 +115,7 @@ bool eicProvisioningCreateCredentialKey(EicProvisioning* ctx, const uint8_t* cha bool eicProvisioningStartPersonalization(EicProvisioning* ctx, int accessControlProfileCount, const int* entryCounts, size_t numEntryCounts, - const char* docType, + const char* docType, size_t docTypeLength, size_t expectedProofOfProvisioningSize) { if (numEntryCounts >= EIC_MAX_NUM_NAMESPACES) { return false; @@ -150,7 +151,7 @@ bool eicProvisioningStartPersonalization(EicProvisioning* ctx, int accessControl // ] // eicCborAppendArray(&ctx->cbor, 4); - eicCborAppendString(&ctx->cbor, "Signature1"); + eicCborAppendStringZ(&ctx->cbor, "Signature1"); // The COSE Encoded protected headers is just a single field with // COSE_LABEL_ALG (1) -> COSE_ALG_ECSDA_256 (-7). For simplicitly we just @@ -174,8 +175,8 @@ bool eicProvisioningStartPersonalization(EicProvisioning* ctx, int accessControl eicCborEnableSecondaryDigesterSha256(&ctx->cbor, &ctx->proofOfProvisioningDigester); eicCborAppendArray(&ctx->cbor, 5); - eicCborAppendString(&ctx->cbor, "ProofOfProvisioning"); - eicCborAppendString(&ctx->cbor, docType); + eicCborAppendStringZ(&ctx->cbor, "ProofOfProvisioning"); + eicCborAppendString(&ctx->cbor, docType, docTypeLength); eicCborAppendArray(&ctx->cbor, accessControlProfileCount); @@ -185,12 +186,12 @@ bool eicProvisioningStartPersonalization(EicProvisioning* ctx, int accessControl bool eicProvisioningAddAccessControlProfile(EicProvisioning* ctx, int id, const uint8_t* readerCertificate, size_t readerCertificateSize, - bool userAuthenticationRequired, uint64_t timeoutMillis, - uint64_t secureUserId, uint8_t outMac[28]) { - uint8_t cborBuffer[EIC_MAX_CBOR_SIZE_FOR_ACCESS_CONTROL_PROFILE]; + bool userAuthenticationRequired, + uint64_t timeoutMillis, uint64_t secureUserId, + uint8_t outMac[28], uint8_t* scratchSpace, + size_t scratchSpaceSize) { EicCbor cborBuilder; - - eicCborInit(&cborBuilder, cborBuffer, EIC_MAX_CBOR_SIZE_FOR_ACCESS_CONTROL_PROFILE); + eicCborInit(&cborBuilder, scratchSpace, scratchSpaceSize); if (!eicCborCalcAccessControl(&cborBuilder, id, readerCertificate, readerCertificateSize, userAuthenticationRequired, timeoutMillis, secureUserId)) { @@ -209,7 +210,7 @@ bool eicProvisioningAddAccessControlProfile(EicProvisioning* ctx, int id, // The ACP CBOR in the provisioning receipt doesn't include secureUserId so build // it again. - eicCborInit(&cborBuilder, cborBuffer, EIC_MAX_CBOR_SIZE_FOR_ACCESS_CONTROL_PROFILE); + eicCborInit(&cborBuilder, scratchSpace, scratchSpaceSize); if (!eicCborCalcAccessControl(&cborBuilder, id, readerCertificate, readerCertificateSize, userAuthenticationRequired, timeoutMillis, 0 /* secureUserId */)) { @@ -222,9 +223,10 @@ bool eicProvisioningAddAccessControlProfile(EicProvisioning* ctx, int id, return true; } -bool eicProvisioningBeginAddEntry(EicProvisioning* ctx, const int* accessControlProfileIds, +bool eicProvisioningBeginAddEntry(EicProvisioning* ctx, const uint8_t* accessControlProfileIds, size_t numAccessControlProfileIds, const char* nameSpace, - const char* name, uint64_t entrySize, uint8_t* scratchSpace, + size_t nameSpaceLength, const char* name, size_t nameLength, + uint64_t entrySize, uint8_t* scratchSpace, size_t scratchSpaceSize) { uint8_t* additionalDataCbor = scratchSpace; const size_t additionalDataCborBufSize = scratchSpaceSize; @@ -233,9 +235,9 @@ bool eicProvisioningBeginAddEntry(EicProvisioning* ctx, const int* accessControl // We'll need to calc and store a digest of additionalData to check that it's the same // additionalData being passed in for every eicProvisioningAddEntryValue() call... if (!eicCborCalcEntryAdditionalData(accessControlProfileIds, numAccessControlProfileIds, - nameSpace, name, additionalDataCbor, - additionalDataCborBufSize, &additionalDataCborSize, - ctx->additionalDataSha256)) { + nameSpace, nameSpaceLength, name, nameLength, + additionalDataCbor, additionalDataCborBufSize, + &additionalDataCborSize, ctx->additionalDataSha256)) { return false; } @@ -244,7 +246,7 @@ bool eicProvisioningBeginAddEntry(EicProvisioning* ctx, const int* accessControl ctx->curNamespaceNumProcessed = 0; // Opens the main map: { * Namespace => [ + Entry ] } eicCborAppendMap(&ctx->cbor, ctx->numEntryCounts); - eicCborAppendString(&ctx->cbor, nameSpace); + eicCborAppendString(&ctx->cbor, nameSpace, nameSpaceLength); // Opens the per-namespace array: [ + Entry ] eicCborAppendArray(&ctx->cbor, ctx->entryCounts[ctx->curNamespace]); } @@ -252,37 +254,39 @@ bool eicProvisioningBeginAddEntry(EicProvisioning* ctx, const int* accessControl if (ctx->curNamespaceNumProcessed == ctx->entryCounts[ctx->curNamespace]) { ctx->curNamespace += 1; ctx->curNamespaceNumProcessed = 0; - eicCborAppendString(&ctx->cbor, nameSpace); + eicCborAppendString(&ctx->cbor, nameSpace, nameSpaceLength); // Opens the per-namespace array: [ + Entry ] eicCborAppendArray(&ctx->cbor, ctx->entryCounts[ctx->curNamespace]); } eicCborAppendMap(&ctx->cbor, 3); - eicCborAppendString(&ctx->cbor, "name"); - eicCborAppendString(&ctx->cbor, name); + eicCborAppendStringZ(&ctx->cbor, "name"); + eicCborAppendString(&ctx->cbor, name, nameLength); ctx->curEntrySize = entrySize; ctx->curEntryNumBytesReceived = 0; - eicCborAppendString(&ctx->cbor, "value"); + eicCborAppendStringZ(&ctx->cbor, "value"); ctx->curNamespaceNumProcessed += 1; return true; } -bool eicProvisioningAddEntryValue(EicProvisioning* ctx, const int* accessControlProfileIds, +bool eicProvisioningAddEntryValue(EicProvisioning* ctx, const uint8_t* accessControlProfileIds, size_t numAccessControlProfileIds, const char* nameSpace, - const char* name, const uint8_t* content, size_t contentSize, + size_t nameSpaceLength, const char* name, size_t nameLength, + const uint8_t* content, size_t contentSize, uint8_t* outEncryptedContent, uint8_t* scratchSpace, size_t scratchSpaceSize) { uint8_t* additionalDataCbor = scratchSpace; const size_t additionalDataCborBufSize = scratchSpaceSize; size_t additionalDataCborSize; - uint8_t calculatedSha256[EIC_SHA256_DIGEST_SIZE]; + if (!eicCborCalcEntryAdditionalData(accessControlProfileIds, numAccessControlProfileIds, - nameSpace, name, additionalDataCbor, - additionalDataCborBufSize, &additionalDataCborSize, + nameSpace, nameSpaceLength, name, nameLength, + additionalDataCbor, additionalDataCborBufSize, + &additionalDataCborSize, calculatedSha256)) { return false; } @@ -305,7 +309,7 @@ bool eicProvisioningAddEntryValue(EicProvisioning* ctx, const int* accessControl // If done with this entry, close the map ctx->curEntryNumBytesReceived += contentSize; if (ctx->curEntryNumBytesReceived == ctx->curEntrySize) { - eicCborAppendString(&ctx->cbor, "accessControlProfiles"); + eicCborAppendStringZ(&ctx->cbor, "accessControlProfiles"); eicCborAppendArray(&ctx->cbor, numAccessControlProfileIds); for (size_t n = 0; n < numAccessControlProfileIds; n++) { eicCborAppendNumber(&ctx->cbor, accessControlProfileIds[n]); @@ -337,6 +341,7 @@ bool eicProvisioningFinishAddingEntries( } bool eicProvisioningFinishGetCredentialData(EicProvisioning* ctx, const char* docType, + size_t docTypeLength, uint8_t* encryptedCredentialKeys, size_t* encryptedCredentialKeysSize) { EicCbor cbor; @@ -367,7 +372,7 @@ bool eicProvisioningFinishGetCredentialData(EicProvisioning* ctx, const char* do if (!eicOpsEncryptAes128Gcm( eicOpsGetHardwareBoundKey(ctx->testCredential), nonce, cborBuf, cbor.size, // DocType is the additionalAuthenticatedData - (const uint8_t*)docType, eicStrLen(docType), encryptedCredentialKeys)) { + (const uint8_t*)docType, docTypeLength, encryptedCredentialKeys)) { eicDebug("Error encrypting CredentialKeys"); return false; } diff --git a/identity/aidl/default/libeic/EicProvisioning.h b/identity/aidl/default/libeic/EicProvisioning.h index f064787b1b..92f1e4a2a0 100644 --- a/identity/aidl/default/libeic/EicProvisioning.h +++ b/identity/aidl/default/libeic/EicProvisioning.h @@ -65,7 +65,7 @@ typedef struct { bool eicProvisioningInit(EicProvisioning* ctx, bool testCredential); bool eicProvisioningInitForUpdate(EicProvisioning* ctx, bool testCredential, const char* docType, - const uint8_t* encryptedCredentialKeys, + size_t docTypeLength, const uint8_t* encryptedCredentialKeys, size_t encryptedCredentialKeysSize); bool eicProvisioningCreateCredentialKey(EicProvisioning* ctx, const uint8_t* challenge, @@ -75,21 +75,27 @@ bool eicProvisioningCreateCredentialKey(EicProvisioning* ctx, const uint8_t* cha bool eicProvisioningStartPersonalization(EicProvisioning* ctx, int accessControlProfileCount, const int* entryCounts, size_t numEntryCounts, - const char* docType, + const char* docType, size_t docTypeLength, size_t expectedProofOfProvisioningingSize); +// The scratchSpace should be set to a buffer at least 512 bytes. It's done this way to +// avoid allocating stack space. +// bool eicProvisioningAddAccessControlProfile(EicProvisioning* ctx, int id, const uint8_t* readerCertificate, size_t readerCertificateSize, - bool userAuthenticationRequired, uint64_t timeoutMillis, - uint64_t secureUserId, uint8_t outMac[28]); + bool userAuthenticationRequired, + uint64_t timeoutMillis, uint64_t secureUserId, + uint8_t outMac[28], uint8_t* scratchSpace, + size_t scratchSpaceSize); // The scratchSpace should be set to a buffer at least 512 bytes. It's done this way to // avoid allocating stack space. // -bool eicProvisioningBeginAddEntry(EicProvisioning* ctx, const int* accessControlProfileIds, +bool eicProvisioningBeginAddEntry(EicProvisioning* ctx, const uint8_t* accessControlProfileIds, size_t numAccessControlProfileIds, const char* nameSpace, - const char* name, uint64_t entrySize, uint8_t* scratchSpace, + size_t nameSpaceLength, const char* name, size_t nameLength, + uint64_t entrySize, uint8_t* scratchSpace, size_t scratchSpaceSize); // The outEncryptedContent array must be contentSize + 28 bytes long. @@ -97,9 +103,10 @@ bool eicProvisioningBeginAddEntry(EicProvisioning* ctx, const int* accessControl // The scratchSpace should be set to a buffer at least 512 bytes. It's done this way to // avoid allocating stack space. // -bool eicProvisioningAddEntryValue(EicProvisioning* ctx, const int* accessControlProfileIds, +bool eicProvisioningAddEntryValue(EicProvisioning* ctx, const uint8_t* accessControlProfileIds, size_t numAccessControlProfileIds, const char* nameSpace, - const char* name, const uint8_t* content, size_t contentSize, + size_t nameSpaceLength, const char* name, size_t nameLength, + const uint8_t* content, size_t contentSize, uint8_t* outEncryptedContent, uint8_t* scratchSpace, size_t scratchSpaceSize); @@ -128,6 +135,7 @@ bool eicProvisioningFinishAddingEntries( // |encryptedCredentialKeys| will be no longer than 86 + 28 = 114 bytes. // bool eicProvisioningFinishGetCredentialData(EicProvisioning* ctx, const char* docType, + size_t docTypeLength, uint8_t* encryptedCredentialKeys, size_t* encryptedCredentialKeysSize); diff --git a/identity/aidl/default/libeic/libeic.h b/identity/aidl/default/libeic/libeic.h index 88abef808f..20c889660f 100644 --- a/identity/aidl/default/libeic/libeic.h +++ b/identity/aidl/default/libeic/libeic.h @@ -30,6 +30,7 @@ extern "C" { #include "EicOps.h" #include "EicPresentation.h" #include "EicProvisioning.h" +#include "EicCommon.h" #undef EIC_INSIDE_LIBEIC_H #ifdef __cplusplus diff --git a/input/classifier/1.0/vts/functional/OWNERS b/input/classifier/1.0/vts/functional/OWNERS new file mode 100644 index 0000000000..540b75b583 --- /dev/null +++ b/input/classifier/1.0/vts/functional/OWNERS @@ -0,0 +1,2 @@ +# Bug component: 136048 +svv@google.com diff --git a/keymaster/4.0/support/fuzzer/Android.bp b/keymaster/4.0/support/fuzzer/Android.bp new file mode 100644 index 0000000000..3a3f4d5589 --- /dev/null +++ b/keymaster/4.0/support/fuzzer/Android.bp @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2021 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 { + // 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" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: ["hardware_interfaces_license"], +} + +cc_defaults { + name: "keymaster4_fuzzer_defaults", + static_libs: [ + "libbase", + "liblog", + "libkeymaster4support", + "libutils", + ], + shared_libs: [ + "android.hardware.keymaster@4.0", + "libcrypto", + "libhidlbase", + ], + fuzz_config: { + cc: [ + "android-media-fuzzing-reports@google.com", + ], + componentid: 533764, + }, +} + +cc_fuzz { + name: "keymaster4_attestation_fuzzer", + defaults: [ + "keymaster4_fuzzer_defaults", + ], + srcs: [ + "keymaster4_attestation_fuzzer.cpp", + ], +} + +cc_fuzz { + name: "keymaster4_authSet_fuzzer", + defaults: [ + "keymaster4_fuzzer_defaults", + ], + srcs: [ + "keymaster4_authSet_fuzzer.cpp", + ], +} + +cc_fuzz { + name: "keymaster4_utils_fuzzer", + defaults: [ + "keymaster4_fuzzer_defaults", + ], + srcs: [ + "keymaster4_utils_fuzzer.cpp", + ], +} diff --git a/keymaster/4.0/support/fuzzer/README.md b/keymaster/4.0/support/fuzzer/README.md new file mode 100644 index 0000000000..bf4af25c87 --- /dev/null +++ b/keymaster/4.0/support/fuzzer/README.md @@ -0,0 +1,58 @@ +# Fuzzers for libkeymaster4support + +## Plugin Design Considerations +The fuzzer plugins for libkeymaster4support are designed based on the understanding of the +source code and try to achieve the following: + +##### Maximize code coverage +The configuration parameters are not hardcoded, but instead selected based on +incoming data. This ensures more code paths are reached by the fuzzers. + +libkeymaster4support supports the following parameters: +1. Security Level (parameter name: `securityLevel`) +2. Ec Curve (parameter name: `ecCurve`) +3. Padding Mode (parameter name: `paddingMode`) +4. Digest (parameter name: `digest`) +5. Tag (parameter name: `tag`) + +| Parameter| Valid Values| Configured Value| +|------------- |-------------| ----- | +| `securityLevel` | 0.`SecurityLevel::SOFTWARE` 1.`SecurityLevel::TRUSTED_ENVIRONMENT` 2.`SecurityLevel::STRONGBOX`| Value obtained from FuzzedDataProvider| +| `ecCurve` | 0.`EcCurve::P_224` 1.`EcCurve::P_256` 2.`EcCurve::P_384` 3. `EcCurve::P_521`| Value obtained from FuzzedDataProvider| +| `paddingMode` | 0.`PaddingMode::NONE` 1.`PaddingMode::RSA_OAEP` 2.`PaddingMode::RSA_PSS` 3. `PaddingMode::RSA_PKCS1_1_5_ENCRYPT` 4.`PaddingMode::RSA_PKCS1_1_5_SIGN` 5.`PaddingMode::PKCS7`| Value obtained from FuzzedDataProvider| +| `digest` | 1. `Digest::NONE` 2.`Digest::MD5` 3.`Digest::SHA1` 4.`Digest::SHA_2_224` 5.`Digest::SHA_2_256` 6.`Digest::SHA_2_384` 7.`Digest::SHA_2_512`| Value obtained from FuzzedDataProvider| +| `tag` | 1. `Tag::INVALID` 2.`Tag::PURPOSE` 3.`Tag::ALGORITHM` 4.`Tag::KEY_SIZE` 5.`Tag::BLOCK_MODE` 6.`Tag::DIGEST` 7.`Tag::PADDING` 8.`Tag::CALLER_NONCE` 9.`Tag::MIN_MAC_LENGTH` 10.`Tag::EC_CURVE` 11.`Tag::RSA_PUBLIC_EXPONENT` 12.`Tag::INCLUDE_UNIQUE_ID` 13. `Tag::BLOB_USAGE_REQUIREMENTS` 14.`Tag::BOOTLOADER_ONLY` 15.`Tag::ROLLBACK_RESISTANCE` 16.`Tag::HARDWARE_TYPE` 17.`Tag::ACTIVE_DATETIME` 18. `Tag::ORIGINATION_EXPIRE_DATETIME` 19.`Tag::USAGE_EXPIRE_DATETIME` 20.`Tag::MIN_SECONDS_BETWEEN_OPS` 21.`Tag::MAX_USES_PER_BOOT` 22.`Tag::USER_ID` 23.` Tag::USER_SECURE_ID` 24.`Tag::NO_AUTH_REQUIRED` 25.`Tag::USER_AUTH_TYPE` 26.`Tag::AUTH_TIMEOUT` 27.`Tag::ALLOW_WHILE_ON_BODY` 28.`Tag::TRUSTED_USER_PRESENCE_REQUIRED` 29.`Tag::TRUSTED_CONFIRMATION_REQUIRED` 30.`Tag::UNLOCKED_DEVICE_REQUIRED` 31.`Tag::APPLICATION_ID` 32.`Tag::APPLICATION_DATA` 33.`Tag::CREATION_DATETIME` 34.`Tag::ORIGIN` 35.`Tag::ROOT_OF_TRUST` 36.`Tag::OS_VERSION` 37.`Tag::OS_PATCHLEVEL` 38.`Tag::UNIQUE_ID` 39.`Tag::ATTESTATION_CHALLENGE` 40.`Tag::ATTESTATION_APPLICATION_ID` 41.`Tag::ATTESTATION_ID_BRAND` 42.`Tag::ATTESTATION_ID_DEVICE` 43.`Tag::ATTESTATION_ID_PRODUCT` 44.`Tag::ATTESTATION_ID_SERIAL` 45.`Tag::ATTESTATION_ID_IMEI` 46.`Tag::ATTESTATION_ID_MEID` 47.`Tag::ATTESTATION_ID_MANUFACTURER` 48.`Tag::ATTESTATION_ID_MODEL` 49.`Tag::VENDOR_PATCHLEVEL` 50.`Tag::BOOT_PATCHLEVEL` 51.`Tag::ASSOCIATED_DATA` 52.`Tag::NONCE` 53.`Tag::MAC_LENGTH` 54.`Tag::RESET_SINCE_ID_ROTATION` 55.`Tag::CONFIRMATION_TOKEN`| Value obtained from FuzzedDataProvider| + +This also ensures that the plugins are always deterministic for any given input. + +##### Maximize utilization of input data +The plugins feed the entire input data to the module. +This ensures that the plugins tolerate any kind of input (empty, huge, +malformed, etc) and dont `exit()` on any input and thereby increasing the +chance of identifying vulnerabilities. + +## Build + +This describes steps to build keymaster4_attestation_fuzzer, keymaster4_authSet_fuzzer and keymaster4_utils_fuzzer binaries + +### Android + +#### Steps to build +Build the fuzzer +``` + $ mm -j$(nproc) keymaster4_attestation_fuzzer + $ mm -j$(nproc) keymaster4_authSet_fuzzer + $ mm -j$(nproc) keymaster4_utils_fuzzer +``` +#### Steps to run +To run on device +``` + $ adb sync data + $ adb shell /data/fuzz/${TARGET_ARCH}/keymaster4_attestation_fuzzer/keymaster4_attestation_fuzzer + $ adb shell /data/fuzz/${TARGET_ARCH}/keymaster4_authSet_fuzzer/keymaster4_authSet_fuzzer + $ adb shell /data/fuzz/${TARGET_ARCH}/keymaster4_utils_fuzzer/keymaster4_utils_fuzzer +``` + +## References: + * http://llvm.org/docs/LibFuzzer.html + * https://github.com/google/oss-fuzz diff --git a/keymaster/4.0/support/fuzzer/keymaster4_attestation_fuzzer.cpp b/keymaster/4.0/support/fuzzer/keymaster4_attestation_fuzzer.cpp new file mode 100644 index 0000000000..b8b858d30e --- /dev/null +++ b/keymaster/4.0/support/fuzzer/keymaster4_attestation_fuzzer.cpp @@ -0,0 +1,185 @@ +/* + * Copyright (C) 2021 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. + * + */ +#include <android/hardware/keymaster/4.0/IKeymasterDevice.h> +#include <keymasterV4_0/attestation_record.h> +#include <keymasterV4_0/openssl_utils.h> +#include "keymaster4_common.h" + +namespace android::hardware::keymaster::V4_0::fuzzer { + +constexpr size_t kMinBytes = 1; +constexpr size_t kMaxBytes = 10; + +class KeyMaster4AttestationFuzzer { + public: + void process(const uint8_t* data, size_t size); + + private: + ErrorCode generateKey(const AuthorizationSet& keyDesc, hidl_vec<uint8_t>* keyBlob, + KeyCharacteristics* keyCharacteristics); + ErrorCode attestKey(hidl_vec<uint8_t>& keyBlob, const AuthorizationSet& attestParams, + hidl_vec<hidl_vec<uint8_t>>* certificateChain); + X509_Ptr parseCertificateBlob(const hidl_vec<uint8_t>& blob); + ASN1_OCTET_STRING* getAttestationRecord(const X509* certificate); + bool verifyAttestationRecord(const hidl_vec<uint8_t>& attestationCert); + void invokeAttestationRecord(); + + sp<IKeymasterDevice> mKeymaster = nullptr; + std::unique_ptr<FuzzedDataProvider> mFdp = nullptr; +}; + +ErrorCode KeyMaster4AttestationFuzzer::generateKey(const AuthorizationSet& key_desc, + hidl_vec<uint8_t>* keyBlob, + KeyCharacteristics* keyCharacteristics) { + ErrorCode error; + mKeymaster->generateKey(key_desc.hidl_data(), + [&](ErrorCode hidlError, const hidl_vec<uint8_t>& hidlKeyBlob, + const KeyCharacteristics& hidlKeyCharacteristics) { + error = hidlError; + *keyBlob = hidlKeyBlob; + *keyCharacteristics = hidlKeyCharacteristics; + }); + return error; +} + +ErrorCode KeyMaster4AttestationFuzzer::attestKey(hidl_vec<uint8_t>& keyBlob, + const AuthorizationSet& attestParams, + hidl_vec<hidl_vec<uint8_t>>* certificateChain) { + ErrorCode error; + auto rc = mKeymaster->attestKey( + keyBlob, attestParams.hidl_data(), + [&](ErrorCode hidlError, const hidl_vec<hidl_vec<uint8_t>>& hidlCertificateChain) { + error = hidlError; + *certificateChain = hidlCertificateChain; + }); + + if (!rc.isOk()) { + return ErrorCode::UNKNOWN_ERROR; + } + return error; +} + +X509_Ptr KeyMaster4AttestationFuzzer::parseCertificateBlob(const hidl_vec<uint8_t>& blob) { + const uint8_t* p = blob.data(); + return X509_Ptr(d2i_X509(nullptr, &p, blob.size())); +} + +/** + * @brief getAttestationRecord() accepts a 'certificate' pointer and the return value points to the + * data owned by 'certificate'. Hence, 'certificate' should not be freed and the return value cannot + * outlive 'certificate' + */ +ASN1_OCTET_STRING* KeyMaster4AttestationFuzzer::getAttestationRecord(const X509* certificate) { + ASN1_OBJECT_Ptr oid(OBJ_txt2obj(kAttestionRecordOid, 1 /* dotted string format */)); + if (!oid.get()) { + return nullptr; + } + + int location = X509_get_ext_by_OBJ(certificate, oid.get(), -1 /* search from beginning */); + if (location == -1) { + return nullptr; + } + + X509_EXTENSION* attestRecordExt = X509_get_ext(certificate, location); + if (!attestRecordExt) { + return nullptr; + } + + ASN1_OCTET_STRING* attestRecord = X509_EXTENSION_get_data(attestRecordExt); + return attestRecord; +} + +bool KeyMaster4AttestationFuzzer::verifyAttestationRecord( + const hidl_vec<uint8_t>& attestationCert) { + X509_Ptr cert(parseCertificateBlob(attestationCert)); + if (!cert.get()) { + return false; + } + + ASN1_OCTET_STRING* attestRecord = getAttestationRecord(cert.get()); + if (!attestRecord) { + return false; + } + + AuthorizationSet attestationSwEnforced; + AuthorizationSet attestationHwEnforced; + uint32_t attestationVersion; + uint32_t keymasterVersion; + SecurityLevel securityLevel; + SecurityLevel keymasterSecurityLevel; + hidl_vec<uint8_t> attestationChallenge; + hidl_vec<uint8_t> attestationUniqueId; + + auto error = parse_attestation_record( + attestRecord->data, attestRecord->length, &attestationVersion, &securityLevel, + &keymasterVersion, &keymasterSecurityLevel, &attestationChallenge, + &attestationSwEnforced, &attestationHwEnforced, &attestationUniqueId); + if (error != ErrorCode::OK) { + return false; + } + + hidl_vec<uint8_t> verifiedBootKey; + keymaster_verified_boot_t verifiedBootState; + bool device_locked; + hidl_vec<uint8_t> verifiedBootHash; + + parse_root_of_trust(attestRecord->data, attestRecord->length, &verifiedBootKey, + &verifiedBootState, &device_locked, &verifiedBootHash); + return true; +} + +void KeyMaster4AttestationFuzzer::invokeAttestationRecord() { + mKeymaster = IKeymasterDevice::getService(); + if (!mKeymaster) { + return; + } + + hidl_vec<uint8_t> keyBlob; + KeyCharacteristics keyCharacteristics; + generateKey(createAuthorizationSet(mFdp), &keyBlob, &keyCharacteristics); + + hidl_vec<hidl_vec<uint8_t>> certificateChain; + + std::vector<uint8_t> challenge, attestationId; + challenge = + mFdp->ConsumeBytes<uint8_t>(mFdp->ConsumeIntegralInRange<size_t>(kMinBytes, kMaxBytes)); + attestationId = + mFdp->ConsumeBytes<uint8_t>(mFdp->ConsumeIntegralInRange<size_t>(kMinBytes, kMaxBytes)); + attestKey(keyBlob, + AuthorizationSetBuilder() + .Authorization(TAG_ATTESTATION_CHALLENGE, challenge) + .Authorization(TAG_ATTESTATION_APPLICATION_ID, attestationId), + &certificateChain); + + if (certificateChain.size() > 0) { + verifyAttestationRecord(certificateChain[mFdp->ConsumeIntegralInRange<size_t>( + 0, certificateChain.size() - 1)]); + } +} + +void KeyMaster4AttestationFuzzer::process(const uint8_t* data, size_t size) { + mFdp = std::make_unique<FuzzedDataProvider>(data, size); + invokeAttestationRecord(); +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + KeyMaster4AttestationFuzzer km4AttestationFuzzer; + km4AttestationFuzzer.process(data, size); + return 0; +} + +} // namespace android::hardware::keymaster::V4_0::fuzzer diff --git a/keymaster/4.0/support/fuzzer/keymaster4_authSet_fuzzer.cpp b/keymaster/4.0/support/fuzzer/keymaster4_authSet_fuzzer.cpp new file mode 100644 index 0000000000..63e0499336 --- /dev/null +++ b/keymaster/4.0/support/fuzzer/keymaster4_authSet_fuzzer.cpp @@ -0,0 +1,202 @@ +/* + * Copyright (C) 2021 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. + * + */ +#include <fstream> +#include "keymaster4_common.h" + +namespace android::hardware::keymaster::V4_0::fuzzer { + +constexpr size_t kMaxVectorSize = 100; +constexpr size_t kMaxKeyParameter = 10; + +constexpr Tag kTagArray[] = {Tag::INVALID, + Tag::PURPOSE, + Tag::ALGORITHM, + Tag::KEY_SIZE, + Tag::BLOCK_MODE, + Tag::DIGEST, + Tag::PADDING, + Tag::CALLER_NONCE, + Tag::MIN_MAC_LENGTH, + Tag::EC_CURVE, + Tag::RSA_PUBLIC_EXPONENT, + Tag::INCLUDE_UNIQUE_ID, + Tag::BLOB_USAGE_REQUIREMENTS, + Tag::BOOTLOADER_ONLY, + Tag::ROLLBACK_RESISTANCE, + Tag::HARDWARE_TYPE, + Tag::ACTIVE_DATETIME, + Tag::ORIGINATION_EXPIRE_DATETIME, + Tag::USAGE_EXPIRE_DATETIME, + Tag::MIN_SECONDS_BETWEEN_OPS, + Tag::MAX_USES_PER_BOOT, + Tag::USER_ID, + Tag::USER_SECURE_ID, + Tag::NO_AUTH_REQUIRED, + Tag::USER_AUTH_TYPE, + Tag::AUTH_TIMEOUT, + Tag::ALLOW_WHILE_ON_BODY, + Tag::TRUSTED_USER_PRESENCE_REQUIRED, + Tag::TRUSTED_CONFIRMATION_REQUIRED, + Tag::UNLOCKED_DEVICE_REQUIRED, + Tag::APPLICATION_ID, + Tag::APPLICATION_DATA, + Tag::CREATION_DATETIME, + Tag::ORIGIN, + Tag::ROOT_OF_TRUST, + Tag::OS_VERSION, + Tag::OS_PATCHLEVEL, + Tag::UNIQUE_ID, + Tag::ATTESTATION_CHALLENGE, + Tag::ATTESTATION_APPLICATION_ID, + Tag::ATTESTATION_ID_BRAND, + Tag::ATTESTATION_ID_DEVICE, + Tag::ATTESTATION_ID_PRODUCT, + Tag::ATTESTATION_ID_SERIAL, + Tag::ATTESTATION_ID_IMEI, + Tag::ATTESTATION_ID_MEID, + Tag::ATTESTATION_ID_MANUFACTURER, + Tag::ATTESTATION_ID_MODEL, + Tag::VENDOR_PATCHLEVEL, + Tag::BOOT_PATCHLEVEL, + Tag::ASSOCIATED_DATA, + Tag::NONCE, + Tag::MAC_LENGTH, + Tag::RESET_SINCE_ID_ROTATION, + Tag::CONFIRMATION_TOKEN}; + +class KeyMaster4AuthSetFuzzer { + public: + void process(const uint8_t* data, size_t size); + + private: + void invokeAuthSetAPIs(); + std::unique_ptr<FuzzedDataProvider> mFdp = nullptr; +}; + +/** + * @brief invokeAuthSetAPIs() function aims at calling functions of authorization_set.cpp + * and authorization_set.h in order to get a good coverage for libkeymaster4support. + */ +void KeyMaster4AuthSetFuzzer::invokeAuthSetAPIs() { + AuthorizationSet authSet = createAuthorizationSet(mFdp); + while (mFdp->remaining_bytes() > 0) { + uint32_t action = mFdp->ConsumeIntegralInRange<uint32_t>(0, 15); + switch (action) { + case 0: { + authSet.Sort(); + } break; + case 1: { + authSet.Deduplicate(); + } break; + case 2: { + authSet.Union(createAuthorizationSet(mFdp)); + } break; + case 3: { + authSet.Subtract(createAuthorizationSet(mFdp)); + } break; + case 4: { + std::filebuf fbOut; + fbOut.open("/dev/zero", std::ios::out); + std::ostream out(&fbOut); + authSet.Serialize(&out); + } break; + case 5: { + std::filebuf fbIn; + fbIn.open("/dev/zero", std::ios::in); + std::istream in(&fbIn); + authSet.Deserialize(&in); + } break; + case 6: { // invoke push_back() + AuthorizationSetBuilder builder = AuthorizationSetBuilder(); + for (const KeyParameter& tag : authSet) { + builder.push_back(tag); + } + AuthorizationSet params = createAuthorizationSet(mFdp); + authSet.push_back(params); + } break; + case 7: { // invoke copy constructor + auto params = AuthorizationSetBuilder().Authorizations(authSet); + authSet = params; + } break; + case 8: { // invoke move constructor + auto params = AuthorizationSetBuilder().Authorizations(authSet); + authSet = std::move(params); + } break; + case 9: { // invoke Constructor from hidl_vec<KeyParameter> + hidl_vec<KeyParameter> keyParam; + size_t numKeyParam = mFdp->ConsumeIntegralInRange<size_t>(1, kMaxKeyParameter); + keyParam.resize(numKeyParam); + for (size_t i = 0; i < numKeyParam - 1; ++i) { + keyParam[i].tag = mFdp->PickValueInArray(kTagArray); + std::vector<uint8_t> dataVector = mFdp->ConsumeBytes<uint8_t>( + mFdp->ConsumeIntegralInRange<size_t>(0, kMaxVectorSize)); + keyParam[i].blob = dataVector; + } + if (mFdp->ConsumeBool()) { + AuthorizationSet auths(keyParam); + auths.push_back(AuthorizationSet(keyParam)); + } else { // invoke operator= + AuthorizationSet auths = keyParam; + } + } break; + case 10: { // invoke 'Contains()' + Tag tag; + if (authSet.size() > 0) { + tag = authSet[mFdp->ConsumeIntegralInRange<size_t>(0, authSet.size() - 1)].tag; + } + authSet.Contains(mFdp->ConsumeBool() ? tag : mFdp->PickValueInArray(kTagArray)); + } break; + case 11: { // invoke 'GetTagCount()' + Tag tag; + if (authSet.size() > 0) { + tag = authSet[mFdp->ConsumeIntegralInRange<size_t>(0, authSet.size() - 1)].tag; + } + authSet.GetTagCount(mFdp->ConsumeBool() ? tag : mFdp->PickValueInArray(kTagArray)); + } break; + case 12: { // invoke 'empty()' + authSet.empty(); + } break; + case 13: { // invoke 'data()' + authSet.data(); + } break; + case 14: { // invoke 'hidl_data()' + authSet.hidl_data(); + } break; + case 15: { // invoke 'erase()' + if (authSet.size() > 0) { + authSet.erase(mFdp->ConsumeIntegralInRange<size_t>(0, authSet.size() - 1)); + } + } break; + default: + break; + }; + } + authSet.Clear(); +} + +void KeyMaster4AuthSetFuzzer::process(const uint8_t* data, size_t size) { + mFdp = std::make_unique<FuzzedDataProvider>(data, size); + invokeAuthSetAPIs(); +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + KeyMaster4AuthSetFuzzer km4AuthSetFuzzer; + km4AuthSetFuzzer.process(data, size); + return 0; +} + +} // namespace android::hardware::keymaster::V4_0::fuzzer diff --git a/keymaster/4.0/support/fuzzer/keymaster4_common.h b/keymaster/4.0/support/fuzzer/keymaster4_common.h new file mode 100644 index 0000000000..f6e53eec59 --- /dev/null +++ b/keymaster/4.0/support/fuzzer/keymaster4_common.h @@ -0,0 +1,198 @@ +/* + * Copyright (C) 2021 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. + * + */ +#ifndef __KEYMASTER4_COMMON_H__ +#define __KEYMASTER4_COMMON_H__ + +#include <fuzzer/FuzzedDataProvider.h> +#include <keymasterV4_0/authorization_set.h> + +namespace android::hardware::keymaster::V4_0::fuzzer { + +using ::android::hardware::hidl_vec; + +constexpr uint32_t kKeySize = 2048; +constexpr uint32_t kPublicExponent = 65537; + +constexpr EcCurve kCurve[] = {EcCurve::P_224, EcCurve::P_256, EcCurve::P_384, EcCurve::P_521}; + +constexpr PaddingMode kPaddingMode[] = { + PaddingMode::NONE, + PaddingMode::RSA_OAEP, + PaddingMode::RSA_PSS, + PaddingMode::RSA_PKCS1_1_5_ENCRYPT, + PaddingMode::RSA_PKCS1_1_5_SIGN, + PaddingMode::PKCS7, +}; + +constexpr Digest kDigest[] = { + Digest::NONE, Digest::MD5, Digest::SHA1, Digest::SHA_2_224, + Digest::SHA_2_256, Digest::SHA_2_384, Digest::SHA_2_512, +}; + +enum AuthSet : uint32_t { + RSA_SIGNING_KEY = 0u, + RSA_ENCRYPRION_KEY, + ECDSA_SIGNING_CURVE, + ECDSA_SIGNING_KEY, + AES_ENCRYPTION_KEY, + TRIPLE_DES, + HMAC, + NO_DIGEST, + ECB_MODE, + GSM_MODE_MIN_MAC, + GSM_MODE_MAC, + BLOCK_MODE, + kMaxValue = BLOCK_MODE +}; + +AuthorizationSet createAuthorizationSet(std::unique_ptr<FuzzedDataProvider>& dataProvider) { + uint32_t authSet = dataProvider->ConsumeEnum<AuthSet>(); + switch (authSet) { + case RSA_SIGNING_KEY: { + Digest digest = dataProvider->PickValueInArray(kDigest); + PaddingMode padding = dataProvider->PickValueInArray(kPaddingMode); + return AuthorizationSetBuilder() + .Authorization(TAG_NO_AUTH_REQUIRED) + .RsaSigningKey(kKeySize, kPublicExponent) + .Digest(digest) + .Padding(padding) + .Authorization(TAG_INCLUDE_UNIQUE_ID); + } break; + case RSA_ENCRYPRION_KEY: { + Digest digest = dataProvider->PickValueInArray(kDigest); + PaddingMode padding = dataProvider->PickValueInArray(kPaddingMode); + return AuthorizationSetBuilder() + .Authorization(TAG_NO_AUTH_REQUIRED) + .RsaEncryptionKey(kKeySize, kPublicExponent) + .Digest(digest) + .Padding(padding) + .Authorization(TAG_INCLUDE_UNIQUE_ID); + } break; + case ECDSA_SIGNING_CURVE: { + EcCurve ecCurve = dataProvider->PickValueInArray(kCurve); + Digest digest = dataProvider->PickValueInArray(kDigest); + return AuthorizationSetBuilder() + .Authorization(TAG_NO_AUTH_REQUIRED) + .EcdsaSigningKey(ecCurve) + .Digest(digest) + .Authorization(TAG_INCLUDE_UNIQUE_ID); + } break; + case ECDSA_SIGNING_KEY: { + Digest digest = dataProvider->PickValueInArray(kDigest); + return AuthorizationSetBuilder() + .Authorization(TAG_NO_AUTH_REQUIRED) + .EcdsaSigningKey(kKeySize) + .Digest(digest) + .Authorization(TAG_INCLUDE_UNIQUE_ID); + } break; + case AES_ENCRYPTION_KEY: { + Digest digest = dataProvider->PickValueInArray(kDigest); + PaddingMode padding = dataProvider->PickValueInArray(kPaddingMode); + return AuthorizationSetBuilder() + .Authorization(TAG_NO_AUTH_REQUIRED) + .AesEncryptionKey(kKeySize) + .Digest(digest) + .Padding(padding) + .Authorization(TAG_INCLUDE_UNIQUE_ID); + } break; + case TRIPLE_DES: { + Digest digest = dataProvider->PickValueInArray(kDigest); + PaddingMode padding = dataProvider->PickValueInArray(kPaddingMode); + return AuthorizationSetBuilder() + .Authorization(TAG_NO_AUTH_REQUIRED) + .TripleDesEncryptionKey(kKeySize) + .Digest(digest) + .Padding(padding) + .Authorization(TAG_INCLUDE_UNIQUE_ID); + } break; + case HMAC: { + Digest digest = dataProvider->PickValueInArray(kDigest); + PaddingMode padding = dataProvider->PickValueInArray(kPaddingMode); + return AuthorizationSetBuilder() + .Authorization(TAG_NO_AUTH_REQUIRED) + .HmacKey(kKeySize) + .Digest(digest) + .Padding(padding) + .Authorization(TAG_INCLUDE_UNIQUE_ID); + } break; + case NO_DIGEST: { + Digest digest = dataProvider->PickValueInArray(kDigest); + PaddingMode padding = dataProvider->PickValueInArray(kPaddingMode); + return AuthorizationSetBuilder() + .Authorization(TAG_NO_AUTH_REQUIRED) + .NoDigestOrPadding() + .Digest(digest) + .Padding(padding) + .Authorization(TAG_INCLUDE_UNIQUE_ID); + } break; + case ECB_MODE: { + Digest digest = dataProvider->PickValueInArray(kDigest); + PaddingMode padding = dataProvider->PickValueInArray(kPaddingMode); + return AuthorizationSetBuilder() + .Authorization(TAG_NO_AUTH_REQUIRED) + .EcbMode() + .Digest(digest) + .Padding(padding) + .Authorization(TAG_INCLUDE_UNIQUE_ID); + } break; + case GSM_MODE_MIN_MAC: { + uint32_t minMacLength = dataProvider->ConsumeIntegral<uint32_t>(); + Digest digest = dataProvider->PickValueInArray(kDigest); + PaddingMode padding = dataProvider->PickValueInArray(kPaddingMode); + return AuthorizationSetBuilder() + .Authorization(TAG_NO_AUTH_REQUIRED) + .GcmModeMinMacLen(minMacLength) + .Digest(digest) + .Padding(padding) + .Authorization(TAG_INCLUDE_UNIQUE_ID); + } break; + case GSM_MODE_MAC: { + uint32_t macLength = dataProvider->ConsumeIntegral<uint32_t>(); + Digest digest = dataProvider->PickValueInArray(kDigest); + PaddingMode padding = dataProvider->PickValueInArray(kPaddingMode); + return AuthorizationSetBuilder() + .Authorization(TAG_NO_AUTH_REQUIRED) + .GcmModeMacLen(macLength) + .Digest(digest) + .Padding(padding) + .Authorization(TAG_INCLUDE_UNIQUE_ID); + } break; + case BLOCK_MODE: { + Digest digest = dataProvider->PickValueInArray(kDigest); + PaddingMode padding = dataProvider->PickValueInArray(kPaddingMode); + auto blockModes = { + BlockMode::ECB, + BlockMode::CBC, + BlockMode::CTR, + BlockMode::GCM, + }; + return AuthorizationSetBuilder() + .Authorization(TAG_NO_AUTH_REQUIRED) + .BlockMode(blockModes) + .Digest(digest) + .Padding(padding) + .Authorization(TAG_INCLUDE_UNIQUE_ID); + } break; + default: + break; + }; + return AuthorizationSetBuilder(); +} + +} // namespace android::hardware::keymaster::V4_0::fuzzer + +#endif // __KEYMASTER4_COMMON_H__ diff --git a/keymaster/4.0/support/fuzzer/keymaster4_utils_fuzzer.cpp b/keymaster/4.0/support/fuzzer/keymaster4_utils_fuzzer.cpp new file mode 100644 index 0000000000..bf074e824c --- /dev/null +++ b/keymaster/4.0/support/fuzzer/keymaster4_utils_fuzzer.cpp @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2021 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. + * + */ +#include <hardware/hw_auth_token.h> +#include <keymasterV4_0/keymaster_utils.h> +#include "keymaster4_common.h" + +namespace android::hardware::keymaster::V4_0::fuzzer { + +using android::hardware::keymaster::V4_0::SecurityLevel; +using android::hardware::keymaster::V4_0::VerificationToken; +using android::hardware::keymaster::V4_0::support::deserializeVerificationToken; +using android::hardware::keymaster::V4_0::support::serializeVerificationToken; + +constexpr SecurityLevel kSecurityLevel[]{ + SecurityLevel::SOFTWARE, + SecurityLevel::TRUSTED_ENVIRONMENT, + SecurityLevel::STRONGBOX, +}; +constexpr size_t kMaxVectorSize = 100; +constexpr size_t kMaxCharacters = 100; + +class KeyMaster4UtilsFuzzer { + public: + void process(const uint8_t* data, size_t size); + + private: + void invokeKeyMasterUtils(); + std::unique_ptr<FuzzedDataProvider> mFdp = nullptr; +}; + +void KeyMaster4UtilsFuzzer::invokeKeyMasterUtils() { + support::getOsVersion(); + support::getOsPatchlevel(); + + VerificationToken token; + token.challenge = mFdp->ConsumeIntegral<uint64_t>(); + token.timestamp = mFdp->ConsumeIntegral<uint64_t>(); + token.securityLevel = mFdp->PickValueInArray(kSecurityLevel); + size_t vectorSize = mFdp->ConsumeIntegralInRange<size_t>(0, kMaxVectorSize); + token.mac.resize(vectorSize); + for (size_t n = 0; n < vectorSize; ++n) { + token.mac[n] = n; + } + std::optional<std::vector<uint8_t>> serialized = serializeVerificationToken(token); + if (serialized.has_value()) { + std::optional<VerificationToken> deserialized = + deserializeVerificationToken(serialized.value()); + } + + std::vector<uint8_t> dataVector; + size_t size = mFdp->ConsumeIntegralInRange<size_t>(0, sizeof(hw_auth_token_t)); + dataVector = mFdp->ConsumeBytes<uint8_t>(size); + support::blob2hidlVec(dataVector.data(), dataVector.size()); + + support::blob2hidlVec(dataVector); + + std::string str = mFdp->ConsumeRandomLengthString(kMaxCharacters); + support::blob2hidlVec(str); + + HardwareAuthToken authToken = support::hidlVec2AuthToken(dataVector); + hidl_vec<uint8_t> volatile hidlVector = support::authToken2HidlVec(authToken); +} + +void KeyMaster4UtilsFuzzer::process(const uint8_t* data, size_t size) { + mFdp = std::make_unique<FuzzedDataProvider>(data, size); + invokeKeyMasterUtils(); +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + KeyMaster4UtilsFuzzer kmUtilsFuzzer; + kmUtilsFuzzer.process(data, size); + return 0; +} + +} // namespace android::hardware::keymaster::V4_0::fuzzer diff --git a/neuralnetworks/1.0/vts/functional/OWNERS b/neuralnetworks/1.0/vts/functional/OWNERS new file mode 100644 index 0000000000..a48301dd4e --- /dev/null +++ b/neuralnetworks/1.0/vts/functional/OWNERS @@ -0,0 +1,4 @@ +# Bug component: 195575 +jeanluc@google.com +miaowang@google.com +pszczepaniak@google.com diff --git a/neuralnetworks/1.1/vts/functional/OWNERS b/neuralnetworks/1.1/vts/functional/OWNERS new file mode 100644 index 0000000000..a48301dd4e --- /dev/null +++ b/neuralnetworks/1.1/vts/functional/OWNERS @@ -0,0 +1,4 @@ +# Bug component: 195575 +jeanluc@google.com +miaowang@google.com +pszczepaniak@google.com diff --git a/neuralnetworks/1.2/types.hal b/neuralnetworks/1.2/types.hal index f5b6ead45d..ccb0f3009c 100644 --- a/neuralnetworks/1.2/types.hal +++ b/neuralnetworks/1.2/types.hal @@ -80,7 +80,7 @@ enum OperandType : @1.0::OperandType { * - scales: an array of positive 32 bit floating point values. * The size of the scales array must be equal to dimensions[channelDim]. * - *{@link SymmPerChannelQuantParams} must hold the parameters for an Operand of this type. + * {@link SymmPerChannelQuantParams} must hold the parameters for an Operand of this type. * The channel dimension of this tensor must not be unknown (dimensions[channelDim] != 0). * * The formula is: diff --git a/neuralnetworks/1.2/vts/functional/OWNERS b/neuralnetworks/1.2/vts/functional/OWNERS new file mode 100644 index 0000000000..a48301dd4e --- /dev/null +++ b/neuralnetworks/1.2/vts/functional/OWNERS @@ -0,0 +1,4 @@ +# Bug component: 195575 +jeanluc@google.com +miaowang@google.com +pszczepaniak@google.com diff --git a/neuralnetworks/1.3/types.hal b/neuralnetworks/1.3/types.hal index a26b85835e..9c3bbf7e96 100644 --- a/neuralnetworks/1.3/types.hal +++ b/neuralnetworks/1.3/types.hal @@ -41,7 +41,6 @@ enum OperandType : @1.2::OperandType { * real_value = (integer_value - zeroPoint) * scale. */ TENSOR_QUANT8_ASYMM_SIGNED = 14, - /** * A reference to a subgraph. * @@ -5230,7 +5229,7 @@ enum OperationType : int32_t { * The output is calculated using the following formula: * * h-swish(x) = x * max(0, min(6, (x + 3))) / 6 - + * * Supported tensor {@link OperandType}: * * {@link OperandType::TENSOR_FLOAT16} * * {@link OperandType::TENSOR_FLOAT32} diff --git a/neuralnetworks/1.3/vts/functional/OWNERS b/neuralnetworks/1.3/vts/functional/OWNERS new file mode 100644 index 0000000000..a48301dd4e --- /dev/null +++ b/neuralnetworks/1.3/vts/functional/OWNERS @@ -0,0 +1,4 @@ +# Bug component: 195575 +jeanluc@google.com +miaowang@google.com +pszczepaniak@google.com diff --git a/neuralnetworks/aidl/android/hardware/neuralnetworks/OperandType.aidl b/neuralnetworks/aidl/android/hardware/neuralnetworks/OperandType.aidl index 12edc0f261..dfda1d2906 100644 --- a/neuralnetworks/aidl/android/hardware/neuralnetworks/OperandType.aidl +++ b/neuralnetworks/aidl/android/hardware/neuralnetworks/OperandType.aidl @@ -24,35 +24,30 @@ package android.hardware.neuralnetworks; * Types prefaced with TENSOR_* must be used for tensor data (i.e., tensors * with at least one dimension). Types not prefaced by TENSOR_* represent * scalar values and must have no dimensions. + * + * Although we define many types, most operators accept just a few + * types. Most used are {@link OperandType::TENSOR_FLOAT32}, + * {@link OperandType::TENSOR_QUANT8_ASYMM}, + * and {@link OperandType::INT32}. */ @VintfStability @Backing(type="int") enum OperandType { - /** - * A 32 bit floating point scalar value. - */ + /** A 32 bit floating point scalar value. */ FLOAT32 = 0, - /** - * A signed 32 bit integer scalar value. - */ + /** A signed 32 bit integer scalar value. */ INT32 = 1, - /** - * An unsigned 32 bit integer scalar value. - */ + /** An unsigned 32 bit integer scalar value. */ UINT32 = 2, - /** - * A tensor of 32 bit floating point values. - */ + /** A tensor of 32 bit floating point values. */ TENSOR_FLOAT32 = 3, - /** - * A tensor of 32 bit integer values. - */ + /** A tensor of 32 bit integer values. */ TENSOR_INT32 = 4, /** * A tensor of 8 bit unsigned integers that represent real numbers. * - * Attached to this tensor are two numbers that can be used to convert the 8 bit integer to the - * real value and vice versa. These two numbers are: + * Attached to this tensor are two numbers that can be used to convert the + * 8 bit integer to the real value and vice versa. These two numbers are: * - scale: a 32 bit floating point value greater than zero. * - zeroPoint: a 32 bit integer, in range [0, 255]. * @@ -63,15 +58,15 @@ enum OperandType { /** * An 8 bit boolean scalar value. * - * Values of this operand type are either true or false. A zero value represents false; any - * other value represents true. + * Values of this operand type are either true or false. A zero value + * represents false; any other value represents true. */ BOOL = 6, /** * A tensor of 16 bit signed integers that represent real numbers. * - * Attached to this tensor is a number representing real value scale that is used to convert the - * 16 bit number to a real value in the following way: + * Attached to this tensor is a number representing real value scale that is + * used to convert the 16 bit number to a real value in the following way: * realValue = integerValue * scale. * * scale is a 32 bit floating point with value greater than zero. @@ -84,8 +79,8 @@ enum OperandType { /** * A tensor of 8 bit boolean values. * - * Values of this operand type are either true or false. A zero value represents false; any - * other value represents true. + * Values of this operand type are either true or false. A zero value + * represents false; any other value represents true. */ TENSOR_BOOL8 = 9, /** @@ -95,8 +90,9 @@ enum OperandType { /** * A tensor of 8 bit signed integers that represent real numbers. * - * This tensor is associated with additional fields that can be used to convert the 8 bit signed - * integer to the real value and vice versa. These fields are: + * This tensor is associated with additional fields that can + * be used to convert the 8 bit signed integer to the real value and vice versa. + * These fields are: * - channelDim: a 32 bit unsigned integer indicating channel dimension. * - scales: an array of positive 32 bit floating point values. * The size of the scales array must be equal to dimensions[channelDim]. @@ -113,8 +109,8 @@ enum OperandType { /** * A tensor of 16 bit unsigned integers that represent real numbers. * - * Attached to this tensor are two numbers that can be used to convert the 16 bit integer to the - * real value and vice versa. These two numbers are: + * Attached to this tensor are two numbers that can be used to convert the + * 16 bit integer to the real value and vice versa. These two numbers are: * - scale: a 32 bit floating point value greater than zero. * - zeroPoint: a 32 bit integer, in range [0, 65535]. * @@ -125,8 +121,8 @@ enum OperandType { /** * A tensor of 8 bit signed integers that represent real numbers. * - * Attached to this tensor is a number representing real value scale that is used to convert the - * 8 bit number to a real value in the following way: + * Attached to this tensor is a number representing real value scale that is + * used to convert the 8 bit number to a real value in the following way: * realValue = integerValue * scale. * * scale is a 32 bit floating point with value greater than zero. @@ -135,8 +131,8 @@ enum OperandType { /** * A tensor of 8 bit signed integers that represent real numbers. * - * Attached to this tensor are two numbers that can be used to convert the 8 bit integer to the - * real value and vice versa. These two numbers are: + * Attached to this tensor are two numbers that can be used to convert the + * 8 bit integer to the real value and vice versa. These two numbers are: * - scale: a 32 bit floating point value greater than zero. * - zeroPoint: a 32 bit integer, in range [-128, 127]. * diff --git a/neuralnetworks/aidl/android/hardware/neuralnetworks/OperationType.aidl b/neuralnetworks/aidl/android/hardware/neuralnetworks/OperationType.aidl index e7fb90de85..8585bdaac5 100644 --- a/neuralnetworks/aidl/android/hardware/neuralnetworks/OperationType.aidl +++ b/neuralnetworks/aidl/android/hardware/neuralnetworks/OperationType.aidl @@ -78,6 +78,7 @@ enum OperationType { * the scale and zeroPoint can be different from inputs' scale and zeroPoint. */ ADD = 0, + /** * Performs a 2-D average pooling operation. * @@ -162,6 +163,7 @@ enum OperationType { * the scale and zeroPoint must be the same as input0. */ AVERAGE_POOL_2D = 1, + /** * Concatenates the input tensors along the given dimension. * @@ -195,11 +197,13 @@ enum OperationType { * tensors. The output shape is [D0, D1, ..., sum(Daxis(i)), ..., Dm]. * Since HAL version 1.2, for a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, * the scale and zeroPoint values can be different from - * input tensors. Before HAL version 1.2 they have to be the same as for the input tensors. + * input tensors. Before HAL version 1.2 they have to be the same as for the + * input tensors. * For a {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} tensor, * the scale and zeroPoint values can be different from input tensors. */ CONCATENATION = 2, + /** * Performs a 2-D convolution operation. * @@ -243,7 +247,8 @@ enum OperationType { * * * {@link OperandType::TENSOR_INT32} for bias (with scale set to * * * input.scale * filter.scale). * - * * Quantized signed with filter symmetric per channel quantization (since HAL version 1.3): + * * Quantized signed with filter symmetric per channel quantization + * (since HAL version 1.3): * * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} for input, and output. * * * {@link OperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL} for filter. * * * {@link OperandType::TENSOR_INT32} for bias (scale set to 0.0, @@ -356,10 +361,12 @@ enum OperationType { * Outputs: * * 0: The output 4-D tensor, of shape * [batches, out_height, out_width, depth_out]. - * Before HAL version 1.2, for output tensor of {@link OperandType::TENSOR_QUANT8_ASYMM}, - * the following condition must be satisfied: output_scale > input_scale * filter_scale + * Before HAL version 1.2, for output tensor of + * {@link OperandType::TENSOR_QUANT8_ASYMM}, the following condition must + * be satisfied: output_scale > input_scale * filter_scale */ CONV_2D = 3, + /** * Performs a depthwise 2-D convolution operation. * @@ -407,7 +414,8 @@ enum OperationType { * * * {@link OperandType::TENSOR_INT32} for bias (with scale set to * * * input.scale * filter.scale). * - * * Quantized signed with filter symmetric per channel quantization (since HAL version 1.3): + * * Quantized signed with filter symmetric per channel quantization + * (since HAL version 1.3): * * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} for input, and output. * * * {@link OperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL} for filter. * * * {@link OperandType::TENSOR_INT32} for bias (scale set to 0.0, @@ -521,6 +529,7 @@ enum OperationType { * output_scale > input_scale * filter_scale */ DEPTHWISE_CONV_2D = 4, + /** * Rearranges data from depth into blocks of spatial data. * @@ -566,6 +575,7 @@ enum OperationType { * the scale and zeroPoint must be the same as input0. */ DEPTH_TO_SPACE = 5, + /** * Dequantizes the input tensor. * @@ -593,6 +603,7 @@ enum OperationType { * * 0: A tensor with the same shape as input0. */ DEQUANTIZE = 6, + /** * Looks up sub-tensors in the input tensor. * @@ -637,6 +648,7 @@ enum OperationType { * the scale and zeroPoint must be the same as input1. */ EMBEDDING_LOOKUP = 7, + /** * Computes element-wise floor() on the input tensor. * @@ -654,6 +666,7 @@ enum OperationType { * the input tensor. */ FLOOR = 8, + /** * Denotes a fully (densely) connected layer, which connects all elements * in the input tensor with each element in the output tensor. @@ -699,6 +712,7 @@ enum OperationType { * condition must be satisfied: output_scale > input_scale * filter_scale. */ FULLY_CONNECTED = 9, + /** * Looks up sub-tensors in the input tensor using a key-value map. * @@ -755,6 +769,7 @@ enum OperationType { * A non-zero byte represents True, a hit. A zero indicates otherwise. */ HASHTABLE_LOOKUP = 10, + /** * Applies L2 normalization along the axis dimension. * @@ -795,6 +810,7 @@ enum OperationType { * are all zeros, the result is logical zero. */ L2_NORMALIZATION = 11, + /** * Performs an 2-D L2 pooling operation. * @@ -873,6 +889,7 @@ enum OperationType { * [batches, out_height, out_width, depth]. */ L2_POOL_2D = 12, + /** * Applies Local Response Normalization along the depth dimension. * @@ -927,6 +944,7 @@ enum OperationType { * * 0: The output tensor of same shape as input0. */ LOCAL_RESPONSE_NORMALIZATION = 13, + /** * Computes sigmoid activation on the input tensor element-wise. * @@ -954,6 +972,7 @@ enum OperationType { * the scale must be 1.f / 256 and the zeroPoint must be -128. */ LOGISTIC = 14, + /** * Projects an input to a bit vector via locality senstive hashing. * @@ -967,8 +986,8 @@ enum OperationType { * * Inputs: * * 0: Hash functions. Dim.size == 2, DataType: Float. - * Tensor[0].Dim[0]: 15 of hash functions. - * Tensor[0].Dim[1]: 16 of projected output bits generated by each + * Tensor[0].Dim[0]: Number of hash functions. + * Tensor[0].Dim[1]: Number of projected output bits generated by each * hash function. * If the projection type is Sparse: * Tensor[0].Dim[1] + ceil(log2(Tensor[0].Dim[0])) <= 32 @@ -1009,6 +1028,7 @@ enum OperationType { * The offset value for sparse projections was added in HAL version 1.2. */ LSH_PROJECTION = 15, + /** * Performs a single time step in a Long Short-Term Memory (LSTM) layer * @@ -1226,6 +1246,7 @@ enum OperationType { * the same as the current “output state (out)” value. */ LSTM = 16, + /** * Performs an 2-D max pooling operation. * @@ -1310,6 +1331,7 @@ enum OperationType { * the scale and zeroPoint must be the same as input0. */ MAX_POOL_2D = 17, + /** * Multiplies two tensors, element-wise. * @@ -1356,6 +1378,7 @@ enum OperationType { * output_scale > input1_scale * input2_scale. */ MUL = 18, + /** * Computes rectified linear activation on the input tensor element-wise. * @@ -1382,6 +1405,7 @@ enum OperationType { * the scale and zeroPoint must be the same as input0. */ RELU = 19, + /** * Computes rectified linear 1 activation on the input tensor element-wise. * @@ -1408,6 +1432,7 @@ enum OperationType { * the scale and zeroPoint must be the same as input0. */ RELU1 = 20, + /** * Computes rectified linear 6 activation on the input tensor element-wise. * @@ -1434,6 +1459,7 @@ enum OperationType { * the scale and zeroPoint must be the same as input0. */ RELU6 = 21, + /** * Reshapes a tensor. * @@ -1466,6 +1492,7 @@ enum OperationType { * the scale and zeroPoint must be the same as input0. */ RESHAPE = 22, + /** * Resizes images to given size using the bilinear interpretation. * @@ -1547,6 +1574,7 @@ enum OperationType { * the scale and zeroPoint must be the same as input0. */ RESIZE_BILINEAR = 23, + /** * A basic recurrent neural network layer. * @@ -1598,6 +1626,7 @@ enum OperationType { * the same as the current state value. */ RNN = 24, + /** * Computes the softmax activation on the input tensor element-wise, per * batch, by normalizing the input vector so the maximum coefficient is @@ -1645,6 +1674,7 @@ enum OperationType { * the scale must be 1.f / 256 and the zeroPoint must be -128. */ SOFTMAX = 25, + /** * Rearranges blocks of spatial data, into depth. * @@ -1689,6 +1719,7 @@ enum OperationType { * the scale and zeroPoint must be the same as input0. */ SPACE_TO_DEPTH = 26, + /** * SVDF op is a kind of stateful layer derived from the notion that a * densely connected layer that's processing a sequence of input frames can @@ -1765,6 +1796,7 @@ enum OperationType { * [batch_size, num_units]. */ SVDF = 27, + /** * Computes hyperbolic tangent of input tensor element-wise. * @@ -1792,6 +1824,7 @@ enum OperationType { * the scale must be 1.f / 128 and the zeroPoint must be 0. */ TANH = 28, + /** * BatchToSpace for N-dimensional tensors. * @@ -1830,6 +1863,7 @@ enum OperationType { * the scale and zeroPoint must be the same as input0. */ BATCH_TO_SPACE_ND = 29, + /** * Element-wise division of two tensors. * @@ -1880,6 +1914,7 @@ enum OperationType { * * 0: A tensor of the same {@link OperandType} as input0. */ DIV = 30, + /** * Computes the mean of elements across dimensions of a tensor. * @@ -1919,6 +1954,7 @@ enum OperationType { * shape is [1]. */ MEAN = 31, + /** * Pads a tensor. * @@ -1960,6 +1996,7 @@ enum OperationType { * Since HAL version 1.2, the pad value is always the logical zero. */ PAD = 32, + /** * SpaceToBatch for N-Dimensional tensors. * @@ -2012,6 +2049,7 @@ enum OperationType { * Since HAL version 1.2, the pad value is always the logical zero. */ SPACE_TO_BATCH_ND = 33, + /** * Removes dimensions of size 1 from the shape of a tensor. * @@ -2047,6 +2085,7 @@ enum OperationType { * output shape is [1]. */ SQUEEZE = 34, + /** * Extracts a strided slice of a tensor. * @@ -2097,6 +2136,7 @@ enum OperationType { * shape is [1]. */ STRIDED_SLICE = 35, + /** * Element-wise subtraction of two tensors. * @@ -2147,6 +2187,7 @@ enum OperationType { * the scale and zeroPoint can be different from inputs' scale and zeroPoint. */ SUB = 36, + /** * Transposes the input tensor, permuting the dimensions according to the * perm tensor. @@ -2177,6 +2218,7 @@ enum OperationType { * the scale and zeroPoint must be the same as input0. */ TRANSPOSE = 37, + /** * Computes the absolute value of a tensor, element-wise. * @@ -2194,6 +2236,7 @@ enum OperationType { * * 0: The output tensor of same shape as input0. */ ABS = 38, + /** * Returns the index of the largest element along an axis. * @@ -2216,7 +2259,10 @@ enum OperationType { * * 0: An (n - 1)-D {@link OperandType::TENSOR_INT32} tensor. * If input is 1-dimensional, the output shape is [1]. */ + // There is no underscore in ARG_MAX to avoid name conflict with + // the macro defined in libc/kernel/uapi/linux/limits.h. ARGMAX = 39, + /** * Returns the index of the smallest element along an axis. * @@ -2239,7 +2285,8 @@ enum OperationType { * * 0: An (n - 1)-D {@link OperandType::TENSOR_INT32} tensor. * If input is 1-dimensional, the output shape is [1]. */ - ARGMIN = 40, + ARGMIN = 40, // See ARGMAX for naming discussion. + /** * Transform axis-aligned bounding box proposals using bounding box deltas. * @@ -2286,6 +2333,7 @@ enum OperationType { * scale must be 0.125 and the zero point must be 0. */ AXIS_ALIGNED_BBOX_TRANSFORM = 41, + /** * A recurrent neural network layer that applies an LSTM cell to a * sequence of inputs in forward and backward directions. @@ -2560,6 +2608,7 @@ enum OperationType { * Available since HAL version 1.3. */ BIDIRECTIONAL_SEQUENCE_LSTM = 42, + /** * A recurrent neural network layer that applies a basic RNN cell to a * sequence of inputs in forward and backward directions. @@ -2711,6 +2760,7 @@ enum OperationType { * Available since HAL version 1.3. */ BIDIRECTIONAL_SEQUENCE_RNN = 43, + /** * Greedily selects a subset of bounding boxes in descending order of score. * @@ -2794,6 +2844,7 @@ enum OperationType { * with the same batch index are grouped together. */ BOX_WITH_NMS_LIMIT = 44, + /** * Casts a tensor to a type. * @@ -2824,6 +2875,7 @@ enum OperationType { * * 0: A tensor with the same shape as input0. */ CAST = 45, + /** * Shuffle the channels of the input tensor. * @@ -2863,6 +2915,7 @@ enum OperationType { * the scale and zeroPoint must be the same as input0. */ CHANNEL_SHUFFLE = 46, + /** * Apply postprocessing steps to bounding box detections. * @@ -2942,6 +2995,7 @@ enum OperationType { * specifying the number of valid output detections for each batch. */ DETECTION_POSTPROCESSING = 47, + /** * For input tensors x and y, computes x == y elementwise. * @@ -2966,6 +3020,7 @@ enum OperationType { * * 0: A tensor of {@link OperandType::TENSOR_BOOL8}. */ EQUAL = 48, + /** * Computes exponential of x element-wise. * @@ -2982,6 +3037,7 @@ enum OperationType { * * 0: The output tensor of same shape as input0. */ EXP = 49, + /** * Inserts a dimension of 1 into a tensor's shape. * @@ -3012,6 +3068,7 @@ enum OperationType { * the scale and zeroPoint must be the same as input0. */ EXPAND_DIMS = 50, + /** * Gathers values along an axis. * @@ -3051,6 +3108,7 @@ enum OperationType { * the scale and zeroPoint must be the same as input0. */ GATHER = 51, + /** * Generate aixs-aligned bounding box proposals. * @@ -3132,6 +3190,7 @@ enum OperationType { * with the same batch index are grouped together. */ GENERATE_PROPOSALS = 52, + /** * For input tensors x and y, computes x > y elementwise. * @@ -3180,6 +3239,7 @@ enum OperationType { * * 0: A tensor of {@link OperandType::TENSOR_BOOL8}. */ GREATER_EQUAL = 54, + /** * Performs a grouped 2-D convolution operation. * @@ -3232,7 +3292,8 @@ enum OperationType { * * * {@link OperandType::TENSOR_INT32} for bias (scale set to 0.0, * * * each value scaling is separate and equal to input.scale * filter.scales[channel]). * - * * Quantized signed with filter symmetric per channel quantization (since HAL version 1.3): + * * Quantized signed with filter symmetric per channel quantization + * (since HAL version 1.3): * * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} for input, and output. * * * {@link OperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL} for filter. * * * {@link OperandType::TENSOR_INT32} for bias (scale set to 0.0, @@ -3329,6 +3390,7 @@ enum OperationType { * the scale and zeroPoint can be different from inputs' scale and zeroPoint. */ GROUPED_CONV_2D = 55, + /** * Localize the maximum keypoints from heatmaps. * @@ -3382,6 +3444,7 @@ enum OperationType { * scale must be 0.125 and the zero point must be 0. */ HEATMAP_MAX_KEYPOINT = 56, + /** * Applies instance normalization to the input tensor. * @@ -3432,6 +3495,7 @@ enum OperationType { * * 0: A tensor of the same {@link OperandType} and same shape as input0. */ INSTANCE_NORMALIZATION = 57, + /** * For input tensors x and y, computes x < y elementwise. * @@ -3456,6 +3520,7 @@ enum OperationType { * * 0: A tensor of {@link OperandType::TENSOR_BOOL8}. */ LESS = 58, + /** * For input tensors x and y, computes x <= y elementwise. * @@ -3480,6 +3545,7 @@ enum OperationType { * * 0: A tensor of {@link OperandType::TENSOR_BOOL8}. */ LESS_EQUAL = 59, + /** * Computes natural logarithm of x element-wise. * @@ -3496,6 +3562,7 @@ enum OperationType { * * 0: The output tensor of same shape as input0. */ LOG = 60, + /** * Returns the truth value of x AND y element-wise. * @@ -3515,6 +3582,7 @@ enum OperationType { * * 0: A tensor of {@link OperandType::TENSOR_BOOL8}. */ LOGICAL_AND = 61, + /** * Computes the truth value of NOT x element-wise. * @@ -3530,6 +3598,7 @@ enum OperationType { * * 0: The output tensor of same shape as input0. */ LOGICAL_NOT = 62, + /** * Returns the truth value of x OR y element-wise. * @@ -3549,6 +3618,7 @@ enum OperationType { * * 0: A tensor of {@link OperandType::TENSOR_BOOL8}. */ LOGICAL_OR = 63, + /** * Computes the log softmax activations given logits. * @@ -3579,6 +3649,7 @@ enum OperationType { * input0. */ LOG_SOFTMAX = 64, + /** * Returns the element-wise maximum of two tensors. * @@ -3605,6 +3676,7 @@ enum OperationType { * the scale and zeroPoint can be different from inputs' scale and zeroPoint. */ MAXIMUM = 65, + /** * Returns the element-wise minimum of two tensors. * @@ -3631,6 +3703,7 @@ enum OperationType { * the scale and zeroPoint can be different from inputs' scale and zeroPoint. */ MINIMUM = 66, + /** * Computes numerical negative value element-wise. * @@ -3648,6 +3721,7 @@ enum OperationType { * * 0: The output tensor of same shape as input0. */ NEG = 67, + /** * For input tensors x and y, computes x != y elementwise. * @@ -3672,6 +3746,7 @@ enum OperationType { * * 0: A tensor of {@link OperandType::TENSOR_BOOL8}. */ NOT_EQUAL = 68, + /** * Pads a tensor with the given constant value according to the specified * paddings. @@ -3716,6 +3791,7 @@ enum OperationType { * the scale and zeroPoint must be the same as input0. */ PAD_V2 = 69, + /** * Computes the power of one value to another. * @@ -3745,6 +3821,7 @@ enum OperationType { * * 0: An output tensor. */ POW = 70, + /** * Parametric Rectified Linear Unit. * @@ -3785,6 +3862,7 @@ enum OperationType { * the scales and zeroPoint can be different from input0 scale and zeroPoint. */ PRELU = 71, + /** * Quantizes the input tensor. * @@ -3816,6 +3894,7 @@ enum OperationType { * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED}. */ QUANTIZE = 72, + /** * A version of quantized LSTM, using 16 bit quantization for internal * state. @@ -3920,6 +3999,7 @@ enum OperationType { * (scale = 1/128, zeroPoint = 128). */ QUANTIZED_16BIT_LSTM = 73, + /** * Draws samples from a multinomial distribution. * @@ -3940,6 +4020,7 @@ enum OperationType { * [batches, samples], containing the drawn samples. */ RANDOM_MULTINOMIAL = 74, + /** * Reduces a tensor by computing the "logical and" of elements along given * dimensions. @@ -3966,6 +4047,7 @@ enum OperationType { * shape is [1]. */ REDUCE_ALL = 75, + /** * Reduces a tensor by computing the "logical or" of elements along given * dimensions. @@ -3992,6 +4074,7 @@ enum OperationType { * shape is [1]. */ REDUCE_ANY = 76, + /** * Reduces a tensor by computing the maximum of elements along given * dimensions. @@ -4024,6 +4107,7 @@ enum OperationType { * the scale and zeroPoint must be the same as input0. */ REDUCE_MAX = 77, + /** * Reduces a tensor by computing the minimum of elements along given * dimensions. @@ -4056,6 +4140,7 @@ enum OperationType { * the scale and zeroPoint must be the same as input0. */ REDUCE_MIN = 78, + /** * Reduces a tensor by multiplying elements along given dimensions. * @@ -4082,6 +4167,7 @@ enum OperationType { * shape is [1]. */ REDUCE_PROD = 79, + /** * Reduces a tensor by summing elements along given dimensions. * @@ -4108,6 +4194,7 @@ enum OperationType { * shape is [1]. */ REDUCE_SUM = 80, + /** * Select and scale the feature map of each region of interest to a unified * output size by average pooling sampling points from bilinear interpolation. @@ -4169,6 +4256,7 @@ enum OperationType { * the scale and zeroPoint can be different from the input0 scale and zeroPoint. */ ROI_ALIGN = 81, + /** * Select and scale the feature map of each region of interest to a unified * output size by max-pooling. @@ -4222,6 +4310,7 @@ enum OperationType { * the scale and zeroPoint must be the same as input0. */ ROI_POOLING = 82, + /** * Computes reciprocal of square root of x element-wise. * @@ -4238,6 +4327,7 @@ enum OperationType { * * 0: The output tensor of same shape as input0. */ RSQRT = 83, + /** * Using a tensor of booleans c and input tensors x and y select values * elementwise from both input tensors: @@ -4270,6 +4360,7 @@ enum OperationType { * the scale and zeroPoint can be different from inputs' scale and zeroPoint. */ SELECT = 84, + /** * Computes sin of x element-wise. * @@ -4286,6 +4377,7 @@ enum OperationType { * * 0: The output tensor of same shape as input0. */ SIN = 85, + /** * Extracts a slice of specified size from the input tensor starting at a * specified location. @@ -4321,6 +4413,7 @@ enum OperationType { * its scale and zeroPoint has to be same as the input0 scale and zeroPoint. */ SLICE = 86, + /** * Splits a tensor along a given axis into num_splits subtensors. * @@ -4347,6 +4440,7 @@ enum OperationType { * the scale and zeroPoint must be the same as input0. */ SPLIT = 87, + /** * Computes square root of x element-wise. * @@ -4363,6 +4457,7 @@ enum OperationType { * * 0: The output tensor of same shape as input0. */ SQRT = 88, + /** * Constructs a tensor by tiling a given tensor. * @@ -4393,6 +4488,7 @@ enum OperationType { * the scale and zeroPoint must be the same as input0. */ TILE = 89, + /** * Finds values and indices of the k largest entries for the last dimension. * @@ -4423,6 +4519,7 @@ enum OperationType { * containing the indices of values within the last dimension of input. */ TOPK_V2 = 90, + /** * Performs the transpose of 2-D convolution operation. * @@ -4457,7 +4554,8 @@ enum OperationType { * * * {@link OperandType::TENSOR_INT32} for bias (with scale set to * * * input.scale * filter.scale). * - * * Quantized signed with filter symmetric per channel quantization (since HAL version 1.3): + * * Quantized signed with filter symmetric per channel quantization + * (since HAL version 1.3): * * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} for input, and output. * * * {@link OperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL} for filter. * * * {@link OperandType::TENSOR_INT32} for bias (scale set to 0.0, @@ -4551,6 +4649,7 @@ enum OperationType { * the scale and zeroPoint can be different from inputs' scale and zeroPoint. */ TRANSPOSE_CONV_2D = 91, + /** * A recurrent neural network specified by an LSTM cell. * @@ -4668,6 +4767,7 @@ enum OperationType { * Available since HAL version 1.3. */ UNIDIRECTIONAL_SEQUENCE_LSTM = 92, + /** * A recurrent neural network layer that applies a basic RNN cell to a * sequence of inputs. @@ -4726,6 +4826,7 @@ enum OperationType { * Available since HAL version 1.3. */ UNIDIRECTIONAL_SEQUENCE_RNN = 93, + /** * Resizes images to given size using the nearest neighbor interpretation. * @@ -4804,6 +4905,7 @@ enum OperationType { * the scale and zeroPoint must be the same as input0. */ RESIZE_NEAREST_NEIGHBOR = 94, + /** * Quantized version of {@link OperationType::LSTM}. * @@ -4932,6 +5034,7 @@ enum OperationType { * Shape: [batchSize, outputSize] */ QUANTIZED_LSTM = 95, + /** * Executes one of the two referenced subgraphs as determined by a boolean * value. @@ -4958,6 +5061,7 @@ enum OperationType { * * 0 ~ (m - 1): Outputs produced by the selected subgraph. */ IF = 96, + /** * Executes the body subgraph until the condition subgraph outputs false. * @@ -5024,6 +5128,7 @@ enum OperationType { * * 0 ~ (m - 1): Outputs produced by the loop. */ WHILE = 97, + /** * Computes exponential linear activation on the input tensor element-wise. * @@ -5049,6 +5154,7 @@ enum OperationType { * * 0: The output tensor of same shape and type as input0. */ ELU = 98, + /** * Computes hard-swish activation on the input tensor element-wise. * @@ -5076,6 +5182,7 @@ enum OperationType { * tensor's parameters. */ HARD_SWISH = 99, + /** * Creates a tensor filled with a scalar value. * @@ -5100,6 +5207,7 @@ enum OperationType { * * 0: The output tensor. */ FILL = 100, + /** * Returns the rank of a tensor. * diff --git a/power/stats/1.0/vts/functional/OWNERS b/power/stats/1.0/vts/functional/OWNERS new file mode 100644 index 0000000000..8dd30e0718 --- /dev/null +++ b/power/stats/1.0/vts/functional/OWNERS @@ -0,0 +1,2 @@ +# Bug component: 709877 +bsschwar@google.com diff --git a/radio/1.0/vts/functional/OWNERS b/radio/1.0/vts/functional/OWNERS new file mode 100644 index 0000000000..1b6d937191 --- /dev/null +++ b/radio/1.0/vts/functional/OWNERS @@ -0,0 +1,2 @@ +# Bug component: 20868 +shuoq@google.com diff --git a/radio/1.0/vts/functional/radio_hidl_hal_test.cpp b/radio/1.0/vts/functional/radio_hidl_hal_test.cpp index 3583514014..fee5ff3437 100644 --- a/radio/1.0/vts/functional/radio_hidl_hal_test.cpp +++ b/radio/1.0/vts/functional/radio_hidl_hal_test.cpp @@ -17,12 +17,42 @@ #include <android-base/logging.h> #include <radio_hidl_hal_utils_v1_0.h> +bool isServiceValidForDeviceConfiguration(hidl_string& serviceName) { + if (isSsSsEnabled()) { + // Device is configured as SSSS. + if (serviceName != RADIO_SERVICE_SLOT1_NAME) { + ALOGI("%s instance is not valid for SSSS device.", serviceName.c_str()); + return false; + } + } else if (isDsDsEnabled()) { + // Device is configured as DSDS. + if (serviceName != RADIO_SERVICE_SLOT1_NAME && serviceName != RADIO_SERVICE_SLOT2_NAME) { + ALOGI("%s instance is not valid for DSDS device.", serviceName.c_str()); + return false; + } + } else if (isTsTsEnabled()) { + // Device is configured as TSTS. + if (serviceName != RADIO_SERVICE_SLOT1_NAME && serviceName != RADIO_SERVICE_SLOT2_NAME && + serviceName != RADIO_SERVICE_SLOT3_NAME) { + ALOGI("%s instance is not valid for TSTS device.", serviceName.c_str()); + return false; + } + } + return true; +} + void RadioHidlTest::SetUp() { - radio = IRadio::getService(GetParam()); + hidl_string serviceName = GetParam(); + if (!isServiceValidForDeviceConfiguration(serviceName)) { + ALOGI("Skipped the test due to device configuration."); + GTEST_SKIP(); + } + + radio = IRadio::getService(serviceName); if (radio == NULL) { LOG(DEBUG) << "Radio is NULL, waiting 1 minute to retry"; sleep(60); - radio = IRadio::getService(GetParam()); + radio = IRadio::getService(serviceName); } ASSERT_NE(nullptr, radio.get()); diff --git a/radio/1.0/vts/functional/radio_hidl_hal_utils_v1_0.h b/radio/1.0/vts/functional/radio_hidl_hal_utils_v1_0.h index e3e9473055..5d7f79f1a6 100644 --- a/radio/1.0/vts/functional/radio_hidl_hal_utils_v1_0.h +++ b/radio/1.0/vts/functional/radio_hidl_hal_utils_v1_0.h @@ -16,6 +16,7 @@ #include <android-base/logging.h> +#include <log/log.h> #include <chrono> #include <condition_variable> #include <mutex> @@ -41,6 +42,15 @@ using ::android::sp; #define SKIP_TEST_IF_REQUEST_NOT_SUPPORTED_WITH_HAL_VERSION_AT_LEAST(__ver__) \ SKIP_TEST_IF_REQUEST_NOT_SUPPORTED_WITH_HAL(__ver__, radio, radioRsp) +// HAL instance name for SIM slot 1 or single SIM device +#define RADIO_SERVICE_SLOT1_NAME "slot1" + +// HAL instance name for SIM slot 2 on dual SIM device +#define RADIO_SERVICE_SLOT2_NAME "slot2" + +// HAL instance name for SIM slot 3 on triple SIM device +#define RADIO_SERVICE_SLOT3_NAME "slot3" + class RadioHidlTest; extern CardStatus cardStatus; diff --git a/radio/1.6/types.hal b/radio/1.6/types.hal index 4b75db5e1e..d026589da0 100644 --- a/radio/1.6/types.hal +++ b/radio/1.6/types.hal @@ -1024,18 +1024,6 @@ struct RouteSelectionDescriptor { */ uint8_t precedence; /** - * Parameters defining this RouteSelectionDescriptor. The length of the vector - * must be >= 1. - */ - vec<RouteSelectionDescriptorParams> routeSelectionDescriptorParams; -}; - -/** - * This struct represents a route selection descriptor. A valid struct must have - * at least one of the vectors non-empty. - */ -struct RouteSelectionDescriptorParams { - /** * Valid values are IP, IPV6 and IPV4V6. */ OptionalPdpProtocolType sessionType; diff --git a/radio/1.6/vts/functional/radio_hidl_hal_api.cpp b/radio/1.6/vts/functional/radio_hidl_hal_api.cpp index 391166be56..710616eaf1 100644 --- a/radio/1.6/vts/functional/radio_hidl_hal_api.cpp +++ b/radio/1.6/vts/functional/radio_hidl_hal_api.cpp @@ -261,7 +261,7 @@ TEST_P(RadioHidlTest_v1_6, sendSms_1_6) { msg.smscPdu = ""; msg.pdu = "01000b916105770203f3000006d4f29c3e9b01"; - radio_v1_6->sendSms(serial, msg); + radio_v1_6->sendSms_1_6(serial, msg); EXPECT_EQ(std::cv_status::no_timeout, wait()); EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_6->rspInfo.type); @@ -289,7 +289,7 @@ TEST_P(RadioHidlTest_v1_6, sendSmsExpectMore_1_6) { msg.smscPdu = ""; msg.pdu = "01000b916105770203f3000006d4f29c3e9b01"; - radio_v1_6->sendSMSExpectMore(serial, msg); + radio_v1_6->sendSmsExpectMore_1_6(serial, msg); EXPECT_EQ(std::cv_status::no_timeout, wait()); EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_6->rspInfo.type); @@ -337,7 +337,7 @@ TEST_P(RadioHidlTest_v1_6, sendCdmaSms_1_6) { cdmaSmsMessage.bearerData = (std::vector<uint8_t>){15, 0, 3, 32, 3, 16, 1, 8, 16, 53, 76, 68, 6, 51, 106, 0}; - radio_v1_6->sendCdmaSms(serial, cdmaSmsMessage); + radio_v1_6->sendCdmaSms_1_6(serial, cdmaSmsMessage); EXPECT_EQ(std::cv_status::no_timeout, wait()); EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_6->rspInfo.type); @@ -384,7 +384,7 @@ TEST_P(RadioHidlTest_v1_6, sendCdmaSmsExpectMore_1_6) { cdmaSmsMessage.bearerData = (std::vector<uint8_t>){15, 0, 3, 32, 3, 16, 1, 8, 16, 53, 76, 68, 6, 51, 106, 0}; - radio_v1_6->sendCdmaSmsExpectMore(serial, cdmaSmsMessage); + radio_v1_6->sendCdmaSmsExpectMore_1_6(serial, cdmaSmsMessage); EXPECT_EQ(std::cv_status::no_timeout, wait()); EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_6->rspInfo.type); @@ -450,12 +450,13 @@ TEST_P(RadioHidlTest_v1_6, setNrDualConnectivityState) { radioRsp_v1_6->rspInfo.error, {::android::hardware::radio::V1_6::RadioError::REQUEST_NOT_SUPPORTED})); } else { - ASSERT_TRUE( - CheckAnyOfErrors(radioRsp_v1_6->rspInfo.error, - {::android::hardware::radio::V1_6::RadioError::RADIO_NOT_AVAILABLE, - ::android::hardware::radio::V1_6::RadioError::INTERNAL_ERR, - ::android::hardware::radio::V1_6::RadioError::INVALID_STATE, - ::android::hardware::radio::V1_6::RadioError::NONE})); + ASSERT_TRUE(CheckAnyOfErrors( + radioRsp_v1_6->rspInfo.error, + {::android::hardware::radio::V1_6::RadioError::RADIO_NOT_AVAILABLE, + ::android::hardware::radio::V1_6::RadioError::INTERNAL_ERR, + ::android::hardware::radio::V1_6::RadioError::INVALID_STATE, + ::android::hardware::radio::V1_6::RadioError::REQUEST_NOT_SUPPORTED, + ::android::hardware::radio::V1_6::RadioError::NONE})); } } diff --git a/radio/aidl/Android.bp b/radio/aidl/Android.bp new file mode 100644 index 0000000000..f2449f686f --- /dev/null +++ b/radio/aidl/Android.bp @@ -0,0 +1,60 @@ +package { + // 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" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: ["hardware_interfaces_license"], +} + +aidl_interface { + name: "android.hardware.radio", + vendor_available: true, + srcs: ["android/hardware/radio/*.aidl"], + stability: "vintf", + backend: { + cpp: { + enabled: false, + }, + java: { + sdk_version: "module_current", + }, + ndk: { + vndk: { + enabled: true, + }, + }, + }, +} + +cc_library { + name: "android.hardware.radio-translate-ndk", + vendor_available: true, + shared_libs: [ + "libbinder_ndk", + "libhidlbase", + "android.hardware.radio-V1-ndk_platform", + "android.hardware.radio@1.0", + "android.hardware.radio@1.1", + "android.hardware.radio@1.2", + "android.hardware.radio@1.3", + "android.hardware.radio@1.4", + "android.hardware.radio@1.5", + "android.hardware.radio@1.6", + ], +} + +java_library { + name: "android.hardware.radio-translate-java", + libs: [ + "android.hardware.radio-V1-java", + "android.hardware.radio-V1.0-java", + "android.hardware.radio-V1.1-java", + "android.hardware.radio-V1.2-java", + "android.hardware.radio-V1.3-java", + "android.hardware.radio-V1.4-java", + "android.hardware.radio-V1.5-java", + "android.hardware.radio-V1.6-java", + ], + sdk_version: "module_current", +} 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 new file mode 100644 index 0000000000..0327d6c19d --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/AccessNetwork.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum AccessNetwork { + UNKNOWN = 0, + GERAN = 1, + UTRAN = 2, + EUTRAN = 3, + CDMA2000 = 4, + IWLAN = 5, + NGRAN = 6, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/AccessTechnologySpecificInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/AccessTechnologySpecificInfo.aidl new file mode 100644 index 0000000000..988f118d43 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/AccessTechnologySpecificInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +union AccessTechnologySpecificInfo { + boolean noinit; + android.hardware.radio.Cdma2000RegistrationInfo cdmaInfo; + android.hardware.radio.EutranRegistrationInfo eutranInfo; + android.hardware.radio.NrVopsInfo ngranNrVopsInfo; + boolean geranDtmSupported; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ActivityStatsInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ActivityStatsInfo.aidl new file mode 100644 index 0000000000..f9ef742549 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ActivityStatsInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable ActivityStatsInfo { + int sleepModeTimeMs; + int idleModeTimeMs; + int[] txmModetimeMs; + int rxModeTimeMs; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ApnAuthType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ApnAuthType.aidl new file mode 100644 index 0000000000..bae7d1f261 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ApnAuthType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum ApnAuthType { + NO_PAP_NO_CHAP = 0, + PAP_NO_CHAP = 1, + NO_PAP_CHAP = 2, + PAP_CHAP = 3, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ApnTypes.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ApnTypes.aidl new file mode 100644 index 0000000000..0829fa619f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ApnTypes.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum ApnTypes { + NONE = 0, + DEFAULT = 1, + MMS = 2, + SUPL = 4, + DUN = 8, + HIPRI = 16, + FOTA = 32, + IMS = 64, + CBS = 128, + IA = 256, + EMERGENCY = 512, + ALL = 1023, + MCX = 1024, + XCAP = 2048, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/AppStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/AppStatus.aidl new file mode 100644 index 0000000000..ea2cd3a08e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/AppStatus.aidl @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable AppStatus { + int appType; + int appState; + android.hardware.radio.PersoSubstate persoSubstate; + String aidPtr; + String appLabelPtr; + boolean pin1Replaced; + android.hardware.radio.PinState pin1; + android.hardware.radio.PinState pin2; + const int APP_STATE_UNKNOWN = 0; + const int APP_STATE_DETECTED = 1; + const int APP_STATE_PIN = 2; + const int APP_STATE_PUK = 3; + const int APP_STATE_SUBSCRIPTION_PERSO = 4; + const int APP_STATE_READY = 5; + const int APP_TYPE_UNKNOWN = 0; + const int APP_TYPE_SIM = 1; + const int APP_TYPE_USIM = 2; + const int APP_TYPE_RUIM = 3; + const int APP_TYPE_CSIM = 4; + const int APP_TYPE_ISIM = 5; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/AudioQuality.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/AudioQuality.aidl new file mode 100644 index 0000000000..a596969147 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/AudioQuality.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum AudioQuality { + UNSPECIFIED = 0, + AMR = 1, + AMR_WB = 2, + GSM_EFR = 3, + GSM_FR = 4, + GSM_HR = 5, + EVRC = 6, + EVRC_B = 7, + EVRC_WB = 8, + EVRC_NW = 9, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/BarringInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/BarringInfo.aidl new file mode 100644 index 0000000000..1623764df1 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/BarringInfo.aidl @@ -0,0 +1,85 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable BarringInfo { + int serviceType; + int barringType; + @nullable android.hardware.radio.BarringTypeSpecificInfo barringTypeSpecificInfo; + const int BARRING_TYPE_NONE = 0; + const int BARRING_TYPE_CONDITIONAL = 1; + const int BARRING_TYPE_UNCONDITIONAL = 2; + const int SERVICE_TYPE_CS_SERVICE = 0; + const int SERVICE_TYPE_PS_SERVICE = 1; + const int SERVICE_TYPE_CS_VOICE = 2; + const int SERVICE_TYPE_MO_SIGNALLING = 3; + const int SERVICE_TYPE_MO_DATA = 4; + const int SERVICE_TYPE_CS_FALLBACK = 5; + const int SERVICE_TYPE_MMTEL_VOICE = 6; + const int SERVICE_TYPE_MMTEL_VIDEO = 7; + const int SERVICE_TYPE_EMERGENCY = 8; + const int SERVICE_TYPE_SMS = 9; + const int SERVICE_TYPE_OPERATOR_1 = 1001; + const int SERVICE_TYPE_OPERATOR_2 = 1002; + const int SERVICE_TYPE_OPERATOR_3 = 1003; + const int SERVICE_TYPE_OPERATOR_4 = 1004; + const int SERVICE_TYPE_OPERATOR_5 = 1005; + const int SERVICE_TYPE_OPERATOR_6 = 1006; + const int SERVICE_TYPE_OPERATOR_7 = 1007; + const int SERVICE_TYPE_OPERATOR_8 = 1008; + const int SERVICE_TYPE_OPERATOR_9 = 1009; + const int SERVICE_TYPE_OPERATOR_10 = 1010; + const int SERVICE_TYPE_OPERATOR_11 = 1011; + const int SERVICE_TYPE_OPERATOR_12 = 1012; + const int SERVICE_TYPE_OPERATOR_13 = 1013; + const int SERVICE_TYPE_OPERATOR_14 = 1014; + const int SERVICE_TYPE_OPERATOR_15 = 1015; + const int SERVICE_TYPE_OPERATOR_16 = 1016; + const int SERVICE_TYPE_OPERATOR_17 = 1017; + const int SERVICE_TYPE_OPERATOR_18 = 1018; + const int SERVICE_TYPE_OPERATOR_19 = 1019; + const int SERVICE_TYPE_OPERATOR_20 = 1020; + const int SERVICE_TYPE_OPERATOR_21 = 1021; + const int SERVICE_TYPE_OPERATOR_22 = 1022; + const int SERVICE_TYPE_OPERATOR_23 = 1023; + const int SERVICE_TYPE_OPERATOR_24 = 1024; + const int SERVICE_TYPE_OPERATOR_25 = 1025; + const int SERVICE_TYPE_OPERATOR_26 = 1026; + const int SERVICE_TYPE_OPERATOR_27 = 1027; + const int SERVICE_TYPE_OPERATOR_28 = 1028; + const int SERVICE_TYPE_OPERATOR_29 = 1029; + const int SERVICE_TYPE_OPERATOR_30 = 1030; + const int SERVICE_TYPE_OPERATOR_31 = 1031; + const int SERVICE_TYPE_OPERATOR_32 = 1032; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/BarringTypeSpecificInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/BarringTypeSpecificInfo.aidl new file mode 100644 index 0000000000..98b46c99e3 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/BarringTypeSpecificInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable BarringTypeSpecificInfo { + int factor; + int timeSeconds; + boolean isBarred; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Call.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Call.aidl new file mode 100644 index 0000000000..b4a3cc7557 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Call.aidl @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable Call { + int state; + int index; + int toa; + boolean isMpty; + boolean isMT; + byte als; + boolean isVoice; + boolean isVoicePrivacy; + String number; + int numberPresentation; + String name; + int namePresentation; + android.hardware.radio.UusInfo[] uusInfo; + android.hardware.radio.AudioQuality audioQuality; + String forwardedNumber; + const int PRESENTATION_ALLOWED = 0; + const int PRESENTATION_RESTRICTED = 1; + const int PRESENTATION_UNKNOWN = 2; + const int PRESENTATION_PAYPHONE = 3; + const int STATE_ACTIVE = 0; + const int STATE_HOLDING = 1; + const int STATE_DIALING = 2; + const int STATE_ALERTING = 3; + const int STATE_INCOMING = 4; + const int STATE_WAITING = 5; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CallForwardInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CallForwardInfo.aidl new file mode 100644 index 0000000000..0b79272721 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CallForwardInfo.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CallForwardInfo { + int status; + int reason; + int serviceClass; + int toa; + String number; + int timeSeconds; + const int STATUS_DISABLE = 0; + const int STATUS_ENABLE = 1; + const int STATUS_INTERROGATE = 2; + const int STATUS_REGISTRATION = 3; + const int STATUS_ERASURE = 4; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CardPowerState.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CardPowerState.aidl new file mode 100644 index 0000000000..1a3b4c6295 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CardPowerState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum CardPowerState { + POWER_DOWN = 0, + POWER_UP = 1, + POWER_UP_PASS_THROUGH = 2, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CardStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CardStatus.aidl new file mode 100644 index 0000000000..e7a666f903 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CardStatus.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CardStatus { + int cardState; + android.hardware.radio.PinState universalPinState; + int gsmUmtsSubscriptionAppIndex; + int cdmaSubscriptionAppIndex; + int imsSubscriptionAppIndex; + android.hardware.radio.AppStatus[] applications; + int physicalSlotId; + String atr; + String iccid; + String eid; + const int STATE_ABSENT = 0; + const int STATE_PRESENT = 1; + const int STATE_ERROR = 2; + const int STATE_RESTRICTED = 3; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Carrier.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Carrier.aidl new file mode 100644 index 0000000000..46d5dca2ff --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Carrier.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable Carrier { + String mcc; + String mnc; + int matchType; + String matchData; + const int MATCH_TYPE_ALL = 0; + const int MATCH_TYPE_SPN = 1; + const int MATCH_TYPE_IMSI_PREFIX = 2; + const int MATCH_TYPE_GID1 = 3; + const int MATCH_TYPE_GID2 = 4; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CarrierRestrictions.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CarrierRestrictions.aidl new file mode 100644 index 0000000000..f7c7a5a436 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CarrierRestrictions.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CarrierRestrictions { + android.hardware.radio.Carrier[] allowedCarriers; + android.hardware.radio.Carrier[] excludedCarriers; + boolean priority; + boolean allowedCarriersPrioritized; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Cdma2000RegistrationInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Cdma2000RegistrationInfo.aidl new file mode 100644 index 0000000000..6e4d7b63f8 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Cdma2000RegistrationInfo.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable Cdma2000RegistrationInfo { + boolean cssSupported; + int roamingIndicator; + int systemIsInPrl; + int defaultRoamingIndicator; + const int PRL_INDICATOR_NOT_REGISTERED = -1; + const int PRL_INDICATOR_NOT_IN_PRL = 0; + const int PRL_INDICATOR_IN_PRL = 1; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaBroadcastSmsConfigInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaBroadcastSmsConfigInfo.aidl new file mode 100644 index 0000000000..73c7faeeab --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaBroadcastSmsConfigInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CdmaBroadcastSmsConfigInfo { + int serviceCategory; + int language; + boolean selected; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaCallWaiting.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaCallWaiting.aidl new file mode 100644 index 0000000000..b4866919cd --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaCallWaiting.aidl @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CdmaCallWaiting { + String number; + int numberPresentation; + String name; + android.hardware.radio.CdmaSignalInfoRecord signalInfoRecord; + int numberType; + int numberPlan; + const int NUMBER_PLAN_UNKNOWN = 0; + const int NUMBER_PLAN_ISDN = 1; + const int NUMBER_PLAN_DATA = 3; + const int NUMBER_PLAN_TELEX = 4; + const int NUMBER_PLAN_NATIONAL = 8; + const int NUMBER_PLAN_PRIVATE = 9; + const int NUMBER_PRESENTATION_ALLOWED = 0; + const int NUMBER_PRESENTATION_RESTRICTED = 1; + const int NUMBER_PRESENTATION_UNKNOWN = 2; + const int NUMBER_TYPE_UNKNOWN = 0; + const int NUMBER_TYPE_INTERNATIONAL = 1; + const int NUMBER_TYPE_NATIONAL = 2; + const int NUMBER_TYPE_NETWORK_SPECIFIC = 3; + const int NUMBER_TYPE_SUBSCRIBER = 4; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaDisplayInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaDisplayInfoRecord.aidl new file mode 100644 index 0000000000..11f082f1b0 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaDisplayInfoRecord.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CdmaDisplayInfoRecord { + String alphaBuf; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaInformationRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaInformationRecord.aidl new file mode 100644 index 0000000000..c2f2df273b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaInformationRecord.aidl @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CdmaInformationRecord { + int name; + android.hardware.radio.CdmaDisplayInfoRecord[] display; + android.hardware.radio.CdmaNumberInfoRecord[] number; + android.hardware.radio.CdmaSignalInfoRecord[] signal; + android.hardware.radio.CdmaRedirectingNumberInfoRecord[] redir; + android.hardware.radio.CdmaLineControlInfoRecord[] lineCtrl; + android.hardware.radio.CdmaT53ClirInfoRecord[] clir; + android.hardware.radio.CdmaT53AudioControlInfoRecord[] audioCtrl; + const int NAME_DISPLAY = 0; + const int NAME_CALLED_PARTY_NUMBER = 1; + const int NAME_CALLING_PARTY_NUMBER = 2; + const int NAME_CONNECTED_NUMBER = 3; + const int NAME_SIGNAL = 4; + const int NAME_REDIRECTING_NUMBER = 5; + const int NAME_LINE_CONTROL = 6; + const int NAME_EXTENDED_DISPLAY = 7; + const int NAME_T53_CLIR = 8; + const int NAME_T53_RELEASE = 9; + const int NAME_T53_AUDIO_CONTROL = 10; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaInformationRecords.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaInformationRecords.aidl new file mode 100644 index 0000000000..88a433148b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaInformationRecords.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CdmaInformationRecords { + android.hardware.radio.CdmaInformationRecord[] infoRec; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaLineControlInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaLineControlInfoRecord.aidl new file mode 100644 index 0000000000..48180a7717 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaLineControlInfoRecord.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CdmaLineControlInfoRecord { + byte lineCtrlPolarityIncluded; + byte lineCtrlToggle; + byte lineCtrlReverse; + byte lineCtrlPowerDenial; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaNumberInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaNumberInfoRecord.aidl new file mode 100644 index 0000000000..86376a7034 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaNumberInfoRecord.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CdmaNumberInfoRecord { + String number; + byte numberType; + byte numberPlan; + byte pi; + byte si; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaOtaProvisionStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaOtaProvisionStatus.aidl new file mode 100644 index 0000000000..7cd88ac9cd --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaOtaProvisionStatus.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum CdmaOtaProvisionStatus { + SPL_UNLOCKED = 0, + SPC_RETRIES_EXCEEDED = 1, + A_KEY_EXCHANGED = 2, + SSD_UPDATED = 3, + NAM_DOWNLOADED = 4, + MDN_DOWNLOADED = 5, + IMSI_DOWNLOADED = 6, + PRL_DOWNLOADED = 7, + COMMITTED = 8, + OTAPA_STARTED = 9, + OTAPA_STOPPED = 10, + OTAPA_ABORTED = 11, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaRedirectingNumberInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaRedirectingNumberInfoRecord.aidl new file mode 100644 index 0000000000..9713f80d75 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaRedirectingNumberInfoRecord.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CdmaRedirectingNumberInfoRecord { + android.hardware.radio.CdmaNumberInfoRecord redirectingNumber; + int redirectingReason; + const int REDIRECTING_REASON_UNKNOWN = 0; + const int REDIRECTING_REASON_CALL_FORWARDING_BUSY = 1; + const int REDIRECTING_REASON_CALL_FORWARDING_NO_REPLY = 2; + const int REDIRECTING_REASON_CALLED_DTE_OUT_OF_ORDER = 9; + const int REDIRECTING_REASON_CALL_FORWARDING_BY_THE_CALLED_DTE = 10; + const int REDIRECTING_REASON_CALL_FORWARDING_UNCONDITIONAL = 15; + const int REDIRECTING_REASON_RESERVED = 16; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaRoamingType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaRoamingType.aidl new file mode 100644 index 0000000000..09a59a0c35 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaRoamingType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum CdmaRoamingType { + HOME_NETWORK = 0, + AFFILIATED_ROAM = 1, + ANY_ROAM = 2, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSignalInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSignalInfoRecord.aidl new file mode 100644 index 0000000000..efb396af56 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSignalInfoRecord.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CdmaSignalInfoRecord { + boolean isPresent; + byte signalType; + byte alertPitch; + byte signal; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSignalStrength.aidl new file mode 100644 index 0000000000..29391838f4 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSignalStrength.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CdmaSignalStrength { + int dbm; + int ecio; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsAck.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsAck.aidl new file mode 100644 index 0000000000..8dfa1da348 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsAck.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CdmaSmsAck { + boolean errorClass; + int smsCauseCode; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsAddress.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsAddress.aidl new file mode 100644 index 0000000000..a24c701468 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsAddress.aidl @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CdmaSmsAddress { + int digitMode; + boolean isNumberModeDataNetwork; + int numberType; + int numberPlan; + byte[] digits; + const int DIGIT_MODE_FOUR_BIT = 0; + const int DIGIT_MODE_EIGHT_BIT = 1; + const int NUMBER_PLAN_UNKNOWN = 0; + const int NUMBER_PLAN_TELEPHONY = 1; + const int NUMBER_PLAN_RESERVED_2 = 2; + const int NUMBER_PLAN_DATA = 3; + const int NUMBER_PLAN_TELEX = 4; + const int NUMBER_PLAN_RESERVED_5 = 5; + const int NUMBER_PLAN_RESERVED_6 = 6; + const int NUMBER_PLAN_RESERVED_7 = 7; + const int NUMBER_PLAN_RESERVED_8 = 8; + const int NUMBER_PLAN_PRIVATE = 9; + const int NUMBER_PLAN_RESERVED_10 = 10; + const int NUMBER_PLAN_RESERVED_11 = 11; + const int NUMBER_PLAN_RESERVED_12 = 12; + const int NUMBER_PLAN_RESERVED_13 = 13; + const int NUMBER_PLAN_RESERVED_14 = 14; + const int NUMBER_PLAN_RESERVED_15 = 15; + const int NUMBER_TYPE_UNKNOWN = 0; + const int NUMBER_TYPE_INTERNATIONAL_OR_DATA_IP = 1; + const int NUMBER_TYPE_NATIONAL_OR_INTERNET_MAIL = 2; + const int NUMBER_TYPE_NETWORK = 3; + const int NUMBER_TYPE_SUBSCRIBER = 4; + const int NUMBER_TYPE_ALPHANUMERIC = 5; + const int NUMBER_TYPE_ABBREVIATED = 6; + const int NUMBER_TYPE_RESERVED_7 = 7; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsMessage.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsMessage.aidl new file mode 100644 index 0000000000..c419bada63 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsMessage.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CdmaSmsMessage { + int teleserviceId; + boolean isServicePresent; + int serviceCategory; + android.hardware.radio.CdmaSmsAddress address; + android.hardware.radio.CdmaSmsSubaddress subAddress; + byte[] bearerData; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsSubaddress.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsSubaddress.aidl new file mode 100644 index 0000000000..0cf3e58c46 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsSubaddress.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CdmaSmsSubaddress { + int subaddressType; + boolean odd; + byte[] digits; + const int SUBADDRESS_TYPE_NSAP = 0; + const int SUBADDRESS_TYPE_USER_SPECIFIED = 1; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsWriteArgs.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsWriteArgs.aidl new file mode 100644 index 0000000000..e2fd8fdc1a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsWriteArgs.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CdmaSmsWriteArgs { + int status; + android.hardware.radio.CdmaSmsMessage message; + const int STATUS_REC_UNREAD = 0; + const int STATUS_REC_READ = 1; + const int STATUS_STO_UNSENT = 2; + const int STATUS_STO_SENT = 3; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSubscriptionSource.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSubscriptionSource.aidl new file mode 100644 index 0000000000..11e8a2466e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSubscriptionSource.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum CdmaSubscriptionSource { + RUIM_SIM = 0, + NV = 1, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaT53AudioControlInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaT53AudioControlInfoRecord.aidl new file mode 100644 index 0000000000..9285eb79f1 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaT53AudioControlInfoRecord.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CdmaT53AudioControlInfoRecord { + byte upLink; + byte downLink; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaT53ClirInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaT53ClirInfoRecord.aidl new file mode 100644 index 0000000000..ff4d3c3da5 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaT53ClirInfoRecord.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CdmaT53ClirInfoRecord { + byte cause; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellConfigLte.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellConfigLte.aidl new file mode 100644 index 0000000000..184af1cb04 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellConfigLte.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CellConfigLte { + boolean isEndcAvailable; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellConnectionStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellConnectionStatus.aidl new file mode 100644 index 0000000000..96f8368a7a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellConnectionStatus.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum CellConnectionStatus { + NONE = 0, + PRIMARY_SERVING = 1, + SECONDARY_SERVING = 2, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentity.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentity.aidl new file mode 100644 index 0000000000..aa37fdfa71 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentity.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +union CellIdentity { + boolean noinit; + android.hardware.radio.CellIdentityGsm gsm; + android.hardware.radio.CellIdentityWcdma wcdma; + android.hardware.radio.CellIdentityTdscdma tdscdma; + android.hardware.radio.CellIdentityCdma cdma; + android.hardware.radio.CellIdentityLte lte; + android.hardware.radio.CellIdentityNr nr; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentityCdma.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentityCdma.aidl new file mode 100644 index 0000000000..d24b91d213 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentityCdma.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CellIdentityCdma { + int networkId; + int systemId; + int baseStationId; + int longitude; + int latitude; + android.hardware.radio.CellIdentityOperatorNames operatorNames; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentityGsm.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentityGsm.aidl new file mode 100644 index 0000000000..4ee2148798 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentityGsm.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CellIdentityGsm { + String mcc; + String mnc; + int lac; + int cid; + int arfcn; + byte bsic; + android.hardware.radio.CellIdentityOperatorNames operatorNames; + String[] additionalPlmns; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentityLte.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentityLte.aidl new file mode 100644 index 0000000000..4f7c90b6a4 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentityLte.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CellIdentityLte { + String mcc; + String mnc; + int ci; + int pci; + int tac; + int earfcn; + android.hardware.radio.CellIdentityOperatorNames operatorNames; + int bandwidth; + String[] additionalPlmns; + @nullable android.hardware.radio.ClosedSubscriberGroupInfo csgInfo; + android.hardware.radio.EutranBands[] bands; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentityNr.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentityNr.aidl new file mode 100644 index 0000000000..60a24d7e38 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentityNr.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CellIdentityNr { + String mcc; + String mnc; + long nci; + int pci; + int tac; + int nrarfcn; + android.hardware.radio.CellIdentityOperatorNames operatorNames; + String[] additionalPlmns; + android.hardware.radio.NgranBands[] bands; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentityOperatorNames.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentityOperatorNames.aidl new file mode 100644 index 0000000000..161797f3f8 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentityOperatorNames.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CellIdentityOperatorNames { + String alphaLong; + String alphaShort; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentityTdscdma.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentityTdscdma.aidl new file mode 100644 index 0000000000..7cc13b54a9 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentityTdscdma.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CellIdentityTdscdma { + String mcc; + String mnc; + int lac; + int cid; + int cpid; + int uarfcn; + android.hardware.radio.CellIdentityOperatorNames operatorNames; + String[] additionalPlmns; + @nullable android.hardware.radio.ClosedSubscriberGroupInfo csgInfo; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentityWcdma.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentityWcdma.aidl new file mode 100644 index 0000000000..c43a8ad601 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellIdentityWcdma.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CellIdentityWcdma { + String mcc; + String mnc; + int lac; + int cid; + int psc; + int uarfcn; + android.hardware.radio.CellIdentityOperatorNames operatorNames; + String[] additionalPlmns; + @nullable android.hardware.radio.ClosedSubscriberGroupInfo csgInfo; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfo.aidl new file mode 100644 index 0000000000..20ea3cb18a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CellInfo { + boolean registered; + android.hardware.radio.CellConnectionStatus connectionStatus; + android.hardware.radio.CellInfoCellInfoRatSpecificInfo ratSpecificInfo; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoCdma.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoCdma.aidl new file mode 100644 index 0000000000..dd940c2fa7 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoCdma.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CellInfoCdma { + android.hardware.radio.CellIdentityCdma cellIdentityCdma; + android.hardware.radio.CdmaSignalStrength signalStrengthCdma; + android.hardware.radio.EvdoSignalStrength signalStrengthEvdo; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoCellInfoRatSpecificInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoCellInfoRatSpecificInfo.aidl new file mode 100644 index 0000000000..7084e5e2ad --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoCellInfoRatSpecificInfo.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +union CellInfoCellInfoRatSpecificInfo { + android.hardware.radio.CellInfoGsm gsm; + android.hardware.radio.CellInfoWcdma wcdma; + android.hardware.radio.CellInfoTdscdma tdscdma; + android.hardware.radio.CellInfoLte lte; + android.hardware.radio.CellInfoNr nr; + android.hardware.radio.CellInfoCdma cdma; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoGsm.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoGsm.aidl new file mode 100644 index 0000000000..fda976c6b3 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoGsm.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CellInfoGsm { + android.hardware.radio.CellIdentityGsm cellIdentityGsm; + android.hardware.radio.GsmSignalStrength signalStrengthGsm; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoInfo.aidl new file mode 100644 index 0000000000..9c2255520d --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoInfo.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +union CellInfoInfo { + android.hardware.radio.CellInfoGsm gsm; + android.hardware.radio.CellInfoCdma cdma; + android.hardware.radio.CellInfoWcdma wcdma; + android.hardware.radio.CellInfoTdscdma tdscdma; + android.hardware.radio.CellInfoLte lte; + android.hardware.radio.CellInfoNr nr; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoLte.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoLte.aidl new file mode 100644 index 0000000000..9976feb52a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoLte.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CellInfoLte { + android.hardware.radio.CellIdentityLte cellIdentityLte; + android.hardware.radio.LteSignalStrength signalStrengthLte; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoNr.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoNr.aidl new file mode 100644 index 0000000000..7883692b55 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoNr.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CellInfoNr { + android.hardware.radio.CellIdentityNr cellIdentityNr; + android.hardware.radio.NrSignalStrength signalStrengthNr; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoTdscdma.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoTdscdma.aidl new file mode 100644 index 0000000000..4fbe5b61e6 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoTdscdma.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CellInfoTdscdma { + android.hardware.radio.CellIdentityTdscdma cellIdentityTdscdma; + android.hardware.radio.TdscdmaSignalStrength signalStrengthTdscdma; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoType.aidl new file mode 100644 index 0000000000..cb92ed9fd4 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoType.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum CellInfoType { + NONE = 0, + GSM = 1, + CDMA = 2, + LTE = 3, + WCDMA = 4, + TD_SCDMA = 5, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoWcdma.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoWcdma.aidl new file mode 100644 index 0000000000..88ca975ba6 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CellInfoWcdma.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CellInfoWcdma { + android.hardware.radio.CellIdentityWcdma cellIdentityWcdma; + android.hardware.radio.WcdmaSignalStrength signalStrengthWcdma; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CfData.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CfData.aidl new file mode 100644 index 0000000000..6a2b0269e5 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CfData.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable CfData { + android.hardware.radio.CallForwardInfo[] cfInfo; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ClipStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ClipStatus.aidl new file mode 100644 index 0000000000..36a15100b9 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ClipStatus.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum ClipStatus { + CLIP_PROVISIONED = 0, + CLIP_UNPROVISIONED = 1, + UNKNOWN = 2, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ClosedSubscriberGroupInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ClosedSubscriberGroupInfo.aidl new file mode 100644 index 0000000000..0c10ca4622 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ClosedSubscriberGroupInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable ClosedSubscriberGroupInfo { + boolean csgIndication; + String homeNodebName; + int csgIdentity; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataCallFailCause.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataCallFailCause.aidl new file mode 100644 index 0000000000..df895f825c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataCallFailCause.aidl @@ -0,0 +1,377 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum DataCallFailCause { + NONE = 0, + OPERATOR_BARRED = 8, + NAS_SIGNALLING = 14, + INSUFFICIENT_RESOURCES = 26, + MISSING_UNKNOWN_APN = 27, + UNKNOWN_PDP_ADDRESS_TYPE = 28, + USER_AUTHENTICATION = 29, + ACTIVATION_REJECT_GGSN = 30, + ACTIVATION_REJECT_UNSPECIFIED = 31, + SERVICE_OPTION_NOT_SUPPORTED = 32, + SERVICE_OPTION_NOT_SUBSCRIBED = 33, + SERVICE_OPTION_OUT_OF_ORDER = 34, + NSAPI_IN_USE = 35, + REGULAR_DEACTIVATION = 36, + QOS_NOT_ACCEPTED = 37, + NETWORK_FAILURE = 38, + UMTS_REACTIVATION_REQ = 39, + FEATURE_NOT_SUPP = 40, + TFT_SEMANTIC_ERROR = 41, + TFT_SYTAX_ERROR = 42, + UNKNOWN_PDP_CONTEXT = 43, + FILTER_SEMANTIC_ERROR = 44, + FILTER_SYTAX_ERROR = 45, + PDP_WITHOUT_ACTIVE_TFT = 46, + ONLY_IPV4_ALLOWED = 50, + ONLY_IPV6_ALLOWED = 51, + ONLY_SINGLE_BEARER_ALLOWED = 52, + ESM_INFO_NOT_RECEIVED = 53, + PDN_CONN_DOES_NOT_EXIST = 54, + MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED = 55, + MAX_ACTIVE_PDP_CONTEXT_REACHED = 65, + UNSUPPORTED_APN_IN_CURRENT_PLMN = 66, + INVALID_TRANSACTION_ID = 81, + MESSAGE_INCORRECT_SEMANTIC = 95, + INVALID_MANDATORY_INFO = 96, + MESSAGE_TYPE_UNSUPPORTED = 97, + MSG_TYPE_NONCOMPATIBLE_STATE = 98, + UNKNOWN_INFO_ELEMENT = 99, + CONDITIONAL_IE_ERROR = 100, + MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE = 101, + PROTOCOL_ERRORS = 111, + APN_TYPE_CONFLICT = 112, + INVALID_PCSCF_ADDR = 113, + INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN = 114, + EMM_ACCESS_BARRED = 115, + EMERGENCY_IFACE_ONLY = 116, + IFACE_MISMATCH = 117, + COMPANION_IFACE_IN_USE = 118, + IP_ADDRESS_MISMATCH = 119, + IFACE_AND_POL_FAMILY_MISMATCH = 120, + EMM_ACCESS_BARRED_INFINITE_RETRY = 121, + AUTH_FAILURE_ON_EMERGENCY_CALL = 122, + OEM_DCFAILCAUSE_1 = 4097, + OEM_DCFAILCAUSE_2 = 4098, + OEM_DCFAILCAUSE_3 = 4099, + OEM_DCFAILCAUSE_4 = 4100, + OEM_DCFAILCAUSE_5 = 4101, + OEM_DCFAILCAUSE_6 = 4102, + OEM_DCFAILCAUSE_7 = 4103, + OEM_DCFAILCAUSE_8 = 4104, + OEM_DCFAILCAUSE_9 = 4105, + OEM_DCFAILCAUSE_10 = 4106, + OEM_DCFAILCAUSE_11 = 4107, + OEM_DCFAILCAUSE_12 = 4108, + OEM_DCFAILCAUSE_13 = 4109, + OEM_DCFAILCAUSE_14 = 4110, + OEM_DCFAILCAUSE_15 = 4111, + VOICE_REGISTRATION_FAIL = -1, + DATA_REGISTRATION_FAIL = -2, + SIGNAL_LOST = -3, + PREF_RADIO_TECH_CHANGED = -4, + RADIO_POWER_OFF = -5, + TETHERED_CALL_ACTIVE = -6, + ERROR_UNSPECIFIED = 65535, + LLC_SNDCP = 25, + ACTIVATION_REJECTED_BCM_VIOLATION = 48, + COLLISION_WITH_NETWORK_INITIATED_REQUEST = 56, + ONLY_IPV4V6_ALLOWED = 57, + ONLY_NON_IP_ALLOWED = 58, + UNSUPPORTED_QCI_VALUE = 59, + BEARER_HANDLING_NOT_SUPPORTED = 60, + INVALID_DNS_ADDR = 123, + INVALID_PCSCF_OR_DNS_ADDRESS = 124, + CALL_PREEMPT_BY_EMERGENCY_APN = 127, + UE_INITIATED_DETACH_OR_DISCONNECT = 128, + MIP_FA_REASON_UNSPECIFIED = 2000, + MIP_FA_ADMIN_PROHIBITED = 2001, + MIP_FA_INSUFFICIENT_RESOURCES = 2002, + MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE = 2003, + MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE = 2004, + MIP_FA_REQUESTED_LIFETIME_TOO_LONG = 2005, + MIP_FA_MALFORMED_REQUEST = 2006, + MIP_FA_MALFORMED_REPLY = 2007, + MIP_FA_ENCAPSULATION_UNAVAILABLE = 2008, + MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE = 2009, + MIP_FA_REVERSE_TUNNEL_UNAVAILABLE = 2010, + MIP_FA_REVERSE_TUNNEL_IS_MANDATORY = 2011, + MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED = 2012, + MIP_FA_MISSING_NAI = 2013, + MIP_FA_MISSING_HOME_AGENT = 2014, + MIP_FA_MISSING_HOME_ADDRESS = 2015, + MIP_FA_UNKNOWN_CHALLENGE = 2016, + MIP_FA_MISSING_CHALLENGE = 2017, + MIP_FA_STALE_CHALLENGE = 2018, + MIP_HA_REASON_UNSPECIFIED = 2019, + MIP_HA_ADMIN_PROHIBITED = 2020, + MIP_HA_INSUFFICIENT_RESOURCES = 2021, + MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE = 2022, + MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE = 2023, + MIP_HA_REGISTRATION_ID_MISMATCH = 2024, + MIP_HA_MALFORMED_REQUEST = 2025, + MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS = 2026, + MIP_HA_REVERSE_TUNNEL_UNAVAILABLE = 2027, + MIP_HA_REVERSE_TUNNEL_IS_MANDATORY = 2028, + MIP_HA_ENCAPSULATION_UNAVAILABLE = 2029, + CLOSE_IN_PROGRESS = 2030, + NETWORK_INITIATED_TERMINATION = 2031, + MODEM_APP_PREEMPTED = 2032, + PDN_IPV4_CALL_DISALLOWED = 2033, + PDN_IPV4_CALL_THROTTLED = 2034, + PDN_IPV6_CALL_DISALLOWED = 2035, + PDN_IPV6_CALL_THROTTLED = 2036, + MODEM_RESTART = 2037, + PDP_PPP_NOT_SUPPORTED = 2038, + UNPREFERRED_RAT = 2039, + PHYSICAL_LINK_CLOSE_IN_PROGRESS = 2040, + APN_PENDING_HANDOVER = 2041, + PROFILE_BEARER_INCOMPATIBLE = 2042, + SIM_CARD_CHANGED = 2043, + LOW_POWER_MODE_OR_POWERING_DOWN = 2044, + APN_DISABLED = 2045, + MAX_PPP_INACTIVITY_TIMER_EXPIRED = 2046, + IPV6_ADDRESS_TRANSFER_FAILED = 2047, + TRAT_SWAP_FAILED = 2048, + EHRPD_TO_HRPD_FALLBACK = 2049, + MIP_CONFIG_FAILURE = 2050, + PDN_INACTIVITY_TIMER_EXPIRED = 2051, + MAX_IPV4_CONNECTIONS = 2052, + MAX_IPV6_CONNECTIONS = 2053, + APN_MISMATCH = 2054, + IP_VERSION_MISMATCH = 2055, + DUN_CALL_DISALLOWED = 2056, + INTERNAL_EPC_NONEPC_TRANSITION = 2057, + INTERFACE_IN_USE = 2058, + APN_DISALLOWED_ON_ROAMING = 2059, + APN_PARAMETERS_CHANGED = 2060, + NULL_APN_DISALLOWED = 2061, + THERMAL_MITIGATION = 2062, + DATA_SETTINGS_DISABLED = 2063, + DATA_ROAMING_SETTINGS_DISABLED = 2064, + DDS_SWITCHED = 2065, + FORBIDDEN_APN_NAME = 2066, + DDS_SWITCH_IN_PROGRESS = 2067, + CALL_DISALLOWED_IN_ROAMING = 2068, + NON_IP_NOT_SUPPORTED = 2069, + PDN_NON_IP_CALL_THROTTLED = 2070, + PDN_NON_IP_CALL_DISALLOWED = 2071, + CDMA_LOCK = 2072, + CDMA_INTERCEPT = 2073, + CDMA_REORDER = 2074, + CDMA_RELEASE_DUE_TO_SO_REJECTION = 2075, + CDMA_INCOMING_CALL = 2076, + CDMA_ALERT_STOP = 2077, + CHANNEL_ACQUISITION_FAILURE = 2078, + MAX_ACCESS_PROBE = 2079, + CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION = 2080, + NO_RESPONSE_FROM_BASE_STATION = 2081, + REJECTED_BY_BASE_STATION = 2082, + CONCURRENT_SERVICES_INCOMPATIBLE = 2083, + NO_CDMA_SERVICE = 2084, + RUIM_NOT_PRESENT = 2085, + CDMA_RETRY_ORDER = 2086, + ACCESS_BLOCK = 2087, + ACCESS_BLOCK_ALL = 2088, + IS707B_MAX_ACCESS_PROBES = 2089, + THERMAL_EMERGENCY = 2090, + CONCURRENT_SERVICES_NOT_ALLOWED = 2091, + INCOMING_CALL_REJECTED = 2092, + NO_SERVICE_ON_GATEWAY = 2093, + NO_GPRS_CONTEXT = 2094, + ILLEGAL_MS = 2095, + ILLEGAL_ME = 2096, + GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED = 2097, + GPRS_SERVICES_NOT_ALLOWED = 2098, + MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK = 2099, + IMPLICITLY_DETACHED = 2100, + PLMN_NOT_ALLOWED = 2101, + LOCATION_AREA_NOT_ALLOWED = 2102, + GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN = 2103, + PDP_DUPLICATE = 2104, + UE_RAT_CHANGE = 2105, + CONGESTION = 2106, + NO_PDP_CONTEXT_ACTIVATED = 2107, + ACCESS_CLASS_DSAC_REJECTION = 2108, + PDP_ACTIVATE_MAX_RETRY_FAILED = 2109, + RADIO_ACCESS_BEARER_FAILURE = 2110, + ESM_UNKNOWN_EPS_BEARER_CONTEXT = 2111, + DRB_RELEASED_BY_RRC = 2112, + CONNECTION_RELEASED = 2113, + EMM_DETACHED = 2114, + EMM_ATTACH_FAILED = 2115, + EMM_ATTACH_STARTED = 2116, + LTE_NAS_SERVICE_REQUEST_FAILED = 2117, + DUPLICATE_BEARER_ID = 2118, + ESM_COLLISION_SCENARIOS = 2119, + ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK = 2120, + ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER = 2121, + ESM_BAD_OTA_MESSAGE = 2122, + ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL = 2123, + ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT = 2124, + DS_EXPLICIT_DEACTIVATION = 2125, + ESM_LOCAL_CAUSE_NONE = 2126, + LTE_THROTTLING_NOT_REQUIRED = 2127, + ACCESS_CONTROL_LIST_CHECK_FAILURE = 2128, + SERVICE_NOT_ALLOWED_ON_PLMN = 2129, + EMM_T3417_EXPIRED = 2130, + EMM_T3417_EXT_EXPIRED = 2131, + RRC_UPLINK_DATA_TRANSMISSION_FAILURE = 2132, + RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER = 2133, + RRC_UPLINK_CONNECTION_RELEASE = 2134, + RRC_UPLINK_RADIO_LINK_FAILURE = 2135, + RRC_UPLINK_ERROR_REQUEST_FROM_NAS = 2136, + RRC_CONNECTION_ACCESS_STRATUM_FAILURE = 2137, + RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS = 2138, + RRC_CONNECTION_ACCESS_BARRED = 2139, + RRC_CONNECTION_CELL_RESELECTION = 2140, + RRC_CONNECTION_CONFIG_FAILURE = 2141, + RRC_CONNECTION_TIMER_EXPIRED = 2142, + RRC_CONNECTION_LINK_FAILURE = 2143, + RRC_CONNECTION_CELL_NOT_CAMPED = 2144, + RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE = 2145, + RRC_CONNECTION_REJECT_BY_NETWORK = 2146, + RRC_CONNECTION_NORMAL_RELEASE = 2147, + RRC_CONNECTION_RADIO_LINK_FAILURE = 2148, + RRC_CONNECTION_REESTABLISHMENT_FAILURE = 2149, + RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER = 2150, + RRC_CONNECTION_ABORT_REQUEST = 2151, + RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR = 2152, + NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH = 2153, + NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH = 2154, + ESM_PROCEDURE_TIME_OUT = 2155, + INVALID_CONNECTION_ID = 2156, + MAXIMIUM_NSAPIS_EXCEEDED = 2157, + INVALID_PRIMARY_NSAPI = 2158, + CANNOT_ENCODE_OTA_MESSAGE = 2159, + RADIO_ACCESS_BEARER_SETUP_FAILURE = 2160, + PDP_ESTABLISH_TIMEOUT_EXPIRED = 2161, + PDP_MODIFY_TIMEOUT_EXPIRED = 2162, + PDP_INACTIVE_TIMEOUT_EXPIRED = 2163, + PDP_LOWERLAYER_ERROR = 2164, + PDP_MODIFY_COLLISION = 2165, + MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED = 2166, + NAS_REQUEST_REJECTED_BY_NETWORK = 2167, + RRC_CONNECTION_INVALID_REQUEST = 2168, + RRC_CONNECTION_TRACKING_AREA_ID_CHANGED = 2169, + RRC_CONNECTION_RF_UNAVAILABLE = 2170, + RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE = 2171, + RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE = 2172, + RRC_CONNECTION_ABORTED_AFTER_HANDOVER = 2173, + RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE = 2174, + RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE = 2175, + IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER = 2176, + IMEI_NOT_ACCEPTED = 2177, + EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED = 2178, + EPS_SERVICES_NOT_ALLOWED_IN_PLMN = 2179, + MSC_TEMPORARILY_NOT_REACHABLE = 2180, + CS_DOMAIN_NOT_AVAILABLE = 2181, + ESM_FAILURE = 2182, + MAC_FAILURE = 2183, + SYNCHRONIZATION_FAILURE = 2184, + UE_SECURITY_CAPABILITIES_MISMATCH = 2185, + SECURITY_MODE_REJECTED = 2186, + UNACCEPTABLE_NON_EPS_AUTHENTICATION = 2187, + CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED = 2188, + NO_EPS_BEARER_CONTEXT_ACTIVATED = 2189, + INVALID_EMM_STATE = 2190, + NAS_LAYER_FAILURE = 2191, + MULTIPLE_PDP_CALL_NOT_ALLOWED = 2192, + EMBMS_NOT_ENABLED = 2193, + IRAT_HANDOVER_FAILED = 2194, + EMBMS_REGULAR_DEACTIVATION = 2195, + TEST_LOOPBACK_REGULAR_DEACTIVATION = 2196, + LOWER_LAYER_REGISTRATION_FAILURE = 2197, + DATA_PLAN_EXPIRED = 2198, + UMTS_HANDOVER_TO_IWLAN = 2199, + EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY = 2200, + EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE = 2201, + EVDO_HDR_CHANGED = 2202, + EVDO_HDR_EXITED = 2203, + EVDO_HDR_NO_SESSION = 2204, + EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL = 2205, + EVDO_HDR_CONNECTION_SETUP_TIMEOUT = 2206, + FAILED_TO_ACQUIRE_COLOCATED_HDR = 2207, + OTASP_COMMIT_IN_PROGRESS = 2208, + NO_HYBRID_HDR_SERVICE = 2209, + HDR_NO_LOCK_GRANTED = 2210, + DBM_OR_SMS_IN_PROGRESS = 2211, + HDR_FADE = 2212, + HDR_ACCESS_FAILURE = 2213, + UNSUPPORTED_1X_PREV = 2214, + LOCAL_END = 2215, + NO_SERVICE = 2216, + FADE = 2217, + NORMAL_RELEASE = 2218, + ACCESS_ATTEMPT_ALREADY_IN_PROGRESS = 2219, + REDIRECTION_OR_HANDOFF_IN_PROGRESS = 2220, + EMERGENCY_MODE = 2221, + PHONE_IN_USE = 2222, + INVALID_MODE = 2223, + INVALID_SIM_STATE = 2224, + NO_COLLOCATED_HDR = 2225, + UE_IS_ENTERING_POWERSAVE_MODE = 2226, + DUAL_SWITCH = 2227, + PPP_TIMEOUT = 2228, + PPP_AUTH_FAILURE = 2229, + PPP_OPTION_MISMATCH = 2230, + PPP_PAP_FAILURE = 2231, + PPP_CHAP_FAILURE = 2232, + PPP_CLOSE_IN_PROGRESS = 2233, + LIMITED_TO_IPV4 = 2234, + LIMITED_TO_IPV6 = 2235, + VSNCP_TIMEOUT = 2236, + VSNCP_GEN_ERROR = 2237, + VSNCP_APN_UNAUTHORIZED = 2238, + VSNCP_PDN_LIMIT_EXCEEDED = 2239, + VSNCP_NO_PDN_GATEWAY_ADDRESS = 2240, + VSNCP_PDN_GATEWAY_UNREACHABLE = 2241, + VSNCP_PDN_GATEWAY_REJECT = 2242, + VSNCP_INSUFFICIENT_PARAMETERS = 2243, + VSNCP_RESOURCE_UNAVAILABLE = 2244, + VSNCP_ADMINISTRATIVELY_PROHIBITED = 2245, + VSNCP_PDN_ID_IN_USE = 2246, + VSNCP_SUBSCRIBER_LIMITATION = 2247, + VSNCP_PDN_EXISTS_FOR_THIS_APN = 2248, + VSNCP_RECONNECT_NOT_ALLOWED = 2249, + IPV6_PREFIX_UNAVAILABLE = 2250, + HANDOFF_PREFERENCE_CHANGED = 2251, + SLICE_REJECTED = 2252, + MATCH_ALL_RULE_NOT_ALLOWED = 2253, + ALL_MATCHING_RULES_FAILED = 2254, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataProfileInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataProfileInfo.aidl new file mode 100644 index 0000000000..b8bba274dd --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataProfileInfo.aidl @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable DataProfileInfo { + int profileId; + String apn; + android.hardware.radio.PdpProtocolType protocol; + android.hardware.radio.PdpProtocolType roamingProtocol; + android.hardware.radio.ApnAuthType authType; + String user; + String password; + int type; + int maxConnsTime; + int maxConns; + int waitTime; + boolean enabled; + android.hardware.radio.ApnTypes supportedApnTypesBitmap; + android.hardware.radio.RadioAccessFamily bearerBitmap; + int mtuV4; + int mtuV6; + boolean preferred; + boolean persistent; + const int ID_DEFAULT = 0; + const int ID_TETHERED = 1; + const int ID_IMS = 2; + const int ID_FOTA = 3; + const int ID_CBS = 4; + const int ID_OEM_BASE = 1000; + const int ID_INVALID = -1; + const int TYPE_COMMON = 0; + const int TYPE_THREE_GPP = 1; + const int TYPE_THREE_GPP2 = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataRegStateResult.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataRegStateResult.aidl new file mode 100644 index 0000000000..8eac451b50 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataRegStateResult.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable DataRegStateResult { + android.hardware.radio.RegState regState; + int rat; + int reasonDataDenied; + int maxDataCalls; + android.hardware.radio.CellIdentity cellIdentity; + @nullable android.hardware.radio.LteVopsInfo lteVopsInfo; + android.hardware.radio.NrIndicators nrIndicators; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataRequestReason.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataRequestReason.aidl new file mode 100644 index 0000000000..1dd0e08ca9 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataRequestReason.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum DataRequestReason { + NORMAL = 1, + SHUTDOWN = 2, + HANDOVER = 3, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataThrottlingAction.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataThrottlingAction.aidl new file mode 100644 index 0000000000..70aaa0f4af --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataThrottlingAction.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="byte") @VintfStability +enum DataThrottlingAction { + NO_DATA_THROTTLING = 0, + THROTTLE_SECONDARY_CARRIER = 1, + THROTTLE_ANCHOR_CARRIER = 2, + HOLD = 3, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DeviceStateType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DeviceStateType.aidl new file mode 100644 index 0000000000..2d3cea8bba --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DeviceStateType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum DeviceStateType { + POWER_SAVE_MODE = 0, + CHARGING_STATE = 1, + LOW_DATA_EXPECTED = 2, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Dial.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Dial.aidl new file mode 100644 index 0000000000..cc9fc783ce --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Dial.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable Dial { + String address; + int clir; + android.hardware.radio.UusInfo[] uusInfo; + const int CLIR_DEFAULT = 0; + const int CLIR_INVOCATION = 1; + const int CLIR_SUPPRESSION = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Domain.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Domain.aidl new file mode 100644 index 0000000000..062af35c27 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Domain.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum Domain { + CS = 1, + PS = 2, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EmergencyCallRouting.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EmergencyCallRouting.aidl new file mode 100644 index 0000000000..95f5a46059 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EmergencyCallRouting.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum EmergencyCallRouting { + UNKNOWN = 0, + EMERGENCY = 1, + NORMAL = 2, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EmergencyNumber.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EmergencyNumber.aidl new file mode 100644 index 0000000000..1de62467f7 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EmergencyNumber.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable EmergencyNumber { + String number; + String mcc; + String mnc; + android.hardware.radio.EmergencyServiceCategory categories; + String[] urns; + int sources; + const int SOURCE_NETWORK_SIGNALING = 1; + const int SOURCE_SIM = 2; + const int SOURCE_MODEM_CONFIG = 4; + const int SOURCE_DEFAULT = 8; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EmergencyServiceCategory.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EmergencyServiceCategory.aidl new file mode 100644 index 0000000000..0341572f10 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EmergencyServiceCategory.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum EmergencyServiceCategory { + UNSPECIFIED = 0, + POLICE = 1, + AMBULANCE = 2, + FIRE_BRIGADE = 4, + MARINE_GUARD = 8, + MOUNTAIN_RESCUE = 16, + MIEC = 32, + AIEC = 64, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EpsQos.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EpsQos.aidl new file mode 100644 index 0000000000..8eb3fdaa25 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EpsQos.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable EpsQos { + int qci; + android.hardware.radio.QosBandwidth downlink; + android.hardware.radio.QosBandwidth uplink; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EutranBands.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EutranBands.aidl new file mode 100644 index 0000000000..1449865474 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EutranBands.aidl @@ -0,0 +1,97 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum EutranBands { + BAND_1 = 1, + BAND_2 = 2, + BAND_3 = 3, + BAND_4 = 4, + BAND_5 = 5, + BAND_6 = 6, + BAND_7 = 7, + BAND_8 = 8, + BAND_9 = 9, + BAND_10 = 10, + BAND_11 = 11, + BAND_12 = 12, + BAND_13 = 13, + BAND_14 = 14, + BAND_17 = 17, + BAND_18 = 18, + BAND_19 = 19, + BAND_20 = 20, + BAND_21 = 21, + BAND_22 = 22, + BAND_23 = 23, + BAND_24 = 24, + BAND_25 = 25, + BAND_26 = 26, + BAND_27 = 27, + BAND_28 = 28, + BAND_30 = 30, + BAND_31 = 31, + BAND_33 = 33, + BAND_34 = 34, + BAND_35 = 35, + BAND_36 = 36, + BAND_37 = 37, + BAND_38 = 38, + BAND_39 = 39, + BAND_40 = 40, + BAND_41 = 41, + BAND_42 = 42, + BAND_43 = 43, + BAND_44 = 44, + BAND_45 = 45, + BAND_46 = 46, + BAND_47 = 47, + BAND_48 = 48, + BAND_65 = 65, + BAND_66 = 66, + BAND_68 = 68, + BAND_70 = 70, + BAND_49 = 49, + BAND_50 = 50, + BAND_51 = 51, + BAND_52 = 52, + BAND_53 = 53, + BAND_71 = 71, + BAND_72 = 72, + BAND_73 = 73, + BAND_74 = 74, + BAND_85 = 85, + BAND_87 = 87, + BAND_88 = 88, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EutranRegistrationInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EutranRegistrationInfo.aidl new file mode 100644 index 0000000000..0ab883334f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EutranRegistrationInfo.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable EutranRegistrationInfo { + android.hardware.radio.LteVopsInfo lteVopsInfo; + android.hardware.radio.NrIndicators nrIndicators; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EvdoSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EvdoSignalStrength.aidl new file mode 100644 index 0000000000..148dfa093c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EvdoSignalStrength.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable EvdoSignalStrength { + int dbm; + int ecio; + int signalNoiseRatio; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/GeranBands.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/GeranBands.aidl new file mode 100644 index 0000000000..0efe023429 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/GeranBands.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum GeranBands { + BAND_T380 = 1, + BAND_T410 = 2, + BAND_450 = 3, + BAND_480 = 4, + BAND_710 = 5, + BAND_750 = 6, + BAND_T810 = 7, + BAND_850 = 8, + BAND_P900 = 9, + BAND_E900 = 10, + BAND_R900 = 11, + BAND_DCS1800 = 12, + BAND_PCS1900 = 13, + BAND_ER900 = 14, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/GsmBroadcastSmsConfigInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/GsmBroadcastSmsConfigInfo.aidl new file mode 100644 index 0000000000..e74845e250 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/GsmBroadcastSmsConfigInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable GsmBroadcastSmsConfigInfo { + int fromServiceId; + int toServiceId; + int fromCodeScheme; + int toCodeScheme; + boolean selected; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/GsmSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/GsmSignalStrength.aidl new file mode 100644 index 0000000000..5d3a6e1a32 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/GsmSignalStrength.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable GsmSignalStrength { + int signalStrength; + int bitErrorRate; + int timingAdvance; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/GsmSmsMessage.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/GsmSmsMessage.aidl new file mode 100644 index 0000000000..1b00b0f099 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/GsmSmsMessage.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable GsmSmsMessage { + String smscPdu; + String pdu; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/HardwareConfig.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/HardwareConfig.aidl new file mode 100644 index 0000000000..60ab5112fa --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/HardwareConfig.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable HardwareConfig { + int type; + String uuid; + int state; + android.hardware.radio.HardwareConfigModem[] modem; + android.hardware.radio.HardwareConfigSim[] sim; + const int STATE_ENABLED = 0; + const int STATE_STANDBY = 1; + const int STATE_DISABLED = 2; + const int TYPE_MODEM = 0; + const int TYPE_SIM = 1; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/HardwareConfigModem.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/HardwareConfigModem.aidl new file mode 100644 index 0000000000..08e12e6f25 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/HardwareConfigModem.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable HardwareConfigModem { + int rilModel; + int rat; + int maxVoice; + int maxData; + int maxStandby; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/HardwareConfigSim.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/HardwareConfigSim.aidl new file mode 100644 index 0000000000..8df23b4bcc --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/HardwareConfigSim.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable HardwareConfigSim { + String modemUuid; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/IRadio.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/IRadio.aidl new file mode 100644 index 0000000000..0bcbd55435 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/IRadio.aidl @@ -0,0 +1,196 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +interface IRadio { + oneway void acceptCall(in int serial); + oneway void acknowledgeIncomingGsmSmsWithPdu(in int serial, in boolean success, in String ackPdu); + oneway void acknowledgeLastIncomingCdmaSms(in int serial, in android.hardware.radio.CdmaSmsAck smsAck); + oneway void acknowledgeLastIncomingGsmSms(in int serial, in boolean success, in android.hardware.radio.SmsAcknowledgeFailCause cause); + oneway void allocatePduSessionId(in int serial); + oneway void areUiccApplicationsEnabled(in int serial); + oneway void cancelHandover(in int serial, in int callId); + oneway void cancelPendingUssd(in int serial); + oneway void changeIccPin2ForApp(in int serial, in String oldPin2, in String newPin2, in String aid); + oneway void changeIccPinForApp(in int serial, in String oldPin, in String newPin, in String aid); + oneway void conference(in int serial); + oneway void deactivateDataCall(in int serial, in int cid, in android.hardware.radio.DataRequestReason reason); + oneway void deleteSmsOnRuim(in int serial, in int index); + oneway void deleteSmsOnSim(in int serial, in int index); + oneway void dial(in int serial, in android.hardware.radio.Dial dialInfo); + oneway void emergencyDial(in int serial, in android.hardware.radio.Dial dialInfo, in android.hardware.radio.EmergencyServiceCategory categories, in String[] urns, in android.hardware.radio.EmergencyCallRouting routing, in boolean hasKnownUserIntentEmergency, in boolean isTesting); + oneway void enableModem(in int serial, in boolean on); + oneway void enableUiccApplications(in int serial, in boolean enable); + oneway void exitEmergencyCallbackMode(in int serial); + oneway void explicitCallTransfer(in int serial); + oneway void getAllowedCarriers(in int serial); + oneway void getAllowedNetworkTypesBitmap(in int serial); + oneway void getAvailableBandModes(in int serial); + oneway void getAvailableNetworks(in int serial); + oneway void getBarringInfo(in int serial); + oneway void getBasebandVersion(in int serial); + oneway void getCDMASubscription(in int serial); + oneway void getCallForwardStatus(in int serial, in android.hardware.radio.CallForwardInfo callInfo); + oneway void getCallWaiting(in int serial, in int serviceClass); + oneway void getCdmaBroadcastConfig(in int serial); + oneway void getCdmaRoamingPreference(in int serial); + oneway void getCdmaSubscriptionSource(in int serial); + oneway void getCellInfoList(in int serial); + oneway void getClip(in int serial); + oneway void getClir(in int serial); + oneway void getCurrentCalls(in int serial); + oneway void getDataCallList(in int serial); + oneway void getDataRegistrationState(in int serial); + oneway void getDeviceIdentity(in int serial); + oneway void getFacilityLockForApp(in int serial, in String facility, in String password, in int serviceClass, in String appId); + oneway void getGsmBroadcastConfig(in int serial); + oneway void getHardwareConfig(in int serial); + oneway void getIccCardStatus(in int serial); + oneway void getImsRegistrationState(in int serial); + oneway void getImsiForApp(in int serial, in String aid); + oneway void getLastCallFailCause(in int serial); + oneway void getModemActivityInfo(in int serial); + oneway void getModemStackStatus(in int serial); + oneway void getMute(in int serial); + oneway void getNeighboringCids(in int serial); + oneway void getNetworkSelectionMode(in int serial); + oneway void getOperator(in int serial); + oneway void getPreferredNetworkType(in int serial); + oneway void getPreferredNetworkTypeBitmap(in int serial); + oneway void getPreferredVoicePrivacy(in int serial); + oneway void getRadioCapability(in int serial); + oneway void getSignalStrength(in int serial); + oneway void getSimPhonebookCapacity(in int serial); + oneway void getSimPhonebookRecords(in int serial); + oneway void getSlicingConfig(in int serial); + oneway void getSmscAddress(in int serial); + oneway void getSystemSelectionChannels(in int serial); + oneway void getTTYMode(in int serial); + oneway void getVoiceRadioTechnology(in int serial); + oneway void getVoiceRegistrationState(in int serial); + oneway void handleStkCallSetupRequestFromSim(in int serial, in boolean accept); + oneway void hangup(in int serial, in int gsmIndex); + oneway void hangupForegroundResumeBackground(in int serial); + oneway void hangupWaitingOrBackground(in int serial); + oneway void iccCloseLogicalChannel(in int serial, in int channelId); + oneway void iccIOForApp(in int serial, in android.hardware.radio.IccIo iccIo); + oneway void iccOpenLogicalChannel(in int serial, in String aid, in int p2); + oneway void iccTransmitApduBasicChannel(in int serial, in android.hardware.radio.SimApdu message); + oneway void iccTransmitApduLogicalChannel(in int serial, in android.hardware.radio.SimApdu message); + oneway void isNrDualConnectivityEnabled(in int serial); + oneway void nvReadItem(in int serial, in android.hardware.radio.NvItem itemId); + oneway void nvResetConfig(in int serial, in android.hardware.radio.ResetNvType resetType); + oneway void nvWriteCdmaPrl(in int serial, in byte[] prl); + oneway void nvWriteItem(in int serial, in android.hardware.radio.NvWriteItem item); + oneway void rejectCall(in int serial); + oneway void releasePduSessionId(in int serial, in int id); + oneway void reportSmsMemoryStatus(in int serial, in boolean available); + oneway void reportStkServiceIsRunning(in int serial); + oneway void requestIccSimAuthentication(in int serial, in int authContext, in String authData, in String aid); + oneway void requestIsimAuthentication(in int serial, in String challenge); + oneway void requestShutdown(in int serial); + oneway void responseAcknowledgement(); + oneway void sendBurstDtmf(in int serial, in String dtmf, in int on, in int off); + oneway void sendCDMAFeatureCode(in int serial, in String featureCode); + oneway void sendCdmaSms(in int serial, in android.hardware.radio.CdmaSmsMessage sms); + oneway void sendCdmaSmsExpectMore(in int serial, in android.hardware.radio.CdmaSmsMessage sms); + oneway void sendDeviceState(in int serial, in android.hardware.radio.DeviceStateType deviceStateType, in boolean state); + oneway void sendDtmf(in int serial, in String s); + oneway void sendEnvelope(in int serial, in String command); + oneway void sendEnvelopeWithStatus(in int serial, in String contents); + oneway void sendImsSms(in int serial, in android.hardware.radio.ImsSmsMessage message); + oneway void sendSms(in int serial, in android.hardware.radio.GsmSmsMessage message); + oneway void sendSmsExpectMore(in int serial, in android.hardware.radio.GsmSmsMessage message); + oneway void sendTerminalResponseToSim(in int serial, in String commandResponse); + oneway void sendUssd(in int serial, in String ussd); + oneway void separateConnection(in int serial, in int gsmIndex); + oneway void setAllowedCarriers(in int serial, in android.hardware.radio.CarrierRestrictions carriers, in android.hardware.radio.SimLockMultiSimPolicy multiSimPolicy); + oneway void setAllowedNetworkTypesBitmap(in int serial, in android.hardware.radio.RadioAccessFamily networkTypeBitmap); + oneway void setBandMode(in int serial, in android.hardware.radio.RadioBandMode mode); + oneway void setBarringPassword(in int serial, in String facility, in String oldPassword, in String newPassword); + oneway void setCallForward(in int serial, in android.hardware.radio.CallForwardInfo callInfo); + oneway void setCallWaiting(in int serial, in boolean enable, in int serviceClass); + oneway void setCarrierInfoForImsiEncryption(in int serial, in android.hardware.radio.ImsiEncryptionInfo imsiEncryptionInfo); + oneway void setCdmaBroadcastActivation(in int serial, in boolean activate); + oneway void setCdmaBroadcastConfig(in int serial, in android.hardware.radio.CdmaBroadcastSmsConfigInfo[] configInfo); + oneway void setCdmaRoamingPreference(in int serial, in android.hardware.radio.CdmaRoamingType type); + oneway void setCdmaSubscriptionSource(in int serial, in android.hardware.radio.CdmaSubscriptionSource cdmaSub); + oneway void setCellInfoListRate(in int serial, in int rate); + oneway void setClir(in int serial, in int status); + oneway void setDataAllowed(in int serial, in boolean allow); + oneway void setDataProfile(in int serial, in android.hardware.radio.DataProfileInfo[] profiles); + oneway void setDataThrottling(in int serial, in android.hardware.radio.DataThrottlingAction dataThrottlingAction, in long completionDurationMillis); + oneway void setFacilityLockForApp(in int serial, in String facility, in boolean lockState, in String password, in int serviceClass, in String appId); + oneway void setGsmBroadcastActivation(in int serial, in boolean activate); + oneway void setGsmBroadcastConfig(in int serial, in android.hardware.radio.GsmBroadcastSmsConfigInfo[] configInfo); + oneway void setIndicationFilter(in int serial, in android.hardware.radio.IndicationFilter indicationFilter); + oneway void setInitialAttachApn(in int serial, in android.hardware.radio.DataProfileInfo dataProfileInfo); + oneway void setLinkCapacityReportingCriteria(in int serial, in int hysteresisMs, in int hysteresisDlKbps, in int hysteresisUlKbps, in int[] thresholdsDownlinkKbps, in int[] thresholdsUplinkKbps, in android.hardware.radio.AccessNetwork accessNetwork); + oneway void setLocationUpdates(in int serial, in boolean enable); + oneway void setMute(in int serial, in boolean enable); + oneway void setNetworkSelectionModeAutomatic(in int serial); + oneway void setNetworkSelectionModeManual(in int serial, in String operatorNumeric, in android.hardware.radio.RadioAccessNetworks ran); + oneway void setNrDualConnectivityState(in int serial, in android.hardware.radio.NrDualConnectivityState nrDualConnectivityState); + oneway void setPreferredNetworkType(in int serial, in android.hardware.radio.PreferredNetworkType nwType); + oneway void setPreferredNetworkTypeBitmap(in int serial, in android.hardware.radio.RadioAccessFamily networkTypeBitmap); + oneway void setPreferredVoicePrivacy(in int serial, in boolean enable); + oneway void setRadioCapability(in int serial, in android.hardware.radio.RadioCapability rc); + oneway void setRadioPower(in int serial, in boolean powerOn, in boolean forEmergencyCall, in boolean preferredForEmergencyCall); + oneway void setResponseFunctions(in android.hardware.radio.IRadioResponse radioResponse, in android.hardware.radio.IRadioIndication radioIndication); + oneway void setSignalStrengthReportingCriteria(in int serial, in android.hardware.radio.SignalThresholdInfo signalThresholdInfo, in android.hardware.radio.AccessNetwork accessNetwork); + oneway void setSimCardPower(in int serial, in android.hardware.radio.CardPowerState powerUp); + oneway void setSmscAddress(in int serial, in String smsc); + oneway void setSuppServiceNotifications(in int serial, in boolean enable); + oneway void setSystemSelectionChannels(in int serial, in boolean specifyChannels, in android.hardware.radio.RadioAccessSpecifier[] specifiers); + oneway void setTTYMode(in int serial, in android.hardware.radio.TtyMode mode); + oneway void setUiccSubscription(in int serial, in android.hardware.radio.SelectUiccSub uiccSub); + oneway void setupDataCall(in int serial, in android.hardware.radio.AccessNetwork accessNetwork, in android.hardware.radio.DataProfileInfo dataProfileInfo, in boolean roamingAllowed, in android.hardware.radio.DataRequestReason reason, in android.hardware.radio.LinkAddress[] addresses, in String[] dnses, in int pduSessionId, in @nullable android.hardware.radio.SliceInfo sliceInfo, in @nullable android.hardware.radio.TrafficDescriptor trafficDescriptor, in boolean matchAllRuleAllowed); + oneway void startDtmf(in int serial, in String s); + oneway void startHandover(in int serial, in int callId); + oneway void startKeepalive(in int serial, in android.hardware.radio.KeepaliveRequest keepalive); + oneway void startNetworkScan(in int serial, in android.hardware.radio.NetworkScanRequest request); + oneway void stopDtmf(in int serial); + oneway void stopKeepalive(in int serial, in int sessionHandle); + oneway void stopNetworkScan(in int serial); + oneway void supplyIccPin2ForApp(in int serial, in String pin2, in String aid); + oneway void supplyIccPinForApp(in int serial, in String pin, in String aid); + oneway void supplyIccPuk2ForApp(in int serial, in String puk2, in String pin2, in String aid); + oneway void supplyIccPukForApp(in int serial, in String puk, in String pin, in String aid); + oneway void supplyNetworkDepersonalization(in int serial, in String netPin); + oneway void supplySimDepersonalization(in int serial, in android.hardware.radio.PersoSubstate persoType, in String controlKey); + oneway void switchWaitingOrHoldingAndActive(in int serial); + oneway void updateSimPhonebookRecords(in int serial, in android.hardware.radio.PhonebookRecordInfo recordInfo); + oneway void writeSmsToRuim(in int serial, in android.hardware.radio.CdmaSmsWriteArgs cdmaSms); + oneway void writeSmsToSim(in int serial, in android.hardware.radio.SmsWriteArgs smsWriteArgs); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/IRadioIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/IRadioIndication.aidl new file mode 100644 index 0000000000..48e9e3ec3e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/IRadioIndication.aidl @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +interface IRadioIndication { + oneway void barringInfoChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.CellIdentity cellIdentity, in android.hardware.radio.BarringInfo[] barringInfos); + oneway void callRing(in android.hardware.radio.RadioIndicationType type, in boolean isGsm, in android.hardware.radio.CdmaSignalInfoRecord record); + oneway void callStateChanged(in android.hardware.radio.RadioIndicationType type); + oneway void carrierInfoForImsiEncryption(in android.hardware.radio.RadioIndicationType info); + oneway void cdmaCallWaiting(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.CdmaCallWaiting callWaitingRecord); + oneway void cdmaInfoRec(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.CdmaInformationRecords records); + oneway void cdmaNewSms(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.CdmaSmsMessage msg); + oneway void cdmaOtaProvisionStatus(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.CdmaOtaProvisionStatus status); + oneway void cdmaPrlChanged(in android.hardware.radio.RadioIndicationType type, in int version); + oneway void cdmaRuimSmsStorageFull(in android.hardware.radio.RadioIndicationType type); + oneway void cdmaSubscriptionSourceChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.CdmaSubscriptionSource cdmaSource); + oneway void cellInfoList(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.CellInfo[] records); + oneway void currentEmergencyNumberList(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.EmergencyNumber[] emergencyNumberList); + oneway void currentLinkCapacityEstimate(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.LinkCapacityEstimate lce); + oneway void currentPhysicalChannelConfigs(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.PhysicalChannelConfig[] configs); + oneway void currentSignalStrength(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.SignalStrength signalStrength); + oneway void dataCallListChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.SetupDataCallResult[] dcList); + oneway void enterEmergencyCallbackMode(in android.hardware.radio.RadioIndicationType type); + oneway void exitEmergencyCallbackMode(in android.hardware.radio.RadioIndicationType type); + oneway void hardwareConfigChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.HardwareConfig[] configs); + oneway void imsNetworkStateChanged(in android.hardware.radio.RadioIndicationType type); + oneway void indicateRingbackTone(in android.hardware.radio.RadioIndicationType type, in boolean start); + oneway void keepaliveStatus(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.KeepaliveStatus status); + oneway void lceData(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.LceDataInfo lce); + oneway void modemReset(in android.hardware.radio.RadioIndicationType type, in String reason); + oneway void networkScanResult(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.NetworkScanResult result); + oneway void networkStateChanged(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); + oneway void newSmsOnSim(in android.hardware.radio.RadioIndicationType type, in int recordNumber); + oneway void newSmsStatusReport(in android.hardware.radio.RadioIndicationType type, in byte[] pdu); + oneway void nitzTimeReceived(in android.hardware.radio.RadioIndicationType type, in String nitzTime, in long receivedTime); + oneway void onSupplementaryServiceIndication(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.StkCcUnsolSsResult ss); + oneway void onUssd(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.UssdModeType modeType, in String msg); + oneway void pcoData(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.PcoDataInfo pco); + oneway void radioCapabilityIndication(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.RadioCapability rc); + oneway void radioStateChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.RadioState radioState); + oneway void registrationFailed(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.CellIdentity cellIdentity, in String chosenPlmn, in android.hardware.radio.Domain domain, in int causeCode, in int additionalCauseCode); + oneway void resendIncallMute(in android.hardware.radio.RadioIndicationType type); + oneway void restrictedStateChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.PhoneRestrictedState state); + oneway void rilConnected(in android.hardware.radio.RadioIndicationType type); + oneway void simPhonebookChanged(in android.hardware.radio.RadioIndicationType type); + oneway void simPhonebookRecordsReceived(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.PbReceivedStatus status, in android.hardware.radio.PhonebookRecordInfo[] records); + oneway void simRefresh(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.SimRefreshResult refreshResult); + oneway void simSmsStorageFull(in android.hardware.radio.RadioIndicationType type); + oneway void simStatusChanged(in android.hardware.radio.RadioIndicationType type); + oneway void srvccStateNotify(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.SrvccState state); + oneway void stkCallControlAlphaNotify(in android.hardware.radio.RadioIndicationType type, in String alpha); + oneway void stkCallSetup(in android.hardware.radio.RadioIndicationType type, in long timeout); + oneway void stkEventNotify(in android.hardware.radio.RadioIndicationType type, in String cmd); + oneway void stkProactiveCommand(in android.hardware.radio.RadioIndicationType type, in String cmd); + oneway void stkSessionEnd(in android.hardware.radio.RadioIndicationType type); + oneway void subscriptionStatusChanged(in android.hardware.radio.RadioIndicationType type, in boolean activate); + oneway void suppSvcNotify(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.SuppSvcNotification suppSvc); + oneway void uiccApplicationsEnablementChanged(in android.hardware.radio.RadioIndicationType type, in boolean enabled); + oneway void unthrottleApn(in android.hardware.radio.RadioIndicationType type, in String apn); + oneway void voiceRadioTechChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.RadioTechnology rat); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/IRadioResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/IRadioResponse.aidl new file mode 100644 index 0000000000..0d18cf8aaa --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/IRadioResponse.aidl @@ -0,0 +1,199 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +interface IRadioResponse { + oneway void acceptCallResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void acknowledgeIncomingGsmSmsWithPduResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void acknowledgeLastIncomingCdmaSmsResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void acknowledgeLastIncomingGsmSmsResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void acknowledgeRequest(in int serial); + oneway void allocatePduSessionIdResponse(in android.hardware.radio.RadioResponseInfo info, in int id); + oneway void areUiccApplicationsEnabledResponse(in android.hardware.radio.RadioResponseInfo info, in boolean enabled); + oneway void cancelHandoverResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void cancelPendingUssdResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void changeIccPin2ForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries); + oneway void changeIccPinForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries); + oneway void conferenceResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void deactivateDataCallResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void deleteSmsOnRuimResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void deleteSmsOnSimResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void dialResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void emergencyDialResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void enableModemResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void enableUiccApplicationsResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void exitEmergencyCallbackModeResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void explicitCallTransferResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void getAllowedCarriersResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.CarrierRestrictions carriers, in android.hardware.radio.SimLockMultiSimPolicy multiSimPolicy); + oneway void getAllowedNetworkTypesBitmapResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.RadioAccessFamily networkTypeBitmap); + oneway void getAvailableBandModesResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.RadioBandMode[] bandModes); + oneway void getAvailableNetworksResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.OperatorInfo[] networkInfos); + oneway void getBarringInfoResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.CellIdentity cellIdentity, in android.hardware.radio.BarringInfo[] barringInfos); + oneway void getBasebandVersionResponse(in android.hardware.radio.RadioResponseInfo info, in String version); + oneway void getCDMASubscriptionResponse(in android.hardware.radio.RadioResponseInfo info, in String mdn, in String hSid, in String hNid, in String min, in String prl); + oneway void getCallForwardStatusResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.CallForwardInfo[] callForwardInfos); + oneway void getCallWaitingResponse(in android.hardware.radio.RadioResponseInfo info, in boolean enable, in int serviceClass); + oneway void getCdmaBroadcastConfigResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.CdmaBroadcastSmsConfigInfo[] configs); + oneway void getCdmaRoamingPreferenceResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.CdmaRoamingType type); + oneway void getCdmaSubscriptionSourceResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.CdmaSubscriptionSource source); + oneway void getCellInfoListResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.CellInfo[] cellInfo); + oneway void getClipResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.ClipStatus status); + oneway void getClirResponse(in android.hardware.radio.RadioResponseInfo info, in int n, in int m); + oneway void getCurrentCallsResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.Call[] calls); + oneway void getDataCallListResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.SetupDataCallResult[] dcResponse); + oneway void getDataRegistrationStateResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.RegStateResult dataRegResponse); + oneway void getDeviceIdentityResponse(in android.hardware.radio.RadioResponseInfo info, in String imei, in String imeisv, in String esn, in String meid); + oneway void getFacilityLockForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int response); + oneway void getGsmBroadcastConfigResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.GsmBroadcastSmsConfigInfo[] configs); + oneway void getHardwareConfigResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.HardwareConfig[] config); + oneway void getIMSIForAppResponse(in android.hardware.radio.RadioResponseInfo info, in String imsi); + oneway void getIccCardStatusResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.CardStatus cardStatus); + oneway void getImsRegistrationStateResponse(in android.hardware.radio.RadioResponseInfo info, in boolean isRegistered, in android.hardware.radio.RadioTechnologyFamily ratFamily); + oneway void getLastCallFailCauseResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.LastCallFailCauseInfo failCauseinfo); + oneway void getModemActivityInfoResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.ActivityStatsInfo activityInfo); + oneway void getModemStackStatusResponse(in android.hardware.radio.RadioResponseInfo info, in boolean isEnabled); + oneway void getMuteResponse(in android.hardware.radio.RadioResponseInfo info, in boolean enable); + oneway void getNeighboringCidsResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.NeighboringCell[] cells); + oneway void getNetworkSelectionModeResponse(in android.hardware.radio.RadioResponseInfo info, in boolean manual); + oneway void getOperatorResponse(in android.hardware.radio.RadioResponseInfo info, in String longName, in String shortName, in String numeric); + oneway void getPreferredNetworkTypeBitmapResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.RadioAccessFamily networkTypeBitmap); + oneway void getPreferredNetworkTypeResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.PreferredNetworkType nwType); + oneway void getPreferredVoicePrivacyResponse(in android.hardware.radio.RadioResponseInfo info, in boolean enable); + oneway void getRadioCapabilityResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.RadioCapability rc); + oneway void getSignalStrengthResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.SignalStrength signalStrength); + oneway void getSimPhonebookCapacityResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.PhonebookCapacity capacity); + oneway void getSimPhonebookRecordsResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void getSlicingConfigResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.SlicingConfig slicingConfig); + oneway void getSmscAddressResponse(in android.hardware.radio.RadioResponseInfo info, in String smsc); + oneway void getSystemSelectionChannelsResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.RadioAccessSpecifier[] specifiers); + oneway void getTTYModeResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.TtyMode mode); + oneway void getVoiceRadioTechnologyResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.RadioTechnology rat); + oneway void getVoiceRegistrationStateResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.RegStateResult voiceRegResponse); + oneway void handleStkCallSetupRequestFromSimResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void hangupConnectionResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void hangupForegroundResumeBackgroundResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void hangupWaitingOrBackgroundResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void iccCloseLogicalChannelResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void iccIOForAppResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.IccIoResult iccIo); + oneway void iccOpenLogicalChannelResponse(in android.hardware.radio.RadioResponseInfo info, in int channelId, in byte[] selectResponse); + oneway void iccTransmitApduBasicChannelResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.IccIoResult result); + oneway void iccTransmitApduLogicalChannelResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.IccIoResult result); + oneway void isNrDualConnectivityEnabledResponse(in android.hardware.radio.RadioResponseInfo info, in boolean isEnabled); + oneway void nvReadItemResponse(in android.hardware.radio.RadioResponseInfo info, in String result); + oneway void nvResetConfigResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void nvWriteCdmaPrlResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void nvWriteItemResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void pullLceDataResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.LceDataInfo lceInfo); + oneway void rejectCallResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void releasePduSessionIdResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void reportSmsMemoryStatusResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void reportStkServiceIsRunningResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void requestIccSimAuthenticationResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.IccIoResult result); + oneway void requestIsimAuthenticationResponse(in android.hardware.radio.RadioResponseInfo info, in String response); + oneway void requestShutdownResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void sendBurstDtmfResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void sendCDMAFeatureCodeResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void sendCdmaSmsExpectMoreResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.SendSmsResult sms); + oneway void sendCdmaSmsResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.SendSmsResult sms); + oneway void sendDeviceStateResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void sendDtmfResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void sendEnvelopeResponse(in android.hardware.radio.RadioResponseInfo info, in String commandResponse); + oneway void sendEnvelopeWithStatusResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.IccIoResult iccIo); + oneway void sendImsSmsResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.SendSmsResult sms); + oneway void sendSMSExpectMoreResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.SendSmsResult sms); + oneway void sendSmsExpectMoreResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.SendSmsResult sms); + oneway void sendSmsResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.SendSmsResult sms); + oneway void sendTerminalResponseToSimResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void sendUssdResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void separateConnectionResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setAllowedCarriersResponse(in android.hardware.radio.RadioResponseInfo info); + 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); + oneway void setCallForwardResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setCallWaitingResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setCarrierInfoForImsiEncryptionResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setCdmaBroadcastActivationResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setCdmaBroadcastConfigResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setCdmaRoamingPreferenceResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setCdmaSubscriptionSourceResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setCellInfoListRateResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setClirResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setDataAllowedResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setDataProfileResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setDataThrottlingResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setFacilityLockForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int retry); + oneway void setGsmBroadcastActivationResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setGsmBroadcastConfigResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setIndicationFilterResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setInitialAttachApnResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setLinkCapacityReportingCriteriaResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setLocationUpdatesResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setMuteResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setNetworkSelectionModeAutomaticResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setNetworkSelectionModeManualResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setNrDualConnectivityStateResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setPreferredNetworkTypeBitmapResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setPreferredNetworkTypeResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setPreferredVoicePrivacyResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setRadioCapabilityResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.RadioCapability rc); + oneway void setRadioPowerResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setSignalStrengthReportingCriteriaResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setSimCardPowerResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setSmscAddressResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setSuppServiceNotificationsResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setSystemSelectionChannelsResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setTTYModeResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setUiccSubscriptionResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setupDataCallResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.SetupDataCallResult dcResponse); + oneway void startDtmfResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void startHandoverResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void startKeepaliveResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.KeepaliveStatus status); + oneway void startLceServiceResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.LceStatusInfo statusInfo); + oneway void startNetworkScanResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void stopDtmfResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void stopKeepaliveResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void stopLceServiceResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.LceStatusInfo statusInfo); + oneway void stopNetworkScanResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void supplyIccPin2ForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries); + oneway void supplyIccPinForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries); + oneway void supplyIccPuk2ForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries); + oneway void supplyIccPukForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries); + oneway void supplyNetworkDepersonalizationResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries); + oneway void supplySimDepersonalizationResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.PersoSubstate persoType, in int remainingRetries); + oneway void switchWaitingOrHoldingAndActiveResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void updateSimPhonebookRecordsResponse(in android.hardware.radio.RadioResponseInfo info, in int updatedRecordIndex); + 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/current/android/hardware/radio/ISap.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ISap.aidl new file mode 100644 index 0000000000..2a111c681c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ISap.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +interface ISap { + oneway void apduReq(in int token, in android.hardware.radio.SapApduType type, in byte[] command); + oneway void connectReq(in int token, in int maxMsgSize); + oneway void disconnectReq(in int token); + oneway void powerReq(in int token, in boolean state); + oneway void resetSimReq(in int token); + oneway void setCallback(in android.hardware.radio.ISapCallback sapCallback); + oneway void setTransferProtocolReq(in int token, in android.hardware.radio.SapTransferProtocol transferProtocol); + oneway void transferAtrReq(in int token); + oneway void transferCardReaderStatusReq(in int token); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ISapCallback.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ISapCallback.aidl new file mode 100644 index 0000000000..5ae0392c29 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ISapCallback.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +interface ISapCallback { + oneway void apduResponse(in int token, in android.hardware.radio.SapResultCode resultCode, in byte[] apduRsp); + oneway void connectResponse(in int token, in android.hardware.radio.SapConnectRsp sapConnectRsp, in int maxMsgSize); + oneway void disconnectIndication(in int token, in android.hardware.radio.SapDisconnectType disconnectType); + oneway void disconnectResponse(in int token); + oneway void errorResponse(in int token); + oneway void powerResponse(in int token, in android.hardware.radio.SapResultCode resultCode); + oneway void resetSimResponse(in int token, in android.hardware.radio.SapResultCode resultCode); + oneway void statusIndication(in int token, in android.hardware.radio.SapStatus status); + oneway void transferAtrResponse(in int token, in android.hardware.radio.SapResultCode resultCode, in byte[] atr); + oneway void transferCardReaderStatusResponse(in int token, in android.hardware.radio.SapResultCode resultCode, in int cardReaderStatus); + oneway void transferProtocolResponse(in int token, in android.hardware.radio.SapResultCode resultCode); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/IccIo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/IccIo.aidl new file mode 100644 index 0000000000..1bea23a438 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/IccIo.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable IccIo { + int command; + int fileId; + String path; + int p1; + int p2; + int p3; + String data; + String pin2; + String aid; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/IccIoResult.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/IccIoResult.aidl new file mode 100644 index 0000000000..50b1e9e68f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/IccIoResult.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable IccIoResult { + int sw1; + int sw2; + String simResponse; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ImsSmsMessage.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ImsSmsMessage.aidl new file mode 100644 index 0000000000..b5ffcc6474 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ImsSmsMessage.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable ImsSmsMessage { + android.hardware.radio.RadioTechnologyFamily tech; + boolean retry; + int messageRef; + android.hardware.radio.CdmaSmsMessage[] cdmaMessage; + android.hardware.radio.GsmSmsMessage[] gsmMessage; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ImsiEncryptionInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ImsiEncryptionInfo.aidl new file mode 100644 index 0000000000..fb85eca34a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ImsiEncryptionInfo.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable ImsiEncryptionInfo { + String mcc; + String mnc; + byte[] carrierKey; + String keyIdentifier; + long expirationTime; + byte keyType; + const byte PUBLIC_KEY_TYPE_EPDG = 1; + const byte PUBLIC_KEY_TYPE_WLAN = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/IndicationFilter.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/IndicationFilter.aidl new file mode 100644 index 0000000000..629af68d64 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/IndicationFilter.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum IndicationFilter { + NONE = 0, + ALL = -1, + SIGNAL_STRENGTH = 1, + FULL_NETWORK_STATE = 2, + DATA_CALL_DORMANCY_CHANGED = 4, + LINK_CAPACITY_ESTIMATE = 8, + PHYSICAL_CHANNEL_CONFIG = 16, + REGISTRATION_FAILURE = 32, + BARRING_INFO = 64, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/KeepaliveRequest.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/KeepaliveRequest.aidl new file mode 100644 index 0000000000..1aeeb55e82 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/KeepaliveRequest.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable KeepaliveRequest { + int type; + byte[] sourceAddress; + int sourcePort; + byte[] destinationAddress; + int destinationPort; + int maxKeepaliveIntervalMillis; + int cid; + const int TYPE_NATT_IPV4 = 0; + const int TYPE_NATT_IPV6 = 1; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/KeepaliveStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/KeepaliveStatus.aidl new file mode 100644 index 0000000000..3c7a73609f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/KeepaliveStatus.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable KeepaliveStatus { + int sessionHandle; + int code; + const int CODE_ACTIVE = 0; + const int CODE_INACTIVE = 1; + const int CODE_PENDING = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LastCallFailCause.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LastCallFailCause.aidl new file mode 100644 index 0000000000..024f7ead24 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LastCallFailCause.aidl @@ -0,0 +1,133 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum LastCallFailCause { + UNOBTAINABLE_NUMBER = 1, + NO_ROUTE_TO_DESTINATION = 3, + CHANNEL_UNACCEPTABLE = 6, + OPERATOR_DETERMINED_BARRING = 8, + NORMAL = 16, + BUSY = 17, + NO_USER_RESPONDING = 18, + NO_ANSWER_FROM_USER = 19, + CALL_REJECTED = 21, + NUMBER_CHANGED = 22, + PREEMPTION = 25, + DESTINATION_OUT_OF_ORDER = 27, + INVALID_NUMBER_FORMAT = 28, + FACILITY_REJECTED = 29, + RESP_TO_STATUS_ENQUIRY = 30, + NORMAL_UNSPECIFIED = 31, + CONGESTION = 34, + NETWORK_OUT_OF_ORDER = 38, + TEMPORARY_FAILURE = 41, + SWITCHING_EQUIPMENT_CONGESTION = 42, + ACCESS_INFORMATION_DISCARDED = 43, + REQUESTED_CIRCUIT_OR_CHANNEL_NOT_AVAILABLE = 44, + RESOURCES_UNAVAILABLE_OR_UNSPECIFIED = 47, + QOS_UNAVAILABLE = 49, + REQUESTED_FACILITY_NOT_SUBSCRIBED = 50, + INCOMING_CALLS_BARRED_WITHIN_CUG = 55, + BEARER_CAPABILITY_NOT_AUTHORIZED = 57, + BEARER_CAPABILITY_UNAVAILABLE = 58, + SERVICE_OPTION_NOT_AVAILABLE = 63, + BEARER_SERVICE_NOT_IMPLEMENTED = 65, + ACM_LIMIT_EXCEEDED = 68, + REQUESTED_FACILITY_NOT_IMPLEMENTED = 69, + ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE = 70, + SERVICE_OR_OPTION_NOT_IMPLEMENTED = 79, + INVALID_TRANSACTION_IDENTIFIER = 81, + USER_NOT_MEMBER_OF_CUG = 87, + INCOMPATIBLE_DESTINATION = 88, + INVALID_TRANSIT_NW_SELECTION = 91, + SEMANTICALLY_INCORRECT_MESSAGE = 95, + INVALID_MANDATORY_INFORMATION = 96, + MESSAGE_TYPE_NON_IMPLEMENTED = 97, + MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98, + INFORMATION_ELEMENT_NON_EXISTENT = 99, + CONDITIONAL_IE_ERROR = 100, + MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101, + RECOVERY_ON_TIMER_EXPIRED = 102, + PROTOCOL_ERROR_UNSPECIFIED = 111, + INTERWORKING_UNSPECIFIED = 127, + CALL_BARRED = 240, + FDN_BLOCKED = 241, + IMSI_UNKNOWN_IN_VLR = 242, + IMEI_NOT_ACCEPTED = 243, + DIAL_MODIFIED_TO_USSD = 244, + DIAL_MODIFIED_TO_SS = 245, + DIAL_MODIFIED_TO_DIAL = 246, + RADIO_OFF = 247, + OUT_OF_SERVICE = 248, + NO_VALID_SIM = 249, + RADIO_INTERNAL_ERROR = 250, + NETWORK_RESP_TIMEOUT = 251, + NETWORK_REJECT = 252, + RADIO_ACCESS_FAILURE = 253, + RADIO_LINK_FAILURE = 254, + RADIO_LINK_LOST = 255, + RADIO_UPLINK_FAILURE = 256, + RADIO_SETUP_FAILURE = 257, + RADIO_RELEASE_NORMAL = 258, + RADIO_RELEASE_ABNORMAL = 259, + ACCESS_CLASS_BLOCKED = 260, + NETWORK_DETACH = 261, + CDMA_LOCKED_UNTIL_POWER_CYCLE = 1000, + CDMA_DROP = 1001, + CDMA_INTERCEPT = 1002, + CDMA_REORDER = 1003, + CDMA_SO_REJECT = 1004, + CDMA_RETRY_ORDER = 1005, + CDMA_ACCESS_FAILURE = 1006, + CDMA_PREEMPTED = 1007, + CDMA_NOT_EMERGENCY = 1008, + CDMA_ACCESS_BLOCKED = 1009, + OEM_CAUSE_1 = 61441, + OEM_CAUSE_2 = 61442, + OEM_CAUSE_3 = 61443, + OEM_CAUSE_4 = 61444, + OEM_CAUSE_5 = 61445, + OEM_CAUSE_6 = 61446, + OEM_CAUSE_7 = 61447, + OEM_CAUSE_8 = 61448, + OEM_CAUSE_9 = 61449, + OEM_CAUSE_10 = 61450, + OEM_CAUSE_11 = 61451, + OEM_CAUSE_12 = 61452, + OEM_CAUSE_13 = 61453, + OEM_CAUSE_14 = 61454, + OEM_CAUSE_15 = 61455, + ERROR_UNSPECIFIED = 65535, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LastCallFailCauseInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LastCallFailCauseInfo.aidl new file mode 100644 index 0000000000..43ef0cd01b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LastCallFailCauseInfo.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable LastCallFailCauseInfo { + android.hardware.radio.LastCallFailCause causeCode; + String vendorCause; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LceDataInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LceDataInfo.aidl new file mode 100644 index 0000000000..64c63674c6 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LceDataInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable LceDataInfo { + int lastHopCapacityKbps; + byte confidenceLevel; + boolean lceSuspended; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LceStatusInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LceStatusInfo.aidl new file mode 100644 index 0000000000..74166c384b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LceStatusInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable LceStatusInfo { + int lceStatus; + byte actualIntervalMs; + const int LCE_STATUS_NOT_SUPPORTED = 0; + const int LCE_STATUS_STOPPED = 1; + const int LCE_STATUS_ACTIVE = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LinkAddress.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LinkAddress.aidl new file mode 100644 index 0000000000..bdeb9b8a3a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LinkAddress.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable LinkAddress { + String address; + int addressProperties; + long deprecationTime; + long expirationTime; + const int ADDRESS_PROPERTY_NONE = 0; + const int ADDRESS_PROPERTY_DEPRECATED = 32; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LinkCapacityEstimate.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LinkCapacityEstimate.aidl new file mode 100644 index 0000000000..d2a5c83a3c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LinkCapacityEstimate.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable LinkCapacityEstimate { + int downlinkCapacityKbps; + int uplinkCapacityKbps; + int secondaryDownlinkCapacityKbps; + int secondaryUplinkCapacityKbps; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LteSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LteSignalStrength.aidl new file mode 100644 index 0000000000..28840bccef --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LteSignalStrength.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable LteSignalStrength { + int signalStrength; + int rsrp; + int rsrq; + int rssnr; + int cqi; + int timingAdvance; + int cqiTableIndex; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LteVopsInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LteVopsInfo.aidl new file mode 100644 index 0000000000..b28c415c3e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LteVopsInfo.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable LteVopsInfo { + boolean isVopsSupported; + boolean isEmcBearerSupported; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NeighboringCell.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NeighboringCell.aidl new file mode 100644 index 0000000000..89d7818fe8 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NeighboringCell.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable NeighboringCell { + String cid; + int rssi; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NetworkScanRequest.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NetworkScanRequest.aidl new file mode 100644 index 0000000000..992ac48321 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NetworkScanRequest.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable NetworkScanRequest { + int type; + int interval; + android.hardware.radio.RadioAccessSpecifier[] specifiers; + int maxSearchTime; + boolean incrementalResults; + int incrementalResultsPeriodicity; + String[] mccMncs; + const int INCREMENTAL_RESULTS_PREIODICITY_RANGE_MIN = 1; + const int INCREMENTAL_RESULTS_PREIODICITY_RANGE_MAX = 10; + const int MAX_SEARCH_TIME_RANGE_MIN = 60; + const int MAX_SEARCH_TIME_RANGE_MAX = 3600; + const int SCAN_INTERVAL_RANGE_MIN = 5; + const int SCAN_INTERVAL_RANGE_MAX = 300; + const int SCAN_TYPE_ONE_SHOT = 0; + const int SCAN_TYPE_PERIODIC = 1; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NetworkScanResult.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NetworkScanResult.aidl new file mode 100644 index 0000000000..670c17317d --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NetworkScanResult.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable NetworkScanResult { + int status; + android.hardware.radio.RadioError error; + android.hardware.radio.CellInfo[] networkInfos; + const int SCAN_STATUS_PARTIAL = 1; + const int SCAN_STATUS_COMPLETE = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NgranBands.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NgranBands.aidl new file mode 100644 index 0000000000..14db49b1ec --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NgranBands.aidl @@ -0,0 +1,90 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum NgranBands { + BAND_1 = 1, + BAND_2 = 2, + BAND_3 = 3, + BAND_5 = 5, + BAND_7 = 7, + BAND_8 = 8, + BAND_12 = 12, + BAND_14 = 14, + BAND_18 = 18, + BAND_20 = 20, + BAND_25 = 25, + BAND_26 = 26, + BAND_28 = 28, + BAND_29 = 29, + BAND_30 = 30, + BAND_34 = 34, + BAND_38 = 38, + BAND_39 = 39, + BAND_40 = 40, + BAND_41 = 41, + BAND_46 = 46, + BAND_48 = 48, + BAND_50 = 50, + BAND_51 = 51, + BAND_53 = 53, + BAND_65 = 65, + BAND_66 = 66, + BAND_70 = 70, + BAND_71 = 71, + BAND_74 = 74, + BAND_75 = 75, + BAND_76 = 76, + BAND_77 = 77, + BAND_78 = 78, + BAND_79 = 79, + BAND_80 = 80, + BAND_81 = 81, + BAND_82 = 82, + BAND_83 = 83, + BAND_84 = 84, + BAND_86 = 86, + BAND_89 = 89, + BAND_90 = 90, + BAND_91 = 91, + BAND_92 = 92, + BAND_93 = 93, + BAND_94 = 94, + BAND_95 = 95, + BAND_96 = 96, + BAND_257 = 257, + BAND_258 = 258, + BAND_260 = 260, + BAND_261 = 261, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NrDualConnectivityState.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NrDualConnectivityState.aidl new file mode 100644 index 0000000000..c3fb9f2fd8 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NrDualConnectivityState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="byte") @VintfStability +enum NrDualConnectivityState { + ENABLE = 1, + DISABLE = 2, + DISABLE_IMMEDIATE = 3, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NrIndicators.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NrIndicators.aidl new file mode 100644 index 0000000000..81dc51c36e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NrIndicators.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable NrIndicators { + boolean isEndcAvailable; + boolean isDcNrRestricted; + boolean isNrAvailable; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NrQos.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NrQos.aidl new file mode 100644 index 0000000000..a40dda8969 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NrQos.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable NrQos { + int fiveQi; + android.hardware.radio.QosBandwidth downlink; + android.hardware.radio.QosBandwidth uplink; + byte qfi; + char averagingWindowMs; + const byte FLOW_ID_RANGE_MIN = 1; + const byte FLOW_ID_RANGE_MAX = 63; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NrSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NrSignalStrength.aidl new file mode 100644 index 0000000000..daf6a418ff --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NrSignalStrength.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable NrSignalStrength { + int ssRsrp; + int ssRsrq; + int ssSinr; + int csiRsrp; + int csiRsrq; + int csiSinr; + int csiCqiTableIndex; + byte[] csiCqiReport; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NrVopsInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NrVopsInfo.aidl new file mode 100644 index 0000000000..52abce6791 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NrVopsInfo.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable NrVopsInfo { + byte vopsSupported; + byte emcSupported; + byte emfSupported; + const byte EMC_INDICATOR_NOT_SUPPORTED = 0; + const byte EMC_INDICATOR_NR_CONNECTED_TO_5GCN = 1; + const byte EMC_INDICATOR_EUTRA_CONNECTED_TO_5GCN = 2; + const byte EMC_INDICATOR_BOTH_NR_EUTRA_CONNECTED_TO_5GCN = 3; + const byte EMF_INDICATOR_NOT_SUPPORTED = 0; + const byte EMF_INDICATOR_NR_CONNECTED_TO_5GCN = 1; + const byte EMF_INDICATOR_EUTRA_CONNECTED_TO_5GCN = 2; + const byte EMF_INDICATOR_BOTH_NR_EUTRA_CONNECTED_TO_5GCN = 3; + const byte VOPS_INDICATOR_VOPS_NOT_SUPPORTED = 0; + const byte VOPS_INDICATOR_VOPS_OVER_3GPP = 1; + const byte VOPS_INDICATOR_VOPS_OVER_NON_3GPP = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NvItem.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NvItem.aidl new file mode 100644 index 0000000000..d7706c5dc2 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NvItem.aidl @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum NvItem { + CDMA_MEID = 1, + CDMA_MIN = 2, + CDMA_MDN = 3, + CDMA_ACCOLC = 4, + DEVICE_MSL = 11, + RTN_RECONDITIONED_STATUS = 12, + RTN_ACTIVATION_DATE = 13, + RTN_LIFE_TIMER = 14, + RTN_LIFE_CALLS = 15, + RTN_LIFE_DATA_TX = 16, + RTN_LIFE_DATA_RX = 17, + OMADM_HFA_LEVEL = 18, + MIP_PROFILE_NAI = 31, + MIP_PROFILE_HOME_ADDRESS = 32, + MIP_PROFILE_AAA_AUTH = 33, + MIP_PROFILE_HA_AUTH = 34, + MIP_PROFILE_PRI_HA_ADDR = 35, + MIP_PROFILE_SEC_HA_ADDR = 36, + MIP_PROFILE_REV_TUN_PREF = 37, + MIP_PROFILE_HA_SPI = 38, + MIP_PROFILE_AAA_SPI = 39, + MIP_PROFILE_MN_HA_SS = 40, + MIP_PROFILE_MN_AAA_SS = 41, + CDMA_PRL_VERSION = 51, + CDMA_BC10 = 52, + CDMA_BC14 = 53, + CDMA_SO68 = 54, + CDMA_SO73_COP0 = 55, + CDMA_SO73_COP1TO7 = 56, + CDMA_1X_ADVANCED_ENABLED = 57, + CDMA_EHRPD_ENABLED = 58, + CDMA_EHRPD_FORCED = 59, + LTE_BAND_ENABLE_25 = 71, + LTE_BAND_ENABLE_26 = 72, + LTE_BAND_ENABLE_41 = 73, + LTE_SCAN_PRIORITY_25 = 74, + LTE_SCAN_PRIORITY_26 = 75, + LTE_SCAN_PRIORITY_41 = 76, + LTE_HIDDEN_BAND_PRIORITY_25 = 77, + LTE_HIDDEN_BAND_PRIORITY_26 = 78, + LTE_HIDDEN_BAND_PRIORITY_41 = 79, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NvWriteItem.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NvWriteItem.aidl new file mode 100644 index 0000000000..9e60db6a28 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NvWriteItem.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable NvWriteItem { + android.hardware.radio.NvItem itemId; + String value; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OperatorInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OperatorInfo.aidl new file mode 100644 index 0000000000..bb90f1210d --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OperatorInfo.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable OperatorInfo { + String alphaLong; + String alphaShort; + String operatorNumeric; + int status; + const int STATUS_UNKNOWN = 0; + const int STATUS_AVAILABLE = 1; + const int STATUS_CURRENT = 2; + const int STATUS_FORBIDDEN = 3; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OsAppId.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OsAppId.aidl new file mode 100644 index 0000000000..bc112296e9 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OsAppId.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable OsAppId { + byte[] osAppId; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PbReceivedStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PbReceivedStatus.aidl new file mode 100644 index 0000000000..dd95ad5127 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PbReceivedStatus.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="byte") @VintfStability +enum PbReceivedStatus { + PB_RECEIVED_OK = 1, + PB_RECEIVED_ERROR = 2, + PB_RECEIVED_ABORT = 3, + PB_RECEIVED_FINAL = 4, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PcoDataInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PcoDataInfo.aidl new file mode 100644 index 0000000000..828b08c610 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PcoDataInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable PcoDataInfo { + int cid; + String bearerProto; + int pcoId; + byte[] contents; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PdpProtocolType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PdpProtocolType.aidl new file mode 100644 index 0000000000..980d3afc39 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PdpProtocolType.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum PdpProtocolType { + UNKNOWN = -1, + IP = 0, + IPV6 = 1, + IPV4V6 = 2, + PPP = 3, + NON_IP = 4, + UNSTRUCTURED = 5, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PersoSubstate.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PersoSubstate.aidl new file mode 100644 index 0000000000..35b75c63dd --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PersoSubstate.aidl @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum PersoSubstate { + UNKNOWN = 0, + IN_PROGRESS = 1, + READY = 2, + SIM_NETWORK = 3, + SIM_NETWORK_SUBSET = 4, + SIM_CORPORATE = 5, + SIM_SERVICE_PROVIDER = 6, + SIM_SIM = 7, + SIM_NETWORK_PUK = 8, + SIM_NETWORK_SUBSET_PUK = 9, + SIM_CORPORATE_PUK = 10, + SIM_SERVICE_PROVIDER_PUK = 11, + SIM_SIM_PUK = 12, + RUIM_NETWORK1 = 13, + RUIM_NETWORK2 = 14, + RUIM_HRPD = 15, + RUIM_CORPORATE = 16, + RUIM_SERVICE_PROVIDER = 17, + RUIM_RUIM = 18, + RUIM_NETWORK1_PUK = 19, + RUIM_NETWORK2_PUK = 20, + RUIM_HRPD_PUK = 21, + RUIM_CORPORATE_PUK = 22, + RUIM_SERVICE_PROVIDER_PUK = 23, + RUIM_RUIM_PUK = 24, + SIM_SPN = 25, + SIM_SPN_PUK = 26, + SIM_SP_EHPLMN = 27, + SIM_SP_EHPLMN_PUK = 28, + SIM_ICCID = 29, + SIM_ICCID_PUK = 30, + SIM_IMPI = 31, + SIM_IMPI_PUK = 32, + SIM_NS_SP = 33, + SIM_NS_SP_PUK = 34, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PhoneRestrictedState.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PhoneRestrictedState.aidl new file mode 100644 index 0000000000..7a4982f5ea --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PhoneRestrictedState.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum PhoneRestrictedState { + NONE = 0, + CS_EMERGENCY = 1, + CS_NORMAL = 2, + CS_ALL = 4, + PS_ALL = 16, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PhonebookCapacity.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PhonebookCapacity.aidl new file mode 100644 index 0000000000..8d2623bbb5 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PhonebookCapacity.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable PhonebookCapacity { + int maxAdnRecords; + int usedAdnRecords; + int maxEmailRecords; + int usedEmailRecords; + int maxAdditionalNumberRecords; + int usedAdditionalNumberRecords; + int maxNameLen; + int maxNumberLen; + int maxEmailLen; + int maxAdditionalNumberLen; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PhonebookRecordInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PhonebookRecordInfo.aidl new file mode 100644 index 0000000000..02a166e18c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PhonebookRecordInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable PhonebookRecordInfo { + int recordId; + String name; + String number; + String[] emails; + String[] additionalNumbers; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PhysicalChannelConfig.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PhysicalChannelConfig.aidl new file mode 100644 index 0000000000..91c4a96a1f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PhysicalChannelConfig.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable PhysicalChannelConfig { + android.hardware.radio.CellConnectionStatus status; + android.hardware.radio.RadioTechnology rat; + int downlinkChannelNumber; + int uplinkChannelNumber; + int cellBandwidthDownlinkKhz; + int cellBandwidthUplinkKhz; + int[] contextIds; + int physicalCellId; + android.hardware.radio.PhysicalChannelConfigBand band; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PhysicalChannelConfigBand.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PhysicalChannelConfigBand.aidl new file mode 100644 index 0000000000..1953083771 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PhysicalChannelConfigBand.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +union PhysicalChannelConfigBand { + boolean noinit; + android.hardware.radio.GeranBands geranBand; + android.hardware.radio.UtranBands utranBand; + android.hardware.radio.EutranBands eutranBand; + android.hardware.radio.NgranBands ngranBand; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PinState.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PinState.aidl new file mode 100644 index 0000000000..3b65179748 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PinState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum PinState { + UNKNOWN = 0, + ENABLED_NOT_VERIFIED = 1, + ENABLED_VERIFIED = 2, + DISABLED = 3, + ENABLED_BLOCKED = 4, + ENABLED_PERM_BLOCKED = 5, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PortRange.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PortRange.aidl new file mode 100644 index 0000000000..8e02ff3d72 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PortRange.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable PortRange { + int start; + int end; + const int PORT_RANGE_MIN = 20; + const int PORT_RANGE_MAX = 65535; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PreferredNetworkType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PreferredNetworkType.aidl new file mode 100644 index 0000000000..7615dff86f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PreferredNetworkType.aidl @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum PreferredNetworkType { + GSM_WCDMA = 0, + GSM_ONLY = 1, + WCDMA = 2, + GSM_WCDMA_AUTO = 3, + CDMA_EVDO_AUTO = 4, + CDMA_ONLY = 5, + EVDO_ONLY = 6, + GSM_WCDMA_CDMA_EVDO_AUTO = 7, + LTE_CDMA_EVDO = 8, + LTE_GSM_WCDMA = 9, + LTE_CMDA_EVDO_GSM_WCDMA = 10, + LTE_ONLY = 11, + LTE_WCDMA = 12, + TD_SCDMA_ONLY = 13, + TD_SCDMA_WCDMA = 14, + TD_SCDMA_LTE = 15, + TD_SCDMA_GSM = 16, + TD_SCDMA_GSM_LTE = 17, + TD_SCDMA_GSM_WCDMA = 18, + TD_SCDMA_WCDMA_LTE = 19, + TD_SCDMA_GSM_WCDMA_LTE = 20, + TD_SCDMA_GSM_WCDMA_CDMA_EVDO_AUTO = 21, + TD_SCDMA_LTE_CDMA_EVDO_GSM_WCDMA = 22, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Qos.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Qos.aidl new file mode 100644 index 0000000000..d69853fa2b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Qos.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +union Qos { + boolean noinit; + android.hardware.radio.EpsQos eps; + android.hardware.radio.NrQos nr; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosBandwidth.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosBandwidth.aidl new file mode 100644 index 0000000000..95622bc31e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosBandwidth.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable QosBandwidth { + int maxBitrateKbps; + int guaranteedBitrateKbps; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosFilter.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosFilter.aidl new file mode 100644 index 0000000000..a568506e90 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosFilter.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable QosFilter { + String[] localAddresses; + String[] remoteAddresses; + @nullable android.hardware.radio.PortRange localPort; + @nullable android.hardware.radio.PortRange remotePort; + byte protocol; + android.hardware.radio.QosFilterTypeOfService tos; + android.hardware.radio.QosFilterIpv6FlowLabel flowLabel; + android.hardware.radio.QosFilterIpsecSpi spi; + byte direction; + int precedence; + const byte DIRECTION_DOWNLINK = 0; + const byte DIRECTION_UPLINK = 1; + const byte DIRECTION_BIDIRECTIONAL = 2; + const byte PROTOCOL_UNSPECIFIED = -1; + const byte PROTOCOL_TCP = 6; + const byte PROTOCOL_UDP = 17; + const byte PROTOCOL_ESP = 50; + const byte PROTOCOL_AH = 51; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosFilterIpsecSpi.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosFilterIpsecSpi.aidl new file mode 100644 index 0000000000..695b7352a2 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosFilterIpsecSpi.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +union QosFilterIpsecSpi { + boolean noinit; + int value; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosFilterIpv6FlowLabel.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosFilterIpv6FlowLabel.aidl new file mode 100644 index 0000000000..5b9c82c188 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosFilterIpv6FlowLabel.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +union QosFilterIpv6FlowLabel { + boolean noinit; + int value; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosFilterTypeOfService.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosFilterTypeOfService.aidl new file mode 100644 index 0000000000..c7c0331afc --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosFilterTypeOfService.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +union QosFilterTypeOfService { + boolean noinit; + byte value; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosSession.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosSession.aidl new file mode 100644 index 0000000000..8f1b913fb2 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosSession.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable QosSession { + int qosSessionId; + android.hardware.radio.Qos qos; + android.hardware.radio.QosFilter[] qosFilters; +} 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 new file mode 100644 index 0000000000..10a956e4d8 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioAccessFamily.aidl @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum RadioAccessFamily { + UNKNOWN = 1, + GPRS = 2, + EDGE = 4, + UMTS = 8, + IS95A = 16, + IS95B = 32, + ONE_X_RTT = 64, + EVDO_0 = 128, + EVDO_A = 256, + HSDPA = 512, + HSUPA = 1024, + HSPA = 2048, + EVDO_B = 4096, + EHRPD = 8192, + LTE = 16384, + HSPAP = 32768, + GSM = 65536, + TD_SCDMA = 131072, + LTE_CA = 524288, + NR = 1048576, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioAccessNetworks.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioAccessNetworks.aidl new file mode 100644 index 0000000000..67f5e8a246 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioAccessNetworks.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum RadioAccessNetworks { + UNKNOWN = 0, + GERAN = 1, + UTRAN = 2, + EUTRAN = 3, + NGRAN = 4, + CDMA2000 = 5, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioAccessSpecifier.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioAccessSpecifier.aidl new file mode 100644 index 0000000000..b47ee2d49c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioAccessSpecifier.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable RadioAccessSpecifier { + android.hardware.radio.RadioAccessNetworks radioAccessNetwork; + android.hardware.radio.RadioAccessSpecifierBands bands; + int[] channels; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioAccessSpecifierBands.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioAccessSpecifierBands.aidl new file mode 100644 index 0000000000..9d0a99733c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioAccessSpecifierBands.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +union RadioAccessSpecifierBands { + boolean noinit; + android.hardware.radio.GeranBands[] geranBands; + android.hardware.radio.UtranBands[] utranBands; + android.hardware.radio.EutranBands[] eutranBands; + android.hardware.radio.NgranBands[] ngranBands; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioBandMode.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioBandMode.aidl new file mode 100644 index 0000000000..973ca524b1 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioBandMode.aidl @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum RadioBandMode { + BAND_MODE_UNSPECIFIED = 0, + BAND_MODE_EURO = 1, + BAND_MODE_USA = 2, + BAND_MODE_JPN = 3, + BAND_MODE_AUS = 4, + BAND_MODE_AUS_2 = 5, + BAND_MODE_CELL_800 = 6, + BAND_MODE_PCS = 7, + BAND_MODE_JTACS = 8, + BAND_MODE_KOREA_PCS = 9, + BAND_MODE_5_450M = 10, + BAND_MODE_IMT2000 = 11, + BAND_MODE_7_700M_2 = 12, + BAND_MODE_8_1800M = 13, + BAND_MODE_9_900M = 14, + BAND_MODE_10_800M_2 = 15, + BAND_MODE_EURO_PAMR_400M = 16, + BAND_MODE_AWS = 17, + BAND_MODE_USA_2500M = 18, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioCapability.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioCapability.aidl new file mode 100644 index 0000000000..ca1e389a11 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioCapability.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable RadioCapability { + int session; + int phase; + android.hardware.radio.RadioAccessFamily raf; + String logicalModemUuid; + int status; + const int PHASE_CONFIGURED = 0; + const int PHASE_START = 1; + const int PHASE_APPLY = 2; + const int PHASE_UNSOL_RSP = 3; + const int PHASE_FINISH = 4; + const int STATUS_NONE = 0; + const int STATUS_SUCCESS = 1; + const int STATUS_FAIL = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioConst.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioConst.aidl new file mode 100644 index 0000000000..d111a0d086 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioConst.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum RadioConst { + CDMA_ALPHA_INFO_BUFFER_LENGTH = 64, + CDMA_NUMBER_INFO_BUFFER_LENGTH = 81, + MAX_RILDS = 3, + MAX_SOCKET_NAME_LENGTH = 6, + MAX_CLIENT_ID_LENGTH = 2, + MAX_DEBUG_SOCKET_NAME_LENGTH = 12, + MAX_QEMU_PIPE_NAME_LENGTH = 11, + MAX_UUID_LENGTH = 64, + CARD_MAX_APPS = 8, + CDMA_MAX_NUMBER_OF_INFO_RECS = 10, + SS_INFO_MAX = 4, + NUM_SERVICE_CLASSES = 7, + NUM_TX_POWER_LEVELS = 5, + RADIO_ACCESS_SPECIFIER_MAX_SIZE = 8, + P2_CONSTANT_NO_P2 = -1, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioError.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioError.aidl new file mode 100644 index 0000000000..3ef67bccdb --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioError.aidl @@ -0,0 +1,126 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum RadioError { + NONE = 0, + RADIO_NOT_AVAILABLE = 1, + GENERIC_FAILURE = 2, + PASSWORD_INCORRECT = 3, + SIM_PIN2 = 4, + SIM_PUK2 = 5, + REQUEST_NOT_SUPPORTED = 6, + CANCELLED = 7, + OP_NOT_ALLOWED_DURING_VOICE_CALL = 8, + OP_NOT_ALLOWED_BEFORE_REG_TO_NW = 9, + SMS_SEND_FAIL_RETRY = 10, + SIM_ABSENT = 11, + SUBSCRIPTION_NOT_AVAILABLE = 12, + MODE_NOT_SUPPORTED = 13, + FDN_CHECK_FAILURE = 14, + ILLEGAL_SIM_OR_ME = 15, + MISSING_RESOURCE = 16, + NO_SUCH_ELEMENT = 17, + DIAL_MODIFIED_TO_USSD = 18, + DIAL_MODIFIED_TO_SS = 19, + DIAL_MODIFIED_TO_DIAL = 20, + USSD_MODIFIED_TO_DIAL = 21, + USSD_MODIFIED_TO_SS = 22, + USSD_MODIFIED_TO_USSD = 23, + SS_MODIFIED_TO_DIAL = 24, + SS_MODIFIED_TO_USSD = 25, + SUBSCRIPTION_NOT_SUPPORTED = 26, + SS_MODIFIED_TO_SS = 27, + LCE_NOT_SUPPORTED = 36, + NO_MEMORY = 37, + INTERNAL_ERR = 38, + SYSTEM_ERR = 39, + MODEM_ERR = 40, + INVALID_STATE = 41, + NO_RESOURCES = 42, + SIM_ERR = 43, + INVALID_ARGUMENTS = 44, + INVALID_SIM_STATE = 45, + INVALID_MODEM_STATE = 46, + INVALID_CALL_ID = 47, + NO_SMS_TO_ACK = 48, + NETWORK_ERR = 49, + REQUEST_RATE_LIMITED = 50, + SIM_BUSY = 51, + SIM_FULL = 52, + NETWORK_REJECT = 53, + OPERATION_NOT_ALLOWED = 54, + EMPTY_RECORD = 55, + INVALID_SMS_FORMAT = 56, + ENCODING_ERR = 57, + INVALID_SMSC_ADDRESS = 58, + NO_SUCH_ENTRY = 59, + NETWORK_NOT_READY = 60, + NOT_PROVISIONED = 61, + NO_SUBSCRIPTION = 62, + NO_NETWORK_FOUND = 63, + DEVICE_IN_USE = 64, + ABORTED = 65, + INVALID_RESPONSE = 66, + OEM_ERROR_1 = 501, + OEM_ERROR_2 = 502, + OEM_ERROR_3 = 503, + OEM_ERROR_4 = 504, + OEM_ERROR_5 = 505, + OEM_ERROR_6 = 506, + OEM_ERROR_7 = 507, + OEM_ERROR_8 = 508, + OEM_ERROR_9 = 509, + OEM_ERROR_10 = 510, + OEM_ERROR_11 = 511, + OEM_ERROR_12 = 512, + OEM_ERROR_13 = 513, + OEM_ERROR_14 = 514, + OEM_ERROR_15 = 515, + OEM_ERROR_16 = 516, + OEM_ERROR_17 = 517, + OEM_ERROR_18 = 518, + OEM_ERROR_19 = 519, + OEM_ERROR_20 = 520, + OEM_ERROR_21 = 521, + OEM_ERROR_22 = 522, + OEM_ERROR_23 = 523, + OEM_ERROR_24 = 524, + OEM_ERROR_25 = 525, + SIMULTANEOUS_SMS_AND_CALL_NOT_ALLOWED = 67, + ACCESS_BARRED = 68, + BLOCKED_DUE_TO_CALL = 69, + RF_HARDWARE_ISSUE = 70, + NO_RF_CALIBRATION_INFO = 71, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioFrequencyInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioFrequencyInfo.aidl new file mode 100644 index 0000000000..cd0f6c2e13 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioFrequencyInfo.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +union RadioFrequencyInfo { + boolean noinit; + int range; + int channelNumber; + const int FREQUENCY_RANGE_LOW = 1; + const int FREQUENCY_RANGE_MID = 2; + const int FREQUENCY_RANGE_HIGH = 3; + const int FREQUENCY_RANGE_MMWAVE = 4; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioIndicationType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioIndicationType.aidl new file mode 100644 index 0000000000..fc5d4dfc04 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioIndicationType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum RadioIndicationType { + UNSOLICITED = 0, + UNSOLICITED_ACK_EXP = 1, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioResponseInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioResponseInfo.aidl new file mode 100644 index 0000000000..08c30232f5 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioResponseInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable RadioResponseInfo { + android.hardware.radio.RadioResponseType type; + int serial; + android.hardware.radio.RadioError error; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioResponseInfoModem.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioResponseInfoModem.aidl new file mode 100644 index 0000000000..cbc4ab9759 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioResponseInfoModem.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable RadioResponseInfoModem { + android.hardware.radio.RadioResponseType type; + int serial; + android.hardware.radio.RadioError error; + boolean isEnabled; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioResponseType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioResponseType.aidl new file mode 100644 index 0000000000..cf24183016 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioResponseType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum RadioResponseType { + SOLICITED = 0, + SOLICITED_ACK = 1, + SOLICITED_ACK_EXP = 2, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioState.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioState.aidl new file mode 100644 index 0000000000..3dad483679 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum RadioState { + OFF = 0, + UNAVAILABLE = 1, + ON = 10, +} 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 new file mode 100644 index 0000000000..d0ca9b5cf5 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioTechnology.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum RadioTechnology { + UNKNOWN = 0, + GPRS = 1, + EDGE = 2, + UMTS = 3, + IS95A = 4, + IS95B = 5, + ONE_X_RTT = 6, + EVDO_0 = 7, + EVDO_A = 8, + HSDPA = 9, + HSUPA = 10, + HSPA = 11, + EVDO_B = 12, + EHRPD = 13, + LTE = 14, + HSPAP = 15, + GSM = 16, + TD_SCDMA = 17, + IWLAN = 18, + LTE_CA = 19, + NR = 20, +} 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 new file mode 100644 index 0000000000..c11cd1cac6 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioTechnologyFamily.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum RadioTechnologyFamily { + THREE_GPP = 0, + THREE_GPP2 = 1, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RegState.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RegState.aidl new file mode 100644 index 0000000000..049ded1c1d --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RegState.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum RegState { + NOT_REG_MT_NOT_SEARCHING_OP = 0, + REG_HOME = 1, + NOT_REG_MT_SEARCHING_OP = 2, + REG_DENIED = 3, + UNKNOWN = 4, + REG_ROAMING = 5, + NOT_REG_MT_NOT_SEARCHING_OP_EM = 10, + NOT_REG_MT_SEARCHING_OP_EM = 12, + REG_DENIED_EM = 13, + UNKNOWN_EM = 14, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RegStateResult.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RegStateResult.aidl new file mode 100644 index 0000000000..e5b5aa5b71 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RegStateResult.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable RegStateResult { + android.hardware.radio.RegState regState; + android.hardware.radio.RadioTechnology rat; + android.hardware.radio.RegistrationFailCause reasonForDenial; + android.hardware.radio.CellIdentity cellIdentity; + String registeredPlmn; + android.hardware.radio.AccessTechnologySpecificInfo accessTechnologySpecificInfo; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RegistrationFailCause.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RegistrationFailCause.aidl new file mode 100644 index 0000000000..c5529b6ddb --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RegistrationFailCause.aidl @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum RegistrationFailCause { + NONE = 0, + IMSI_UNKNOWN_IN_HLR = 2, + ILLEGAL_MS = 3, + IMSI_UNKNOWN_IN_VLR = 4, + IMEI_NOT_ACCEPTED = 5, + ILLEGAL_ME = 6, + GPRS_SERVICES_NOT_ALLOWED = 7, + GPRS_AND_NON_GPRS_SERVICES_NOT_ALLOWED = 8, + MS_IDENTITY_CANNOT_BE_DERIVED_BY_NETWORK = 9, + IMPLICITLY_DETACHED = 10, + PLMN_NOT_ALLOWED = 11, + LOCATION_AREA_NOT_ALLOWED = 12, + ROAMING_NOT_ALLOWED = 13, + GPRS_SERVICES_NOT_ALLOWED_IN_PLMN = 14, + NO_SUITABLE_CELLS = 15, + MSC_TEMPORARILY_NOT_REACHABLE = 15, + NETWORK_FAILURE = 17, + MAC_FAILURE = 20, + SYNC_FAILURE = 21, + CONGESTION = 22, + GSM_AUTHENTICATION_UNACCEPTABLE = 23, + NOT_AUTHORIZED_FOR_THIS_CSG = 25, + SMS_PROVIDED_BY_GPRS_IN_ROUTING_AREA = 26, + SERVICE_OPTION_NOT_SUPPORTED = 32, + SERVICE_OPTION_NOT_SUBSCRIBED = 33, + SERVICE_OPTION_TEMPORARILY_OUT_OF_ORDER = 34, + CALL_CANNOT_BE_IDENTIFIED = 38, + NO_PDP_CONTEXT_ACTIVATED = 40, + RETRY_UPON_ENTRY_INTO_NEW_CELL_1 = 48, + RETRY_UPON_ENTRY_INTO_NEW_CELL_2 = 49, + RETRY_UPON_ENTRY_INTO_NEW_CELL_3 = 50, + RETRY_UPON_ENTRY_INTO_NEW_CELL_4 = 51, + RETRY_UPON_ENTRY_INTO_NEW_CELL_5 = 52, + RETRY_UPON_ENTRY_INTO_NEW_CELL_6 = 53, + RETRY_UPON_ENTRY_INTO_NEW_CELL_7 = 54, + RETRY_UPON_ENTRY_INTO_NEW_CELL_8 = 55, + RETRY_UPON_ENTRY_INTO_NEW_CELL_9 = 56, + RETRY_UPON_ENTRY_INTO_NEW_CELL_10 = 57, + RETRY_UPON_ENTRY_INTO_NEW_CELL_11 = 58, + RETRY_UPON_ENTRY_INTO_NEW_CELL_12 = 59, + RETRY_UPON_ENTRY_INTO_NEW_CELL_13 = 60, + RETRY_UPON_ENTRY_INTO_NEW_CELL_14 = 61, + RETRY_UPON_ENTRY_INTO_NEW_CELL_15 = 62, + RETRY_UPON_ENTRY_INTO_NEW_CELL_16 = 63, + SEMANTICALLY_INCORRECT_MESSAGE = 95, + INVALID_MANDATORY_INFORMATION = 96, + MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED = 97, + MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98, + INFORMATION_ELEMENT_NON_EXISTENT_OR_NOT_IMPLEMENTED = 99, + CONDITIONAL_IE_ERROR = 100, + MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101, + PROTOCOL_ERROR_UNSPECIFIED = 111, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ResetNvType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ResetNvType.aidl new file mode 100644 index 0000000000..3852a7719e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ResetNvType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum ResetNvType { + RELOAD = 0, + ERASE = 1, + FACTORY_RESET = 2, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RouteSelectionDescriptor.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RouteSelectionDescriptor.aidl new file mode 100644 index 0000000000..233b8b5c0a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RouteSelectionDescriptor.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable RouteSelectionDescriptor { + byte precedence; + android.hardware.radio.PdpProtocolType sessionType; + byte sscMode; + android.hardware.radio.SliceInfo[] sliceInfo; + String[] dnn; + const byte SSC_MODE_UNKNOWN = -1; + const byte SSC_MODE_1 = 1; + const byte SSC_MODE_2 = 2; + const byte SSC_MODE_3 = 3; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SapApduType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SapApduType.aidl new file mode 100644 index 0000000000..9bfb725bfa --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SapApduType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum SapApduType { + APDU = 0, + APDU7816 = 1, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SapConnectRsp.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SapConnectRsp.aidl new file mode 100644 index 0000000000..7e4d246765 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SapConnectRsp.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum SapConnectRsp { + SUCCESS = 0, + CONNECT_FAILURE = 1, + MSG_SIZE_TOO_LARGE = 2, + MSG_SIZE_TOO_SMALL = 3, + CONNECT_OK_CALL_ONGOING = 4, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SapDisconnectType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SapDisconnectType.aidl new file mode 100644 index 0000000000..e0d8eb2481 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SapDisconnectType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum SapDisconnectType { + GRACEFUL = 0, + IMMEDIATE = 1, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SapResultCode.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SapResultCode.aidl new file mode 100644 index 0000000000..0c6c5139dd --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SapResultCode.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum SapResultCode { + SUCCESS = 0, + GENERIC_FAILURE = 1, + CARD_NOT_ACCESSSIBLE = 2, + CARD_ALREADY_POWERED_OFF = 3, + CARD_REMOVED = 4, + CARD_ALREADY_POWERED_ON = 5, + DATA_NOT_AVAILABLE = 6, + NOT_SUPPORTED = 7, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SapStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SapStatus.aidl new file mode 100644 index 0000000000..715c5074a5 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SapStatus.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum SapStatus { + UNKNOWN_ERROR = 0, + CARD_RESET = 1, + CARD_NOT_ACCESSIBLE = 2, + CARD_REMOVED = 3, + CARD_INSERTED = 4, + RECOVERED = 5, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SapTransferProtocol.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SapTransferProtocol.aidl new file mode 100644 index 0000000000..6eadbb7737 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SapTransferProtocol.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum SapTransferProtocol { + T0 = 0, + T1 = 1, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SelectUiccSub.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SelectUiccSub.aidl new file mode 100644 index 0000000000..b7acc66a85 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SelectUiccSub.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable SelectUiccSub { + int slot; + int appIndex; + int subType; + int actStatus; + const int SUBSCRIPTION_TYPE_1 = 0; + const int SUBSCRIPTION_TYPE_2 = 1; + const int SUBSCRIPTION_TYPE_3 = 2; + const int ACT_STATUS_DEACTIVATE = 0; + const int ACT_STATUS_ACTIVATE = 1; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SendSmsResult.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SendSmsResult.aidl new file mode 100644 index 0000000000..7063db5a3a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SendSmsResult.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable SendSmsResult { + int messageRef; + String ackPDU; + int errorCode; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SetupDataCallResult.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SetupDataCallResult.aidl new file mode 100644 index 0000000000..edf7a8a012 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SetupDataCallResult.aidl @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable SetupDataCallResult { + android.hardware.radio.DataCallFailCause cause; + long suggestedRetryTime; + int cid; + int active; + android.hardware.radio.PdpProtocolType type; + String ifname; + android.hardware.radio.LinkAddress[] addresses; + String[] dnses; + String[] gateways; + String[] pcscf; + int mtuV4; + int mtuV6; + android.hardware.radio.Qos defaultQos; + android.hardware.radio.QosSession[] qosSessions; + byte handoverFailureMode; + int pduSessionId; + @nullable android.hardware.radio.SliceInfo sliceInfo; + android.hardware.radio.TrafficDescriptor[] trafficDescriptors; + const int DATA_CONNECTION_STATUS_INACTIVE = 0; + const int DATA_CONNECTION_STATUS_DORMANT = 1; + const int DATA_CONNECTION_STATUS_ACTIVE = 2; + const byte HANDOVER_FAILURE_MODE_LEGACY = 0; + const byte HANDOVER_FAILURE_MODE_DO_FALLBACK = 1; + const byte HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_HANDOVER = 2; + const byte HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_SETUP_NORMAL = 3; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SignalStrength.aidl new file mode 100644 index 0000000000..7c7eade8a3 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SignalStrength.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable SignalStrength { + android.hardware.radio.GsmSignalStrength gsm; + android.hardware.radio.CdmaSignalStrength cdma; + android.hardware.radio.EvdoSignalStrength evdo; + android.hardware.radio.LteSignalStrength lte; + android.hardware.radio.TdscdmaSignalStrength tdscdma; + android.hardware.radio.WcdmaSignalStrength wcdma; + android.hardware.radio.NrSignalStrength nr; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SignalThresholdInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SignalThresholdInfo.aidl new file mode 100644 index 0000000000..381984eff9 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SignalThresholdInfo.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable SignalThresholdInfo { + int signalMeasurement; + int hysteresisMs; + int hysteresisDb; + int[] thresholds; + boolean isEnabled; + const int SIGNAL_MEASUREMENT_TYPE_RSSI = 1; + const int SIGNAL_MEASUREMENT_TYPE_RSCP = 2; + const int SIGNAL_MEASUREMENT_TYPE_RSRP = 3; + const int SIGNAL_MEASUREMENT_TYPE_RSRQ = 4; + const int SIGNAL_MEASUREMENT_TYPE_RSSNR = 5; + const int SIGNAL_MEASUREMENT_TYPE_SSRSRP = 6; + const int SIGNAL_MEASUREMENT_TYPE_SSRSRQ = 7; + const int SIGNAL_MEASUREMENT_TYPE_SSSINR = 8; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SimApdu.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SimApdu.aidl new file mode 100644 index 0000000000..511031aec7 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SimApdu.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable SimApdu { + int sessionId; + int cla; + int instruction; + int p1; + int p2; + int p3; + String data; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SimLockMultiSimPolicy.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SimLockMultiSimPolicy.aidl new file mode 100644 index 0000000000..ad967940fd --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SimLockMultiSimPolicy.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum SimLockMultiSimPolicy { + NO_MULTISIM_POLICY = 0, + ONE_VALID_SIM_MUST_BE_PRESENT = 1, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SimRefreshResult.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SimRefreshResult.aidl new file mode 100644 index 0000000000..ce870c54a5 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SimRefreshResult.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable SimRefreshResult { + int type; + int efId; + String aid; + const int TYPE_SIM_FILE_UPDATE = 0; + const int TYPE_SIM_INIT = 1; + const int TYPE_SIM_RESET = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SliceInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SliceInfo.aidl new file mode 100644 index 0000000000..f49ff3b82b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SliceInfo.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable SliceInfo { + byte sliceServiceType; + int sliceDifferentiator; + byte mappedHplmnSst; + int mappedHplmnSD; + byte status; + const byte SERVICE_TYPE_NONE = 0; + const byte SERVICE_TYPE_EMBB = 1; + const byte SERVICE_TYPE_URLLC = 2; + const byte SERVICE_TYPE_MIOT = 3; + const byte STATUS_UNKNOWN = 0; + const byte STATUS_CONFIGURED = 1; + const byte STATUS_ALLOWED = 2; + const byte STATUS_REJECTED_NOT_AVAILABLE_IN_PLMN = 3; + const byte STATUS_REJECTED_NOT_AVAILABLE_IN_REG_AREA = 4; + const byte STATUS_DEFAULT_CONFIGURED = 5; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SlicingConfig.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SlicingConfig.aidl new file mode 100644 index 0000000000..9d3633836c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SlicingConfig.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable SlicingConfig { + android.hardware.radio.UrspRule[] urspRules; + android.hardware.radio.SliceInfo[] sliceInfo; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SmsAcknowledgeFailCause.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SmsAcknowledgeFailCause.aidl new file mode 100644 index 0000000000..c5b13b934a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SmsAcknowledgeFailCause.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum SmsAcknowledgeFailCause { + MEMORY_CAPACITY_EXCEEDED = 211, + UNSPECIFIED_ERROR = 255, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SmsWriteArgs.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SmsWriteArgs.aidl new file mode 100644 index 0000000000..a42339dc45 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SmsWriteArgs.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable SmsWriteArgs { + int status; + String pdu; + String smsc; + const int STATUS_REC_UNREAD = 0; + const int STATUS_REC_READ = 1; + const int STATUS_STO_UNSENT = 2; + const int STATUS_STO_SENT = 3; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SrvccState.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SrvccState.aidl new file mode 100644 index 0000000000..d4a941763c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SrvccState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum SrvccState { + HANDOVER_STARTED = 0, + HANDOVER_COMPLETED = 1, + HANDOVER_FAILED = 2, + HANDOVER_CANCELED = 3, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SsInfoData.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SsInfoData.aidl new file mode 100644 index 0000000000..10b4c3d81a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SsInfoData.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable SsInfoData { + int[] ssInfo; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/StkCcUnsolSsResult.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/StkCcUnsolSsResult.aidl new file mode 100644 index 0000000000..31c2494017 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/StkCcUnsolSsResult.aidl @@ -0,0 +1,84 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable StkCcUnsolSsResult { + int serviceType; + int requestType; + int teleserviceType; + int serviceClass; + android.hardware.radio.RadioError result; + android.hardware.radio.SsInfoData[] ssInfo; + android.hardware.radio.CfData[] cfData; + const int REQUEST_TYPE_ACTIVATION = 0; + const int REQUEST_TYPE_DEACTIVATION = 1; + const int REQUEST_TYPE_INTERROGATION = 2; + const int REQUEST_TYPE_REGISTRATION = 3; + const int REQUEST_TYPE_ERASURE = 4; + const int SERVICE_TYPE_CFU = 0; + const int SERVICE_TYPE_CF_BUSY = 1; + const int SERVICE_TYPE_CF_NO_REPLY = 2; + const int SERVICE_TYPE_CF_NOT_REACHABLE = 3; + const int SERVICE_TYPE_CF_ALL = 4; + const int SERVICE_TYPE_CF_ALL_CONDITIONAL = 5; + const int SERVICE_TYPE_CLIP = 6; + const int SERVICE_TYPE_CLIR = 7; + const int SERVICE_TYPE_COLP = 8; + const int SERVICE_TYPE_COLR = 9; + const int SERVICE_TYPE_WAIT = 10; + const int SERVICE_TYPE_BAOC = 11; + const int SERVICE_TYPE_BAOIC = 12; + const int SERVICE_TYPE_BAOIC_EXC_HOME = 13; + const int SERVICE_TYPE_BAIC = 14; + const int SERVICE_TYPE_BAIC_ROAMING = 15; + const int SERVICE_TYPE_ALL_BARRING = 16; + const int SERVICE_TYPE_OUTGOING_BARRING = 17; + const int SERVICE_TYPE_INCOMING_BARRING = 18; + const int TELESERVICE_TYPE_ALL_TELE_AND_BEARER_SERVICES = 0; + const int TELESERVICE_TYPE_ALL_TELESEVICES = 1; + const int TELESERVICE_TYPE_TELEPHONY = 2; + const int TELESERVICE_TYPE_ALL_DATA_TELESERVICES = 3; + const int TELESERVICE_TYPE_SMS_SERVICES = 4; + const int TELESERVICE_TYPE_ALL_TELESERVICES_EXCEPT_SMS = 5; + const int SUPP_SERVICE_CLASS_NONE = 0; + const int SUPP_SERVICE_CLASS_VOICE = 1; + const int SUPP_SERVICE_CLASS_DATA = 2; + const int SUPP_SERVICE_CLASS_FAX = 4; + const int SUPP_SERVICE_CLASS_SMS = 8; + const int SUPP_SERVICE_CLASS_DATA_SYNC = 16; + const int SUPP_SERVICE_CLASS_DATA_ASYNC = 32; + const int SUPP_SERVICE_CLASS_PACKET = 64; + const int SUPP_SERVICE_CLASS_PAD = 128; + const int SUPP_SERVICE_CLASS_MAX = 128; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SuppSvcNotification.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SuppSvcNotification.aidl new file mode 100644 index 0000000000..c098e245fc --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SuppSvcNotification.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable SuppSvcNotification { + boolean isMT; + int code; + int index; + int type; + String number; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/TdscdmaSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/TdscdmaSignalStrength.aidl new file mode 100644 index 0000000000..a2ba211d3f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/TdscdmaSignalStrength.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable TdscdmaSignalStrength { + int signalStrength; + int bitErrorRate; + int rscp; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/TrafficDescriptor.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/TrafficDescriptor.aidl new file mode 100644 index 0000000000..7dabe99a7c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/TrafficDescriptor.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable TrafficDescriptor { + @nullable String dnn; + @nullable android.hardware.radio.OsAppId osAppId; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/TtyMode.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/TtyMode.aidl new file mode 100644 index 0000000000..cee3057c27 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/TtyMode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum TtyMode { + OFF = 0, + FULL = 1, + HCO = 2, + VCO = 3, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/UrspRule.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/UrspRule.aidl new file mode 100644 index 0000000000..30c851c7f3 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/UrspRule.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable UrspRule { + int precedence; + android.hardware.radio.TrafficDescriptor[] trafficDescriptors; + android.hardware.radio.RouteSelectionDescriptor[] routeSelectionDescriptor; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/UssdModeType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/UssdModeType.aidl new file mode 100644 index 0000000000..992a55f5d0 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/UssdModeType.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum UssdModeType { + NOTIFY = 0, + REQUEST = 1, + NW_RELEASE = 2, + LOCAL_CLIENT = 3, + NOT_SUPPORTED = 4, + NW_TIMEOUT = 5, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/UtranBands.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/UtranBands.aidl new file mode 100644 index 0000000000..32cff727ff --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/UtranBands.aidl @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2021 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.radio; +@Backing(type="int") @VintfStability +enum UtranBands { + BAND_1 = 1, + BAND_2 = 2, + BAND_3 = 3, + BAND_4 = 4, + BAND_5 = 5, + BAND_6 = 6, + BAND_7 = 7, + BAND_8 = 8, + BAND_9 = 9, + BAND_10 = 10, + BAND_11 = 11, + BAND_12 = 12, + BAND_13 = 13, + BAND_14 = 14, + BAND_19 = 19, + BAND_20 = 20, + BAND_21 = 21, + BAND_22 = 22, + BAND_25 = 25, + BAND_26 = 26, + BAND_A = 101, + BAND_B = 102, + BAND_C = 103, + BAND_D = 104, + BAND_E = 105, + BAND_F = 106, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/UusInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/UusInfo.aidl new file mode 100644 index 0000000000..5b7190e99e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/UusInfo.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable UusInfo { + int uusType; + int uusDcs; + String uusData; + const int UUS_DCS_USP = 0; + const int UUS_DCS_OSIHLP = 1; + const int UUS_DCS_X244 = 2; + const int UUS_DCS_RMCF = 3; + const int UUS_DCS_IA5C = 4; + const int UUS_TYPE_TYPE1_IMPLICIT = 0; + const int UUS_TYPE_TYPE1_REQUIRED = 1; + const int UUS_TYPE_TYPE1_NOT_REQUIRED = 2; + const int UUS_TYPE_TYPE2_REQUIRED = 3; + const int UUS_TYPE_TYPE2_NOT_REQUIRED = 4; + const int UUS_TYPE_TYPE3_REQUIRED = 5; + const int UUS_TYPE_TYPE3_NOT_REQUIRED = 6; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/VoiceRegStateResult.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/VoiceRegStateResult.aidl new file mode 100644 index 0000000000..a693ff5240 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/VoiceRegStateResult.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable VoiceRegStateResult { + android.hardware.radio.RegState regState; + int rat; + boolean cssSupported; + int roamingIndicator; + int systemIsInPrl; + int defaultRoamingIndicator; + int reasonForDenial; + android.hardware.radio.CellIdentity cellIdentity; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/WcdmaSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/WcdmaSignalStrength.aidl new file mode 100644 index 0000000000..764ddedfa1 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/WcdmaSignalStrength.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 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.radio; +@VintfStability +parcelable WcdmaSignalStrength { + int signalStrength; + int bitErrorRate; + int rscp; + int ecno; +} diff --git a/radio/aidl/android/hardware/radio/AccessNetwork.aidl b/radio/aidl/android/hardware/radio/AccessNetwork.aidl new file mode 100644 index 0000000000..10b84f4948 --- /dev/null +++ b/radio/aidl/android/hardware/radio/AccessNetwork.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum AccessNetwork { + /** + * Unknown access network + */ + UNKNOWN, + /** + * GSM EDGE Radio Access Network + */ + GERAN, + /** + * Universal Terrestrial Radio Access Network + */ + UTRAN, + /** + * Evolved Universal Terrestrial Radio Access Network + */ + EUTRAN, + /** + * CDMA 2000 network + */ + CDMA2000, + /** + * Interworking Wireless LAN + */ + IWLAN, + /** + * Next-Generation Radio Access Network (NGRAN). + * Note NGRAN is only for standalone mode. Non-standalone mode uses AccessNetwork EUTRAN. + */ + NGRAN, +} diff --git a/radio/aidl/android/hardware/radio/AccessTechnologySpecificInfo.aidl b/radio/aidl/android/hardware/radio/AccessTechnologySpecificInfo.aidl new file mode 100644 index 0000000000..6f0640c63c --- /dev/null +++ b/radio/aidl/android/hardware/radio/AccessTechnologySpecificInfo.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.Cdma2000RegistrationInfo; +import android.hardware.radio.EutranRegistrationInfo; +import android.hardware.radio.NrVopsInfo; + +@VintfStability +union AccessTechnologySpecificInfo { + boolean noinit; + Cdma2000RegistrationInfo cdmaInfo; + EutranRegistrationInfo eutranInfo; + /** + * Network capabilities for voice over PS services. This info is valid only on NR network and + * must be present when the device is camped on NR. VopsInfo must be empty when the device is + * not camped on NR. + */ + NrVopsInfo ngranNrVopsInfo; + /** + * True if the dual transfer mode is supported. Refer to 3GPP TS 44.108 section 3.4.25.3 + */ + boolean geranDtmSupported; +} diff --git a/radio/aidl/android/hardware/radio/ActivityStatsInfo.aidl b/radio/aidl/android/hardware/radio/ActivityStatsInfo.aidl new file mode 100644 index 0000000000..f1a6e0e355 --- /dev/null +++ b/radio/aidl/android/hardware/radio/ActivityStatsInfo.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable ActivityStatsInfo { + /** + * Total time (in ms) when modem is in a low power or sleep state + */ + int sleepModeTimeMs; + /** + * Total time (in ms) when modem is awake but neither the transmitter nor receiver are + * active/awake + */ + int idleModeTimeMs; + /** + * Each index represent total time (in ms) during which the transmitter is active/awake for a + * particular power range as shown below. + * index 0 = tx_power < 0dBm + * index 1 = 0dBm < tx_power < 5dBm + * index 2 = 5dBm < tx_power < 15dBm + * index 3 = 15dBm < tx_power < 20dBm + * index 4 = tx_power > 20dBm + */ + int[] txmModetimeMs; + /** + * Total time (in ms) for which receiver is active/awake and the transmitter is inactive + */ + int rxModeTimeMs; +} diff --git a/radio/aidl/android/hardware/radio/ApnAuthType.aidl b/radio/aidl/android/hardware/radio/ApnAuthType.aidl new file mode 100644 index 0000000000..c836a31476 --- /dev/null +++ b/radio/aidl/android/hardware/radio/ApnAuthType.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum ApnAuthType { + /** + * PAP and CHAP is never performed. + */ + NO_PAP_NO_CHAP, + /** + * PAP may be performed; CHAP is never performed. + */ + PAP_NO_CHAP, + /** + * CHAP may be performed; PAP is never performed. + */ + NO_PAP_CHAP, + /** + * PAP / CHAP may be performed - baseband dependent. + */ + PAP_CHAP, +} diff --git a/radio/aidl/android/hardware/radio/ApnTypes.aidl b/radio/aidl/android/hardware/radio/ApnTypes.aidl new file mode 100644 index 0000000000..340301fd40 --- /dev/null +++ b/radio/aidl/android/hardware/radio/ApnTypes.aidl @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum ApnTypes { + /** + * None + */ + NONE = 0, + /** + * APN type for default data traffic + */ + DEFAULT = 1 << 0, + /** + * APN type for MMS traffic + */ + MMS = 1 << 1, + /** + * APN type for SUPL assisted GPS + */ + SUPL = 1 << 2, + /** + * APN type for DUN traffic + */ + DUN = 1 << 3, + /** + * APN type for HiPri traffic + */ + HIPRI = 1 << 4, + /** + * APN type for FOTA + */ + FOTA = 1 << 5, + /** + * APN type for IMS + */ + IMS = 1 << 6, + /** + * APN type for CBS + */ + CBS = 1 << 7, + /** + * APN type for IA Initial Attach APN + */ + IA = 1 << 8, + /** + * APN type for Emergency PDN. This is not an IA apn, but is used for access to carrier services + * in an emergency call situation. + */ + EMERGENCY = 1 << 9, + /** + * Due to the addition of values after EMERGENCY (eg. MCX, XCAP), this value is now deprecated + * and should not be used. + */ + ALL = DEFAULT | MMS | SUPL | DUN | HIPRI | FOTA | IMS | CBS | IA | EMERGENCY, + /** + * APN type for Mission Critical Service + * Reference: 3GPP TS 22.280 V15.3.0 + */ + MCX = 1 << 10, + /** + * APN type for XCAP + */ + XCAP = 1 << 11, +} diff --git a/radio/aidl/android/hardware/radio/AppStatus.aidl b/radio/aidl/android/hardware/radio/AppStatus.aidl new file mode 100644 index 0000000000..6fd17e42c0 --- /dev/null +++ b/radio/aidl/android/hardware/radio/AppStatus.aidl @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.PersoSubstate; +import android.hardware.radio.PinState; + +@VintfStability +parcelable AppStatus { + const int APP_STATE_UNKNOWN = 0; + const int APP_STATE_DETECTED = 1; + /** + * If PIN1 or UPin is required + */ + const int APP_STATE_PIN = 2; + /** + * If PUK1 or Puk for Upin is required + */ + const int APP_STATE_PUK = 3; + /** + * perso_substate must be looked at when app_state is assigned to this value + */ + const int APP_STATE_SUBSCRIPTION_PERSO = 4; + const int APP_STATE_READY = 5; + + const int APP_TYPE_UNKNOWN = 0; + const int APP_TYPE_SIM = 1; + const int APP_TYPE_USIM = 2; + const int APP_TYPE_RUIM = 3; + const int APP_TYPE_CSIM = 4; + const int APP_TYPE_ISIM = 5; + + /** + * Values are APP_TYPE_ + */ + int appType; + /** + * Values are APP_STATE_ + */ + int appState; + /** + * Applicable only if appState == SUBSCRIPTION_PERSO + */ + PersoSubstate persoSubstate; + /** + * e.g., from 0xA0, 0x00 -> 0x41, 0x30, 0x30, 0x30 + */ + String aidPtr; + String appLabelPtr; + /** + * Applicable to USIM, CSIM and ISIM + */ + boolean pin1Replaced; + PinState pin1; + PinState pin2; +} diff --git a/radio/aidl/android/hardware/radio/AudioQuality.aidl b/radio/aidl/android/hardware/radio/AudioQuality.aidl new file mode 100644 index 0000000000..bc4c2f1201 --- /dev/null +++ b/radio/aidl/android/hardware/radio/AudioQuality.aidl @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * Audio codec which is used on GSM, UMTS, and CDMA. These values must be opaque to the Android + * framework. Only for display. + */ +@VintfStability +@Backing(type="int") +enum AudioQuality { + /** + * Unspecified audio codec + */ + UNSPECIFIED, + /** + * AMR (Narrowband) audio codec + */ + AMR, + /** + * AMR (Wideband) audio codec + */ + AMR_WB, + /** + * GSM Enhanced Full-Rate audio codec + */ + GSM_EFR, + /** + * GSM Full-Rate audio codec + */ + GSM_FR, + /** + * GSM Half-Rate audio codec + */ + GSM_HR, + /** + * Enhanced Variable rate codec + */ + EVRC, + /** + * Enhanced Variable rate codec revision B + */ + EVRC_B, + /** + * Enhanced Variable rate codec (Wideband) + */ + EVRC_WB, + /** + * Enhanced Variable rate codec (Narrowband) + */ + EVRC_NW, +} diff --git a/radio/aidl/android/hardware/radio/BarringInfo.aidl b/radio/aidl/android/hardware/radio/BarringInfo.aidl new file mode 100644 index 0000000000..2bffa2e67c --- /dev/null +++ b/radio/aidl/android/hardware/radio/BarringInfo.aidl @@ -0,0 +1,133 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.BarringTypeSpecificInfo; + +@VintfStability +parcelable BarringInfo { + /** + * Device is not barred for the given service + */ + const int BARRING_TYPE_NONE = 0; + /** + * Device may be barred based on time and probability factors + */ + const int BARRING_TYPE_CONDITIONAL = 1; + /* + * Device is unconditionally barred + */ + const int BARRING_TYPE_UNCONDITIONAL = 2; + + /** + * Applicable to UTRAN + * Barring for all CS services, including registration + */ + const int SERVICE_TYPE_CS_SERVICE = 0; + /** + * Barring for all PS services, including registration + */ + const int SERVICE_TYPE_PS_SERVICE = 1; + /** + * Barring for mobile-originated circuit-switched voice calls + */ + const int SERVICE_TYPE_CS_VOICE = 2; + /** + * Applicable to EUTRAN, NGRAN + * Barring for mobile-originated signalling for any purpose + */ + const int SERVICE_TYPE_MO_SIGNALLING = 3; + /** + * Barring for mobile-originated internet or other interactive data + */ + const int SERVICE_TYPE_MO_DATA = 4; + /** + * Barring for circuit-switched fallback calling + */ + const int SERVICE_TYPE_CS_FALLBACK = 5; + /** + * Barring for IMS voice calling + */ + const int SERVICE_TYPE_MMTEL_VOICE = 6; + /** + * Barring for IMS video calling + */ + const int SERVICE_TYPE_MMTEL_VIDEO = 7; + /** + * Applicable to UTRAN, EUTRAN, NGRAN + * Barring for emergency services, either CS or emergency MMTEL + */ + const int SERVICE_TYPE_EMERGENCY = 8; + /** + * Barring for short message services + */ + const int SERVICE_TYPE_SMS = 9; + /** + * Operator-specific barring codes; applicable to NGRAN + */ + const int SERVICE_TYPE_OPERATOR_1 = 1001; + const int SERVICE_TYPE_OPERATOR_2 = 1002; + const int SERVICE_TYPE_OPERATOR_3 = 1003; + const int SERVICE_TYPE_OPERATOR_4 = 1004; + const int SERVICE_TYPE_OPERATOR_5 = 1005; + const int SERVICE_TYPE_OPERATOR_6 = 1006; + const int SERVICE_TYPE_OPERATOR_7 = 1007; + const int SERVICE_TYPE_OPERATOR_8 = 1008; + const int SERVICE_TYPE_OPERATOR_9 = 1009; + const int SERVICE_TYPE_OPERATOR_10 = 1010; + const int SERVICE_TYPE_OPERATOR_11 = 1011; + const int SERVICE_TYPE_OPERATOR_12 = 1012; + const int SERVICE_TYPE_OPERATOR_13 = 1013; + const int SERVICE_TYPE_OPERATOR_14 = 1014; + const int SERVICE_TYPE_OPERATOR_15 = 1015; + const int SERVICE_TYPE_OPERATOR_16 = 1016; + const int SERVICE_TYPE_OPERATOR_17 = 1017; + const int SERVICE_TYPE_OPERATOR_18 = 1018; + const int SERVICE_TYPE_OPERATOR_19 = 1019; + const int SERVICE_TYPE_OPERATOR_20 = 1020; + const int SERVICE_TYPE_OPERATOR_21 = 1021; + const int SERVICE_TYPE_OPERATOR_22 = 1022; + const int SERVICE_TYPE_OPERATOR_23 = 1023; + const int SERVICE_TYPE_OPERATOR_24 = 1024; + const int SERVICE_TYPE_OPERATOR_25 = 1025; + const int SERVICE_TYPE_OPERATOR_26 = 1026; + const int SERVICE_TYPE_OPERATOR_27 = 1027; + const int SERVICE_TYPE_OPERATOR_28 = 1028; + const int SERVICE_TYPE_OPERATOR_29 = 1029; + const int SERVICE_TYPE_OPERATOR_30 = 1030; + const int SERVICE_TYPE_OPERATOR_31 = 1031; + const int SERVICE_TYPE_OPERATOR_32 = 1032; + /** + * Combined list of barring services for UTRAN, EUTRAN, and NGRAN. + * + * Barring information is defined in: + * -UTRAN - 3gpp 25.331 Sec 10.2.48.8.6. + * -EUTRAN - 3gpp 36.331 Sec 6.3.1 SystemInformationBlockType2 + * -NGRAN - 3gpp 38.331 Sec 6.3.2 UAC-BarringInfo and 22.261 Sec 6.22.2.[2-3] + * Values are SERVICE_TYPE_ + */ + int serviceType; + /** + * The type of barring applied to the service + * Values are BARRING_TYPE_ + */ + int barringType; + /** + * Type-specific barring info if applicable + */ + @nullable BarringTypeSpecificInfo barringTypeSpecificInfo; +} diff --git a/radio/aidl/android/hardware/radio/BarringTypeSpecificInfo.aidl b/radio/aidl/android/hardware/radio/BarringTypeSpecificInfo.aidl new file mode 100644 index 0000000000..c3b892b479 --- /dev/null +++ b/radio/aidl/android/hardware/radio/BarringTypeSpecificInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable BarringTypeSpecificInfo { + /** + * The barring factor as a percentage 0-100 + */ + int factor; + /** + * The number of seconds between re-evaluations of barring + */ + int timeSeconds; + /** + * Indicates whether barring is currently being applied. + * + * <p>True if the UE applies barring to a conditionally barred service based on the conditional + * barring parameters. + * + * <p>False if the service is conditionally barred but barring is not currently applied, which + * could be due to either the barring criteria not having been evaluated (if the UE has not + * attempted to use the service) or due to the criteria being evaluated and the UE being + * permitted to use the service despite conditional barring. + */ + boolean isBarred; +} diff --git a/radio/aidl/android/hardware/radio/Call.aidl b/radio/aidl/android/hardware/radio/Call.aidl new file mode 100644 index 0000000000..467a5b9514 --- /dev/null +++ b/radio/aidl/android/hardware/radio/Call.aidl @@ -0,0 +1,106 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.AudioQuality; +import android.hardware.radio.UusInfo; + +@VintfStability +parcelable Call { + const int PRESENTATION_ALLOWED = 0; + const int PRESENTATION_RESTRICTED = 1; + const int PRESENTATION_UNKNOWN = 2; + const int PRESENTATION_PAYPHONE = 3; + + const int STATE_ACTIVE = 0; + const int STATE_HOLDING = 1; + /** + * MO call only + */ + const int STATE_DIALING = 2; + /** + * MO call only + */ + const int STATE_ALERTING = 3; + /** + * MT call only + */ + const int STATE_INCOMING = 4; + /** + * MT call only + */ + const int STATE_WAITING = 5; + + /** + * Values are STATE_ + */ + int state; + /** + * Connection index for use with, eg, AT+CHLD + */ + int index; + /** + * Type of address, eg 145 = intl + */ + int toa; + /** + * true if is mpty call + */ + boolean isMpty; + /** + * true if call is mobile terminated + */ + boolean isMT; + /** + * ALS line indicator if availale (0 = line 1) + */ + byte als; + /** + * true if this is a voice call + */ + boolean isVoice; + /** + * true if CDMA voice privacy mode is active + */ + boolean isVoicePrivacy; + /** + * Remote party nummber + */ + String number; + /** + * Values are PRESENTATION_ + */ + int numberPresentation; + /** + * Remote party name + */ + String name; + /** + * Values are PRESENTATION_ + */ + int namePresentation; + /** + * Vector of User-User Signaling Information + */ + UusInfo[] uusInfo; + AudioQuality audioQuality; + /** + * Forwarded number. It can set only one forwarded number based on 3GPP rule of the CS. + * Reference: 3GPP TS 24.008 section 10.5.4.21b + */ + String forwardedNumber; +} diff --git a/radio/aidl/android/hardware/radio/CallForwardInfo.aidl b/radio/aidl/android/hardware/radio/CallForwardInfo.aidl new file mode 100644 index 0000000000..18356318f0 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CallForwardInfo.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * See also com.android.internal.telephony.gsm.CallForwardInfo + */ +@VintfStability +parcelable CallForwardInfo { + const int STATUS_DISABLE = 0; + const int STATUS_ENABLE = 1; + const int STATUS_INTERROGATE = 2; + const int STATUS_REGISTRATION = 3; + const int STATUS_ERASURE = 4; + + /** + * For queryCallForwardStatus() status is DISABLE (Not used by vendor code currently) + * For setCallForward() status must be DISABLE, ENABLE, INTERROGATE, REGISTRATION, ERASURE + * Values are STATUS_ + */ + int status; + /** + * From TS 27.007 7.11 "reason" + */ + int reason; + /** + * From TS 27.007 +CCFC/+CLCK "class". See table for Android mapping from MMI service code. + * 0 means user doesn't input class. + */ + int serviceClass; + /** + * From TS 27.007 7.11 "type" + */ + int toa; + /** + * From TS 27.007 7.11 "number" + */ + String number; + int timeSeconds; +} diff --git a/radio/aidl/android/hardware/radio/CardPowerState.aidl b/radio/aidl/android/hardware/radio/CardPowerState.aidl new file mode 100644 index 0000000000..23088c9635 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CardPowerState.aidl @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum CardPowerState { + POWER_DOWN, + POWER_UP, + POWER_UP_PASS_THROUGH, +} diff --git a/radio/aidl/android/hardware/radio/CardStatus.aidl b/radio/aidl/android/hardware/radio/CardStatus.aidl new file mode 100644 index 0000000000..a6a287d707 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CardStatus.aidl @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.AppStatus; +import android.hardware.radio.PinState; + +@VintfStability +parcelable CardStatus { + /* + * Card is physically absent from device. (Some old modems use CardState.ABSENT when the SIM + * is powered off. This is no longer correct, however the platform will still support this + * legacy behavior.) + */ + const int STATE_ABSENT = 0; + /* + * Card is inserted in the device + */ + const int STATE_PRESENT = 1; + const int STATE_ERROR = 2; + /* + * Card is present but not usable due to carrier restrictions + */ + const int STATE_RESTRICTED = 3; + + /** + * Values are STATE_ + */ + int cardState; + /** + * Applicable to USIM and CSIM + */ + PinState universalPinState; + /** + * Value < RadioConst:CARD_MAX_APPS, -1 if none + */ + int gsmUmtsSubscriptionAppIndex; + /** + * Value < RadioConst:CARD_MAX_APPS, -1 if none + */ + int cdmaSubscriptionAppIndex; + /** + * Value < RadioConst:CARD_MAX_APPS, -1 if none + */ + int imsSubscriptionAppIndex; + /** + * size <= RadioConst::CARD_MAX_APPS + */ + AppStatus[] applications; + int physicalSlotId; + /** + * An Answer To Reset (ATR) is a message output by a Smart Card conforming to ISO/IEC 7816 + * standards, following electrical reset of the card's chip. The ATR conveys information about + * the communication parameters proposed by the card, and the card's nature and state. + * + * This data is applicable only when cardState is CardState:PRESENT. + */ + String atr; + /** + * Integrated Circuit Card IDentifier (ICCID) is Unique Identifier of the SIM CARD. File is + * located in the SIM card at EFiccid (0x2FE2) as per ETSI 102.221. The ICCID is defined by + * the ITU-T recommendation E.118 ISO/IEC 7816. + * + * This data is applicable only when cardState is CardState:PRESENT. + */ + String iccid; + /** + * The EID is the eUICC identifier. The EID shall be stored within the ECASD and can be + * retrieved by the Device at any time using the standard GlobalPlatform GET DATA command. + * + * This data is mandatory and applicable only when cardState is CardState:PRESENT and SIM card + * supports eUICC. + */ + String eid; +} diff --git a/radio/aidl/android/hardware/radio/Carrier.aidl b/radio/aidl/android/hardware/radio/Carrier.aidl new file mode 100644 index 0000000000..cde9b5ff0d --- /dev/null +++ b/radio/aidl/android/hardware/radio/Carrier.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable Carrier { + /** + * Apply to all carrier with the same mcc/mnc + */ + const int MATCH_TYPE_ALL = 0; + /** + * Use SPN and mcc/mnc to identify the carrier + */ + const int MATCH_TYPE_SPN = 1; + /** + * Use IMSI prefix and mcc/mnc to identify the carrier + */ + const int MATCH_TYPE_IMSI_PREFIX = 2; + /** + * Use GID1 and mcc/mnc to identify the carrier + */ + const int MATCH_TYPE_GID1 = 3; + /** + * Use GID2 and mcc/mnc to identify the carrier + */ + const int MATCH_TYPE_GID2 = 4; + + String mcc; + String mnc; + /** + * Specify match type for the carrier. If it’s ALL, matchData is empty string; otherwise, + * matchData is the value for the match type. + * Values are MATCH_TYPE_ + */ + int matchType; + String matchData; +} diff --git a/radio/aidl/android/hardware/radio/CarrierRestrictions.aidl b/radio/aidl/android/hardware/radio/CarrierRestrictions.aidl new file mode 100644 index 0000000000..5e1f8155e2 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CarrierRestrictions.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.Carrier; + +@VintfStability +parcelable CarrierRestrictions { + /** + * Allowed carriers + */ + Carrier[] allowedCarriers; + /** + * Explicitly excluded carriers which match allowed_carriers. Eg. allowedCarriers match mcc/mnc, + * excludedCarriers has same mcc/mnc and gid1 is ABCD. It means except the carrier whose gid1 + * is ABCD, all carriers with the same mcc/mnc are allowed. + */ + Carrier[] excludedCarriers; + /** + * Whether this is a carrier restriction with priority or not. + * If this is false, allowedCarriersPrioritized is not applicable. + */ + boolean priority; + /** + * True means that only carriers included in the allowed list and not in the excluded list + * are permitted. Eg. allowedCarriers match mcc/mnc, excludedCarriers has same mcc/mnc and + * gid1 is ABCD. It means except the carrier whose gid1 is ABCD, all carriers with the + * same mcc/mnc are allowed. + * False means that all carriers are allowed except those included in the excluded list + * and not in the allowed list. + */ + boolean allowedCarriersPrioritized; +} diff --git a/radio/aidl/android/hardware/radio/Cdma2000RegistrationInfo.aidl b/radio/aidl/android/hardware/radio/Cdma2000RegistrationInfo.aidl new file mode 100644 index 0000000000..b9f3b66c54 --- /dev/null +++ b/radio/aidl/android/hardware/radio/Cdma2000RegistrationInfo.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable Cdma2000RegistrationInfo { + const int PRL_INDICATOR_NOT_REGISTERED = -1; + const int PRL_INDICATOR_NOT_IN_PRL = 0; + 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 + */ + boolean cssSupported; + /** + * TSB-58 Roaming Indicator if registered on a CDMA or EVDO system or -1 if not. + * Valid values are 0-255. + */ + 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_ + */ + 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. + */ + int defaultRoamingIndicator; +} diff --git a/radio/aidl/android/hardware/radio/CdmaBroadcastSmsConfigInfo.aidl b/radio/aidl/android/hardware/radio/CdmaBroadcastSmsConfigInfo.aidl new file mode 100644 index 0000000000..46f634558c --- /dev/null +++ b/radio/aidl/android/hardware/radio/CdmaBroadcastSmsConfigInfo.aidl @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable CdmaBroadcastSmsConfigInfo { + /** + * Defines a broadcast message identifier whose value is 0x0000 - 0xFFFF as defined in + * C.R1001G 9.3.1 and 9.3.2. + */ + int serviceCategory; + /** + * Language code of broadcast message whose value is 0x00 - 0x07 as defined in C.R1001G 9.2. + */ + int language; + /** + * Selected false means message types specified in serviceCategory are not accepted, + * while true means accepted. + */ + boolean selected; +} diff --git a/radio/aidl/android/hardware/radio/CdmaCallWaiting.aidl b/radio/aidl/android/hardware/radio/CdmaCallWaiting.aidl new file mode 100644 index 0000000000..b08ba7f125 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CdmaCallWaiting.aidl @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CdmaSignalInfoRecord; + +@VintfStability +parcelable CdmaCallWaiting { + const int NUMBER_PLAN_UNKNOWN = 0; + const int NUMBER_PLAN_ISDN = 1; + const int NUMBER_PLAN_DATA = 3; + const int NUMBER_PLAN_TELEX = 4; + const int NUMBER_PLAN_NATIONAL = 8; + const int NUMBER_PLAN_PRIVATE = 9; + + const int NUMBER_PRESENTATION_ALLOWED = 0; + const int NUMBER_PRESENTATION_RESTRICTED = 1; + const int NUMBER_PRESENTATION_UNKNOWN = 2; + + const int NUMBER_TYPE_UNKNOWN = 0; + const int NUMBER_TYPE_INTERNATIONAL = 1; + const int NUMBER_TYPE_NATIONAL = 2; + const int NUMBER_TYPE_NETWORK_SPECIFIC = 3; + const int NUMBER_TYPE_SUBSCRIBER = 4; + + /** + * Remote party number + */ + String number; + /** + * Values are NUMBER_PRESENTATION_ + */ + int numberPresentation; + /** + * Remote party name + */ + String name; + CdmaSignalInfoRecord signalInfoRecord; + /** + * Required to support International Call Waiting + * Values are NUMBER_TYPE_ + */ + int numberType; + /** + * Required to support International Call Waiting + * Values are NUMBER_PLAN_ + */ + int numberPlan; +} diff --git a/radio/aidl/android/hardware/radio/CdmaDisplayInfoRecord.aidl b/radio/aidl/android/hardware/radio/CdmaDisplayInfoRecord.aidl new file mode 100644 index 0000000000..9b11f37c6d --- /dev/null +++ b/radio/aidl/android/hardware/radio/CdmaDisplayInfoRecord.aidl @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * Display Info Rec as defined in C.S0005 section 3.7.5.1. Extended Display Info Rec as defined in + * C.S0005 section 3.7.5.16. Note that the Extended Display info rec contains multiple records of + * the form: display_tag, display_len, and display_len occurrences of the char field if the + * display_tag is not 10000000 or 10000001. To save space, the records are stored consecutively in + * a byte buffer. The display_tag, display_len and chari fields are all 1 byte. + */ +@VintfStability +parcelable CdmaDisplayInfoRecord { + /** + * Max length = RadioConst:CDMA_ALPHA_INFO_BUFFER_LENGTH + */ + String alphaBuf; +} diff --git a/radio/aidl/android/hardware/radio/CdmaInformationRecord.aidl b/radio/aidl/android/hardware/radio/CdmaInformationRecord.aidl new file mode 100644 index 0000000000..20eabffb96 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CdmaInformationRecord.aidl @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CdmaDisplayInfoRecord; +import android.hardware.radio.CdmaLineControlInfoRecord; +import android.hardware.radio.CdmaNumberInfoRecord; +import android.hardware.radio.CdmaRedirectingNumberInfoRecord; +import android.hardware.radio.CdmaSignalInfoRecord; +import android.hardware.radio.CdmaT53AudioControlInfoRecord; +import android.hardware.radio.CdmaT53ClirInfoRecord; + +@VintfStability +parcelable CdmaInformationRecord { + /** + * Names of the CDMA info records (C.S0005 section 3.7.5) + */ + const int NAME_DISPLAY = 0; + const int NAME_CALLED_PARTY_NUMBER = 1; + const int NAME_CALLING_PARTY_NUMBER = 2; + const int NAME_CONNECTED_NUMBER = 3; + const int NAME_SIGNAL = 4; + const int NAME_REDIRECTING_NUMBER = 5; + const int NAME_LINE_CONTROL = 6; + const int NAME_EXTENDED_DISPLAY = 7; + const int NAME_T53_CLIR = 8; + const int NAME_T53_RELEASE = 9; + 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_ + */ + int name; + /** + * Display and extended display info rec + */ + CdmaDisplayInfoRecord[] display; + /** + * Called party number, calling party number, connected number info rec + */ + CdmaNumberInfoRecord[] number; + /** + * Signal info rec + */ + CdmaSignalInfoRecord[] signal; + /** + * Redirecting number info rec + */ + CdmaRedirectingNumberInfoRecord[] redir; + /** + * Line control info rec + */ + CdmaLineControlInfoRecord[] lineCtrl; + /** + * T53 CLIR info rec + */ + CdmaT53ClirInfoRecord[] clir; + /** + * T53 Audio Control info rec + */ + CdmaT53AudioControlInfoRecord[] audioCtrl; +} diff --git a/radio/aidl/android/hardware/radio/CdmaInformationRecords.aidl b/radio/aidl/android/hardware/radio/CdmaInformationRecords.aidl new file mode 100644 index 0000000000..dcf0ed20ac --- /dev/null +++ b/radio/aidl/android/hardware/radio/CdmaInformationRecords.aidl @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CdmaInformationRecord; + +@VintfStability +parcelable CdmaInformationRecords { + /** + * Max length = RadioConst:CDMA_MAX_NUMBER_OF_INFO_RECS + */ + CdmaInformationRecord[] infoRec; +} diff --git a/radio/aidl/android/hardware/radio/CdmaLineControlInfoRecord.aidl b/radio/aidl/android/hardware/radio/CdmaLineControlInfoRecord.aidl new file mode 100644 index 0000000000..a6178afd52 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CdmaLineControlInfoRecord.aidl @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * Line Control Information Record as defined in C.S0005 section 3.7.5.15 + */ +@VintfStability +parcelable CdmaLineControlInfoRecord { + byte lineCtrlPolarityIncluded; + byte lineCtrlToggle; + byte lineCtrlReverse; + byte lineCtrlPowerDenial; +} diff --git a/radio/aidl/android/hardware/radio/CdmaNumberInfoRecord.aidl b/radio/aidl/android/hardware/radio/CdmaNumberInfoRecord.aidl new file mode 100644 index 0000000000..06e8317bd0 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CdmaNumberInfoRecord.aidl @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * Called Party Number Info Rec as defined in C.S0005 section 3.7.5.2 + * Calling Party Number Info Rec as defined in C.S0005 section 3.7.5.3 + * Connected Number Info Rec as defined in C.S0005 section 3.7.5.4 + */ +@VintfStability +parcelable CdmaNumberInfoRecord { + /** + * Max length = RADIO_CDMA_NUMBER_INFO_BUFFER_LENGTH + */ + String number; + byte numberType; + byte numberPlan; + byte pi; + byte si; +} diff --git a/radio/aidl/android/hardware/radio/CdmaOtaProvisionStatus.aidl b/radio/aidl/android/hardware/radio/CdmaOtaProvisionStatus.aidl new file mode 100644 index 0000000000..0cb43141f6 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CdmaOtaProvisionStatus.aidl @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum CdmaOtaProvisionStatus { + SPL_UNLOCKED, + SPC_RETRIES_EXCEEDED, + A_KEY_EXCHANGED, + SSD_UPDATED, + NAM_DOWNLOADED, + MDN_DOWNLOADED, + IMSI_DOWNLOADED, + PRL_DOWNLOADED, + COMMITTED, + OTAPA_STARTED, + OTAPA_STOPPED, + OTAPA_ABORTED, +} diff --git a/radio/aidl/android/hardware/radio/CdmaRedirectingNumberInfoRecord.aidl b/radio/aidl/android/hardware/radio/CdmaRedirectingNumberInfoRecord.aidl new file mode 100644 index 0000000000..7ba272b8a6 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CdmaRedirectingNumberInfoRecord.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CdmaNumberInfoRecord; + +@VintfStability +parcelable CdmaRedirectingNumberInfoRecord { + /** + * Redirecting Number Information Record as defined in C.S0005 section 3.7.5.11 + */ + const int REDIRECTING_REASON_UNKNOWN = 0; + const int REDIRECTING_REASON_CALL_FORWARDING_BUSY = 1; + const int REDIRECTING_REASON_CALL_FORWARDING_NO_REPLY = 2; + const int REDIRECTING_REASON_CALLED_DTE_OUT_OF_ORDER = 9; + const int REDIRECTING_REASON_CALL_FORWARDING_BY_THE_CALLED_DTE = 10; + const int REDIRECTING_REASON_CALL_FORWARDING_UNCONDITIONAL = 15; + const int REDIRECTING_REASON_RESERVED = 16; + + CdmaNumberInfoRecord redirectingNumber; + /** + * Set to UNKNOWN if not included. + * Values are REDIRECTING_REASON_ + */ + int redirectingReason; +} diff --git a/radio/aidl/android/hardware/radio/CdmaRoamingType.aidl b/radio/aidl/android/hardware/radio/CdmaRoamingType.aidl new file mode 100644 index 0000000000..df09e0337c --- /dev/null +++ b/radio/aidl/android/hardware/radio/CdmaRoamingType.aidl @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum CdmaRoamingType { + HOME_NETWORK, + AFFILIATED_ROAM, + ANY_ROAM, +} diff --git a/radio/aidl/android/hardware/radio/CdmaSignalInfoRecord.aidl b/radio/aidl/android/hardware/radio/CdmaSignalInfoRecord.aidl new file mode 100644 index 0000000000..36ecb1813d --- /dev/null +++ b/radio/aidl/android/hardware/radio/CdmaSignalInfoRecord.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * CDMA Signal Information Record as defined in C.S0005 section 3.7.5.5 + */ +@VintfStability +parcelable CdmaSignalInfoRecord { + /** + * True if signal information record is present + */ + boolean isPresent; + /** + * Defined in 3.7.5.5-1 + */ + byte signalType; + /** + * Defined in 3.7.5.5-2 + */ + byte alertPitch; + /** + * Defined in 3.7.5.5-3, 3.7.5.5-4 or 3.7.5.5-5 + */ + byte signal; +} diff --git a/radio/aidl/android/hardware/radio/CdmaSignalStrength.aidl b/radio/aidl/android/hardware/radio/CdmaSignalStrength.aidl new file mode 100644 index 0000000000..e6c2fb5e2f --- /dev/null +++ b/radio/aidl/android/hardware/radio/CdmaSignalStrength.aidl @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable CdmaSignalStrength { + /** + * This value is the actual RSSI value multiplied by -1. Example: If the actual RSSI is -75, + * then this response value will be 75. INT_MAX means invalid/unreported. + */ + 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. INT_MAX means invalid/unreported. + */ + int ecio; +} diff --git a/radio/aidl/android/hardware/radio/CdmaSmsAck.aidl b/radio/aidl/android/hardware/radio/CdmaSmsAck.aidl new file mode 100644 index 0000000000..b1e85ff2ed --- /dev/null +++ b/radio/aidl/android/hardware/radio/CdmaSmsAck.aidl @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable CdmaSmsAck { + 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. + */ + int smsCauseCode; +} diff --git a/radio/aidl/android/hardware/radio/CdmaSmsAddress.aidl b/radio/aidl/android/hardware/radio/CdmaSmsAddress.aidl new file mode 100644 index 0000000000..d449ccfc33 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CdmaSmsAddress.aidl @@ -0,0 +1,104 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable CdmaSmsAddress { + /** + * DTMF digits + */ + const int DIGIT_MODE_FOUR_BIT = 0; + const int DIGIT_MODE_EIGHT_BIT = 1; + + const int NUMBER_PLAN_UNKNOWN = 0; + /** + * CCITT E.164 and E.163, including ISDN plan + */ + const int NUMBER_PLAN_TELEPHONY = 1; + const int NUMBER_PLAN_RESERVED_2 = 2; + /** + * CCITT X.121 + */ + const int NUMBER_PLAN_DATA = 3; + /** + * CCITT F.69 + */ + const int NUMBER_PLAN_TELEX = 4; + const int NUMBER_PLAN_RESERVED_5 = 5; + const int NUMBER_PLAN_RESERVED_6 = 6; + const int NUMBER_PLAN_RESERVED_7 = 7; + const int NUMBER_PLAN_RESERVED_8 = 8; + const int NUMBER_PLAN_PRIVATE = 9; + const int NUMBER_PLAN_RESERVED_10 = 10; + const int NUMBER_PLAN_RESERVED_11 = 11; + const int NUMBER_PLAN_RESERVED_12 = 12; + const int NUMBER_PLAN_RESERVED_13 = 13; + const int NUMBER_PLAN_RESERVED_14 = 14; + const int NUMBER_PLAN_RESERVED_15 = 15; + + 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. + */ + const int NUMBER_TYPE_INTERNATIONAL_OR_DATA_IP = 1; + /** + * NATIONAL is used when the number mode is not data netework address. INTERNET_MAIL is used + * 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 + */ + const int NUMBER_TYPE_NATIONAL_OR_INTERNET_MAIL = 2; + const int NUMBER_TYPE_NETWORK = 3; + const int NUMBER_TYPE_SUBSCRIBER = 4; + /** + * GSM SMS: address value is GSM 7-bit chars + */ + const int NUMBER_TYPE_ALPHANUMERIC = 5; + const int NUMBER_TYPE_ABBREVIATED = 6; + 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_ + */ + int digitMode; + /** + * Used only when digitMode is 8-bit. + */ + boolean isNumberModeDataNetwork; + /** + * Used only when digitMode is 8-bit. To specify an international address, use the following: + * digitMode = EIGHT_BIT + * isNumberModeDataNetwork = true + * numberType = INTERNATIONAL_OR_DATA_IP + * numberPlan = TELEPHONY + * digits = ASCII digits, e.g. '1', '2', '3', '4', and '5' + * Values are NUMBER_TYPE_ + */ + int numberType; + /** + * Used only when digitMode is 8-bit. + * Values are NUMBER_PLAN_ + */ + int numberPlan; + /** + * Each byte in this array represents a 4 bit or 8-bit digit of address data. + */ + byte[] digits; +} diff --git a/radio/aidl/android/hardware/radio/CdmaSmsMessage.aidl b/radio/aidl/android/hardware/radio/CdmaSmsMessage.aidl new file mode 100644 index 0000000000..f38cc5b5ea --- /dev/null +++ b/radio/aidl/android/hardware/radio/CdmaSmsMessage.aidl @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CdmaSmsAddress; +import android.hardware.radio.CdmaSmsSubaddress; + +@VintfStability +parcelable CdmaSmsMessage { + int teleserviceId; + boolean isServicePresent; + int serviceCategory; + CdmaSmsAddress address; + CdmaSmsSubaddress subAddress; + /** + * 3GPP2 C.S0015-B, v2.0 + */ + byte[] bearerData; +} diff --git a/radio/aidl/android/hardware/radio/CdmaSmsSubaddress.aidl b/radio/aidl/android/hardware/radio/CdmaSmsSubaddress.aidl new file mode 100644 index 0000000000..e5d749408b --- /dev/null +++ b/radio/aidl/android/hardware/radio/CdmaSmsSubaddress.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable CdmaSmsSubaddress { + /** + * CCITT X.213 or ISO 8348 AD2 + */ + const int SUBADDRESS_TYPE_NSAP = 0; + /** + * e.g. X.25 + */ + const int SUBADDRESS_TYPE_USER_SPECIFIED = 1; + + /** + * Values are SUBADDRESS_TYPE_ + */ + int subaddressType; + /** + * True means the last byte's lower 4 bits must be ignored + */ + boolean odd; + /** + * Each byte represents an 8-bit digit of subaddress data + */ + byte[] digits; +} diff --git a/radio/aidl/android/hardware/radio/CdmaSmsWriteArgs.aidl b/radio/aidl/android/hardware/radio/CdmaSmsWriteArgs.aidl new file mode 100644 index 0000000000..57896f4ef0 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CdmaSmsWriteArgs.aidl @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CdmaSmsMessage; + +@VintfStability +parcelable CdmaSmsWriteArgs { + const int STATUS_REC_UNREAD = 0; + const int STATUS_REC_READ = 1; + const int STATUS_STO_UNSENT = 2; + const int STATUS_STO_SENT = 3; + + /** + * Status of message. See TS 27.005 3.1 + * Values are STATUS_ + */ + int status; + CdmaSmsMessage message; +} diff --git a/radio/aidl/android/hardware/radio/CdmaSubscriptionSource.aidl b/radio/aidl/android/hardware/radio/CdmaSubscriptionSource.aidl new file mode 100644 index 0000000000..b83e81a227 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CdmaSubscriptionSource.aidl @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum CdmaSubscriptionSource { + RUIM_SIM, + NV, +} diff --git a/radio/aidl/android/hardware/radio/CdmaT53AudioControlInfoRecord.aidl b/radio/aidl/android/hardware/radio/CdmaT53AudioControlInfoRecord.aidl new file mode 100644 index 0000000000..715a2f7b2c --- /dev/null +++ b/radio/aidl/android/hardware/radio/CdmaT53AudioControlInfoRecord.aidl @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * T53 Audio Control Information Record + */ +@VintfStability +parcelable CdmaT53AudioControlInfoRecord { + byte upLink; + byte downLink; +} diff --git a/radio/aidl/android/hardware/radio/CdmaT53ClirInfoRecord.aidl b/radio/aidl/android/hardware/radio/CdmaT53ClirInfoRecord.aidl new file mode 100644 index 0000000000..636d40c48a --- /dev/null +++ b/radio/aidl/android/hardware/radio/CdmaT53ClirInfoRecord.aidl @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * T53 CLIR Information Record + */ +@VintfStability +parcelable CdmaT53ClirInfoRecord { + byte cause; +} diff --git a/radio/aidl/android/hardware/radio/CellConfigLte.aidl b/radio/aidl/android/hardware/radio/CellConfigLte.aidl new file mode 100644 index 0000000000..56a1a10c1d --- /dev/null +++ b/radio/aidl/android/hardware/radio/CellConfigLte.aidl @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * Contains the configuration of the LTE cell tower. + */ +@VintfStability +parcelable CellConfigLte { + /** + * Indicates that if E-UTRA-NR Dual Connectivity (EN-DC) is supported by the LTE cell. + * True if the plmn-InfoList-r15 is present in SIB2 and at least one bit in this list is true, + * otherwise this value should be false. + * Reference: 3GPP TS 36.331 v15.2.2 6.3.1 System information blocks. + */ + boolean isEndcAvailable; +} diff --git a/radio/aidl/android/hardware/radio/CellConnectionStatus.aidl b/radio/aidl/android/hardware/radio/CellConnectionStatus.aidl new file mode 100644 index 0000000000..faa9b28635 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CellConnectionStatus.aidl @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum CellConnectionStatus { + /** + * Cell is not a serving cell. + */ + NONE, + /** + * UE has connection to cell for signalling and possibly data (3GPP 36.331, 25.331). + */ + PRIMARY_SERVING, + /** + * UE has connection to cell for data (3GPP 36.331, 25.331). + */ + SECONDARY_SERVING, +} diff --git a/radio/aidl/android/hardware/radio/CellIdentity.aidl b/radio/aidl/android/hardware/radio/CellIdentity.aidl new file mode 100644 index 0000000000..abfcc9d11f --- /dev/null +++ b/radio/aidl/android/hardware/radio/CellIdentity.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CellIdentityCdma; +import android.hardware.radio.CellIdentityGsm; +import android.hardware.radio.CellIdentityLte; +import android.hardware.radio.CellIdentityNr; +import android.hardware.radio.CellIdentityTdscdma; +import android.hardware.radio.CellIdentityWcdma; + +/** + * A union representing the CellIdentity of a single cell. + */ +@VintfStability +union CellIdentity { + boolean noinit; + CellIdentityGsm gsm; + CellIdentityWcdma wcdma; + CellIdentityTdscdma tdscdma; + CellIdentityCdma cdma; + CellIdentityLte lte; + CellIdentityNr nr; +} diff --git a/radio/aidl/android/hardware/radio/CellIdentityCdma.aidl b/radio/aidl/android/hardware/radio/CellIdentityCdma.aidl new file mode 100644 index 0000000000..56867e982b --- /dev/null +++ b/radio/aidl/android/hardware/radio/CellIdentityCdma.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CellIdentityOperatorNames; + +@VintfStability +parcelable CellIdentityCdma { + /** + * Network Id 0..65535, INT_MAX if unknown + */ + int networkId; + /** + * CDMA System Id 0..32767, INT_MAX if unknown + */ + int systemId; + /** + * Base Station Id 0..65535, INT_MAX if unknown + */ + 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). INT_MAX if unknown + */ + 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). INT_MAX if unknown + */ + int latitude; + CellIdentityOperatorNames operatorNames; +} diff --git a/radio/aidl/android/hardware/radio/CellIdentityGsm.aidl b/radio/aidl/android/hardware/radio/CellIdentityGsm.aidl new file mode 100644 index 0000000000..f1c5042fe8 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CellIdentityGsm.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CellIdentityOperatorNames; + +@VintfStability +parcelable CellIdentityGsm { + /** + * 3-digit Mobile Country Code, 0..999, empty string if unknown + */ + String mcc; + /** + * 2 or 3-digit Mobile Network Code, 0..999, empty string if unknown + */ + String mnc; + /** + * 16-bit Location Area Code, 0..65535, INT_MAX if unknown + */ + int lac; + /** + * 16-bit GSM Cell Identity described in TS 27.007, 0..65535, INT_MAX if unknown + */ + int cid; + /** + * 16-bit GSM Absolute RF channel number; this value must be valid + */ + int arfcn; + /** + * 6-bit Base Station Identity Code, 0xFF if unknown + */ + byte bsic; + CellIdentityOperatorNames operatorNames; + /** + * Additional PLMN-IDs beyond the primary PLMN broadcast for this cell + */ + String[] additionalPlmns; +} diff --git a/radio/aidl/android/hardware/radio/CellIdentityLte.aidl b/radio/aidl/android/hardware/radio/CellIdentityLte.aidl new file mode 100644 index 0000000000..1a261a648f --- /dev/null +++ b/radio/aidl/android/hardware/radio/CellIdentityLte.aidl @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CellIdentityOperatorNames; +import android.hardware.radio.ClosedSubscriberGroupInfo; +import android.hardware.radio.EutranBands; + +@VintfStability +parcelable CellIdentityLte { + /** + * 3-digit Mobile Country Code, 0..999, empty string if unknown + */ + String mcc; + /** + * 2 or 3-digit Mobile Network Code, 0..999, empty string if unknown + */ + String mnc; + /** + * 28-bit Cell Identity described in TS TS 27.007, INT_MAX if unknown + */ + int ci; + /** + * Physical cell id 0..503; this value must be valid + */ + int pci; + /** + * 16-bit tracking area code, INT_MAX if unknown + */ + int tac; + /** + * 18-bit LTE Absolute RF Channel Number; this value must be valid + */ + int earfcn; + CellIdentityOperatorNames operatorNames; + /** + * Cell bandwidth, in kHz. + */ + int bandwidth; + /** + * Additional PLMN-IDs beyond the primary PLMN broadcast for this cell + */ + String[] additionalPlmns; + /** + * Information about any closed subscriber group ID for this cell + */ + @nullable ClosedSubscriberGroupInfo csgInfo; + /** + * Bands used by the cell. + */ + EutranBands[] bands; +} diff --git a/radio/aidl/android/hardware/radio/CellIdentityNr.aidl b/radio/aidl/android/hardware/radio/CellIdentityNr.aidl new file mode 100644 index 0000000000..6879c63faa --- /dev/null +++ b/radio/aidl/android/hardware/radio/CellIdentityNr.aidl @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CellIdentityOperatorNames; +import android.hardware.radio.NgranBands; + +/** + * The CellIdentity structure should be reported once for each element of the PLMN-IdentityInfoList + * broadcast in SIB1 CellAccessRelatedInfo as per 3GPP TS 38.331 Section 6.3.2. + */ +@VintfStability +parcelable CellIdentityNr { + /** + * 3-digit Mobile Country Code, in range[0, 999]; This value must be valid for registered or + * camped cells; INT_MAX means invalid/unreported. + */ + String mcc; + /** + * 2 or 3-digit Mobile Network Code, in range [0, 999], This value must be valid for + * registered or camped cells; INT_MAX means invalid/unreported. + */ + String mnc; + /** + * NR Cell Identity in range [0, 68719476735] (36 bits) described in 3GPP TS 38.331, which + * unambiguously identifies a cell within a PLMN. This value must be valid for registered or + * camped cells; LONG_MAX (2^63-1) means invalid/unreported. + */ + long nci; + /** + * Physical cell id in range [0, 1007] described in 3GPP TS 38.331. This value must be valid. + */ + int pci; + /** + * 16-bit tracking area code, INT_MAX means invalid/unreported. + */ + int tac; + /** + * NR Absolute Radio Frequency Channel Number, in range [0, 3279165]. + * Reference: 3GPP TS 38.101-1 and 3GPP TS 38.101-2 section 5.4.2.1. + * This value must be valid. + */ + int nrarfcn; + CellIdentityOperatorNames operatorNames; + /** + * Additional PLMN-IDs beyond the primary PLMN broadcast for this cell + */ + String[] additionalPlmns; + /** + * Bands used by the cell. + */ + NgranBands[] bands; +} diff --git a/radio/aidl/android/hardware/radio/CellIdentityOperatorNames.aidl b/radio/aidl/android/hardware/radio/CellIdentityOperatorNames.aidl new file mode 100644 index 0000000000..dea9929f73 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CellIdentityOperatorNames.aidl @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable CellIdentityOperatorNames { + /** + * Long alpha operator name string or enhanced operator name string. + */ + String alphaLong; + /** + * Short alpha operator name string or enhanced operator name string. + */ + String alphaShort; +} diff --git a/radio/aidl/android/hardware/radio/CellIdentityTdscdma.aidl b/radio/aidl/android/hardware/radio/CellIdentityTdscdma.aidl new file mode 100644 index 0000000000..8232245833 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CellIdentityTdscdma.aidl @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CellIdentityOperatorNames; +import android.hardware.radio.ClosedSubscriberGroupInfo; + +@VintfStability +parcelable CellIdentityTdscdma { + /** + * 3-digit Mobile Country Code, 0..999, empty string if unknown. + */ + String mcc; + /** + * 2 or 3-digit Mobile Network Code, 0..999, empty string if unknown. + */ + String mnc; + /** + * 16-bit Location Area Code, 0..65535, INT_MAX if unknown. + */ + int lac; + /** + * 28-bit UMTS Cell Identity described in TS 25.331, 0..268435455, INT_MAX if unknown. + */ + int cid; + /** + * 8-bit Cell Parameters ID described in TS 25.331, 0..127, INT_MAX if unknown. + */ + int cpid; + /** + * 16-bit UMTS Absolute RF Channel Number defined in TS 25.102 5.4.4; this value must be valid. + */ + int uarfcn; + CellIdentityOperatorNames operatorNames; + /** + * Additional PLMN-IDs beyond the primary PLMN broadcast for this cell. + */ + String[] additionalPlmns; + /** + * Information about any closed subscriber group ID for this cell. + */ + @nullable ClosedSubscriberGroupInfo csgInfo; +} diff --git a/radio/aidl/android/hardware/radio/CellIdentityWcdma.aidl b/radio/aidl/android/hardware/radio/CellIdentityWcdma.aidl new file mode 100644 index 0000000000..3432747943 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CellIdentityWcdma.aidl @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CellIdentityOperatorNames; +import android.hardware.radio.ClosedSubscriberGroupInfo; + +@VintfStability +parcelable CellIdentityWcdma { + /** + * 3-digit Mobile Country Code, 0..999, empty string if unknown. + */ + String mcc; + /** + * 2 or 3-digit Mobile Network Code, 0..999, empty string if unknown. + */ + String mnc; + /** + * 16-bit Location Area Code, 0..65535, INT_MAX if unknown. + */ + int lac; + /** + * 28-bit UMTS Cell Identity described in TS 25.331, 0..268435455, INT_MAX if unknown. + */ + int cid; + /** + * 9-bit UMTS Primary Scrambling Code described in TS 25.331, 0..511; this value must be valid. + */ + int psc; + /** + * 16-bit UMTS Absolute RF Channel Number; this value must be valid. + */ + int uarfcn; + CellIdentityOperatorNames operatorNames; + /** + * Additional PLMN-IDs beyond the primary PLMN broadcast for this cell. + */ + String[] additionalPlmns; + /** + * Information about any closed subscriber group ID for this cell. + */ + @nullable ClosedSubscriberGroupInfo csgInfo; +} diff --git a/radio/aidl/android/hardware/radio/CellInfo.aidl b/radio/aidl/android/hardware/radio/CellInfo.aidl new file mode 100644 index 0000000000..fe4f330611 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CellInfo.aidl @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CellConnectionStatus; +import android.hardware.radio.CellInfoCellInfoRatSpecificInfo; + +@VintfStability +parcelable CellInfo { + /** + * True if this cell is registered false if not registered. + */ + boolean registered; + /** + * Connection status for the cell. + */ + CellConnectionStatus connectionStatus; + CellInfoCellInfoRatSpecificInfo ratSpecificInfo; +} diff --git a/radio/aidl/android/hardware/radio/CellInfoCdma.aidl b/radio/aidl/android/hardware/radio/CellInfoCdma.aidl new file mode 100644 index 0000000000..27a35d1247 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CellInfoCdma.aidl @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CdmaSignalStrength; +import android.hardware.radio.CellIdentityCdma; +import android.hardware.radio.EvdoSignalStrength; + +@VintfStability +parcelable CellInfoCdma { + CellIdentityCdma cellIdentityCdma; + CdmaSignalStrength signalStrengthCdma; + EvdoSignalStrength signalStrengthEvdo; +} diff --git a/radio/aidl/android/hardware/radio/CellInfoCellInfoRatSpecificInfo.aidl b/radio/aidl/android/hardware/radio/CellInfoCellInfoRatSpecificInfo.aidl new file mode 100644 index 0000000000..cdd33863de --- /dev/null +++ b/radio/aidl/android/hardware/radio/CellInfoCellInfoRatSpecificInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CellInfoCdma; +import android.hardware.radio.CellInfoGsm; +import android.hardware.radio.CellInfoLte; +import android.hardware.radio.CellInfoNr; +import android.hardware.radio.CellInfoTdscdma; +import android.hardware.radio.CellInfoWcdma; + +@VintfStability +union CellInfoCellInfoRatSpecificInfo { + /** + * 3gpp CellInfo types. + */ + CellInfoGsm gsm; + CellInfoWcdma wcdma; + CellInfoTdscdma tdscdma; + CellInfoLte lte; + CellInfoNr nr; + /** + * 3gpp2 CellInfo types; + */ + CellInfoCdma cdma; +} diff --git a/radio/aidl/android/hardware/radio/CellInfoGsm.aidl b/radio/aidl/android/hardware/radio/CellInfoGsm.aidl new file mode 100644 index 0000000000..16ba8574ef --- /dev/null +++ b/radio/aidl/android/hardware/radio/CellInfoGsm.aidl @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CellIdentityGsm; +import android.hardware.radio.GsmSignalStrength; + +@VintfStability +parcelable CellInfoGsm { + CellIdentityGsm cellIdentityGsm; + GsmSignalStrength signalStrengthGsm; +} diff --git a/radio/aidl/android/hardware/radio/CellInfoInfo.aidl b/radio/aidl/android/hardware/radio/CellInfoInfo.aidl new file mode 100644 index 0000000000..4d5e12d4cd --- /dev/null +++ b/radio/aidl/android/hardware/radio/CellInfoInfo.aidl @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CellInfoCdma; +import android.hardware.radio.CellInfoGsm; +import android.hardware.radio.CellInfoLte; +import android.hardware.radio.CellInfoNr; +import android.hardware.radio.CellInfoTdscdma; +import android.hardware.radio.CellInfoWcdma; + +@VintfStability +union CellInfoInfo { + CellInfoGsm gsm; + CellInfoCdma cdma; + CellInfoWcdma wcdma; + CellInfoTdscdma tdscdma; + CellInfoLte lte; + CellInfoNr nr; +} diff --git a/radio/aidl/android/hardware/radio/CellInfoLte.aidl b/radio/aidl/android/hardware/radio/CellInfoLte.aidl new file mode 100644 index 0000000000..d3389c1564 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CellInfoLte.aidl @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CellIdentityLte; +import android.hardware.radio.LteSignalStrength; + +@VintfStability +parcelable CellInfoLte { + CellIdentityLte cellIdentityLte; + LteSignalStrength signalStrengthLte; +} diff --git a/radio/aidl/android/hardware/radio/CellInfoNr.aidl b/radio/aidl/android/hardware/radio/CellInfoNr.aidl new file mode 100644 index 0000000000..b1f311f113 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CellInfoNr.aidl @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CellIdentityNr; +import android.hardware.radio.NrSignalStrength; + +@VintfStability +parcelable CellInfoNr { + CellIdentityNr cellIdentityNr; + NrSignalStrength signalStrengthNr; +} diff --git a/radio/aidl/android/hardware/radio/CellInfoTdscdma.aidl b/radio/aidl/android/hardware/radio/CellInfoTdscdma.aidl new file mode 100644 index 0000000000..b7d09bc07b --- /dev/null +++ b/radio/aidl/android/hardware/radio/CellInfoTdscdma.aidl @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CellIdentityTdscdma; +import android.hardware.radio.TdscdmaSignalStrength; + +@VintfStability +parcelable CellInfoTdscdma { + CellIdentityTdscdma cellIdentityTdscdma; + TdscdmaSignalStrength signalStrengthTdscdma; +} diff --git a/radio/aidl/android/hardware/radio/CellInfoType.aidl b/radio/aidl/android/hardware/radio/CellInfoType.aidl new file mode 100644 index 0000000000..8e5e8c92d3 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CellInfoType.aidl @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum CellInfoType { + NONE, + GSM, + CDMA, + LTE, + WCDMA, + TD_SCDMA, +} diff --git a/radio/aidl/android/hardware/radio/CellInfoWcdma.aidl b/radio/aidl/android/hardware/radio/CellInfoWcdma.aidl new file mode 100644 index 0000000000..03b086367a --- /dev/null +++ b/radio/aidl/android/hardware/radio/CellInfoWcdma.aidl @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CellIdentityWcdma; +import android.hardware.radio.WcdmaSignalStrength; + +@VintfStability +parcelable CellInfoWcdma { + CellIdentityWcdma cellIdentityWcdma; + WcdmaSignalStrength signalStrengthWcdma; +} diff --git a/radio/aidl/android/hardware/radio/CfData.aidl b/radio/aidl/android/hardware/radio/CfData.aidl new file mode 100644 index 0000000000..c6a91b9807 --- /dev/null +++ b/radio/aidl/android/hardware/radio/CfData.aidl @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CallForwardInfo; + +@VintfStability +parcelable CfData { + /** + * This is the response data for SS request to query call forward status. + * See getCallForwardStatus(). Max size = RadioConst:NUM_SERVICE_CLASSES. + */ + CallForwardInfo[] cfInfo; +} diff --git a/radio/aidl/android/hardware/radio/ClipStatus.aidl b/radio/aidl/android/hardware/radio/ClipStatus.aidl new file mode 100644 index 0000000000..c75c609092 --- /dev/null +++ b/radio/aidl/android/hardware/radio/ClipStatus.aidl @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum ClipStatus { + /** + * CLIP provisioned + */ + CLIP_PROVISIONED, + /** + * CLIP not provisioned + */ + CLIP_UNPROVISIONED, + /** + * Unknown, e.g. no networks etc + */ + UNKNOWN, +} diff --git a/radio/aidl/android/hardware/radio/ClosedSubscriberGroupInfo.aidl b/radio/aidl/android/hardware/radio/ClosedSubscriberGroupInfo.aidl new file mode 100644 index 0000000000..7c6fb7a5fe --- /dev/null +++ b/radio/aidl/android/hardware/radio/ClosedSubscriberGroupInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable ClosedSubscriberGroupInfo { + /** + * Indicates whether the cell is restricted to only CSG members. A cell not broadcasting the + * CSG Indication but reporting CSG information is considered a Hybrid Cell. + * Refer to the "csg-Indication" field in 3GPP TS 36.331 section 6.2.2 + * SystemInformationBlockType1. + * Also refer to "CSG Indicator" in 3GPP TS 25.331 section 10.2.48.8.1 and TS 25.304. + */ + boolean csgIndication; + /** + * The human-readable name of the closed subscriber group operating this cell. + * Refer to "hnb-Name" in TS 36.331 section 6.2.2 SystemInformationBlockType9. + * Also refer to "HNB Name" in 3GPP TS25.331 section 10.2.48.8.23 and TS 23.003 section 4.8. + */ + String homeNodebName; + /** + * The identity of the closed subscriber group that the cell belongs to. + * Refer to "CSG-Identity" in TS 36.336 section 6.3.4. + * Also refer to "CSG Identity" in 3GPP TS 25.331 section 10.3.2.8 and TS 23.003 section 4.7. + */ + int csgIdentity; +} diff --git a/radio/aidl/android/hardware/radio/DataCallFailCause.aidl b/radio/aidl/android/hardware/radio/DataCallFailCause.aidl new file mode 100644 index 0000000000..021988b221 --- /dev/null +++ b/radio/aidl/android/hardware/radio/DataCallFailCause.aidl @@ -0,0 +1,1303 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum DataCallFailCause { + /** + * An integer cause code defined in TS 24.008 section 6.1.3.1.3 or TS 24.301 Release 8+ Annex B. + * If the implementation does not have access to the exact cause codes, then it must return one + * of the following values, as the UI layer needs to distinguish these cases for error + * notification and potential retries. + */ + NONE = 0, + /** + * No retry + */ + OPERATOR_BARRED = 0x08, + /** + * PDP_FAIL_LLC_SNDCP = 0x19 + */ + NAS_SIGNALLING = 0x0E, + INSUFFICIENT_RESOURCES = 0x1A, + /** + * No retry + */ + MISSING_UNKNOWN_APN = 0x1B, + /** + * No retry + */ + UNKNOWN_PDP_ADDRESS_TYPE = 0x1C, + /** + * No retry + */ + USER_AUTHENTICATION = 0x1D, + /** + * No retry + */ + ACTIVATION_REJECT_GGSN = 0x1E, + ACTIVATION_REJECT_UNSPECIFIED = 0x1F, + /** + * No retry + */ + SERVICE_OPTION_NOT_SUPPORTED = 0x20, + /** + * No retry + */ + SERVICE_OPTION_NOT_SUBSCRIBED = 0x21, + SERVICE_OPTION_OUT_OF_ORDER = 0x22, + /** + * No retry + */ + NSAPI_IN_USE = 0x23, + /** + * Possibly restart radio, based on framework config + */ + REGULAR_DEACTIVATION = 0x24, + QOS_NOT_ACCEPTED = 0x25, + NETWORK_FAILURE = 0x26, + UMTS_REACTIVATION_REQ = 0x27, + FEATURE_NOT_SUPP = 0x28, + TFT_SEMANTIC_ERROR = 0x29, + TFT_SYTAX_ERROR = 0x2A, + UNKNOWN_PDP_CONTEXT = 0x2B, + FILTER_SEMANTIC_ERROR = 0x2C, + FILTER_SYTAX_ERROR = 0x2D, + PDP_WITHOUT_ACTIVE_TFT = 0x2E, + /** + * No retry + */ + ONLY_IPV4_ALLOWED = 0x32, + /** + * No retry + */ + ONLY_IPV6_ALLOWED = 0x33, + ONLY_SINGLE_BEARER_ALLOWED = 0x34, + ESM_INFO_NOT_RECEIVED = 0x35, + PDN_CONN_DOES_NOT_EXIST = 0x36, + MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED = 0x37, + MAX_ACTIVE_PDP_CONTEXT_REACHED = 0x41, + UNSUPPORTED_APN_IN_CURRENT_PLMN = 0x42, + INVALID_TRANSACTION_ID = 0x51, + MESSAGE_INCORRECT_SEMANTIC = 0x5F, + INVALID_MANDATORY_INFO = 0x60, + MESSAGE_TYPE_UNSUPPORTED = 0x61, + MSG_TYPE_NONCOMPATIBLE_STATE = 0x62, + UNKNOWN_INFO_ELEMENT = 0x63, + CONDITIONAL_IE_ERROR = 0x64, + MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE = 0x65, + /** + * No retry + */ + PROTOCOL_ERRORS = 0x6F, + APN_TYPE_CONFLICT = 0x70, + INVALID_PCSCF_ADDR = 0x71, + INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN = 0x72, + EMM_ACCESS_BARRED = 0x73, + EMERGENCY_IFACE_ONLY = 0x74, + IFACE_MISMATCH = 0x75, + COMPANION_IFACE_IN_USE = 0x76, + IP_ADDRESS_MISMATCH = 0x77, + IFACE_AND_POL_FAMILY_MISMATCH = 0x78, + EMM_ACCESS_BARRED_INFINITE_RETRY = 0x79, + AUTH_FAILURE_ON_EMERGENCY_CALL = 0x7A, + OEM_DCFAILCAUSE_1 = 0x1001, + OEM_DCFAILCAUSE_2 = 0x1002, + OEM_DCFAILCAUSE_3 = 0x1003, + OEM_DCFAILCAUSE_4 = 0x1004, + OEM_DCFAILCAUSE_5 = 0x1005, + OEM_DCFAILCAUSE_6 = 0x1006, + OEM_DCFAILCAUSE_7 = 0x1007, + OEM_DCFAILCAUSE_8 = 0x1008, + OEM_DCFAILCAUSE_9 = 0x1009, + OEM_DCFAILCAUSE_10 = 0x100A, + OEM_DCFAILCAUSE_11 = 0x100B, + OEM_DCFAILCAUSE_12 = 0x100C, + OEM_DCFAILCAUSE_13 = 0x100D, + OEM_DCFAILCAUSE_14 = 0x100E, + OEM_DCFAILCAUSE_15 = 0x100F, + /** + * Not mentioned in the specification + */ + VOICE_REGISTRATION_FAIL = -1, + /** + * Not mentioned in the specification + */ + DATA_REGISTRATION_FAIL = -2, + /** + * Network/modem disonnect + */ + SIGNAL_LOST = -3, + /** + * Preferred technology has changed, must retry with parameters appropriate for new technology + */ + PREF_RADIO_TECH_CHANGED = -4, + /** + * Data call was disconnected because radio was resetting, powered off - no retry + */ + RADIO_POWER_OFF = -5, + /** + * Data call was disconnected by modem because tethered mode was up on same APN/data profile + * No retry until tethered call is off + */ + TETHERED_CALL_ACTIVE = -6, + ERROR_UNSPECIFIED = 0xffff, + /** + * Network cannot provide the requested service and PDP context is deactivated because of LLC + * or SNDCP failure. + */ + LLC_SNDCP = 0x19, + /** + * UE requested to modify QoS parameters or the bearer control mode, which is not compatible + * with the selected bearer control mode. + */ + ACTIVATION_REJECTED_BCM_VIOLATION = 0x30, + /** + * Network has already initiated the activation, modification, or deactivation of bearer + * resources that was requested by the UE. + */ + COLLISION_WITH_NETWORK_INITIATED_REQUEST = 0x38, + /** + * Network supports IPv4v6 PDP type only. Non-IP type is not allowed. In LTE mode of operation, + * this is a PDN throttling cause code, meaning the UE may throttle further requests to the + * same APN. + */ + ONLY_IPV4V6_ALLOWED = 0x39, + /** + * Network supports non-IP PDP type only. IPv4, IPv6 and IPv4v6 is not allowed. In LTE mode of + * operation, this is a PDN throttling cause code, meaning the UE can throttle further requests + * to the same APN. + */ + ONLY_NON_IP_ALLOWED = 0x3A, + /** + * QCI (QoS Class Identifier) indicated in the UE request cannot be supported. + */ + UNSUPPORTED_QCI_VALUE = 0x3B, + /** + * Procedure requested by the UE was rejected because the bearer handling is not supported. + */ + BEARER_HANDLING_NOT_SUPPORTED = 0x3C, + /** + * Not receiving a DNS address that was mandatory. + */ + INVALID_DNS_ADDR = 0x7B, + /** + * Not receiving either a PCSCF or a DNS address, one of them being mandatory. + */ + INVALID_PCSCF_OR_DNS_ADDRESS = 0x7C, + /** + * Emergency call bring up on a different ePDG. + */ + CALL_PREEMPT_BY_EMERGENCY_APN = 0x7F, + /** + * UE performs a detach or disconnect PDN action based on TE requirements. + */ + UE_INITIATED_DETACH_OR_DISCONNECT = 0x80, + /** + * Reason unspecified for foreign agent rejected MIP (Mobile IP) registration. + */ + MIP_FA_REASON_UNSPECIFIED = 0x7D0, + /** + * Foreign agent administratively prohibited MIP (Mobile IP) registration. + */ + MIP_FA_ADMIN_PROHIBITED = 0x7D1, + /** + * Foreign agent rejected MIP (Mobile IP) registration because of insufficient resources. + */ + MIP_FA_INSUFFICIENT_RESOURCES = 0x7D2, + /** + * Foreign agent rejected MIP (Mobile IP) registration because of MN-AAA authenticator was + * wrong. + */ + MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE = 0x7D3, + /** + * Foreign agent rejected MIP (Mobile IP) registration because of home agent authentication + * failure. + */ + MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE = 0x7D4, + /** + * Foreign agent rejected MIP (Mobile IP) registration because of requested lifetime was too + * long. + */ + MIP_FA_REQUESTED_LIFETIME_TOO_LONG = 0x7D5, + /** + * Foreign agent rejected MIP (Mobile IP) registration because of malformed request. + */ + MIP_FA_MALFORMED_REQUEST = 0x7D6, + /** + * Foreign agent rejected MIP (Mobile IP) registration because of malformed reply. + */ + MIP_FA_MALFORMED_REPLY = 0x7D7, + /** + * Foreign agent rejected MIP (Mobile IP) registration because of requested encapsulation was + * unavailable. + */ + MIP_FA_ENCAPSULATION_UNAVAILABLE = 0x7D8, + /** + * Foreign agent rejected MIP (Mobile IP) registration of VJ Header Compression was unavailable. + */ + MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE = 0x7D9, + /** + * Foreign agent rejected MIP (Mobile IP) registration because of reverse tunnel was + * unavailable. + */ + MIP_FA_REVERSE_TUNNEL_UNAVAILABLE = 0x7DA, + /** + * Foreign agent rejected MIP (Mobile IP) registration because of reverse tunnel was mandatory + * but not requested by device. + */ + MIP_FA_REVERSE_TUNNEL_IS_MANDATORY = 0x7DB, + /** + * Foreign agent rejected MIP (Mobile IP) registration because of delivery style was not + * supported. + */ + MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED = 0x7DC, + /** + * Foreign agent rejected MIP (Mobile IP) registration because of missing NAI (Network Access + * Identifier). + */ + MIP_FA_MISSING_NAI = 0x7DD, + /** + * Foreign agent rejected MIP (Mobile IP) registration because of missing Home Agent. + */ + MIP_FA_MISSING_HOME_AGENT = 0x7DE, + /** + * Foreign agent rejected MIP (Mobile IP) registration because of missing Home Address. + */ + MIP_FA_MISSING_HOME_ADDRESS = 0x7DF, + /** + * Foreign agent rejected MIP (Mobile IP) registration because of unknown challenge. + */ + MIP_FA_UNKNOWN_CHALLENGE = 0x7E0, + /** + * Foreign agent rejected MIP (Mobile IP) registration because of missing challenge. + */ + MIP_FA_MISSING_CHALLENGE = 0x7E1, + /** + * Foreign agent rejected MIP (Mobile IP) registration because of stale challenge. + */ + MIP_FA_STALE_CHALLENGE = 0x7E2, + /** + * Reason unspecified for home agent rejected MIP (Mobile IP) registration. + */ + MIP_HA_REASON_UNSPECIFIED = 0x7E3, + /** + * Home agent administratively prohibited MIP (Mobile IP) registration. + */ + MIP_HA_ADMIN_PROHIBITED = 0x7E4, + /** + * Home agent rejected MIP (Mobile IP) registration because of insufficient resources. + */ + MIP_HA_INSUFFICIENT_RESOURCES = 0x7E5, + /** + * Home agent rejected MIP (Mobile IP) registration because of MN-HA authenticator was wrong. + */ + MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE = 0x7E6, + /** + * Home agent rejected MIP (Mobile IP) registration because of foreign agent authentication + * failure. + */ + MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE = 0x7E7, + /** + * Home agent rejected MIP (Mobile IP) registration because of registration id mismatch. + */ + MIP_HA_REGISTRATION_ID_MISMATCH = 0x7E8, + /** + * Home agent rejected MIP (Mobile IP) registration because of malformed request. + */ + MIP_HA_MALFORMED_REQUEST = 0x7E9, + /** + * Home agent rejected MIP (Mobile IP) registration because of unknown home agent address. + */ + MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS = 0x7EA, + /** + * Home agent rejected MIP (Mobile IP) registration because of reverse tunnel was unavailable. + */ + MIP_HA_REVERSE_TUNNEL_UNAVAILABLE = 0x7EB, + /** + * Home agent rejected MIP (Mobile IP) registration because of reverse tunnel is mandatory but + * not requested by device. + */ + MIP_HA_REVERSE_TUNNEL_IS_MANDATORY = 0x7EC, + /** + * Home agent rejected MIP (Mobile IP) registration because of encapsulation unavailable. + */ + MIP_HA_ENCAPSULATION_UNAVAILABLE = 0x7ED, + /** + * Tearing down is in progress. + */ + CLOSE_IN_PROGRESS = 0x7EE, + /** + * Brought down by the network. + */ + NETWORK_INITIATED_TERMINATION = 0x7EF, + /** + * Another application in modem preempts the data call. + */ + MODEM_APP_PREEMPTED = 0x7F0, + /** + * IPV4 PDN is in throttled state due to network providing only IPV6 address during the previous + * VSNCP bringup (subs_limited_to_v6). + */ + PDN_IPV4_CALL_DISALLOWED = 0x7F1, + /** + * IPV4 PDN is in throttled state due to previous VSNCP bringup failure(s). + */ + PDN_IPV4_CALL_THROTTLED = 0x7F2, + /** + * IPV6 PDN is in throttled state due to network providing only IPV4 address during the previous + * VSNCP bringup (subs_limited_to_v4). + */ + PDN_IPV6_CALL_DISALLOWED = 0x7F3, + /** + * IPV6 PDN is in throttled state due to previous VSNCP bringup failure(s). + */ + PDN_IPV6_CALL_THROTTLED = 0x7F4, + /** + * Modem restart. + */ + MODEM_RESTART = 0x7F5, + /** + * PDP PPP calls are not supported. + */ + PDP_PPP_NOT_SUPPORTED = 0x7F6, + /** + * RAT on which the data call is attempted/connected is no longer the preferred RAT. + */ + UNPREFERRED_RAT = 0x7F7, + /** + * Physical link is in the process of cleanup. + */ + PHYSICAL_LINK_CLOSE_IN_PROGRESS = 0x7F8, + /** + * Interface bring up is attempted for an APN that is yet to be handed over to target RAT. + */ + APN_PENDING_HANDOVER = 0x7F9, + /** + * APN bearer type in the profile does not match preferred network mode. + */ + PROFILE_BEARER_INCOMPATIBLE = 0x7FA, + /** + * Card was refreshed or removed. + */ + SIM_CARD_CHANGED = 0x7FB, + /** + * Device is going into lower power mode or powering down. + */ + LOW_POWER_MODE_OR_POWERING_DOWN = 0x7FC, + /** + * APN has been disabled. + */ + APN_DISABLED = 0x7FD, + /** + * Maximum PPP inactivity timer expired. + */ + MAX_PPP_INACTIVITY_TIMER_EXPIRED = 0x7FE, + /** + * IPv6 address transfer failed. + */ + IPV6_ADDRESS_TRANSFER_FAILED = 0x7FF, + /** + * Target RAT swap failed. + */ + TRAT_SWAP_FAILED = 0x800, + /** + * Device falls back from eHRPD to HRPD. + */ + EHRPD_TO_HRPD_FALLBACK = 0x801, + /** + * UE is in MIP-only configuration but the MIP configuration fails on call bring up due to + * incorrect provisioning. + */ + MIP_CONFIG_FAILURE = 0x802, + /** + * PDN inactivity timer expired due to no data transmission in a configurable duration of time. + */ + PDN_INACTIVITY_TIMER_EXPIRED = 0x803, + /** + * IPv4 data call bring up is rejected because the UE already maintains the allotted maximum + * number of IPv4 data connections. + */ + MAX_IPV4_CONNECTIONS = 0x804, + /** + * IPv6 data call bring up is rejected because the UE already maintains the allotted maximum + * number of IPv6 data connections. + */ + MAX_IPV6_CONNECTIONS = 0x805, + /** + * New PDN bring up is rejected during interface selection because the UE has already allotted + * the available interfaces for other PDNs. + */ + APN_MISMATCH = 0x806, + /** + * New call bring up is rejected since the existing data call IP type doesn't match the + * requested IP. + */ + IP_VERSION_MISMATCH = 0x807, + /** + * Dial up networking (DUN) call bring up is rejected since UE is in eHRPD RAT. + */ + DUN_CALL_DISALLOWED = 0x808, + /** + * Rejected/Brought down since UE is transition between EPC and NONEPC RAT. + */ + INTERNAL_EPC_NONEPC_TRANSITION = 0x809, + /** + * The current interface is being in use. + */ + INTERFACE_IN_USE = 0x80A, + /** + * PDN connection to the APN is disallowed on the roaming network. + */ + APN_DISALLOWED_ON_ROAMING = 0x80B, + /** + * APN-related parameters are changed. + */ + APN_PARAMETERS_CHANGED = 0x80C, + /** + * PDN is attempted to be brought up with NULL APN but NULL APN is not supported. + */ + NULL_APN_DISALLOWED = 0x80D, + /** + * Thermal level increases and causes calls to be torn down when normal mode of operation is + * not allowed. + */ + THERMAL_MITIGATION = 0x80E, + /** + * PDN Connection to a given APN is disallowed because data is disabled from the device user + * interface settings. + */ + DATA_SETTINGS_DISABLED = 0x80F, + /** + * PDN Connection to a given APN is disallowed because data roaming is disabled from the device + * user interface settings and the UE is roaming. + */ + DATA_ROAMING_SETTINGS_DISABLED = 0x810, + /** + * DDS (Default data subscription) switch occurs. + */ + DDS_SWITCHED = 0x811, + /** + * PDN being brought up with an APN that is part of forbidden APN Name list. + */ + FORBIDDEN_APN_NAME = 0x812, + /** + * Default data subscription switch is in progress. + */ + DDS_SWITCH_IN_PROGRESS = 0x813, + /** + * Roaming is disallowed during call bring up. + */ + CALL_DISALLOWED_IN_ROAMING = 0x814, + /** + * UE is unable to bring up a non-IP data call because the device is not camped on a NB1 cell. + */ + NON_IP_NOT_SUPPORTED = 0x815, + /** + * Non-IP PDN is in throttled state due to previous VSNCP bringup failure(s). + */ + PDN_NON_IP_CALL_THROTTLED = 0x816, + /** + * Non-IP PDN is in disallowed state due to the network providing only an IP address. + */ + PDN_NON_IP_CALL_DISALLOWED = 0x817, + /** + * Device in CDMA locked state. + */ + CDMA_LOCK = 0x818, + /** + * Received an intercept order from the base station. + */ + CDMA_INTERCEPT = 0x819, + /** + * Receiving a reorder from the base station. + */ + CDMA_REORDER = 0x81A, + /** + * Receiving a release from the base station with a SO (Service Option) Reject reason. + */ + CDMA_RELEASE_DUE_TO_SO_REJECTION = 0x81B, + /** + * Receiving an incoming call from the base station. + */ + CDMA_INCOMING_CALL = 0x81C, + /** + * Received an alert stop from the base station due to incoming only. + */ + CDMA_ALERT_STOP = 0x81D, + /** + * Channel acquisition failures. This indicates that device has failed acquiring all the + * channels in the PRL. + */ + CHANNEL_ACQUISITION_FAILURE = 0x81E, + /** + * Maximum access probes transmitted. + */ + MAX_ACCESS_PROBE = 0x81F, + /** + * Concurrent service is not supported by base station. + */ + CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION = 0x820, + /** + * There was no response received from the base station. + */ + NO_RESPONSE_FROM_BASE_STATION = 0x821, + /** + * The base station rejecting the call. + */ + REJECTED_BY_BASE_STATION = 0x822, + /** + * The concurrent services requested were not compatible. + */ + CONCURRENT_SERVICES_INCOMPATIBLE = 0x823, + /** + * Device does not have CDMA service. + */ + NO_CDMA_SERVICE = 0x824, + /** + * RUIM not being present. + */ + RUIM_NOT_PRESENT = 0x825, + /** + * Receiving a retry order from the base station. + */ + CDMA_RETRY_ORDER = 0x826, + /** + * Access blocked by the base station. + */ + ACCESS_BLOCK = 0x827, + /** + * Access blocked by the base station for all mobile devices. + */ + ACCESS_BLOCK_ALL = 0x828, + /** + * Maximum access probes for the IS-707B call. + */ + IS707B_MAX_ACCESS_PROBES = 0x829, + /** + * Put device in thermal emergency. + */ + THERMAL_EMERGENCY = 0x82A, + /** + * In favor of a voice call or SMS when concurrent voice and data are not supported. + */ + CONCURRENT_SERVICES_NOT_ALLOWED = 0x82B, + /** + * The other clients rejected incoming call. + */ + INCOMING_CALL_REJECTED = 0x82C, + /** + * No service on the gateway. + */ + NO_SERVICE_ON_GATEWAY = 0x82D, + /** + * GPRS context is not available. + */ + NO_GPRS_CONTEXT = 0x82E, + /** + * Network refuses service to the MS because either an identity of the MS is not acceptable to + * the network or the MS does not pass the authentication check. + */ + ILLEGAL_MS = 0x82F, + /** + * ME could not be authenticated and the ME used is not acceptable to the network. + */ + ILLEGAL_ME = 0x830, + /** + * Not allowed to operate either GPRS or non-GPRS services. + */ + GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED = 0x831, + /** + * MS is not allowed to operate GPRS services. + */ + GPRS_SERVICES_NOT_ALLOWED = 0x832, + /** + * No matching identity or context could be found in the network. + */ + MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK = 0x833, + /** + * Mobile reachable timer has expired, or the GMM context data related to the subscription does + * not exist in the SGSN. + */ + IMPLICITLY_DETACHED = 0x834, + /** + * UE requests GPRS service, or the network initiates a detach request in a PLMN which does not + * offer roaming for GPRS services to that MS. + */ + PLMN_NOT_ALLOWED = 0x835, + /** + * MS requests service, or the network initiates a detach request, in a location area where the + * HPLMN determines that the MS, by subscription, is not allowed to operate. + */ + LOCATION_AREA_NOT_ALLOWED = 0x836, + /** + * UE requests GPRS service or the network initiates a detach request in a PLMN that does not + * offer roaming for GPRS services. + */ + GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN = 0x837, + /** + * PDP context already exists. + */ + PDP_DUPLICATE = 0x838, + /** + * RAT change on the UE. + */ + UE_RAT_CHANGE = 0x839, + /** + * Network cannot serve a request from the MS due to congestion. + */ + CONGESTION = 0x83A, + /** + * MS requests an establishment of the radio access bearers for all active PDP contexts by + * sending a service request message indicating data to the network, but the SGSN does not have + * any active PDP context. + */ + NO_PDP_CONTEXT_ACTIVATED = 0x83B, + /** + * Access class blocking restrictions for the current camped cell. + */ + ACCESS_CLASS_DSAC_REJECTION = 0x83C, + /** + * SM attempts PDP activation for a maximum of four attempts. + */ + PDP_ACTIVATE_MAX_RETRY_FAILED = 0x83D, + /** + * Radio access bearer failure. + */ + RADIO_ACCESS_BEARER_FAILURE = 0x83E, + /** + * Invalid EPS bearer identity in the request. + */ + ESM_UNKNOWN_EPS_BEARER_CONTEXT = 0x83F, + /** + * Data radio bearer is released by the RRC. + */ + DRB_RELEASED_BY_RRC = 0x840, + /** + * Indicate the connection was released. + */ + CONNECTION_RELEASED = 0x841, + /** + * UE is detached. + */ + EMM_DETACHED = 0x842, + /** + * Attach procedure is rejected by the network. + */ + EMM_ATTACH_FAILED = 0x843, + /** + * Attach procedure is started for EMC purposes. + */ + EMM_ATTACH_STARTED = 0x844, + /** + * Service request procedure failure. + */ + LTE_NAS_SERVICE_REQUEST_FAILED = 0x845, + /** + * Active dedicated bearer was requested using the same default bearer ID. + */ + DUPLICATE_BEARER_ID = 0x846, + /** + * Collision scenarios for the UE and network-initiated procedures. + */ + ESM_COLLISION_SCENARIOS = 0x847, + /** + * Bearer must be deactivated to synchronize with the network. + */ + ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK = 0x848, + /** + * Active dedicated bearer was requested for an existing default bearer. + */ + ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER = 0x849, + /** + * Bad OTA message is received from the network. + */ + ESM_BAD_OTA_MESSAGE = 0x84A, + /** + * Download server rejected the call. + */ + ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL = 0x84B, + /** + * PDN was disconnected by the downlaod server due to IRAT. + */ + ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT = 0x84C, + /** + * Dedicated bearer will be deactivated regardless of the network response. + */ + DS_EXPLICIT_DEACTIVATION = 0x84D, + /** + * No specific local cause is mentioned, usually a valid OTA cause. + */ + ESM_LOCAL_CAUSE_NONE = 0x84E, + /** + * Throttling is not needed for this service request failure. + */ + LTE_THROTTLING_NOT_REQUIRED = 0x84F, + /** + * Access control list check failure at the lower layer. + */ + ACCESS_CONTROL_LIST_CHECK_FAILURE = 0x850, + /** + * Service is not allowed on the requested PLMN. + */ + SERVICE_NOT_ALLOWED_ON_PLMN = 0x851, + /** + * T3417 timer expiration of the service request procedure. + */ + EMM_T3417_EXPIRED = 0x852, + /** + * Extended service request fails due to expiration of the T3417 EXT timer. + */ + EMM_T3417_EXT_EXPIRED = 0x853, + /** + * Transmission failure of radio resource control (RRC) uplink data. + */ + RRC_UPLINK_DATA_TRANSMISSION_FAILURE = 0x854, + /** + * Radio resource control (RRC) uplink data delivery failed due to a handover. + */ + RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER = 0x855, + /** + * Radio resource control (RRC) uplink data delivery failed due to a connection release. + */ + RRC_UPLINK_CONNECTION_RELEASE = 0x856, + /** + * Radio resource control (RRC) uplink data delivery failed due to a radio link failure. + */ + RRC_UPLINK_RADIO_LINK_FAILURE = 0x857, + /** + * Radio resource control (RRC) is not connected but the non-access stratum (NAS) sends an + * uplink data request. + */ + RRC_UPLINK_ERROR_REQUEST_FROM_NAS = 0x858, + /** + * Radio resource control (RRC) connection failure at access stratum. + */ + RRC_CONNECTION_ACCESS_STRATUM_FAILURE = 0x859, + /** + * Radio resource control (RRC) connection establishment is aborted due to another procedure. + */ + RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS = 0x85A, + /** + * Radio resource control (RRC) connection establishment failed due to access barrred. + */ + RRC_CONNECTION_ACCESS_BARRED = 0x85B, + /** + * Radio resource control (RRC) connection establishment failed due to cell reselection at + * access stratum. + */ + RRC_CONNECTION_CELL_RESELECTION = 0x85C, + /** + * Connection establishment failed due to configuration failure at the radio resource control + * (RRC). + */ + RRC_CONNECTION_CONFIG_FAILURE = 0x85D, + /** + * Radio resource control (RRC) connection could not be established in the time limit. + */ + RRC_CONNECTION_TIMER_EXPIRED = 0x85E, + /** + * Connection establishment failed due to a link failure at the radio resource control (RRC). + */ + RRC_CONNECTION_LINK_FAILURE = 0x85F, + /** + * Connection establishment failed as the radio resource control (RRC) is not camped on any + * cell. + */ + RRC_CONNECTION_CELL_NOT_CAMPED = 0x860, + /** + * Connection establishment failed due to a service interval failure at the radio resource + * control (RRC). + */ + RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE = 0x861, + /** + * Radio resource control (RRC) connection establishment failed due to the network rejecting the + * UE connection request. + */ + RRC_CONNECTION_REJECT_BY_NETWORK = 0x862, + /** + * Normal radio resource control (RRC) connection release. + */ + RRC_CONNECTION_NORMAL_RELEASE = 0x863, + /** + * Radio resource control (RRC) connection release failed due to radio link failure conditions. + */ + RRC_CONNECTION_RADIO_LINK_FAILURE = 0x864, + /** + * Radio resource control (RRC) connection re-establishment failure. + */ + RRC_CONNECTION_REESTABLISHMENT_FAILURE = 0x865, + /** + * UE is out of service during the call register. + */ + RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER = 0x866, + /** + * Connection has been released by the radio resource control (RRC) due to an abort request. + */ + RRC_CONNECTION_ABORT_REQUEST = 0x867, + /** + * Radio resource control (RRC) connection released due to a system information block read + * error. + */ + RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR = 0x868, + /** + * Network-initiated detach with reattach. + */ + NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH = 0x869, + /** + * Network-initiated detach without reattach. + */ + NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH = 0x86A, + /** + * ESM procedure maximum attempt timeout failure. + */ + ESM_PROCEDURE_TIME_OUT = 0x86B, + /** + * No PDP exists with the given connection ID while modifying or deactivating or activation for + * an already active PDP. + */ + INVALID_CONNECTION_ID = 0x86C, + /** + * Maximum NSAPIs have been exceeded during PDP activation. + */ + MAXIMIUM_NSAPIS_EXCEEDED = 0x86D, + /** + * Primary context for NSAPI does not exist. + */ + INVALID_PRIMARY_NSAPI = 0x86E, + /** + * Unable to encode the OTA message for MT PDP or deactivate PDP. + */ + CANNOT_ENCODE_OTA_MESSAGE = 0x86F, + /** + * Radio access bearer is not established by the lower layers during activation, modification, + * or deactivation. + */ + RADIO_ACCESS_BEARER_SETUP_FAILURE = 0x870, + /** + * Expiration of the PDP establish timer with a maximum of five retries. + */ + PDP_ESTABLISH_TIMEOUT_EXPIRED = 0x871, + /** + * Expiration of the PDP modify timer with a maximum of four retries. + */ + PDP_MODIFY_TIMEOUT_EXPIRED = 0x872, + /** + * Expiration of the PDP deactivate timer with a maximum of four retries. + */ + PDP_INACTIVE_TIMEOUT_EXPIRED = 0x873, + /** + * PDP activation failed due to RRC_ABORT or a forbidden PLMN. + */ + PDP_LOWERLAYER_ERROR = 0x874, + /** + * MO PDP modify collision when the MT PDP is already in progress. + */ + PDP_MODIFY_COLLISION = 0x875, + /** + * Maximum size of the L2 message was exceeded. + */ + MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED = 0x876, + /** + * Non-access stratum (NAS) request was rejected by the network. + */ + NAS_REQUEST_REJECTED_BY_NETWORK = 0x877, + /** + * Radio resource control (RRC) connection establishment failure due to an error in the request + * message. + */ + RRC_CONNECTION_INVALID_REQUEST = 0x878, + /** + * Radio resource control (RRC) connection establishment failure due to a change in the tracking + * area ID. + */ + RRC_CONNECTION_TRACKING_AREA_ID_CHANGED = 0x879, + /** + * Radio resource control (RRC) connection establishment failure due to the RF was unavailable. + */ + RRC_CONNECTION_RF_UNAVAILABLE = 0x87A, + /** + * Radio resource control (RRC) connection was aborted before deactivating the LTE stack due to + * a successful LTE to WCDMA/GSM/TD-SCDMA IRAT change. + */ + RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE = 0x87B, + /** + * If the UE has an LTE radio link failure before security is established, the radio resource + * control (RRC) connection must be released and the UE must return to idle. + */ + RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE = 0x87C, + /** + * Radio resource control (RRC) connection was aborted by the non-access stratum (NAS) after an + * IRAT to LTE IRAT handover. + */ + RRC_CONNECTION_ABORTED_AFTER_HANDOVER = 0x87D, + /** + * Radio resource control (RRC) connection was aborted before deactivating the LTE stack after a + * successful LTE to GSM/EDGE IRAT cell change order procedure. + */ + RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE = 0x87E, + /** + * Radio resource control (RRC) connection was aborted in the middle of a LTE to GSM IRAT cell + * change order procedure. + */ + RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE = 0x87F, + /** + * IMSI present in the UE is unknown in the home subscriber server. + */ + IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER = 0x880, + /** + * IMEI of the UE is not accepted by the network. + */ + IMEI_NOT_ACCEPTED = 0x881, + /** + * EPS and non-EPS services are not allowed by the network. + */ + EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED = 0x882, + /** + * EPS services are not allowed in the PLMN. + */ + EPS_SERVICES_NOT_ALLOWED_IN_PLMN = 0x883, + /** + * Mobile switching center is temporarily unreachable. + */ + MSC_TEMPORARILY_NOT_REACHABLE = 0x884, + /** + * CS domain is not available. + */ + CS_DOMAIN_NOT_AVAILABLE = 0x885, + /** + * ESM level failure. + */ + ESM_FAILURE = 0x886, + /** + * MAC level failure. + */ + MAC_FAILURE = 0x887, + /** + * Synchronization failure. + */ + SYNCHRONIZATION_FAILURE = 0x888, + /** + * UE security capabilities mismatch. + */ + UE_SECURITY_CAPABILITIES_MISMATCH = 0x889, + /** + * Unspecified security mode reject. + */ + SECURITY_MODE_REJECTED = 0x88A, + /** + * Unacceptable non-EPS authentication. + */ + UNACCEPTABLE_NON_EPS_AUTHENTICATION = 0x88B, + /** + * CS fallback call establishment is not allowed. + */ + CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED = 0x88C, + /** + * No EPS bearer context was activated. + */ + NO_EPS_BEARER_CONTEXT_ACTIVATED = 0x88D, + /** + * Invalid EMM state. + */ + INVALID_EMM_STATE = 0x88E, + /** + * Non-Access Spectrum layer failure. + */ + NAS_LAYER_FAILURE = 0x88F, + /** + * Multiple PDP call feature is disabled. + */ + MULTIPLE_PDP_CALL_NOT_ALLOWED = 0x890, + /** + * Data call has been brought down because EMBMS is not enabled at the RRC layer. + */ + EMBMS_NOT_ENABLED = 0x891, + /** + * Data call was unsuccessfully transferred during the IRAT handover. + */ + IRAT_HANDOVER_FAILED = 0x892, + /** + * EMBMS data call has been successfully brought down. + */ + EMBMS_REGULAR_DEACTIVATION = 0x893, + /** + * Test loop-back data call has been successfully brought down. + */ + TEST_LOOPBACK_REGULAR_DEACTIVATION = 0x894, + /** + * Lower layer registration failure. + */ + LOWER_LAYER_REGISTRATION_FAILURE = 0x895, + /** + * Network initiates a detach on LTE with error cause "data plan has been replenished or has + * expired". + */ + DATA_PLAN_EXPIRED = 0x896, + /** + * UMTS interface is brought down due to handover from UMTS to iWLAN. + */ + UMTS_HANDOVER_TO_IWLAN = 0x897, + /** + * Received a connection deny due to general or network busy on EVDO network. + */ + EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY = 0x898, + /** + * Received a connection deny due to billing or authentication failure on EVDO network. + */ + EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE = 0x899, + /** + * HDR system has been changed due to redirection or the PRL was not preferred. + */ + EVDO_HDR_CHANGED = 0x89A, + /** + * Device exited HDR due to redirection or the PRL was not preferred. + */ + EVDO_HDR_EXITED = 0x89B, + /** + * Device does not have an HDR session. + */ + EVDO_HDR_NO_SESSION = 0x89C, + /** + * It is ending an HDR call origination in favor of a GPS fix. + */ + EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL = 0x89D, + /** + * Connection setup on the HDR system was time out. + */ + EVDO_HDR_CONNECTION_SETUP_TIMEOUT = 0x89E, + /** + * Device failed to acquire a co-located HDR for origination. + */ + FAILED_TO_ACQUIRE_COLOCATED_HDR = 0x89F, + /** + * OTASP commit is in progress. + */ + OTASP_COMMIT_IN_PROGRESS = 0x8A0, + /** + * Device has no hybrid HDR service. + */ + NO_HYBRID_HDR_SERVICE = 0x8A1, + /** + * HDR module could not be obtained because of the RF locked. + */ + HDR_NO_LOCK_GRANTED = 0x8A2, + /** + * DBM or SMS is in progress. + */ + DBM_OR_SMS_IN_PROGRESS = 0x8A3, + /** + * HDR module released the call due to fade. + */ + HDR_FADE = 0x8A4, + /** + * HDR system access failure. + */ + HDR_ACCESS_FAILURE = 0x8A5, + /** + * P_rev supported by 1 base station is less than 6, which is not supported for a 1X data call. + * The UE must be in the footprint of BS which has p_rev >= 6 to support this SO33 call. + */ + UNSUPPORTED_1X_PREV = 0x8A6, + /** + * Client ended the data call. + */ + LOCAL_END = 0x8A7, + /** + * Device has no service. + */ + NO_SERVICE = 0x8A8, + /** + * Device lost the system due to fade. + */ + FADE = 0x8A9, + /** + * Receiving a release from the base station with no reason. + */ + NORMAL_RELEASE = 0x8AA, + /** + * Access attempt is already in progress. + */ + ACCESS_ATTEMPT_ALREADY_IN_PROGRESS = 0x8AB, + /** + * Device is in the process of redirecting or handing off to a different target system. + */ + REDIRECTION_OR_HANDOFF_IN_PROGRESS = 0x8AC, + /** + * Device is operating in Emergency mode. + */ + EMERGENCY_MODE = 0x8AD, + /** + * Device is in use (e.g., voice call). + */ + PHONE_IN_USE = 0x8AE, + /** + * Device operational mode is different from the mode requested in the traffic channel bring up. + */ + INVALID_MODE = 0x8AF, + /** + * SIM was marked by the network as invalid for the circuit and/or packet service domain. + */ + INVALID_SIM_STATE = 0x8B0, + /** + * There is no co-located HDR. + */ + NO_COLLOCATED_HDR = 0x8B1, + /** + * UE is entering power save mode. + */ + UE_IS_ENTERING_POWERSAVE_MODE = 0x8B2, + /** + * Dual switch from single standby to dual standby is in progress. + */ + DUAL_SWITCH = 0x8B3, + /** + * Data call bring up fails in the PPP setup due to a timeout. (e.g., an LCP conf ack was not + * received from the network) + */ + PPP_TIMEOUT = 0x8B4, + /** + * Data call bring up fails in the PPP setup due to an authorization failure. + * (e.g., authorization is required, but not negotiated with the network during an LCP phase) + */ + PPP_AUTH_FAILURE = 0x8B5, + /** + * Data call bring up fails in the PPP setup due to an option mismatch. + */ + PPP_OPTION_MISMATCH = 0x8B6, + /** + * Data call bring up fails in the PPP setup due to a PAP failure. + */ + PPP_PAP_FAILURE = 0x8B7, + /** + * Data call bring up fails in the PPP setup due to a CHAP failure. + */ + PPP_CHAP_FAILURE = 0x8B8, + /** + * Data call bring up fails in the PPP setup because the PPP is in the process of cleaning the + * previous PPP session. + */ + PPP_CLOSE_IN_PROGRESS = 0x8B9, + /** + * IPv6 interface bring up fails because the network provided only the IPv4 address for the + * upcoming PDN permanent client can reattempt a IPv6 call bring up after the IPv4 interface is + * also brought down. However, there is no guarantee that the network will provide a IPv6 + * address. + */ + LIMITED_TO_IPV4 = 0x8BA, + /** + * IPv4 interface bring up fails because the network provided only the IPv6 address for the + * upcoming PDN permanent client can reattempt a IPv4 call bring up after the IPv6 interface is + * also brought down. However there is no guarantee that the network will provide a IPv4 + * address. + */ + LIMITED_TO_IPV6 = 0x8BB, + /** + * Data call bring up fails in the VSNCP phase due to a VSNCP timeout error. + */ + VSNCP_TIMEOUT = 0x8BC, + /** + * Data call bring up fails in the VSNCP phase due to a general error. It's used when there is + * no other specific error code available to report the failure. + */ + VSNCP_GEN_ERROR = 0x8BD, + /** + * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP + * configuration request because the requested APN is unauthorized. + */ + VSNCP_APN_UNAUTHORIZED = 0x8BE, + /** + * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP + * configuration request because the PDN limit has been exceeded. + */ + VSNCP_PDN_LIMIT_EXCEEDED = 0x8BF, + /** + * Data call bring up fails in the VSNCP phase due to the network rejected the VSNCP + * configuration request due to no PDN gateway address. + */ + VSNCP_NO_PDN_GATEWAY_ADDRESS = 0x8C0, + /** + * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP + * configuration request because the PDN gateway is unreachable. + */ + VSNCP_PDN_GATEWAY_UNREACHABLE = 0x8C1, + /** + * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP + * configuration request due to a PDN gateway reject. + */ + VSNCP_PDN_GATEWAY_REJECT = 0x8C2, + /** + * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP + * configuration request with the reason of insufficient parameter. + */ + VSNCP_INSUFFICIENT_PARAMETERS = 0x8C3, + /** + * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP + * configuration request with the reason of resource unavailable. + */ + VSNCP_RESOURCE_UNAVAILABLE = 0x8C4, + /** + * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP + * configuration request with the reason of administratively prohibited at the HSGW. + */ + VSNCP_ADMINISTRATIVELY_PROHIBITED = 0x8C5, + /** + * Data call bring up fails in the VSNCP phase due to a network rejection of PDN ID in use, or + * all existing PDNs are brought down with this end reason because one of the PDN bring up was + * rejected by the network with the reason of PDN ID in use. + */ + VSNCP_PDN_ID_IN_USE = 0x8C6, + /** + * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP + * configuration request for the reason of subscriber limitation. + */ + VSNCP_SUBSCRIBER_LIMITATION = 0x8C7, + /** + * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP + * configuration request because the PDN exists for this APN. + */ + VSNCP_PDN_EXISTS_FOR_THIS_APN = 0x8C8, + /** + * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP + * configuration request with reconnect to this PDN not allowed, or an active data call is + * terminated by the network because reconnection to this PDN is not allowed. Upon receiving + * this error code from the network, the modem infinitely throttles the PDN until the next power + * cycle. + */ + VSNCP_RECONNECT_NOT_ALLOWED = 0x8C9, + /** + * Device failure to obtain the prefix from the network. + */ + IPV6_PREFIX_UNAVAILABLE = 0x8CA, + /** + * System preference change back to SRAT during handoff + */ + HANDOFF_PREFERENCE_CHANGED = 0x8CB, + /** + * Data call fail due to the slice not being allowed for the data call. + */ + SLICE_REJECTED = 0x8CC, + /** + * No matching rule available for the request, and match-all rule is not allowed for it. + */ + MATCH_ALL_RULE_NOT_ALLOWED = 0x8CD, + /** + * If connection failed for all matching URSP rules. + */ + ALL_MATCHING_RULES_FAILED = 0x8CE, +} diff --git a/radio/aidl/android/hardware/radio/DataProfileInfo.aidl b/radio/aidl/android/hardware/radio/DataProfileInfo.aidl new file mode 100644 index 0000000000..2f7bbb19e0 --- /dev/null +++ b/radio/aidl/android/hardware/radio/DataProfileInfo.aidl @@ -0,0 +1,118 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.ApnAuthType; +import android.hardware.radio.ApnTypes; +import android.hardware.radio.PdpProtocolType; +import android.hardware.radio.RadioAccessFamily; + +@VintfStability +parcelable DataProfileInfo { + const int ID_DEFAULT = 0; + const int ID_TETHERED = 1; + const int ID_IMS = 2; + const int ID_FOTA = 3; + const int ID_CBS = 4; + /** + * Start of OEM-specific profiles + */ + const int ID_OEM_BASE = 1000; + const int ID_INVALID = 0xFFFFFFFF; + + const int TYPE_COMMON = 0; + const int TYPE_THREE_GPP = 1; + const int TYPE_THREE_GPP2 = 2; + + /** + * ID of the data profile. + * Values are ID_ + */ + int profileId; + /** + * The APN name. + */ + String apn; + /** + * PDP_type values. + */ + PdpProtocolType protocol; + /** + * PDP_type values used on roaming network. + */ + PdpProtocolType roamingProtocol; + /** + * APN authentication type. + */ + ApnAuthType authType; + /** + * The username for APN, or empty string. + */ + String user; + /** + * The password for APN, or empty string. + */ + String password; + /** + * Data profile technology type. + * Values are TYPE_ + */ + int type; + /** + * The period in seconds to limit the maximum connections. + */ + int maxConnsTime; + /** + * The maximum connections during maxConnsTime. + */ + int maxConns; + /** + * The required wait time in seconds after a successful UE initiated disconnect of a given PDN + * connection before the device can send a new PDN connection request for that given PDN. + */ + int waitTime; + /** + * True to enable the profile, false to disable. + */ + boolean enabled; + /** + * Supported APN types bitmap. See ApnTypes for the value of each bit. + */ + ApnTypes supportedApnTypesBitmap; + /** + * The bearer bitmap. See RadioAccessFamily for the value of each bit. + */ + RadioAccessFamily bearerBitmap; + /** + * Maximum transmission unit (MTU) size in bytes for IPv4. + */ + int mtuV4; + /** + * Maximum transmission unit (MTU) size in bytes for IPv6. + */ + int mtuV6; + /** + * True if this data profile was used to bring up the last default (i.e internet) data + * connection successfully. + */ + boolean preferred; + /** + * If true, modem must persist this data profile and profileId must not be set to + * DataProfileId.INVALID. If the same data profile exists, this data profile must overwrite it. + */ + boolean persistent; +} diff --git a/radio/aidl/android/hardware/radio/DataRegStateResult.aidl b/radio/aidl/android/hardware/radio/DataRegStateResult.aidl new file mode 100644 index 0000000000..dcc39c8032 --- /dev/null +++ b/radio/aidl/android/hardware/radio/DataRegStateResult.aidl @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CellIdentity; +import android.hardware.radio.LteVopsInfo; +import android.hardware.radio.NrIndicators; +import android.hardware.radio.RegState; + +@VintfStability +parcelable DataRegStateResult { + /** + * Valid reg states are NOT_REG_MT_NOT_SEARCHING_OP, REG_HOME, NOT_REG_MT_SEARCHING_OP, + * REG_DENIED, UNKNOWN, REG_ROAMING defined in RegState + */ + RegState regState; + /** + * Indicates the available data radio technology, valid values as defined by RadioTechnology. + */ + int rat; + /** + * If registration state is 3 (Registration denied) this is an enumerated reason why + * registration was denied. See 3GPP TS 24.008, Annex G.6 "Additional cause codes for GMM". + * 7 == GPRS services not allowed + * 8 == GPRS services and non-GPRS services not allowed + * 9 == MS identity cannot be derived by the network + * 10 == Implicitly detached + * 14 == GPRS services not allowed in this PLMN + * 16 == MSC temporarily not reachable + * 40 == No PDP context activated + */ + int reasonDataDenied; + /** + * The maximum number of simultaneous Data Calls must be established using setupDataCall(). + */ + int maxDataCalls; + CellIdentity cellIdentity; + /** + * Network capabilities for voice over PS services. This info is valid only on LTE network and + * must be present when device is camped on LTE. vopsInfo must be empty when device is camped + * only on 2G/3G. + */ + @nullable LteVopsInfo lteVopsInfo; + /** + * The parameters of NR 5G Non-Standalone. This value is only valid on E-UTRAN, otherwise + * must be empty. + */ + NrIndicators nrIndicators; +} diff --git a/radio/aidl/android/hardware/radio/DataRequestReason.aidl b/radio/aidl/android/hardware/radio/DataRequestReason.aidl new file mode 100644 index 0000000000..74afdcb328 --- /dev/null +++ b/radio/aidl/android/hardware/radio/DataRequestReason.aidl @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum DataRequestReason { + /** + * The reason of the data request is normal + */ + NORMAL = 1, + /** + * The reason of the data request is device shutdown + */ + SHUTDOWN = 2, + /** + * The reason of the data request is IWLAN data handover to another transport + * (e.g. from cellular to wifi or vise versa) + */ + HANDOVER = 3, +} diff --git a/radio/aidl/android/hardware/radio/DataThrottlingAction.aidl b/radio/aidl/android/hardware/radio/DataThrottlingAction.aidl new file mode 100644 index 0000000000..1a49762374 --- /dev/null +++ b/radio/aidl/android/hardware/radio/DataThrottlingAction.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="byte") +enum DataThrottlingAction { + /* + * Clear all existing data throttling. + */ + NO_DATA_THROTTLING, + /** + * Enact secondary carrier data throttling and remove any existing data throttling on + * anchor carrier. + */ + THROTTLE_SECONDARY_CARRIER, + /** + * Enact anchor carrier data throttling and disable data on secondary carrier if currently + * enabled. + */ + THROTTLE_ANCHOR_CARRIER, + /** + * Immediately hold on to current level of throttling. + */ + HOLD, +} diff --git a/radio/aidl/android/hardware/radio/DeviceStateType.aidl b/radio/aidl/android/hardware/radio/DeviceStateType.aidl new file mode 100644 index 0000000000..e622486293 --- /dev/null +++ b/radio/aidl/android/hardware/radio/DeviceStateType.aidl @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum DeviceStateType { + /** + * Device power save mode (provided by PowerManager). True indicates the device is in + * power save mode. + */ + POWER_SAVE_MODE, + /** + * Device charging state (provided by BatteryManager). True indicates the device is charging. + */ + CHARGING_STATE, + /** + * Low data expected mode. True indicates low data traffic is expected, for example, when the + * device is idle (e.g. not doing tethering in the background). Note this doesn't mean no data + * is expected. + */ + LOW_DATA_EXPECTED, +} diff --git a/radio/aidl/android/hardware/radio/Dial.aidl b/radio/aidl/android/hardware/radio/Dial.aidl new file mode 100644 index 0000000000..f4097ff696 --- /dev/null +++ b/radio/aidl/android/hardware/radio/Dial.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.UusInfo; + +@VintfStability +parcelable Dial { + /** + * Use subscription default value + */ + const int CLIR_DEFAULT = 0; + /** + * Restrict CLI presentation + */ + const int CLIR_INVOCATION = 1; + /** + * Allow CLI presentation + */ + const int CLIR_SUPPRESSION = 2; + + String address; + /** + * Values are CLIR_ + */ + int clir; + /** + * Vector of User-User Signaling Information + */ + UusInfo[] uusInfo; +} diff --git a/radio/aidl/android/hardware/radio/Domain.aidl b/radio/aidl/android/hardware/radio/Domain.aidl new file mode 100644 index 0000000000..f5e5261310 --- /dev/null +++ b/radio/aidl/android/hardware/radio/Domain.aidl @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum Domain { + /** + * Circuit-switched + */ + CS = 1 << 0, + /** + * Packet-switched + */ + PS = 1 << 1, +} diff --git a/radio/aidl/android/hardware/radio/EmergencyCallRouting.aidl b/radio/aidl/android/hardware/radio/EmergencyCallRouting.aidl new file mode 100644 index 0000000000..a915ee69ce --- /dev/null +++ b/radio/aidl/android/hardware/radio/EmergencyCallRouting.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * Indicates how the implementation should handle the emergency call if it is required by Android. + */ +@VintfStability +@Backing(type="int") +enum EmergencyCallRouting { + /** + * Indicates Android does not require how to handle the corresponding emergency call; it is + * decided by implementation. + */ + UNKNOWN, + /** + * Indicates the implementation must handle the call through emergency routing. + */ + EMERGENCY, + /** + * Indicates the implementation must handle the call through normal call routing. + */ + NORMAL, +} diff --git a/radio/aidl/android/hardware/radio/EmergencyNumber.aidl b/radio/aidl/android/hardware/radio/EmergencyNumber.aidl new file mode 100644 index 0000000000..152be90fdf --- /dev/null +++ b/radio/aidl/android/hardware/radio/EmergencyNumber.aidl @@ -0,0 +1,92 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.EmergencyServiceCategory; + +/** + * Emergency number contains information of number, one or more service category(s), zero or more + * emergency uniform resource names, mobile country code (mcc), mobile network country (mnc) and + * source(s) that indicate where it comes from. + * + * If the emergency number is associated with country, field ‘mcc’ must be provided, otherwise + * field ‘mcc’ must be an empty string. If the emergency number is associated with network operator, + * field ‘mcc’ and 'mnc' must be provided, otherwise field ‘mnc’ must be an empty string. If the + * emergency number is specified with emergency service category(s), field 'categories' must be + * provided, otherwise field 'categories' must be EmergencyServiceCategories::UNSPECIFIED. If the + * emergency number is specified with emergency uniform resource names (URN), field 'urns' must be + * provided, otherwise field 'urns' must be an empty list. + * + * A unique EmergencyNumber has a unique combination of ‘number’, ‘mcc’, 'mnc', 'categories' and + * 'urns' fields. Multiple EmergencyNumberSource should be merged into one 'sources' field via + * bitwise-OR combination for the same EmergencyNumber. + * + * Reference: 3gpp 22.101, Section 10 - Emergency Calls; + * 3gpp 23.167, Section 6 - Functional description; + * 3gpp 24.503, Section 5.1.6.8.1 - General; + * RFC 5031 + */ +@VintfStability +parcelable EmergencyNumber { + /** + * Indicates the number is from the network signal. + */ + const int SOURCE_NETWORK_SIGNALING = 1 << 0; + /** + * Indicates the number is from the sim card. + */ + const int SOURCE_SIM = 1 << 1; + /** + * Indicates the number is from the modem config. + */ + const int SOURCE_MODEM_CONFIG = 1 << 2; + /** + * Indicates the number is available as default. Per the reference, 112, 911 must always be + * available; additionally, 000, 08, 110, 999, 118 and 119 must be available when sim is not + * present. + */ + const int SOURCE_DEFAULT = 1 << 3; + + /** + * The emergency number. The character in the number string should only be the dial pad + * character('0'-'9', '*', or '#'). For example: 911. + */ + String number; + /** + * 3-digit Mobile Country Code, 0..999. Empty string if not applicable. + */ + String mcc; + /** + * 2 or 3-digit Mobile Network Code, 0..999. Empty string if not applicable. + */ + String mnc; + /** + * The bitfield of EmergencyServiceCategory(s). See EmergencyServiceCategory for the value of + * each bit. + */ + EmergencyServiceCategory categories; + /** + * The list of emergency Uniform Resource Names (URN). + */ + String[] urns; + /** + * The bitfield of EmergencyNumberSource(s) to tell where the EmergencyNumber comes from. + * Reference: 3gpp 22.101, Section 10 - Emergency Calls + * Values are SOURCE_ + */ + int sources; +} diff --git a/radio/aidl/android/hardware/radio/EmergencyServiceCategory.aidl b/radio/aidl/android/hardware/radio/EmergencyServiceCategory.aidl new file mode 100644 index 0000000000..30d34ab210 --- /dev/null +++ b/radio/aidl/android/hardware/radio/EmergencyServiceCategory.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * Defining Emergency Service Category as follows: + * - General emergency call, all categories; + * - Police; + * - Ambulance; + * - Fire Brigade; + * - Marine Guard; + * - Mountain Rescue; + * - Manually Initiated eCall (MIeC); + * - Automatically Initiated eCall (AIeC); + * + * Category UNSPECIFIED (General emergency call, all categories) indicates that no specific + * services are associated with this emergency number. + * + * Reference: 3gpp 22.101, Section 10 - Emergency Calls + */ +@VintfStability +@Backing(type="int") +enum EmergencyServiceCategory { + /** + * General emergency call, all categories + */ + UNSPECIFIED = 0, + POLICE = 1 << 0, + AMBULANCE = 1 << 1, + FIRE_BRIGADE = 1 << 2, + MARINE_GUARD = 1 << 3, + MOUNTAIN_RESCUE = 1 << 4, + /** + * Manually Initiated eCall (MIeC) + */ + MIEC = 1 << 5, + /** + * Automatically Initiated eCall (AIeC) + */ + AIEC = 1 << 6, +} diff --git a/radio/aidl/android/hardware/radio/EpsQos.aidl b/radio/aidl/android/hardware/radio/EpsQos.aidl new file mode 100644 index 0000000000..ee4cbdd6c2 --- /dev/null +++ b/radio/aidl/android/hardware/radio/EpsQos.aidl @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.QosBandwidth; + +/** + * LTE/EPS Quality of Service parameters as per 3gpp spec 24.301 sec 9.9.4.3. + */ +@VintfStability +parcelable EpsQos { + /** + * Quality of Service Class Identifier (QCI), see 3GPP TS 23.203 and 29.212. + * The allowed values are standard values(1-9, 65-68, 69-70, 75, 79-80, 82-85) + * defined in the spec and operator specific values in the range 128-254. + */ + int qci; + QosBandwidth downlink; + QosBandwidth uplink; +} diff --git a/radio/aidl/android/hardware/radio/EutranBands.aidl b/radio/aidl/android/hardware/radio/EutranBands.aidl new file mode 100644 index 0000000000..59fe6c4036 --- /dev/null +++ b/radio/aidl/android/hardware/radio/EutranBands.aidl @@ -0,0 +1,85 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * EUTRAN bands up to V16.4.0 + */ +@VintfStability +@Backing(type="int") +enum EutranBands { + BAND_1 = 1, + BAND_2 = 2, + BAND_3 = 3, + BAND_4 = 4, + BAND_5 = 5, + BAND_6 = 6, + BAND_7 = 7, + BAND_8 = 8, + BAND_9 = 9, + BAND_10 = 10, + BAND_11 = 11, + BAND_12 = 12, + BAND_13 = 13, + BAND_14 = 14, + BAND_17 = 17, + BAND_18 = 18, + BAND_19 = 19, + BAND_20 = 20, + BAND_21 = 21, + BAND_22 = 22, + BAND_23 = 23, + BAND_24 = 24, + BAND_25 = 25, + BAND_26 = 26, + BAND_27 = 27, + BAND_28 = 28, + BAND_30 = 30, + BAND_31 = 31, + BAND_33 = 33, + BAND_34 = 34, + BAND_35 = 35, + BAND_36 = 36, + BAND_37 = 37, + BAND_38 = 38, + BAND_39 = 39, + BAND_40 = 40, + BAND_41 = 41, + BAND_42 = 42, + BAND_43 = 43, + BAND_44 = 44, + BAND_45 = 45, + BAND_46 = 46, + BAND_47 = 47, + BAND_48 = 48, + BAND_65 = 65, + BAND_66 = 66, + BAND_68 = 68, + BAND_70 = 70, + BAND_49 = 49, + BAND_50 = 50, + BAND_51 = 51, + BAND_52 = 52, + BAND_53 = 53, + BAND_71 = 71, + BAND_72 = 72, + BAND_73 = 73, + BAND_74 = 74, + BAND_85 = 85, + BAND_87 = 87, + BAND_88 = 88, +} diff --git a/radio/aidl/android/hardware/radio/EutranRegistrationInfo.aidl b/radio/aidl/android/hardware/radio/EutranRegistrationInfo.aidl new file mode 100644 index 0000000000..0f8f949b9d --- /dev/null +++ b/radio/aidl/android/hardware/radio/EutranRegistrationInfo.aidl @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.LteVopsInfo; +import android.hardware.radio.NrIndicators; + +@VintfStability +parcelable EutranRegistrationInfo { + /** + * Network capabilities for voice over PS services. This info is valid only on LTE network and + * must be present when device is camped on LTE. VopsInfo must be empty when device is camped + * only on 2G/3G. + */ + LteVopsInfo lteVopsInfo; + /** + * The parameters of NR 5G Non-Standalone. This value is only valid on E-UTRAN, otherwise must + * be empty. + */ + NrIndicators nrIndicators; +} diff --git a/radio/aidl/android/hardware/radio/EvdoSignalStrength.aidl b/radio/aidl/android/hardware/radio/EvdoSignalStrength.aidl new file mode 100644 index 0000000000..ff631f311b --- /dev/null +++ b/radio/aidl/android/hardware/radio/EvdoSignalStrength.aidl @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable EvdoSignalStrength { + /** + * This value is the actual RSSI value multiplied by -1. Example: If the actual RSSI is -75, + * then this response value will be 75; INT_MAX means invalid/unreported. + */ + 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; INT_MAX means invalid/unreported. + */ + int ecio; + /** + * Valid values are 0-8. 8 is the highest signal to noise ratio; INT_MAX means + * invalid/unreported. + */ + int signalNoiseRatio; +} diff --git a/radio/aidl/android/hardware/radio/GeranBands.aidl b/radio/aidl/android/hardware/radio/GeranBands.aidl new file mode 100644 index 0000000000..d3a7598570 --- /dev/null +++ b/radio/aidl/android/hardware/radio/GeranBands.aidl @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum GeranBands { + BAND_T380 = 1, + BAND_T410 = 2, + BAND_450 = 3, + BAND_480 = 4, + BAND_710 = 5, + BAND_750 = 6, + BAND_T810 = 7, + BAND_850 = 8, + BAND_P900 = 9, + BAND_E900 = 10, + BAND_R900 = 11, + BAND_DCS1800 = 12, + BAND_PCS1900 = 13, + BAND_ER900 = 14, +} diff --git a/radio/aidl/android/hardware/radio/GsmBroadcastSmsConfigInfo.aidl b/radio/aidl/android/hardware/radio/GsmBroadcastSmsConfigInfo.aidl new file mode 100644 index 0000000000..9b08ad9b6a --- /dev/null +++ b/radio/aidl/android/hardware/radio/GsmBroadcastSmsConfigInfo.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * Which types of Cell Broadcast Message (CBM) are to be received by the ME + */ +@VintfStability +parcelable GsmBroadcastSmsConfigInfo { + /** + * Beginning of the range of CBM message identifiers whose value is 0x0000 - 0xFFFF as defined + * in TS 23.041 9.4.1.2.2 for GMS and 9.4.4.2.2 for UMTS. + * All other values must be treated as empty CBM message ID. + */ + int fromServiceId; + /** + * End of the range of CBM message identifiers whose value is 0x0000 - 0xFFFF as defined in + * TS 23.041 9.4.1.2.2 for GMS and 9.4.4.2.2 for UMTS. + * All other values must be treated as empty CBM message ID. + */ + int toServiceId; + /** + * Beginning of the range of CBM data coding schemes whose value is 0x00 - 0xFF as defined in + * TS 23.041 9.4.1.2.3 for GMS and 9.4.4.2.3 for UMTS. + * All other values must be treated as empty CBM data coding scheme. + */ + int fromCodeScheme; + /** + * End of the range of CBM data coding schemes whose value is 0x00 - 0xFF as defined in + * TS 23.041 9.4.1.2.3 for GMS and 9.4.4.2.3 for UMTS. + * All other values must be treated as empty CBM data coding scheme. + */ + int toCodeScheme; + /** + * False means message types specified in <fromServiceId, toServiceId> + * and <fromCodeScheme, toCodeScheme> are not accepted, while true means accepted. + */ + boolean selected; +} diff --git a/radio/aidl/android/hardware/radio/GsmSignalStrength.aidl b/radio/aidl/android/hardware/radio/GsmSignalStrength.aidl new file mode 100644 index 0000000000..65f853a1f7 --- /dev/null +++ b/radio/aidl/android/hardware/radio/GsmSignalStrength.aidl @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable GsmSignalStrength { + /** + * Valid values are (0-61, 99) as defined in TS 27.007 8.69; INT_MAX means invalid/unreported. + */ + int signalStrength; + /** + * Bit error rate (0-7, 99) as defined in TS 27.007 8.5; INT_MAX means invalid/unreported. + */ + int bitErrorRate; + /** + * Timing advance in bit periods. 1 bit period = 48/13 us. INT_MAX means invalid/unreported. + */ + int timingAdvance; +} diff --git a/radio/aidl/android/hardware/radio/GsmSmsMessage.aidl b/radio/aidl/android/hardware/radio/GsmSmsMessage.aidl new file mode 100644 index 0000000000..248b4be6a4 --- /dev/null +++ b/radio/aidl/android/hardware/radio/GsmSmsMessage.aidl @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable GsmSmsMessage { + /** + * SMSC address in GSM BCD format prefixed by a length byte (as expected by TS 27.005) + * or empty string for default SMSC + */ + String smscPdu; + /** + * SMS in PDU format as an ASCII hex string less the SMSC address. + * TP-Layer-Length is be "strlen(pdu)/2 + */ + String pdu; +} diff --git a/radio/aidl/android/hardware/radio/HardwareConfig.aidl b/radio/aidl/android/hardware/radio/HardwareConfig.aidl new file mode 100644 index 0000000000..59850ad22e --- /dev/null +++ b/radio/aidl/android/hardware/radio/HardwareConfig.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.HardwareConfigModem; +import android.hardware.radio.HardwareConfigSim; + +@VintfStability +parcelable HardwareConfig { + const int STATE_ENABLED = 0; + const int STATE_STANDBY = 1; + const int STATE_DISABLED = 2; + + const int TYPE_MODEM = 0; + const int TYPE_SIM = 1; + + /** + * Values are TYPE_ + */ + int type; + /** + * RadioConst:MAX_UUID_LENGTH is max length of the string + */ + String uuid; + /** + * Values are STATE_ + */ + int state; + /** + * Valid only if type is Modem and size = 1 else must be empty. Only one of modem or sim must + * have size = 1 based on the HardwareConfigType, and the other must have size = 0. + */ + HardwareConfigModem[] modem; + /** + * Valid only if type is SIM and size = 1 else must be empty. Only one of modem or sim must + * have size = 1 based on the HardwareConfigType, and the other must have size = 0. + */ + HardwareConfigSim[] sim; +} diff --git a/radio/aidl/android/hardware/radio/HardwareConfigModem.aidl b/radio/aidl/android/hardware/radio/HardwareConfigModem.aidl new file mode 100644 index 0000000000..8e3bc473f8 --- /dev/null +++ b/radio/aidl/android/hardware/radio/HardwareConfigModem.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable HardwareConfigModem { + /** + * RIL attachment model. Values are: + * 0: single + * 1: multiple + * If single, there is a one-to-one relationship between a modem hardware and a ril daemon. + * If multiple, there is a one-to-many relationship between a modem hardware and several + * simultaneous ril daemons. + */ + int rilModel; + /** + * Bitset value, based on RadioTechnology. + */ + int rat; + /** + * Maximum number of concurrent active voice calls. + */ + int maxVoice; + /** + * Maximum number of concurrent active data calls. + */ + int maxData; + /** + * Maximum number of concurrent standby connections. This is not necessarily an equal sum of the + * maxVoice and maxData (or a derivative of it) since it really depends on the modem capability, + * hence it is left for the hardware to define. + */ + int maxStandby; +} diff --git a/radio/aidl/android/hardware/radio/HardwareConfigSim.aidl b/radio/aidl/android/hardware/radio/HardwareConfigSim.aidl new file mode 100644 index 0000000000..85055de7c4 --- /dev/null +++ b/radio/aidl/android/hardware/radio/HardwareConfigSim.aidl @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable HardwareConfigSim { + /** + * RadioConst:MAX_UUID_LENGTH is max length of the string + */ + String modemUuid; +} diff --git a/radio/aidl/android/hardware/radio/IRadio.aidl b/radio/aidl/android/hardware/radio/IRadio.aidl new file mode 100644 index 0000000000..ebf3c9b565 --- /dev/null +++ b/radio/aidl/android/hardware/radio/IRadio.aidl @@ -0,0 +1,2012 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.AccessNetwork; +import android.hardware.radio.CallForwardInfo; +import android.hardware.radio.CardPowerState; +import android.hardware.radio.CarrierRestrictions; +import android.hardware.radio.CdmaBroadcastSmsConfigInfo; +import android.hardware.radio.CdmaRoamingType; +import android.hardware.radio.CdmaSmsAck; +import android.hardware.radio.CdmaSmsMessage; +import android.hardware.radio.CdmaSmsWriteArgs; +import android.hardware.radio.CdmaSubscriptionSource; +import android.hardware.radio.DataProfileInfo; +import android.hardware.radio.DataRequestReason; +import android.hardware.radio.DataThrottlingAction; +import android.hardware.radio.DeviceStateType; +import android.hardware.radio.Dial; +import android.hardware.radio.EmergencyCallRouting; +import android.hardware.radio.EmergencyServiceCategory; +import android.hardware.radio.GsmBroadcastSmsConfigInfo; +import android.hardware.radio.GsmSmsMessage; +import android.hardware.radio.IRadioIndication; +import android.hardware.radio.IRadioResponse; +import android.hardware.radio.IccIo; +import android.hardware.radio.ImsSmsMessage; +import android.hardware.radio.ImsiEncryptionInfo; +import android.hardware.radio.IndicationFilter; +import android.hardware.radio.KeepaliveRequest; +import android.hardware.radio.LinkAddress; +import android.hardware.radio.NetworkScanRequest; +import android.hardware.radio.NrDualConnectivityState; +import android.hardware.radio.NvItem; +import android.hardware.radio.NvWriteItem; +import android.hardware.radio.PersoSubstate; +import android.hardware.radio.PhonebookRecordInfo; +import android.hardware.radio.PreferredNetworkType; +import android.hardware.radio.RadioAccessFamily; +import android.hardware.radio.RadioAccessNetworks; +import android.hardware.radio.RadioAccessSpecifier; +import android.hardware.radio.RadioBandMode; +import android.hardware.radio.RadioCapability; +import android.hardware.radio.RadioTechnology; +import android.hardware.radio.ResetNvType; +import android.hardware.radio.SelectUiccSub; +import android.hardware.radio.SignalThresholdInfo; +import android.hardware.radio.SimApdu; +import android.hardware.radio.SimLockMultiSimPolicy; +import android.hardware.radio.SliceInfo; +import android.hardware.radio.SmsAcknowledgeFailCause; +import android.hardware.radio.SmsWriteArgs; +import android.hardware.radio.TrafficDescriptor; +import android.hardware.radio.TtyMode; + +/** + * This interface is used by telephony and telecom to talk to cellular radio. + * All the functions have minimum one parameter: + * serial: which corresponds to serial no. of request. Serial numbers must only be memorized for the + * duration of a method call. If clients provide colliding serials (including passing the same + * serial to different methods), multiple responses (one for each method call) must still be served. + * setResponseFunctions must work with IRadioResponse and IRadioIndication. + */ +@VintfStability +oneway interface IRadio { + /** + * Answer incoming call. Must not be called for WAITING calls. + * switchWaitingOrHoldingAndActive() must be used in this case instead + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.acceptCallResponse() + */ + void acceptCall(in int serial); + + /** + * Acknowledge successful or failed receipt of SMS previously indicated via unsol + * responseNewSms(), including acknowledgement TPDU to send as the RP-User-Data element of the + * RP-ACK or RP-ERROR PDU. + * + * @param serial Serial number of request. + * @param success true on successful receipt (send RP-ACK) + * false on failed receipt (send RP-ERROR) + * @param ackPdu acknowledgement TPDU in hexadecimal format + * + * Response callback is IRadioResponse.acknowledgeIncomingGsmSmsWithPduResponse() + */ + void acknowledgeIncomingGsmSmsWithPdu(in int serial, in boolean success, in String ackPdu); + + /** + * Acknowledge the success or failure in the receipt of SMS previously indicated + * via responseCdmaNewSms() + * + * @param serial Serial number of request. + * @param smsAck Cdma Sms ack to be sent described by CdmaSmsAck in types.hal + * + * Response callback is IRadioResponse.acknowledgeLastIncomingCdmaSmsResponse() + */ + void acknowledgeLastIncomingCdmaSms(in int serial, in CdmaSmsAck smsAck); + + /** + * Acknowledge successful or failed receipt of SMS previously indicated via unsolResponseNewSms + * + * @param serial Serial number of request. + * @param success is true on successful receipt + * (basically, AT+CNMA=1 from TS 27.005 is 0 on failed receipt + * (basically, AT+CNMA=2 from TS 27.005) + * @param cause: if success is false, this contains the failure cause as defined + * in TS 23.040, 9.2.3.22. + * + * Response function is IRadioResponse.acknowledgeLastIncomingGsmSmsResponse() + */ + void acknowledgeLastIncomingGsmSms( + in int serial, in boolean success, in SmsAcknowledgeFailCause cause); + + /** + * Reserves an unallocated pdu session id from the pool of ids. The allocated id is returned + * in the response. When the id is no longer needed, call releasePduSessionId to return it to + * the pool. + * + * Reference: 3GPP TS 24.007 section 11.2.3.1b + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.allocatePduSessionIdResponse() + */ + void allocatePduSessionId(in int serial); + + /** + * Whether uiccApplications are enabled, or disabled. + * By default uiccApplications must be enabled, unless enableUiccApplications() with enable + * being false is called. + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.areUiccApplicationsEnabledResponse() + */ + void areUiccApplicationsEnabled(in int serial); + + /** + * Indicates that a handover was cancelled after a call to IRadio::startHandover. + * Since the handover was unsuccessful, the modem retains ownership over any of the resources + * being transferred and is still responsible for releasing them. + * + * @param serial Serial number of request. + * @param id callId The identifier of the data call which is provided in SetupDataCallResult + * + * Response function is IRadioResponse.cancelHandoverResponse() + */ + void cancelHandover(in int serial, in int callId); + + /** + * Cancel the current USSD session if one exists. + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.cancelPendingUssdResponse() + */ + void cancelPendingUssd(in int serial); + + /** + * Supplies old ICC PIN2 and new PIN2. + * + * @param serial Serial number of request. + * @param oldPin2 Old pin2 value + * @param newPin2 New pin2 value + * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value. + * + * Response function is IRadioResponse.changeIccPin2ForAppResponse() + */ + void changeIccPin2ForApp(in int serial, in String oldPin2, in String newPin2, in String aid); + + /** + * Supplies old ICC PIN and new PIN. + * + * @param serial Serial number of request. + * @param oldPin Old pin value + * @param newPin New pin value + * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value. + * + * Response function is IRadioResponse.changeIccPinForAppResponse() + */ + void changeIccPinForApp(in int serial, in String oldPin, in String newPin, in String aid); + + /** + * Conference holding and active (like AT+CHLD=3) + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.conferenceResponse() + */ + void conference(in int serial); + + /** + * Deactivate packet data connection and remove from the data call list. An + * unsolDataCallListChanged() must be sent when data connection is deactivated. + * + * @param serial Serial number of request. + * @param cid Data call id. + * @param reason The request reason. Must be normal, handover, or shutdown. + * + * Response function is IRadioResponse.deactivateDataCallResponse() + */ + void deactivateDataCall(in int serial, in int cid, in DataRequestReason reason); + + /** + * Deletes a CDMA SMS message from RUIM memory. + * + * @param serial Serial number of request. + * @param index record index of the message to delete + * + * Response callback is IRadioResponse.deleteSmsOnRuimResponse() + */ + void deleteSmsOnRuim(in int serial, in int index); + + /** + * Deletes a SMS message from SIM memory. + * + * @param serial Serial number of request. + * @param index Record index of the message to delete. + * + * Response function is IRadioResponse.deleteSmsOnSimResponse() + */ + void deleteSmsOnSim(in int serial, in int index); + + /** + * Initiate voice call. This method is never used for supplementary service codes. + * + * @param serial Serial number of request. + * @param dialInfo Dial struct + * + * Response function is IRadioResponse.dialResponse() + */ + void dial(in int serial, in Dial dialInfo); + + /** + * Initiate emergency voice call, with zero or more emergency service category(s), zero or + * more emergency Uniform Resource Names (URN), and routing information for handling the call. + * Android uses this request to make its emergency call instead of using IRadio.dial if the + * 'address' in the 'dialInfo' field is identified as an emergency number by Android. + * + * In multi-sim scenario, if the emergency number is from a specific subscription, this radio + * request can still be sent out on the other subscription as long as routing is set to + * EmergencyNumberRouting#EMERGENCY. This radio request will not be sent on an inactive + * (PIN/PUK locked) subscription unless both subscriptions are PIN/PUK locked. In this case, + * the request will be sent on the primary subscription. + * + * Some countries or carriers require some emergency numbers that must be handled with normal + * call routing if possible or emergency routing. 1) if the 'routing' field is specified as + * EmergencyNumberRouting#NORMAL, the implementation must try the full radio service to use + * normal call routing to handle the call; if service cannot support normal routing, the + * implementation must use emergency routing to handle the call. 2) if 'routing' is specified + * as EmergencyNumberRouting#EMERGENCY, the implementation must use emergency routing to handle + * the call. 3) if 'routing' is specified as EmergencyNumberRouting#UNKNOWN, Android does not + * know how to handle the call. + * + * If the dialed emergency number does not have a specified emergency service category, the + * 'categories' field is set to EmergencyServiceCategory#UNSPECIFIED; if the dialed emergency + * number does not have specified emergency Uniform Resource Names, the 'urns' field is set to + * an empty list. If the underlying technology used to request emergency services does not + * support the emergency service category or emergency uniform resource names, the field + * 'categories' or 'urns' may be ignored. + * + * In the scenarios that the 'address' in the 'dialInfo' field has other functions besides the + * emergency number function, if the 'hasKnownUserIntentEmergency' field is true, the user's + * intent for this dial request is emergency call, and the modem must treat this as an actual + * emergency dial; if the 'hasKnownUserIntentEmergency' field is false, Android does not know + * user's intent for this call. + * + * If 'isTesting' is true, this request is for testing purpose, and must not be sent to a real + * emergency service; otherwise it's for a real emergency call request. + * + * Reference: 3gpp 22.101, Section 10 - Emergency Calls; + * 3gpp 23.167, Section 6 - Functional description; + * 3gpp 24.503, Section 5.1.6.8.1 - General; + * RFC 5031 + * + * @param serial Serial number of request. + * @param dialInfo the same Dial information used by IRadio.dial. + * @param categories bitfield<EmergencyServiceCategory> the Emergency Service Category(s) + * of the call. + * @param urns the emergency Uniform Resource Names (URN) + * @param routing EmergencyCallRouting the emergency call routing information. + * @param hasKnownUserIntentEmergency Flag indicating if user's intent for the emergency call + * is known. + * @param isTesting Flag indicating if this request is for testing purpose. + * + * Response function is IRadioResponse.emergencyDialResponse() + */ + void emergencyDial(in int serial, in Dial dialInfo, in EmergencyServiceCategory categories, + in String[] urns, in EmergencyCallRouting routing, + in boolean hasKnownUserIntentEmergency, in boolean isTesting); + + /** + * Toggle logical modem on/off. This is similar to IRadio.setRadioPower(), however that + * does not enforce that radio power is toggled only for the corresponding radio and certain + * vendor implementations do it for all radios. This new API should affect only the modem for + * which it is called. A modem stack must be on/active only when both setRadioPower() and + * enableModem() are set to on for it. + * + * SIM must be read if available even if modem is off/inactive. + * + * @param serial Serial number of request. + * @param on True to turn on the logical modem, otherwise turn it off. + * + * Response function is IRadioResponse.enableModemResponse() + */ + void enableModem(in int serial, in boolean on); + + /** + * Enable or disable UiccApplications on the SIM. If disabled: + * - Modem will not register on any network. + * - SIM must be PRESENT, and the IccId of the SIM must still be accessible. + * - The corresponding modem stack is still functional, e.g. able to make emergency calls or + * do network scan. + * By default if this API is not called, the uiccApplications must be enabled automatically. + * It must work for both single SIM and DSDS cases for UX consistency. + * The preference is per SIM, and must be remembered over power cycle, modem reboot, or SIM + * insertion / unplug. + * + * @param serial Serial number of request. + * @param enable true if to enable uiccApplications, false to disable. + * + * Response callback is IRadioResponse.enableUiccApplicationsResponse() + */ + void enableUiccApplications(in int serial, in boolean enable); + + /** + * Request the radio's system selection module to exit emergency callback mode. Radio must not + * respond with SUCCESS until the modem has completely exited from Emergency Callback Mode. + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.exitEmergencyCallbackModeResponse() + */ + void exitEmergencyCallbackMode(in int serial); + + /** + * Connects the two calls and disconnects the subscriber from both calls. + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.explicitCallTransferResponse() + */ + void explicitCallTransfer(in int serial); + + /** + * Get carrier restrictions. + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getAllowedCarriersResponse() + */ + void getAllowedCarriers(in int serial); + + /** + * Requests bitmap representing the currently allowed network types. + * getPreferredNetworkType, getPreferredNetworkTypesBitmap will not be called anymore + * except for IRadio v1.5 or older devices. + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getAllowedNetworkTypesBitmapResponse() + */ + void getAllowedNetworkTypesBitmap(in int serial); + + /** + * Get the list of band modes supported by RF. + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.getAvailableBandModesResponse() + */ + void getAvailableBandModes(in int serial); + + /** + * Scans for available networks + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.getAvailableNetworksResponse() + */ + void getAvailableNetworks(in int serial); + + /** + * Get all the barring info for the current camped cell applicable to the current user. + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getBarringInfoResponse() + */ + void getBarringInfo(in int serial); + + /** + * Return string value indicating baseband version, eg response from AT+CGMR + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.getBasebandVersionResponse() + */ + void getBasebandVersion(in int serial); + + /** + * Request the device MDN / H_SID / H_NID. The request is only allowed when CDMA subscription + * is available. When CDMA subscription is changed, application layer must re-issue the request + * to update the subscription information. + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getCDMASubscriptionResponse() + */ + void getCDMASubscription(in int serial); + + /** + * Request call forward status. + * + * @param serial Serial number of request. + * @param callInfo CallForwardInfo + * + * Response function is IRadioResponse.getCallForwardStatusResponse() + */ + void getCallForwardStatus(in int serial, in CallForwardInfo callInfo); + + /** + * Query current call waiting state + * + * @param serial Serial number of request. + * @param serviceClass Service class is the TS 27.007 service class to query + * + * Response function is IRadioResponse.getCallWaitingResponse() + */ + void getCallWaiting(in int serial, in int serviceClass); + + /** + * Request the setting of CDMA Broadcast SMS config + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getCdmaBroadcastConfigResponse() + */ + void getCdmaBroadcastConfig(in int serial); + + /** + * Request the actual setting of the roaming preferences in CDMA in the modem + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getCdmaRoamingPreferenceResponse() + */ + void getCdmaRoamingPreference(in int serial); + + /** + * Request to query the location where the CDMA subscription shall be retrieved. + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getCdmaSubscriptionSourceResponse() + */ + void getCdmaSubscriptionSource(in int serial); + + /** + * Request all of the current cell information known to the radio. The radio must return a list + * of all current cells, including the neighboring cells. If for a particular cell information + * isn't known then the appropriate unknown value will be returned. + * This does not cause or change the rate of unsolicited cellInfoList(). + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getCellInfoListResponse() + */ + void getCellInfoList(in int serial); + + /** + * Queries the status of the CLIP supplementary service (for MMI code "*#30#") + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.getClipResponse() + */ + void getClip(in int serial); + + /** + * Gets current CLIR status + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.getClirResponse() + */ + void getClir(in int serial); + + /** + * Requests current call list + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.getCurrentCallsResponse() + */ + void getCurrentCalls(in int serial); + + /** + * Returns the data call list. An entry is added when a setupDataCall() is issued and removed + * on a deactivateDataCall(). The list is emptied when setRadioPower() off/on issued or when + * the vendor HAL or modem crashes. + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.getDataCallListResponse() + */ + void getDataCallList(in int serial); + + /** + * Request current data registration state. + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.getDataRegistrationStateResponse() + */ + void getDataRegistrationState(in int serial); + + /** + * Request the device ESN / MEID / IMEI / IMEISV. The request is always allowed and contains + * GSM and CDMA device identity. When CDMA subscription is changed the ESN/MEID changes. + * The application layer must re-issue the request to update the device identity in this case. + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getDeviceIdentityResponse() + */ + void getDeviceIdentity(in int serial); + + /** + * Query the status of a facility lock state + * + * @param serial Serial number of request. + * @param facility is the facility string code from TS 27.007 7.4 + * (eg "AO" for BAOC, "SC" for SIM lock) + * @param password is the password, or "" if not required + * @param serviceClass is the TS 27.007 service class bit vector of services to query + * @param appId is AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value. + * This is only applicable in the case of Fixed Dialing Numbers (FDN) requests. + * + * Response function is IRadioResponse.getFacilityLockForAppResponse() + */ + void getFacilityLockForApp(in int serial, in String facility, in String password, + in int serviceClass, in String appId); + + /** + * Request the setting of GSM/WCDMA Cell Broadcast SMS config. + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getGsmBroadcastConfigResponse() + */ + void getGsmBroadcastConfig(in int serial); + + /** + * Request all of the current hardware (modem and sim) associated with Radio. + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getHardwareConfigResponse() + */ + void getHardwareConfig(in int serial); + + /** + * Requests status of the ICC card + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.getIccCardStatusResponse() + * + */ + void getIccCardStatus(in int serial); + + /** + * Request current IMS registration state + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getImsRegistrationStateResponse() + */ + void getImsRegistrationState(in int serial); + + /** + * Get the SIM IMSI. Only valid when radio state is "RADIO_STATE_ON" + * + * @param serial Serial number of request. + * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value. + * + * Response function is IRadioResponse.getImsiForAppResponse() + * + */ + void getImsiForApp(in int serial, in String aid); + + /** + * Requests the failure cause code for the most recently terminated call. + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.getLastCallFailCauseResponse() + * + */ + void getLastCallFailCause(in int serial); + + /** + * Get modem activity information for power consumption estimation. Request clear-on-read + * statistics information that is used for estimating the per-millisecond power consumption + * of the cellular modem. + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getModemActivityInfoResponse() + */ + void getModemActivityInfo(in int serial); + + /** + * Request status of logical modem. It returns isEnabled=true if the logical modem is on. + * This method is the getter method for enableModem. + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.getModemStackStatusResponse() + */ + void getModemStackStatus(in int serial); + + /** + * Queries the current state of the uplink mute setting + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.getMuteResponse() + */ + void getMute(in int serial); + + /** + * Request neighboring cell id in GSM network + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getNeighboringCidsResponse() + */ + void getNeighboringCids(in int serial); + + /** + * Query current network selection mode + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.getNetworkSelectionModeResponse() + */ + void getNetworkSelectionMode(in int serial); + + /** + * Request current operator ONS or EONS + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.getOperatorResponse() + */ + void getOperator(in int serial); + + /** + * Query the preferred network type (CS/PS domain, RAT, and operation mode) + * for searching and registering + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getPreferredNetworkTypeResponse() + */ + void getPreferredNetworkType(in int serial); + + /** + * Query the preferred network type bitmap. + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getPreferredNetworkTypeBitmapResponse() + */ + void getPreferredNetworkTypeBitmap(in int serial); + + /** + * Request the setting of preferred voice privacy mode. + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getPreferredVoicePrivacyResponse() + */ + void getPreferredVoicePrivacy(in int serial); + + /** + * Used to get phone radio capability. + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getRadioCapabilityResponse() + */ + void getRadioCapability(in int serial); + + /** + * Requests current signal strength and associated information. Must succeed if radio is on. + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.getSignalStrengthResponse() + */ + void getSignalStrength(in int serial); + + /** + * Get the phone book capacity + * + * @param serial Serial number of request. + * + * Response function is defined from IRadioResponse.getSimPhonebookCapacityResponse() + */ + void getSimPhonebookCapacity(in int serial); + + /** + * Get the local and global phonebook records from the SIM card. + * This should be called again after a simPhonebookChanged notification is received. + * The phonebook records are received via IRadioIndication.simPhonebookRecordsReceived() + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getSimPhonebookRecordsResponse() + */ + void getSimPhonebookRecords(in int serial); + + /** + * Request to get the current slicing configuration including URSP rules and NSSAIs + * (configured, allowed and rejected). URSP stands for UE route selection policy and is defined + * in 3GPP TS 24.526 Section 4.2. An NSSAI is a collection of network slices. Each network slice + * is identified by an S-NSSAI and is represented by the struct SliceInfo. NSSAI and S-NSSAI + * are defined in 3GPP TS 24.501. + * + * Response function is IRadioResponse.getSlicingConfigResponse() + */ + void getSlicingConfig(in int serial); + + /** + * Get the default Short Message Service Center address on the device. + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getSmscAddressResponse() + */ + void getSmscAddress(in int serial); + + /** + * Get which bands the modem's background scan is acting on. + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getSystemSelectionChannelsResponse() + */ + void getSystemSelectionChannels(in int serial); + + /** + * Request the setting of TTY mode + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getTTYModeResponse() + */ + void getTTYMode(in int serial); + + /** + * Query the radio technology type (3GPP/3GPP2) used for voice. Query is valid only + * when radio state is not RADIO_STATE_UNAVAILABLE + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.getVoiceRadioTechnologyResponse() + */ + void getVoiceRadioTechnology(in int serial); + + /** + * Request current voice registration state. + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.getVoiceRegistrationStateResponse() + */ + void getVoiceRegistrationState(in int serial); + + /** + * When STK application gets stkCallSetup(), the call actually has been initialized by the + * mobile device already. (We could see the call has been in the 'call list'). STK application + * needs to accept/reject the call according to user operations. + * + * @param serial Serial number of request. + * @param accept true = accept the call setup, false = reject the call setup + * + * Response callback is IRadioResponse.handleStkCallSetupRequestFromSimResponse() + */ + void handleStkCallSetupRequestFromSim(in int serial, in boolean accept); + + /** + * Hang up a specific line (like AT+CHLD=1x). After this HANGUP request returns, Radio must + * show the connection is NOT active anymore in next getCurrentCalls() query. + * + * @param serial Serial number of request. + * @param gsmIndex Connection index (value of 'x' in CHLD above) + * + * Response function is IRadioResponse.hangupResponse() + */ + void hangup(in int serial, in int gsmIndex); + + /** + * Hang up waiting or held (like AT+CHLD=1). After this HANGUP request returns, Radio must show + * the connection is NOT active anymore in next getCurrentCalls() query. + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.hangupForegroundResumeBackgroundResponse() + */ + void hangupForegroundResumeBackground(in int serial); + + /** + * Hang up waiting or held (like AT+CHLD=0). After this HANGUP request returns, Radio must show + * the connection is NOT active anymore in next getCurrentCalls() query. + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.hangupWaitingOrBackgroundResponse() + */ + void hangupWaitingOrBackground(in int serial); + + /** + * Close a previously opened logical channel. This command reflects TS 27.007 + * "close logical channel" operation (+CCHC). + * + * @param serial Serial number of request. + * @param channelId session id of the logical channel (+CCHC). + * + * Response callback is IRadioResponse.iccCloseLogicalChannelResponse() + */ + void iccCloseLogicalChannel(in int serial, in int channelId); + + /** + * Request ICC I/O operation. This is similar to the TS 27.007 "restricted SIM" operation where + * it assumes all of the EF selection must be done by the callee. Arguments and responses that + * are unused for certain values of "command" must be ignored or set to empty string. + * Note that IccIo has a "PIN2" field which may be empty string, or may specify a PIN2 for + * operations that require a PIN2 (eg updating FDN records). + * + * @param serial Serial number of request. + * @param iccIo IccIo + * + * Response function is IRadioResponse.iccIOForAppResponse() + */ + void iccIOForApp(in int serial, in IccIo iccIo); + + /** + * Open a new logical channel and select the given application. This command + * reflects TS 27.007 "open logical channel" operation (+CCHO). + * + * @param serial Serial number of request. + * @param aid AID value, See ETSI 102.221 and 101.220. + * @param p2 P2 value, described in ISO 7816-4. Ignore if equal to RadioConst:P2_CONSTANT_NO_P2 + * + * Response callback is IRadioResponse.iccOpenLogicalChannelResponse() + */ + void iccOpenLogicalChannel(in int serial, in String aid, in int p2); + + /** + * 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, + * and filter commands appropriately. It must filter channel management and SELECT by DF + * name commands. "sessionid" field must be ignored. + * + * @param serial Serial number of request. + * @param message SimApdu as defined in types.hal to be sent + * + * Response callback is IRadioResponse.iccTransmitApduBasicChannelResponse() + */ + void iccTransmitApduBasicChannel(in int serial, in SimApdu message); + + /** + * Exchange APDUs with a UICC over a previously opened logical channel. This command reflects + * TS 27.007 "generic logical channel access" operation (+CGLA). The modem must filter channel + * management and SELECT by DF name commands. + * + * @param serial Serial number of request. + * @param message SimApdu as defined in types.hal to be sent + * + * Response callback is IRadioResponse.iccTransmitApduLogicalChannelResponse() + */ + void iccTransmitApduLogicalChannel(in int serial, in SimApdu message); + + /** + * Is E-UTRA-NR Dual Connectivity enabled + * + * @param serial Serial number of request. + * Response callback is IRadioResponse.isNrDualConnectivityEnabledResponse() + */ + void isNrDualConnectivityEnabled(in int serial); + + /** + * Read one of the radio NV items. + * This is used for device configuration by some CDMA operators. + * + * @param serial Serial number of request. + * @param itemId NvItem is radio NV item as defined in types.hal + * + * Response callback is IRadioResponse.nvReadItemResponse() + */ + 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. + * + * @param serial Serial number of request. + * @param resetType ResetNvType as defined in types.hal + * + * Response callback is IRadioResponse.nvResetConfigResponse() + */ + void nvResetConfig(in int serial, in ResetNvType resetType); + + /** + * Update the CDMA Preferred Roaming List (PRL) in the radio NV storage. + * This is used for device configuration by some CDMA operators. + * + * @param serial Serial number of request. + * @param prl PRL as a byte array + * + * Response callback is IRadioResponse.nvWriteCdmaPrlResponse() + */ + void nvWriteCdmaPrl(in int serial, in byte[] prl); + + /** + * Write one of the radio NV items. + * This is used for device configuration by some CDMA operators. + * + * @param serial Serial number of request. + * @param item NvWriteItem as defined in types.hal + * + * Response callback is IRadioResponse.nvWriteItemResponse() + */ + void nvWriteItem(in int serial, in NvWriteItem item); + + /** + * Send UDUB (user determined user busy) to ringing or waiting call answer) + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.rejectCallResponse() + */ + void rejectCall(in int serial); + + /** + * Releases a pdu session id that was previously allocated using allocatePduSessionId. + * Reference: 3GPP TS 24.007 section 11.2.3.1b + * + * @param serial Serial number of request. + * @param id Pdu session id to release. + * + * Response function is IRadioResponse.releasePduSessionIdResponse() + */ + void releasePduSessionId(in int serial, in int id); + + /** + * Indicates whether there is storage available for new SMS messages. + * + * @param serial Serial number of request. + * @param available true if memory is available for storing new messages, + * false if memory capacity is exceeded + * + * Response callback is IRadioResponse.reportSmsMemoryStatusResponse() + */ + void reportSmsMemoryStatus(in int serial, in boolean available); + + /** + * Indicates that the StkService is running and is ready to receive unsolicited stk commands. + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.reportStkServiceIsRunningResponse() + */ + void reportStkServiceIsRunning(in int serial); + + /** + * Returns the response of SIM Authentication through Radio challenge request. + * + * @param serial Serial number of request. + * @param authContext P2 value of authentication command, see P2 parameter in + * 3GPP TS 31.102 7.1.2 + * @param authData the challenge string in Base64 format, see 3GPP TS 31.102 7.1.2 + * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value + * + * Response callback is IRadioResponse.requestIccSimAuthenticationResponse() + */ + void requestIccSimAuthentication( + in int serial, in int authContext, in String authData, in String aid); + + /** + * Request the ISIM application on the UICC to perform AKA challenge/response algorithm + * for IMS authentication + * + * @param serial Serial number of request. + * @param challenge challenge string in Base64 format + * + * Response callback is IRadioResponse.requestIsimAuthenticationResponse() + */ + void requestIsimAuthentication(in int serial, in String challenge); + + /** + * Device is shutting down. All further commands are ignored and RADIO_NOT_AVAILABLE + * must be returned. + * + * @param serial Serial number of request. + * + * Response callback is IRadioResponse.requestShutdownResponse() + */ + void requestShutdown(in int serial); + + /** + * When response type received from a radio indication or radio response is + * RadioIndicationType:UNSOLICITED_ACK_EXP or RadioResponseType:SOLICITED_ACK_EXP respectively, + * acknowledge the receipt of those messages by sending responseAcknowledgement(). + */ + void responseAcknowledgement(); + + /** + * Send DTMF string + * + * @param serial Serial number of request. + * @param dtmf DTMF string + * @param on DTMF ON length in milliseconds, or 0 to use default + * @param off is the DTMF OFF length in milliseconds, or 0 to use default + * + * Response callback is IRadioResponse.sendBurstDtmfResponse() + */ + void sendBurstDtmf(in int serial, in String dtmf, in int on, in int off); + + /** + * Send FLASH command + * + * @param serial Serial number of request. + * @param featureCode String associated with Flash command + * + * Response callback is IRadioResponse.sendCDMAFeatureCodeResponse() + */ + void sendCDMAFeatureCode(in int serial, in String featureCode); + + /** + * Send a CDMA SMS message + * + * @param serial Serial number of request. + * @param sms Cdma Sms to be sent described by CdmaSmsMessage in types.hal + * + * Response callback is IRadioResponse.sendCdmaSmsResponse() + */ + void sendCdmaSms(in int serial, in CdmaSmsMessage sms); + + /** + * Send an SMS message. Identical to sendCdmaSms, except that more messages are expected to be + * sent soon. + * + * @param serial Serial number of request. + * @param sms Cdma Sms to be sent described by CdmaSmsMessage in types.hal + * + * Response callback is IRadioResponse.sendCdmaSMSExpectMoreResponse() + */ + void sendCdmaSmsExpectMore(in int serial, in CdmaSmsMessage sms); + + /** + * Send the updated device state. This is providing the device state information for the modem + * to perform power saving strategies. + * + * @param serial Serial number of request. + * @param deviceStateType The updated device state type. + * @param state The updated state. See the definition of state at DeviceStateType. + * + * Response callback is IRadioResponse.sendDeviceStateResponse() + */ + void sendDeviceState(in int serial, in DeviceStateType deviceStateType, in boolean state); + + /** + * Send a DTMF tone. If the implementation is currently playing a tone requested via + * startDtmf(), that tone must be cancelled and the new tone must be played instead. + * + * @param serial Serial number of request. + * @param s string with single char having one of 12 values: 0-9, *, # + * + * Response function is IRadioResponse.sendDtmfResponse() + */ + void sendDtmf(in int serial, in String s); + + /** + * Requests to send a SAT/USAT envelope command to SIM. + * The SAT/USAT envelope command refers to 3GPP TS 11.14 and 3GPP TS 31.111 + * + * @param serial Serial number of request. + * @param command SAT/USAT command in hexadecimal format string starting with command tag + * + * Response function is IRadioResponse.sendEnvelopeResponse() + */ + void sendEnvelope(in int serial, in String command); + + /** + * Requests to send a SAT/USAT envelope command to SIM. The SAT/USAT envelope command refers to + * 3GPP TS 11.14 and 3GPP TS 31.111. This request has one difference from sendEnvelope(): + * The SW1 and SW2 status bytes from the UICC response are returned along with the response + * data, using the same structure as iccIOForApp(). The implementation must perform normal + * processing of a '91XX' response in SW1/SW2 to retrieve the pending proactive command and + * send it as an unsolicited response, as sendEnvelope() does. + * + * @param serial Serial number of request. + * @param contents SAT/USAT command in hexadecimal format starting with command tag + * + * Response callback is IRadioResponse.sendEnvelopeWithStatusResponse() + */ + void sendEnvelopeWithStatus(in int serial, in String contents); + + /** + * Send a SMS message over IMS. Based on the return error, caller decides to resend if sending + * sms fails. SMS_SEND_FAIL_RETRY means retry, and other errors means no retry. + * In case of retry, data is encoded based on Voice Technology available. + * + * @param serial Serial number of request. + * @param message ImsSmsMessage as defined in types.hal to be sent + * + * Response callback is IRadioResponse.sendImsSmsResponse() + */ + void sendImsSms(in int serial, in ImsSmsMessage message); + + /** + * Send an SMS message. Based on the returned error, caller decides to resend if sending sms + * fails. RadioError:SMS_SEND_FAIL_RETRY means retry (i.e. error cause is 332) and + * RadioError:GENERIC_FAILURE means no retry (i.e. error cause is 500) + * + * @param serial Serial number of request. + * @param message GsmSmsMessage as defined in types.hal + * + * Response function is IRadioResponse.sendSmsResponse() + */ + void sendSms(in int serial, in GsmSmsMessage message); + + /** + * Send an SMS message. Identical to sendSms, except that more messages are expected to be sent + * soon. If possible, keep SMS relay protocol link open (eg TS 27.005 AT+CMMS command). + * Based on the return error, caller decides to resend if sending sms fails. + * RadioError:SMS_SEND_FAIL_RETRY means retry (i.e. error cause is 332) and + * RadioError:GENERIC_FAILURE means no retry (i.e. error cause is 500) + * + * @param serial Serial number of request. + * @param message GsmSmsMessage as defined in types.hal + * + * Response function is IRadioResponse.sendSmsExpectMoreResponse() + */ + void sendSmsExpectMore(in int serial, in GsmSmsMessage message); + + /** + * Requests to send a terminal response to SIM for a received proactive command + * + * @param serial Serial number of request. + * @param commandResponse SAT/USAT response in hexadecimal format string starting with + * first byte of response data + * + * Response function is IRadioResponse.sendTerminalResponseResponseToSim() + */ + void sendTerminalResponseToSim(in int serial, in String commandResponse); + + /** + * Send a USSD message. If a USSD session already exists, the message must be sent in the + * context of that session. Otherwise, a new session must be created. The network reply must be + * reported via unsolOnUssd. + * + * Only one USSD session must exist at a time, and the session is assumed to exist until: + * a) The android system invokes cancelUssd() + * b) The implementation sends a unsolOnUssd() with a type code of + * "0" (USSD-Notify/no further action) or "2" (session terminated) + * + * @param serial Serial number of request. + * @param ussd string containing the USSD request in UTF-8 format + * + * Response function is IRadioResponse.sendUssdResponse() + * + * See also requestCancelUssd, unsolOnUssd + */ + void sendUssd(in int serial, in String ussd); + + /** + * Separate a party from a multiparty call placing the multiparty call (less the specified + * party) on hold and leaving the specified party as the only other member of the current + * (active) call. Like AT+CHLD=2x. + * + * See TS 22.084 1.3.8.2 (iii) + * TS 22.030 6.5.5 "Entering "2X followed by send" + * TS 27.007 "AT+CHLD=2x" + * + * @param serial Serial number of request. + * @param gsmIndex contains Connection index (value of 'x' in CHLD above) + * + * Response function is IRadioResponse.separateConnectionResponse() + */ + void separateConnection(in int serial, in int gsmIndex); + + /** + * Set carrier restrictions. Expected modem behavior: + * If never receives this command: + * - Must allow all carriers + * Receives this command: + * - Only allow carriers specified in carriers. The restriction persists across power cycles + * and FDR. If a present SIM is allowed, modem must not reload the SIM. If a present SIM is + * *not* allowed, modem must detach from the registered network and only keep emergency + * service, and notify Android SIM refresh reset with new SIM state being + * CardState:RESTRICTED. Emergency service must be enabled. + * + * @param serial Serial number of request. + * @param carriers CarrierRestrictions consisting allowed and excluded carriers + * @param multiSimPolicy Policy to be used for devices with multiple SIMs. + * + * Response callback is IRadioResponse.setAllowedCarriersResponse() + */ + void setAllowedCarriers(in int serial, in CarrierRestrictions carriers, + in SimLockMultiSimPolicy multiSimPolicy); + + /** + * Requests to set the network type for searching and registering. Instruct the radio to + * *only* accept the types of network provided. setPreferredNetworkTypesBitmap and + * setPreferredNetworkType will not be called anymore except for IRadio v1.5 or older devices. + * In case of an emergency call, the modem is authorized to bypass this restriction. + * + * @param serial Serial number of request. + * @param networkTypeBitmap a 32-bit bearer bitmap of RadioAccessFamily + * + * Response callback is IRadioResponse.setAllowedNetworkTypesBitmapResponse() + */ + void setAllowedNetworkTypesBitmap(in int serial, in RadioAccessFamily networkTypeBitmap); + + /** + * Assign a specified band for RF configuration. + * + * @param serial Serial number of request. + * @param mode RadioBandMode defined in types.hal + * + * Response function is IRadioResponse.setBandModeResponse() + */ + void setBandMode(in int serial, in RadioBandMode mode); + + /** + * Change call barring facility password + * + * @param serial Serial number of request. + * @param facility facility string code from TS 27.007 7.4 (eg "AO" for BAOC) + * @param oldPassword old password + * @param newPassword new password + * + * Response function is IRadioResponse.setBarringPasswordResponse() + */ + void setBarringPassword( + in int serial, in String facility, in String oldPassword, in String newPassword); + + /** + * Configure call forward rule + * + * @param serial Serial number of request. + * @param callInfo CallForwardInfo + * + * Response function is IRadioResponse.setCallForwardResponse() + */ + void setCallForward(in int serial, in CallForwardInfo callInfo); + + /** + * Configure current call waiting state + * + * @param serial Serial number of request. + * @param enable is false for "disabled" and true for "enabled" + * @param serviceClass is the TS 27.007 service class bit vector of services to modify + * + * Response function is IRadioResponse.setCallWaitingResponse() + */ + void setCallWaiting(in int serial, in boolean enable, in int serviceClass); + + /** + * Provide Carrier specific information to the modem that must be used to encrypt the IMSI and + * IMPI. Sent by the framework during boot, carrier switch and everytime the framework receives + * a new certificate. + * + * @param serial Serial number of request. + * @param imsiEncryptionInfo ImsiEncryptionInfo as defined in types.hal. + * + * Response callback is IRadioResponse.setCarrierInfoForImsiEncryptionResponse() + */ + void setCarrierInfoForImsiEncryption(in int serial, in ImsiEncryptionInfo imsiEncryptionInfo); + + /** + * Enable or disable the reception of CDMA Cell Broadcast SMS + * + * @param serial Serial number of request. + * @param activate indicates to activate or turn off the reception of CDMA + * Cell Broadcast SMS. true = activate, false = turn off + * + * Response callback is IRadioResponse.setCdmaBroadcastActivationResponse() + */ + void setCdmaBroadcastActivation(in int serial, in boolean activate); + + /** + * Set CDMA Broadcast SMS config + * + * @param serial Serial number of request. + * @param configInfo CDMA Broadcast SMS config to be set. + * + * Response callback is IRadioResponse.setCdmaBroadcastConfigResponse() + */ + void setCdmaBroadcastConfig(in int serial, in CdmaBroadcastSmsConfigInfo[] configInfo); + + /** + * Request to set the roaming preferences in CDMA + * + * @param serial Serial number of request. + * @param type CdmaRoamingType defined in types.hal + * + * Response callback is IRadioResponse.setCdmaRoamingPreferenceResponse() + */ + void setCdmaRoamingPreference(in int serial, in CdmaRoamingType type); + + /** + * Request to set the location where the CDMA subscription shall be retrieved + * + * @param serial Serial number of request. + * @param cdmaSub CdmaSubscriptionSource + * + * Response callback is IRadioResponse.setCdmaSubscriptionSourceResponse() + */ + void setCdmaSubscriptionSource(in int serial, in CdmaSubscriptionSource cdmaSub); + + /** + * Sets the minimum time between when unsolicited cellInfoList() must be invoked. + * A value of 0, means invoke cellInfoList() when any of the reported information changes. + * Setting the value to INT_MAX(0x7fffffff) means never issue a unsolicited cellInfoList(). + * + * @param serial Serial number of request. + * @param rate minimum time in milliseconds to indicate time between unsolicited cellInfoList() + * + * Response callback is IRadioResponse.setCellInfoListRateResponse() + */ + void setCellInfoListRate(in int serial, in int rate); + + /** + * Set current CLIR status + * + * @param serial Serial number of request. + * @param status "n" parameter from TS 27.007 7.7 + * + * Response function is IRadioResponse.setClirResponse() + */ + void setClir(in int serial, in int status); + + /** + * Tells the modem whether data calls are allowed or not + * + * @param serial Serial number of request. + * @param allow true to allow data calls, false to disallow data calls + * + * Response callback is IRadioResponse.setDataAllowedResponse() + */ + void setDataAllowed(in int serial, in boolean allow); + + /** + * Send data profiles of the current carrier to the modem. + * + * @param serial Serial number of request. + * @param profiles Array of DataProfileInfo to set. + * + * Response callback is IRadioResponse.setDataProfileResponse() + */ + void setDataProfile(in int serial, in DataProfileInfo[] profiles); + + /** + * Control data throttling at modem. + * - DataThrottlingAction:NO_DATA_THROTTLING should clear any existing data throttling within + * the requested completion window. + * - DataThrottlingAction:THROTTLE_SECONDARY_CARRIER: Remove any existing throttling on anchor + * carrier and achieve maximum data throttling on secondary carrier within the requested + * completion window. + * - DataThrottlingAction:THROTTLE_ANCHOR_CARRIER: disable secondary carrier and achieve maximum + * data throttling on anchor carrier by requested completion window. + * - DataThrottlingAction:HOLD: Immediately hold on to current level of throttling. + * + * @param serial Serial number of request. + * @param dataThrottlingAction DataThrottlingAction as defined in types.hal + * @param completionDurationMillis window, in milliseconds, in which the requested throttling + * action has to be achieved. This must be 0 when dataThrottlingAction is + * DataThrottlingAction:HOLD. + * + * Response function is IRadioResponse.setDataThrottlingResponse() + */ + void setDataThrottling(in int serial, in DataThrottlingAction dataThrottlingAction, + in long completionDurationMillis); + + /** + * Enable/disable one facility lock + * + * @param serial Serial number of request. + * @param facility is the facility string code from TS 27.007 7.4 (eg "AO" for BAOC) + * @param lockState false for "unlock" and true for "lock" + * @param password is the password + * @param serviceClass is string representation of decimal TS 27.007 service class bit vector. + * Eg, the string "1" means "set this facility for voice services" + * @param appId is AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value. + * This is only applicable in the case of Fixed Dialing Numbers (FDN) requests. + * + * Response function is IRadioResponse.setFacilityLockForAppResponse() + */ + void setFacilityLockForApp(in int serial, in String facility, in boolean lockState, + in String password, in int serviceClass, in String appId); + + /** + * Enable or disable the reception of GSM/WCDMA Cell Broadcast SMS + * + * @param serial Serial number of request. + * @param activate indicates to activate or turn off the reception of GSM/WCDMA + * Cell Broadcast SMS. true = activate, false = turn off + * + * Response callback is IRadioResponse.setGsmBroadcastActivationResponse() + */ + void setGsmBroadcastActivation(in int serial, in boolean activate); + + /** + * Set GSM/WCDMA Cell Broadcast SMS config + * + * @param serial Serial number of request. + * @param configInfo Setting of GSM/WCDMA Cell broadcast config + * + * Response callback is IRadioResponse.setGsmBroadcastConfigResponse() + */ + void setGsmBroadcastConfig(in int serial, in GsmBroadcastSmsConfigInfo[] configInfo); + + /** + * Sets the indication filter. Prevents the reporting of specified unsolicited indications from + * the radio. This is used for power saving in instances when those indications are not needed. + * If unset, defaults to IndicationFilter:ALL. + * + * @param serial Serial number of request. + * @param indicationFilter 32-bit bitmap of IndicationFilter. Bits set to 1 indicate the + * indications are enabled. See IndicationFilter for the definition of each bit. + * + * Response callback is IRadioResponse.setIndicationFilterResponse() + */ + void setIndicationFilter(in int serial, in IndicationFilter indicationFilter); + + /** + * Set an APN to initial attach network. + * + * @param serial Serial number of request. + * @param dataProfileInfo data profile containing APN settings + * + * Response callback is IRadioResponse.setInitialAttachApnResponse() + */ + void setInitialAttachApn(in int serial, in DataProfileInfo dataProfileInfo); + + /** + * Sets the link capacity reporting criteria. The resulting reporting criteria are the AND of + * all the supplied criteria. Note that reporting criteria must be individually set for each + * RAN. If unset, reporting criteria for that RAN are implementation-defined. + * + * Response callback is IRadioResponse.setLinkCapacityReportingCriteriaResponse(). + * + * @param serial Serial number of request. + * @param hysteresisMs A hysteresis time in milliseconds to prevent flapping. A value of 0 + * disables hysteresis. + * @param hysteresisDlKbps An interval in kbps defining the required magnitude change between DL + * reports. hysteresisDlKbps must be smaller than the smallest threshold delta. A value + * of 0 disables hysteresis. + * @param hysteresisUlKbps An interval in kbps defining the required magnitude change between UL + * reports. hysteresisUlKbps must be smaller than the smallest threshold delta. A value + * of 0 disables hysteresis. + * @param thresholdsDownlinkKbps A vector of trigger thresholds in kbps for downlink reports. A + * vector size of 0 disables the use of DL thresholds for reporting. + * @param thresholdsUplinkKbps A vector of trigger thresholds in kbps for uplink reports. A + * vector size of 0 disables the use of UL thresholds for reporting. + * @param accessNetwork The type of network for which to apply these thresholds. + */ + void setLinkCapacityReportingCriteria(in int serial, in int hysteresisMs, + in int hysteresisDlKbps, in int hysteresisUlKbps, in int[] thresholdsDownlinkKbps, + in int[] thresholdsUplinkKbps, in AccessNetwork accessNetwork); + + /** + * 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). + * The Radio implementation must default to "updates enabled" when the screen is on and + * "updates disabled" when the screen is off. + * + * @param serial Serial number of request. + * @param enable true=updates enabled (+CREG=2), false=updates disabled (+CREG=1) + * + * Response callback is IRadioResponse.setLocationUpdatesResponse() + */ + void setLocationUpdates(in int serial, in boolean enable); + + /** + * Turn on or off uplink (microphone) mute. Must only be sent while voice call is active. + * Must always be reset to "disable mute" when a new voice call is initiated + * + * @param serial Serial number of request. + * @param enable true for "enable mute" and false for "disable mute" + * + * Response function is IRadioResponse.setMuteResponse() + */ + void setMute(in int serial, in boolean enable); + + /** + * Specify that the network must be selected automatically. + * This request must not respond until the new operator is selected and registered. + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.setNetworkSelectionModeAutomaticResponse() + */ + void setNetworkSelectionModeAutomatic(in int serial); + + /** + * Manually select a specified network. This request must not respond until the new operator is + * selected and registered. Per TS 23.122, the RAN is just the initial suggested value. + * If registration fails, the RAN is not available afterwards, or the RAN is not within the + * network types specified by IRadio::setPreferredNetworkTypeBitmap, then the modem will need to + * select the next best RAN for network registration. + * + * @param serial Serial number of request. + * @param operatorNumeric String specifying MCCMNC of network to select (eg "310170"). + * @param ran Initial suggested radio access network type. If value is UNKNOWN, the modem + * will select the next best RAN for network registration. + * + * Response function is IRadioResponse.setNetworkSelectionModeManualResponse() + */ + void setNetworkSelectionModeManual( + in int serial, in String operatorNumeric, in RadioAccessNetworks ran); + + /** + * Enable or disable E-UTRA-NR dual connectivity. If disabled then UE will not connect + * to secondary carrier. + * + * @param serial Serial number of request. + * @param nrDualConnectivityState expected NR dual connectivity state. + * 1: Enable NR dual connectivity {NrDualConnectivityState:ENABLE} + * 2: Disable NR dual connectivity {NrDualConnectivityState:DISABLE} + * 3: Disable NR dual connectivity and force secondary cell to be released + * {NrDualConnectivityState:DISABLE_IMMEDIATE} + * + * Response callback is IRadioResponse.setNRDualConnectivityStateResponse() + */ + void setNrDualConnectivityState( + in int serial, in NrDualConnectivityState nrDualConnectivityState); + + /** + * Requests to set the preferred network type for searching and registering + * (CS/PS domain, RAT, and operation mode) + * + * @param serial Serial number of request. + * @param nwType PreferredNetworkType defined in types.hal + * + * Response callback is IRadioResponse.setPreferredNetworkTypeResponse() + */ + void setPreferredNetworkType(in int serial, in PreferredNetworkType nwType); + + /** + * Requests to set the preferred network type for searching and registering. + * + * @param serial Serial number of request. + * @param networkTypeBitmap a 32-bit bitmap of RadioAccessFamily. + * + * Response callback is IRadioResponse.setPreferredNetworkTypeBitmapResponse() + */ + void setPreferredNetworkTypeBitmap(in int serial, in RadioAccessFamily networkTypeBitmap); + + /** + * Request to set the preferred voice privacy mode used in voice scrambling. + * + * @param serial Serial number of request. + * @param enable false for Standard Privacy Mode (Public Long Code Mask) + * true for Enhanced Privacy Mode (Private Long Code Mask) + * + * Response callback is IRadioResponse.setPreferredVoicePrivacyResponse() + */ + void setPreferredVoicePrivacy(in int serial, in boolean enable); + + /** + * Used to set the phones radio capability. Be VERY careful using this request as it may cause + * some vendor modems to reset. Because of the possible modem reset any radio commands after + * this one may not be processed. + * + * @param serial Serial number of request. + * @param rc RadioCapability structure to be set + * + * Response callback is IRadioResponse.setRadioCapabilityResponse() + */ + void setRadioCapability(in int serial, in RadioCapability rc); + + /** + * Toggle radio on and off (for "airplane" mode). If the radio is turned off/on the radio modem + * subsystem is expected return to an initialized state. For instance, any voice and data calls + * must be terminated and all associated lists emptied. + * When setting radio power on to exit from airplane mode to place an emergency call on this + * logical modem, powerOn, forEmergencyCall and preferredForEmergencyCall must be true. In + * this case, this modem is optimized to scan only emergency call bands, until: + * 1) Emergency call is completed; or + * 2) Another setRadioPower is issued with forEmergencyCall being false or + * preferredForEmergencyCall being false; or + * 3) Timeout after 30 seconds if dial or emergencyDial is not called. + * Once one of these conditions is reached, the modem should move into normal operation. + * + * @param serial Serial number of request. + * @param powerOn To turn on radio -> on = true, to turn off radio -> on = false. + * @param forEmergencyCall To indication to radio if this request is due to emergency call. + * No effect if powerOn is false. + * @param preferredForEmergencyCall indicate whether the following emergency call will be sent + * on this modem or not. No effect if forEmergencyCall is false, or powerOn is false. + * + * Response callback is IRadioConfigResponse.setRadioPowerResponse. + */ + void setRadioPower(in int serial, in boolean powerOn, in boolean forEmergencyCall, + in boolean preferredForEmergencyCall); + + /** + * Set response functions for radio requests & radio indications. + * + * @param radioResponse Object containing response functions + * @param radioIndication Object containing radio indications + */ + void setResponseFunctions(in IRadioResponse radioResponse, in IRadioIndication radioIndication); + + /** + * Sets the signal strength reporting criteria. The resulting reporting rules are the AND of all + * the supplied criteria. For each RAN the hysteresisDb and thresholds apply to only the + * following measured quantities: + * -GERAN - RSSI + * -CDMA2000 - RSSI + * -UTRAN - RSCP + * -EUTRAN - RSRP/RSRQ/RSSNR + * -NGRAN - SSRSRP/SSRSRQ/SSSINR + * Note that reporting criteria must be individually set for each RAN. For each RAN, if none of + * reporting criteria of any measurement is set enabled (see SignalThresholdInfo.isEnabled), + * the reporting criteria for this RAN is implementation-defined. For each RAN, if any reporting + * criteria of any measure is set enabled, the reporting criteria of the other measures in this + * RAN are set disabled (see SignalThresholdInfo.isEnabled) until they are set enabled. + * + * @param serial Serial number of request. + * @param signalThresholdInfo Signal threshold info including the threshold values, + * hysteresisDb, hysteresisMs and isEnabled. See SignalThresholdInfo for details. + * @param accessNetwork The type of network for which to apply these thresholds. + * + * Response callback is IRadioResponse.setSignalStrengthReportingCriteriaResponse() + */ + void setSignalStrengthReportingCriteria(in int serial, + in SignalThresholdInfo signalThresholdInfo, in AccessNetwork accessNetwork); + + /** + * Set SIM card power state. Request is used to power off or power on the card. It should not + * generate a CardState.CARDSTATE_ABSENT indication, since the SIM is still physically inserted. + * When SIM card is in POWER_UP_PASS_THROUGH, the modem does not send any command to it (for + * example SELECT of MF, or TERMINAL CAPABILITY), and the SIM card is controlled completely by + * Telephony sending APDUs directly. The SIM card state must be RIL_CARDSTATE_PRESENT and the + * number of card apps will be 0. No new error code is generated. Emergency calls are supported + * in the same way as if the SIM card is absent. Pass-through mode is valid only for the + * specific card session where it is activated, and normal behavior occurs at the next SIM + * initialization, unless POWER_UP_PASS_THROUGH is requested again. + * The device is required to power down the SIM card before it can switch the mode between + * POWER_UP and POWER_UP_PASS_THROUGH. At device power up, the SIM interface is powered up + * automatically. Each subsequent request to this method is processed only after the completion + * of the previous one. + * When the SIM is in POWER_DOWN, the modem should send an empty vector of AppStatus in + * CardStatus.applications. If a SIM in the POWER_DOWN state is removed and a new SIM is + * inserted, the new SIM should be in POWER_UP mode by default. If the device is turned off or + * restarted while the SIM is in POWER_DOWN, then the SIM should turn on normally in POWER_UP + * mode when the device turns back on. + * + * @param serial Serial number of request + * @param powerUp POWER_DOWN if powering down the SIM card + * POWER_UP if powering up the SIM card + * POWER_UP_PASS_THROUGH if powering up the SIM card in pass through mode + * + * Response callback is IRadioResponse.setSimCardPowerResponse(). + */ + void setSimCardPower(in int serial, in CardPowerState powerUp); + + /** + * Set the default Short Message Service Center address on the device. + * + * @param serial Serial number of request. + * @param smsc Short Message Service Center address to set + * + * Response callback is IRadioResponse.setSmscAddressResponse() + */ + void setSmscAddress(in int serial, in String smsc); + + /** + * Enables/disables supplementary service related notifications from the network. + * Notifications are reported via unsolSuppSvcNotification(). + * + * @param serial Serial number of request. + * @param enable true = notifications enabled, false = notifications disabled. + * + * Response function is IRadioResponse.setSuppServiceNotificationsResponse() + */ + void setSuppServiceNotifications(in int serial, in boolean enable); + + /** + * Specify which bands modem's background scan must act on. If specifyChannels is true, it only + * scans bands specified in specifiers. If specifyChannels is false, it scans all bands. For + * example, CBRS is only on LTE band 48. By specifying this band, modem saves more power. + * + * @param serial Serial number of request. + * @param specifyChannels whether to scan bands defined in specifiers. + * @param specifiers which bands to scan. Only used if specifyChannels is true. + * + * Response callback is IRadioResponse.setSystemSelectionChannelsResponse() + */ + void setSystemSelectionChannels( + in int serial, in boolean specifyChannels, in RadioAccessSpecifier[] specifiers); + + /** + * Request to set the TTY mode + * + * @param serial Serial number of request. + * @param mode TtyMode + * + * Response callback is IRadioResponse.setTTYModeResponse() + */ + void setTTYMode(in int serial, in TtyMode mode); + + /** + * Selection/de-selection of a subscription from a SIM card + * + * @param serial Serial number of request. + * @param uiccSub SelectUiccSub as defined in types.hal + * + * Response callback is IRadioResponse.setUiccSubscriptionResponse() + */ + void setUiccSubscription(in int serial, in SelectUiccSub uiccSub); + + /** + * Setup a packet data connection. If DataCallResponse.status returns DataCallFailCause:NONE, + * the data connection must be added to data calls and a unsolDataCallListChanged() must be + * sent. The call remains until removed by subsequent unsolDataCallIstChanged(). It may be lost + * due to many factors, including deactivateDataCall() being issued, the radio powered off, + * reception lost or even transient factors like congestion. This data call list is returned by + * getDataCallList() and dataCallListChanged(). + * The Radio is expected to: + * - Create one data call context. + * - Create and configure a dedicated interface for the context. + * - The interface must be point to point. + * - The interface is configured with one or more addresses and is capable of sending and + * receiving packets. The format is IP address with optional "/" prefix length (The format is + * defined in RFC-4291 section 2.3). For example, "192.0.1.3", "192.0.1.11/16", or + * "2001:db8::1/64". Typically one IPv4 or one IPv6 or one of each. If the prefix length is + * absent, then the addresses are assumed to be point to point with IPv4 with prefix length 32 + * or IPv6 with prefix length 128. + * - Must not modify routing configuration related to this interface; routing management is + * exclusively within the purview of the Android OS. + * - Support simultaneous data call contexts up to DataRegStateResult.maxDataCalls specified in + * the response of getDataRegistrationState. + * + * @param serial Serial number of request. + * @param accessNetwork The access network to setup the data call. If the data connection cannot + * be established on the specified access network then this should respond with an error. + * @param dataProfileInfo Data profile info. + * @param roamingAllowed Indicates whether or not data roaming is allowed by the user. + * @param reason The request reason. Must be DataRequestReason:NORMAL or + * DataRequestReason:HANDOVER. + * @param addresses If the reason is DataRequestReason:HANDOVER, this indicates the list of link + * addresses of the existing data connection. This parameter must be ignored unless + * reason is DataRequestReason:HANDOVER. + * @param dnses If the reason is DataRequestReason:HANDOVER, this indicates the list of DNS + * addresses of the existing data connection. The format is defined in RFC-4291 section + * 2.2. For example, "192.0.1.3" or "2001:db8::1". This parameter must be ignored unless + * reason is DataRequestReason:HANDOVER. + * @param pduSessionId The pdu session id to be used for this data call. A value of 0 means no + * pdu session id was attached to this call. Reference: 3GPP TS 24.007 section 11.2.3.1b + * @param sliceInfo SliceInfo to be used for the data connection when a handover occurs from + * EPDG to 5G. It is valid only when accessNetwork is AccessNetwork:NGRAN. If the slice + * passed from EPDG is rejected, then the data failure cause must be + * DataCallFailCause:SLICE_REJECTED. + * @param trafficDescriptor TrafficDescriptor for which data connection needs to be established. + * It is used for URSP traffic matching as described in TS 24.526 Section 4.2.2. + * It includes an optional DNN which, if present, must be used for traffic matching -- + * it does not specify the end point to be used for the data call. The end point is + * specified by DataProfileInfo.apn; DataProfileInfo.apn must be used as the end point if + * one is not specified through URSP rules. + * @param matchAllRuleAllowed bool to indicate if using default match-all URSP rule for this + * request is allowed. If false, this request must not use the match-all URSP rule and if + * a non-match-all rule is not found (or if URSP rules are not available) it should + * return failure with cause DataCallFailCause:MATCH_ALL_RULE_NOT_ALLOWED. This is needed + * as some requests need to have a hard failure if the intention cannot be met, for + * example, a zero-rating slice. + * + * Response function is IRadioResponse.setupDataCallResponse() + */ + void setupDataCall(in int serial, in AccessNetwork accessNetwork, + in DataProfileInfo dataProfileInfo, in boolean roamingAllowed, + in DataRequestReason reason, in LinkAddress[] addresses, in String[] dnses, + in int pduSessionId, in @nullable SliceInfo sliceInfo, + in @nullable TrafficDescriptor trafficDescriptor, + in boolean matchAllRuleAllowed); + + /** + * Start playing a DTMF tone. Continue playing DTMF tone until stopDtmf is received. If a + * startDtmf() is received while a tone is currently playing, it must cancel the previous tone + * and play the new one. + * + * @param serial Serial number of request. + * @param s string having a single character with one of 12 values: 0-9,*,# + * + * Response function is IRadioResponse.startDtmfResponse() + */ + void startDtmf(in int serial, in String s); + + /** + * Indicates that a handover to the IWLAN transport has begun. Any resources being transferred + * to the IWLAN transport cannot be released while a handover is underway. For example, if a + * pdu session id needs to be transferred to IWLAN, then the modem should not release the id + * while the handover is in progress. If a handover was unsuccessful, then the framework calls + * IRadio::cancelHandover. The modem retains ownership over any of the resources being + * transferred to IWLAN. If a handover was successful, the framework calls + * IRadio::deactivateDataCall with reason HANDOVER. The IWLAN transport now owns the transferred + * resources and is responsible for releasing them. + * + * @param serial Serial number of request. + * @param id callId The identifier of the data call which is provided in SetupDataCallResult + * + * Response function is IRadioResponse.startHandoverResponse() + */ + void startHandover(in int serial, in int callId); + + /** + * Start a Keepalive session (for IPsec) + * + * @param serial Serial number of request. + * @param keepalive A request structure containing all necessary info to describe a keepalive + * + * Response function is IRadioResponse.startKeepaliveResponse() + */ + void startKeepalive(in int serial, in KeepaliveRequest keepalive); + + /** + * Starts a network scan. + * + * @param serial Serial number of request. + * @param request Defines the radio networks/bands/channels which need to be scanned. + * + * Response function is IRadioResponse.startNetworkScanResponse() + */ + void startNetworkScan(in int serial, in NetworkScanRequest request); + + /** + * Stop playing a currently playing DTMF tone. + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.stopDtmfResponse() + */ + void stopDtmf(in int serial); + + /** + * Stop an ongoing Keepalive session (for IPsec) + * + * @param serial Serial number of request. + * @param sessionHandle The handle that was provided by IRadioResponse.startKeepaliveResponse + * + * Response function is IRadioResponse.stopKeepaliveResponse() + */ + void stopKeepalive(in int serial, in int sessionHandle); + + /** + * Stops ongoing network scan + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.stopNetworkScanResponse() + */ + void stopNetworkScan(in int serial); + + /** + * Supplies ICC PIN2. Only called following operation where SIM_PIN2 was returned as a failure + * from a previous operation. + * + * @param serial Serial number of request. + * @param pin2 PIN2 value + * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value. + * + * Response function is IRadioResponse.supplyIccPin2ForAppResponse() + */ + void supplyIccPin2ForApp(in int serial, in String pin2, in String aid); + + /** + * Supplies ICC PIN. Only called if CardStatus has AppState.PIN state + * + * @param serial Serial number of request. + * @param pin PIN value + * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value. + * + * Response function is IRadioResponse.supplyIccPinForAppResponse() + */ + void supplyIccPinForApp(in int serial, in String pin, in String aid); + + /** + * Supplies ICC PUK2 and new PIN2. + * + * @param serial Serial number of request. + * @param puk2 PUK2 value + * @param pin2 New PIN2 value + * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value. + * + * Response function is IRadioResponse.supplyIccPuk2ForAppResponse() + */ + void supplyIccPuk2ForApp(in int serial, in String puk2, in String pin2, in String aid); + + /** + * Supplies ICC PUK and new PIN. + * + * @param serial Serial number of request. + * @param puk PUK value + * @param pin New PIN value + * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value. + * + * Response function is IRadioResponse.supplyIccPukForAppResponse() + */ + void supplyIccPukForApp(in int serial, in String puk, in String pin, in String aid); + + /** + * Requests that network personalization be deactivated + * + * @param serial Serial number of request. + * @param netPin Network depersonlization code + * + * Response function is IRadioResponse.supplyNetworkDepersonalizationResponse() + */ + void supplyNetworkDepersonalization(in int serial, in String netPin); + + /** + * Request that deactivates one category of device personalization. Device personalization + * generally binds the device so it can only be used on one carrier or even one carrier subnet + * (See TS 22.022). When the user has gained the rights to unbind the device (at the end of a + * contract period or other event), the controlKey will be delivered to either the user for + * manual entry or to a carrier app on the device for automatic entry. + * + * @param serial Serial number of request. + * @param persoType SIM personalization type. + * @param controlKey the unlock code for removing persoType personalization from this device + * + * Response function is IRadioResponse.supplySimDepersonalizationResponse() + */ + void supplySimDepersonalization( + in int serial, in PersoSubstate persoType, in String controlKey); + + /** + * Switch waiting or holding call and active call (like AT+CHLD=2). + * Call transitions must happen as shown below. + * BEFORE AFTER + * Call 1 Call 2 Call 1 Call 2 + * ACTIVE HOLDING HOLDING ACTIVE + * ACTIVE WAITING HOLDING ACTIVE + * HOLDING WAITING HOLDING ACTIVE + * ACTIVE IDLE HOLDING IDLE + * IDLE IDLE IDLE IDLE + * + * @param serial Serial number of request. + * + * Response function is IRadioResponse.switchWaitingOrHoldingAndActiveResponse() + */ + void switchWaitingOrHoldingAndActive(in int serial); + + /** + * Insert, delete or update a phonebook record on the SIM card. If the index of recordInfo is 0, + * the phonebook record will be added to global or local phonebook, and global phonebook has + * higher priority than local phonebook. If the fields in the recordInfo are all empty except + * for the index, the phonebook record specified by the index will be deleted. The indication + * simPhonebookChanged will be called after every successful call of updateSimPhonebookRecords. + * + * @param serial Serial number of request. + * @param recordInfo Details of the record to insert, delete or update. + * + * Response callback is IRadioResponse.updateSimPhonebookRecordsResponse() + */ + void updateSimPhonebookRecords(in int serial, in PhonebookRecordInfo recordInfo); + + /** + * Stores a CDMA SMS message to RUIM memory. + * + * @param serial Serial number of request. + * @param cdmaSms CDMA message as defined by CdmaSmsWriteArgs in types.hal + * + * Response callback is IRadioResponse.writeSmsToRuimResponse() + */ + void writeSmsToRuim(in int serial, in CdmaSmsWriteArgs cdmaSms); + + /** + * Stores a SMS message to SIM memory. + * + * @param serial Serial number of request. + * @param smsWriteArgs SmsWriteArgs defined in types.hal + * + * Response function is IRadioResponse.writeSmsToSimResponse() + */ + void writeSmsToSim(in int serial, in SmsWriteArgs smsWriteArgs); +} diff --git a/radio/aidl/android/hardware/radio/IRadioIndication.aidl b/radio/aidl/android/hardware/radio/IRadioIndication.aidl new file mode 100644 index 0000000000..ec6addecb0 --- /dev/null +++ b/radio/aidl/android/hardware/radio/IRadioIndication.aidl @@ -0,0 +1,626 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.BarringInfo; +import android.hardware.radio.CdmaCallWaiting; +import android.hardware.radio.CdmaInformationRecords; +import android.hardware.radio.CdmaOtaProvisionStatus; +import android.hardware.radio.CdmaSignalInfoRecord; +import android.hardware.radio.CdmaSmsMessage; +import android.hardware.radio.CdmaSubscriptionSource; +import android.hardware.radio.CellIdentity; +import android.hardware.radio.CellInfo; +import android.hardware.radio.Domain; +import android.hardware.radio.EmergencyNumber; +import android.hardware.radio.HardwareConfig; +import android.hardware.radio.KeepaliveStatus; +import android.hardware.radio.LceDataInfo; +import android.hardware.radio.LinkCapacityEstimate; +import android.hardware.radio.NetworkScanResult; +import android.hardware.radio.PbReceivedStatus; +import android.hardware.radio.PcoDataInfo; +import android.hardware.radio.PhoneRestrictedState; +import android.hardware.radio.PhonebookRecordInfo; +import android.hardware.radio.PhysicalChannelConfig; +import android.hardware.radio.RadioCapability; +import android.hardware.radio.RadioIndicationType; +import android.hardware.radio.RadioState; +import android.hardware.radio.RadioTechnology; +import android.hardware.radio.SetupDataCallResult; +import android.hardware.radio.SignalStrength; +import android.hardware.radio.SimRefreshResult; +import android.hardware.radio.SrvccState; +import android.hardware.radio.StkCcUnsolSsResult; +import android.hardware.radio.SuppSvcNotification; +import android.hardware.radio.UssdModeType; + +/** + * Interface declaring unsolicited radio indications. + */ +@VintfStability +oneway interface IRadioIndication { + /** + * Indicate barring information for the user’s access category / access class and PLMN. + * + * <p>Provide information about the barring status of the cell for the user. The information + * provided should describe all barring configurations that are applicable to the current user, + * even if the user is not currently barred (due to conditional barring). This informs Android + * of likely future (statistical) barring for specific services. + * + * <p>This indication should be sent whenever the cell’s barring config changes for the current + * user, or if the user’s conditional barring status changes due to re-evaluation of the + * barring conditions. Barring status will likely change when the device camps for service, + * when PLMN selection is completed, when the device attempts to access a conditionally barred + * service, and when the System Information including barring info for a camped cell is updated. + */ + void barringInfoChanged(in RadioIndicationType type, in CellIdentity cellIdentity, + in BarringInfo[] barringInfos); + + /** + * Ring indication for an incoming call (eg, RING or CRING event). There must be at least one + * callRing() at the beginning of a call and sending multiple is optional. If the system + * property ro.telephony.call_ring.multiple is false then the upper layers must generate the + * multiple events internally. Otherwise the vendor code must generate multiple callRing() if + * ro.telephony.call_ring.multiple is true or if it is absent. + * The rate of these events is controlled by ro.telephony.call_ring.delay and has a default + * 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 + */ + void callRing(in RadioIndicationType type, in boolean isGsm, in CdmaSignalInfoRecord record); + + /** + * Indicates when call state has changed. Callee must invoke IRadio.getCurrentCalls(). Must be + * invoked on, for example, "RING", "BUSY", "NO CARRIER", and also call state transitions + * (DIALING->ALERTING ALERTING->ACTIVE). Redundent or extraneous invocations are tolerated. + * + * @param type Type of radio indication + */ + void callStateChanged(in RadioIndicationType type); + + /** + * Indicates that the modem requires the Carrier info for IMSI/IMPI encryption. This might + * happen when the modem restarts or for some reason it's cache has been invalidated. + * + * @param type Type of radio indication + */ + void carrierInfoForImsiEncryption(in RadioIndicationType info); + + /** + * Indicates when CDMA radio receives a call waiting indication. + * + * @param type Type of radio indication + * @param callWaitingRecord Cdma CallWaiting information + */ + void cdmaCallWaiting(in RadioIndicationType type, in CdmaCallWaiting callWaitingRecord); + + /** + * Indicates when CDMA radio receives one or more info recs. + * + * @param type Type of radio indication + * @param records New Cdma Information + */ + void cdmaInfoRec(in RadioIndicationType type, in CdmaInformationRecords records); + + /** + * Indicates when new CDMA SMS is received. Callee must subsequently confirm the receipt of the + * SMS with acknowledgeLastIncomingCdmaSms(). Server must not send cdmaNewSms() messages until + * acknowledgeLastIncomingCdmaSms() has been received. + * + * @param type Type of radio indication + * @param msg Cdma Sms Message + */ + void cdmaNewSms(in RadioIndicationType type, in CdmaSmsMessage msg); + + /** + * Indicates when CDMA radio receives an update of the progress of an OTASP/OTAPA call. + * + * @param type Type of radio indication + * @param status Cdma OTA provision status + */ + void cdmaOtaProvisionStatus(in RadioIndicationType type, in CdmaOtaProvisionStatus status); + + /** + * Indicates when PRL (preferred roaming list) changes. + * + * @param type Type of radio indication + * @param version PRL version after PRL changes + */ + void cdmaPrlChanged(in RadioIndicationType type, in int version); + + /** + * Indicates that SMS storage on the RUIM is full. Messages cannot be saved on the RUIM until + * space is freed. + * + * @param type Type of radio indication + */ + void cdmaRuimSmsStorageFull(in RadioIndicationType type); + + /** + * Indicates when CDMA subscription source changed. + * + * @param type Type of radio indication + * @param cdmaSource New Cdma SubscriptionSource + */ + void cdmaSubscriptionSourceChanged( + in RadioIndicationType type, in CdmaSubscriptionSource cdmaSource); + + /** + * Report all of the current cell information known to the radio. + * + * @param type Type of radio indication + * @param records Current cell information + */ + void cellInfoList(in RadioIndicationType type, in CellInfo[] records); + + /** + * Report the current list of emergency numbers. Each emergency number in the emergency number + * list contains a dialing number, zero or more service category(s), zero or more emergency + * uniform resource names, mobile country code, mobile network code, and source(s) that indicate + * where it comes from. + * Radio must report all the valid emergency numbers with known mobile country code, mobile + * network code, emergency service categories, and emergency uniform resource names from all + * available sources including network signaling, sim, modem/oem configuration, and default + * configuration (112 and 911 must be always available; additionally, 000, 08, 110, 999, 118 + * and 119 must be available when sim is not present). Radio shall not report emergency numbers + * that are invalid in the current locale. The reported emergency number list must not have + * duplicate EmergencyNumber entries. Please refer the documentation of EmergencyNumber to + * construct each emergency number to report. + * Radio must report the complete list of emergency numbers whenever the emergency numbers in + * the list are changed or whenever the client and the radio server are connected. + * + * Reference: 3gpp 22.101, Section 10 - Emergency Calls; + * 3gpp 24.008, Section 9.2.13.4 - Emergency Number List + * + * @param type Type of radio indication + * @param emergencyNumberList Current list of emergency numbers known to radio. + */ + void currentEmergencyNumberList( + in RadioIndicationType type, in EmergencyNumber[] emergencyNumberList); + + /** + * Indicates current link capacity estimate. This indication is sent whenever the reporting + * criteria, as set by IRadio.setLinkCapacityReportingCriteria, are met and the indication is + * not suppressed by IRadio.setIndicationFilter(). + * + * @param type Type of radio indication + * @param lce LinkCapacityEstimate + */ + void currentLinkCapacityEstimate(in RadioIndicationType type, in LinkCapacityEstimate lce); + + /** + * Indicates physical channel configurations. An empty configs list shall be returned when the + * radio is in idle mode (i.e. RRC idle). + * + * @param type Type of radio indication + * @param configs Vector of PhysicalChannelConfigs + */ + void currentPhysicalChannelConfigs( + in RadioIndicationType type, in PhysicalChannelConfig[] configs); + + /** + * Indicates current signal strength of the radio. + * + * @param type Type of radio indication + * @param signalStrength SignalStrength information + */ + void currentSignalStrength(in RadioIndicationType type, in SignalStrength signalStrength); + + /** + * Indicates data call contexts have changed. + * + * @param type Type of radio indication + * @param dcList Array of SetupDataCallResult identical to that returned by + * IRadio.getDataCallList(). It is the complete list of current data contexts including + * new contexts that have been activated. A data call is only removed from this list + * when any of the below conditions is matched: + * - The framework sends a IRadio.deactivateDataCall(). + * - The radio is powered off/on. + * - Unsolicited disconnect from either modem or network side. + */ + void dataCallListChanged(in RadioIndicationType type, in SetupDataCallResult[] dcList); + + /** + * Indicates that the radio system selection module has autonomously entered emergency + * callback mode. + * + * @param type Type of radio indication + */ + void enterEmergencyCallbackMode(in RadioIndicationType type); + + /** + * Indicates when Emergency Callback Mode Ends. Indicates that the radio system selection module + * has proactively exited emergency callback mode. + * + * @param type Type of radio indication + */ + void exitEmergencyCallbackMode(in RadioIndicationType type); + + /** + * Indicates when the hardware configuration associated with the RILd changes. + * + * @param type Type of radio indication + * @param configs Array of hardware configs + */ + void hardwareConfigChanged(in RadioIndicationType type, in HardwareConfig[] configs); + + /** + * Indicates when IMS registration state has changed. To get IMS registration state and IMS SMS + * format, callee needs to invoke getImsRegistrationState(). + * + * @param type Type of radio indication + */ + void imsNetworkStateChanged(in RadioIndicationType type); + + /** + * Indicates that nework doesn't have in-band information, need to play out-band tone. + * + * @param type Type of radio indication + * @param start true = start play ringback tone, false = stop playing ringback tone + */ + void indicateRingbackTone(in RadioIndicationType type, in boolean start); + + /** + * Indicates a status update for a particular Keepalive session. This must include a handle for + * a previous session and should include a status update regarding the state of a keepalive. + * Unsolicited keepalive status reports should never be PENDING as unsolicited status should + * only be sent when known. + * + * @param type Type of radio indication + * @param status Status information for a Keepalive session + */ + void keepaliveStatus(in RadioIndicationType type, in KeepaliveStatus status); + + /** + * Indicates when there is an incoming Link Capacity Estimate (LCE) info report. + * + * @param type Type of radio indication + * @param lce LceData information + * + * DEPRECATED in @1.2 and above, use IRadioIndication.currentLinkCapacityEstimate() instead. + */ + void lceData(in RadioIndicationType type, in LceDataInfo lce); + + /** + * Indicates when there is a modem reset. + * When modem restarts, one of the following radio state transitions must happen + * 1) RadioState:ON->RadioState:UNAVAILABLE->RadioState:ON or + * 2) RadioState:OFF->RadioState:UNAVAILABLE->RadioState:OFF + * This message must be sent either just before the Radio State changes to + * RadioState:UNAVAILABLE or just after but must never be sent after the Radio State changes + * from RadioState:UNAVAILABLE to RadioState:ON/RadioState:OFF again. It must NOT be sent after + * the Radio state changes to RadioState:ON/RadioState:OFF after the modem restart as that may + * be interpreted as a second modem reset by the framework. + * + * @param type Type of radio indication + * @param reason the reason for the reset. It may be a crash signature if the restart was due to + * a crash or some string such as "user-initiated restart" or "AT command initiated + * restart" that explains the cause of the modem restart + */ + void modemReset(in RadioIndicationType type, in String reason); + + /** + * Incremental network scan results. + * + * @param type Type of radio indication + * @param result the result of the network scan + */ + void networkScanResult(in RadioIndicationType type, in NetworkScanResult result); + + /** + * Indicates when voice or data network state changed. Callee must invoke + * IRadio.getVoiceRegistrationState(), IRadio.getDataRegistrationState(), and + * IRadio.getOperator() + * + * @param type Type of radio indication + */ + void networkStateChanged(in RadioIndicationType type); + + /** + * Indicates when new Broadcast SMS is received + * + * @param type Type of radio indication + * @param data If received from GSM network, "data" is byte array of 88 bytes which indicates + * each page of a CBS Message sent to the MS by the BTS as coded in 3GPP 23.041 Section + * 9.4.1.2. If received from UMTS network, "data" is byte array of 90 up to 1252 bytes + * which contain between 1 and 15 CBS Message pages sent as one packet to the MS by the + * BTS as coded in 3GPP 23.041 Section 9.4.2.2 + */ + void newBroadcastSms(in RadioIndicationType type, in byte[] data); + + /** + * Indicates when new SMS is received. Callee must subsequently confirm the receipt of the SMS + * with a acknowledgeLastIncomingGsmSms(). Server must not send newSms() or newSmsStatusReport() + * messages until an acknowledgeLastIncomingGsmSms() has been received. + * + * @param type Type of radio indication + * @param pdu PDU of SMS-DELIVER represented as byte array. + * The PDU starts with the SMSC address per TS 27.005 (+CMT:) + */ + void newSms(in RadioIndicationType type, in byte[] pdu); + + /** + * Indicates when new SMS has been stored on SIM card + * + * @param type Type of radio indication + * @param recordNumber Record number on the sim + */ + void newSmsOnSim(in RadioIndicationType type, in int recordNumber); + + /** + * Indicates when new SMS Status Report is received. Callee must subsequently confirm the + * receipt of the SMS with a acknowledgeLastIncomingGsmSms(). Server must not send newSms() or + * newSmsStatusReport() messages until an acknowledgeLastIncomingGsmSms() has been received + * + * @param type Type of radio indication + * @param pdu PDU of SMS-STATUS-REPORT represented as byte array. + * The PDU starts with the SMSC address per TS 27.005 (+CMT:) + */ + void newSmsStatusReport(in RadioIndicationType type, in byte[] pdu); + + /** + * Indicates when radio has received a NITZ time message. + * + * @param type Type of radio indication + * @param nitzTime NITZ time string in the form "yy/mm/dd,hh:mm:ss(+/-)tz,dt" + * @param receivedTime milliseconds since boot that the NITZ time was received + */ + void nitzTimeReceived(in RadioIndicationType type, in String nitzTime, in long receivedTime); + + /** + * Indicates when Supplementary service(SS) response is received when DIAL/USSD/SS is changed to + * SS by call control. + * + * @param type Type of radio indication + */ + void onSupplementaryServiceIndication(in RadioIndicationType type, in StkCcUnsolSsResult ss); + + /** + * Indicates when a new USSD message is received. The USSD session is assumed to persist if the + * type code is REQUEST, otherwise the current session (if any) is assumed to have terminated. + * + * @param type Type of radio indication + * @param modeType USSD type code + * @param msg Message string in UTF-8, if applicable + */ + void onUssd(in RadioIndicationType type, in UssdModeType modeType, in String msg); + + /** + * Indicates when there is new Carrier PCO data received for a data call. Ideally only new data + * must be forwarded, though this is not required. Multiple boxes of carrier PCO data for a + * given call must result in a series of pcoData() calls. + * + * @param type Type of radio indication + * @param pco New PcoData + */ + void pcoData(in RadioIndicationType type, in PcoDataInfo pco); + + /** + * Sent when setRadioCapability() completes. Returns the phone radio capability exactly as + * getRadioCapability() and must be the same set as sent by setRadioCapability(). + * + * @param type Type of radio indication + * @param rc Current radio capability + */ + void radioCapabilityIndication(in RadioIndicationType type, in RadioCapability rc); + + /** + * Indicates when radio state changes. + * + * @param type Type of radio indication + * @param radioState Current radio state + */ + void radioStateChanged(in RadioIndicationType type, in RadioState radioState); + + /** + * Report that Registration or a Location/Routing/Tracking Area update has failed. + * + * <p>Indicate whenever a registration procedure, including a location, routing, or tracking + * area update fails. This includes procedures that do not necessarily result in a change of + * the modem's registration status. If the modem's registration status changes, that is + * reflected in the onNetworkStateChanged() and subsequent get{Voice/Data}RegistrationState(). + * + * @param cellIdentity the CellIdentity, which must include the globally unique identifier for + * the cell (for example, all components of the CGI or ECGI). + * @param chosenPlmn a 5 or 6 digit alphanumeric PLMN (MCC|MNC) among those broadcast by the + * cell that was chosen for the failed registration attempt. + * @param domain Domain::CS, Domain::PS, or both in case of a combined procedure. + * @param causeCode the primary failure cause code of the procedure. + * For GSM/UMTS (MM), values are in TS 24.008 Sec 10.5.95 + * For GSM/UMTS (GMM), values are in TS 24.008 Sec 10.5.147 + * For LTE (EMM), cause codes are TS 24.301 Sec 9.9.3.9 + * For NR (5GMM), cause codes are TS 24.501 Sec 9.11.3.2 + * MAX_INT if this value is unused. + * @param additionalCauseCode the cause code of any secondary/combined procedure if appropriate. + * For UMTS, if a combined attach succeeds for PS only, then the GMM cause code shall be + * included as an additionalCauseCode. + * For LTE (ESM), cause codes are in TS 24.301 9.9.4.4 + * MAX_INT if this value is unused. + */ + void registrationFailed(in RadioIndicationType type, in CellIdentity cellIdentity, + in String chosenPlmn, in Domain domain, in int causeCode, in int additionalCauseCode); + + /** + * Indicates that framework/application must reset the uplink mute state. + * + * @param type Type of radio indication + */ + void resendIncallMute(in RadioIndicationType type); + + /** + * Indicates a restricted state change (eg, for Domain Specific Access Control). + * Radio must send this msg after radio off/on cycle no matter it is changed or not. + * + * @param type Type of radio indication + * @param state Bitmask of restricted state as defined by PhoneRestrictedState + */ + void restrictedStateChanged(in RadioIndicationType type, in PhoneRestrictedState state); + + /** + * Indicates the ril connects and returns the version + * + * @param type Type of radio indication + */ + void rilConnected(in RadioIndicationType type); + + /** + * Indicates whether SIM phonebook is changed. This indication is sent whenever the SIM + * phonebook is changed, including SIM is inserted or removed and updated by + * IRadio.updateSimPhonebookRecords. + * + * @param type Type of radio indication + */ + void simPhonebookChanged(in RadioIndicationType type); + + /** + * Indicates the content of all the used records in the SIM phonebook. This indication is + * associated with the API getSimPhonebookRecords and might be received more than once that is + * replying on the record count. + * + * @param type Type of radio indication + * @param status Status of PbReceivedStatus + * @param records Vector of PhonebookRecordInfo + */ + void simPhonebookRecordsReceived(in RadioIndicationType type, in PbReceivedStatus status, + in PhonebookRecordInfo[] records); + + /** + * Indicates that file(s) on the SIM have been updated, or the SIM has been reinitialized. + * If the SIM state changes as a result of the SIM refresh (eg, SIM_READY -> + * SIM_LOCKED_OR_ABSENT), simStatusChanged() must be sent. + * + * @param type Type of radio indication + * @param refreshResult Result of sim refresh + */ + void simRefresh(in RadioIndicationType type, in SimRefreshResult refreshResult); + + /** + * Indicates that SMS storage on the SIM is full. Sent when the network attempts to deliver a + * new SMS message. Messages cannot be saved on the SIM until space is freed. In particular, + * incoming Class 2 messages must not be stored. + * + * @param type Type of radio indication + */ + void simSmsStorageFull(in RadioIndicationType type); + + /** + * Indicates that SIM state changes. Callee must invoke getIccCardStatus(). + * + * @param type Type of radio indication + */ + void simStatusChanged(in RadioIndicationType type); + + /** + * Indicates when Single Radio Voice Call Continuity (SRVCC) progress state has changed. + * + * @param type Type of radio indication + * @param state New Srvcc State + */ + void srvccStateNotify(in RadioIndicationType type, in SrvccState state); + + /** + * Indicates when there is an ALPHA from UICC during Call Control. + * + * @param type Type of radio indication + * @param alpha ALPHA string from UICC in UTF-8 format + */ + void stkCallControlAlphaNotify(in RadioIndicationType type, in String alpha); + + /** + * Indicates when SIM wants application to setup a voice call. + * + * @param type Type of radio indication + * @param timeout Timeout value in millisec for setting up voice call + */ + void stkCallSetup(in RadioIndicationType type, in long timeout); + + /** + * Indicates when SIM notifies applcations some event happens. + * + * @param type Type of radio indication + * @param cmd SAT/USAT commands or responses sent by ME to SIM or commands handled by ME, + * represented as byte array starting with first byte of response data for command tag. + * Refer to TS 102.223 section 9.4 for command types + */ + void stkEventNotify(in RadioIndicationType type, in String cmd); + + /** + * Indicates when SIM issue a STK proactive command to applications + * + * @param type Type of radio indication + * @param cmd SAT/USAT proactive represented as byte array starting with command tag. + * Refer to TS 102.223 section 9.4 for command types + */ + void stkProactiveCommand(in RadioIndicationType type, in String cmd); + + /** + * Indicates when STK session is terminated by SIM. + * + * @param type Type of radio indication + */ + void stkSessionEnd(in RadioIndicationType type); + + /** + * Indicated when there is a change in subscription status. + * This event must be sent in the following scenarios + * - subscription readiness at modem, which was selected by telephony layer + * - when subscription is deactivated by modem due to UICC card removal + * - when network invalidates the subscription i.e. attach reject due to authentication reject + * + * @param type Type of radio indication + * @param activate false for subscription deactivated, true for subscription activated + */ + void subscriptionStatusChanged(in RadioIndicationType type, in boolean activate); + + /** + * Reports supplementary service related notification from the network. + * + * @param type Type of radio indication + * @param suppSvc SuppSvcNotification as defined in types.hal + */ + void suppSvcNotify(in RadioIndicationType type, in SuppSvcNotification suppSvc); + + /** + * Report change of whether uiccApplications are enabled, or disabled. + * + * @param type Type of radio indication + * @param enabled whether uiccApplications are enabled, or disabled + */ + void uiccApplicationsEnablementChanged(in RadioIndicationType type, in boolean enabled); + + /** + * The modem can explicitly set SetupDataCallResult::suggestedRetryTime after a failure in + * IRadio.SetupDataCall. During that time, no new calls are allowed to IRadio.SetupDataCall that + * use the same APN. When IRadioIndication.unthrottleApn is sent, AOSP will no longer throttle + * calls to IRadio.SetupDataCall for the given APN. + * + * @param type Type of radio indication + * @param apn Apn to unthrottle + */ + void unthrottleApn(in RadioIndicationType type, in String apn); + + /** + * Indicates that voice technology has changed. Responds with new rat. + * + * @param type Type of radio indication + * @param rat Current new voice rat + */ + void voiceRadioTechChanged(in RadioIndicationType type, in RadioTechnology rat); +} diff --git a/radio/aidl/android/hardware/radio/IRadioResponse.aidl b/radio/aidl/android/hardware/radio/IRadioResponse.aidl new file mode 100644 index 0000000000..4447bb121d --- /dev/null +++ b/radio/aidl/android/hardware/radio/IRadioResponse.aidl @@ -0,0 +1,3039 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.ActivityStatsInfo; +import android.hardware.radio.BarringInfo; +import android.hardware.radio.Call; +import android.hardware.radio.CallForwardInfo; +import android.hardware.radio.CardStatus; +import android.hardware.radio.CarrierRestrictions; +import android.hardware.radio.CdmaBroadcastSmsConfigInfo; +import android.hardware.radio.CdmaRoamingType; +import android.hardware.radio.CdmaSubscriptionSource; +import android.hardware.radio.CellIdentity; +import android.hardware.radio.CellInfo; +import android.hardware.radio.ClipStatus; +import android.hardware.radio.DataRegStateResult; +import android.hardware.radio.GsmBroadcastSmsConfigInfo; +import android.hardware.radio.HardwareConfig; +import android.hardware.radio.IccIoResult; +import android.hardware.radio.KeepaliveStatus; +import android.hardware.radio.LastCallFailCauseInfo; +import android.hardware.radio.LceDataInfo; +import android.hardware.radio.LceStatusInfo; +import android.hardware.radio.NeighboringCell; +import android.hardware.radio.OperatorInfo; +import android.hardware.radio.PersoSubstate; +import android.hardware.radio.PhonebookCapacity; +import android.hardware.radio.PreferredNetworkType; +import android.hardware.radio.RadioAccessFamily; +import android.hardware.radio.RadioAccessSpecifier; +import android.hardware.radio.RadioBandMode; +import android.hardware.radio.RadioCapability; +import android.hardware.radio.RadioResponseInfo; +import android.hardware.radio.RadioTechnology; +import android.hardware.radio.RadioTechnologyFamily; +import android.hardware.radio.RegStateResult; +import android.hardware.radio.SendSmsResult; +import android.hardware.radio.SetupDataCallResult; +import android.hardware.radio.SignalStrength; +import android.hardware.radio.SimLockMultiSimPolicy; +import android.hardware.radio.SlicingConfig; +import android.hardware.radio.TtyMode; +import android.hardware.radio.VoiceRegStateResult; + +/** + * Interface declaring response functions to solicited radio requests. + */ +@VintfStability +oneway interface IRadioResponse { + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_STATE + * RadioError:NO_MEMORY + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:INVALID_CALL_ID + * RadioError:INVALID_ARGUMENTS + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void acceptCallResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:REQUEST_NOT_SUPPORTED + */ + void acknowledgeIncomingGsmSmsWithPduResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_SMS_TO_ACK + * RadioError:INVALID_STATE + * RadioError:NO_MEMORY + * RadioError:REQUEST_RATE_LIMITED + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:NETWORK_NOT_READY + * RadioError:INVALID_MODEM_STATE + * RadioError:INTERNAL_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void acknowledgeLastIncomingCdmaSmsResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:REQUEST_NOT_SUPPORTED + */ + void acknowledgeLastIncomingGsmSmsResponse(in RadioResponseInfo info); + + /** + * Acknowledge the receipt of radio request sent to the vendor. This must be sent only for + * radio request which take long time to respond. For more details, refer + * https://source.android.com/devices/tech/connect/ril.html + * + * @param serial Serial no. of the request whose acknowledgement is sent. + */ + void acknowledgeRequest(in int serial); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param id The allocated id. On an error, this is set to 0. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:NO_RESOURCES- Indicates that no pdu session ids are available + * RadioError:REQUEST_NOT_SUPPORTED + */ + void allocatePduSessionIdResponse(in RadioResponseInfo info, in int id); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param enabled whether Uicc applications are enabled. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:SIM_ABSENT + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + */ + void areUiccApplicationsEnabledResponse(in RadioResponseInfo info, in boolean enabled); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param dcResponse Attributes of data call + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:NO_RESOURCES + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_CALL_ID + */ + void cancelHandoverResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SIM_BUSY + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:INVALID_STATE + * RadioError:INVALID_ARGUMENTS + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_MODEM_STATE + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void cancelPendingUssdResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param remainingRetries Number of retries remaining, must be equal to -1 if unknown. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE (radio resetting) + * RadioError:PASSWORD_INCORRECT (old PIN2 is invalid) + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_ARGUMENTS + * RadioError:INVALID_SIM_STATE + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:SIM_PUK2 + */ + void changeIccPin2ForAppResponse(in RadioResponseInfo info, in int remainingRetries); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param remainingRetries Number of retries remaining, must be equal to -1 if unknown. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE (radio resetting) + * RadioError:PASSWORD_INCORRECT + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_ARGUMENTS + * RadioError:INVALID_SIM_STATE + * RadioError:REQUEST_NOT_SUPPORTED + */ + void changeIccPinForAppResponse(in RadioResponseInfo info, in int remainingRetries); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE (radio resetting) + * RadioError:NO_MEMORY + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:INVALID_STATE + * RadioError:INVALID_CALL_ID + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:INVALID_ARGUMENTS + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_MODEM_STATE + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void conferenceResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:REQUEST_NOT_SUPPORTED may be returned when HAL 1.2 or higher is supported. + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_CALL_ID + * RadioError:INVALID_STATE + * RadioError:INVALID_ARGUMENTS + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:SIM_ABSENT + */ + void deactivateDataCallResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:NO_SUCH_ENTRY + * RadioError:INTERNAL_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_MODEM_STATE + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:SIM_ABSENT + */ + void deleteSmsOnRuimResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SIM_FULL + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:NO_SUCH_ENTRY + * RadioError:INTERNAL_ERR + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_MODEM_STATE + * RadioError:SIM_ABSENT + */ + void deleteSmsOnSimResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE (radio resetting) + * RadioError:DIAL_MODIFIED_TO_USSD + * RadioError:DIAL_MODIFIED_TO_SS + * RadioError:DIAL_MODIFIED_TO_DIAL + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:INVALID_STATE + * RadioError:NO_RESOURCES + * RadioError:INTERNAL_ERR + * RadioError:FDN_CHECK_FAILURE + * RadioError:MODEM_ERR + * RadioError:NO_SUBSCRIPTION + * RadioError:NO_NETWORK_FOUND + * RadioError:INVALID_CALL_ID + * RadioError:DEVICE_IN_USE + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:ABORTED + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_MODEM_STATE + * RadioError:CANCELLED + */ + void dialResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE (radio resetting) + * RadioError:DIAL_MODIFIED_TO_USSD + * RadioError:DIAL_MODIFIED_TO_SS + * RadioError:DIAL_MODIFIED_TO_DIAL + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_RESOURCES + * RadioError:INTERNAL_ERR + * RadioError:FDN_CHECK_FAILURE + * RadioError:MODEM_ERR + * RadioError:NO_SUBSCRIPTION + * RadioError:NO_NETWORK_FOUND + * RadioError:INVALID_CALL_ID + * RadioError:DEVICE_IN_USE + * RadioError:ABORTED + * RadioError:INVALID_MODEM_STATE + */ + void emergencyDialResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:MODEM_ERR + * RadioError:INVALID_STATE: this is for the case that the API is called in a single-sim + * mode, or when there is only one modem available, as this API should only + * be called in multi sim status. + */ + void enableModemResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:SIM_ABSENT + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:BUSY + */ + void enableUiccApplicationsResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:OPERATION_NO_ALLOWED + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:SYSTEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:MODEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:SIM_ABSENT + */ + void exitEmergencyCallbackModeResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:INVALID_STATE + * RadioError:NO_RESOURCES + * RadioError:NO_MEMORY + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:INVALID_CALL_ID + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_MODEM_STATE + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void explicitCallTransferResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param carriers Carrier restriction information. + * @param multiSimPolicy Policy used for devices with multiple SIM cards. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:REQUEST_NOT_SUPPORTED + */ + void getAllowedCarriersResponse(in RadioResponseInfo info, in CarrierRestrictions carriers, + in SimLockMultiSimPolicy multiSimPolicy); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param networkTypeBitmap a 32-bit bitmap of RadioAccessFamily. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:MODE_NOT_SUPPORTED + * RadioError:INTERNAL_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:MODEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + */ + void getAllowedNetworkTypesBitmapResponse( + in RadioResponseInfo info, in RadioAccessFamily networkTypeBitmap); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param bandModes List of RadioBandMode listing supported modes + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void getAvailableBandModesResponse(in RadioResponseInfo info, in RadioBandMode[] bandModes); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param networkInfos List of network operator information as OperatorInfos defined in + * types.hal + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:ABORTED + * RadioError:DEVICE_IN_USE + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:MODEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:CANCELLED + * RadioError:NO_RESOURCES + * RadioError:INTERNAL_ERR + */ + void getAvailableNetworksResponse(in RadioResponseInfo info, in OperatorInfo[] networkInfos); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param cellIdentity CellIdentity for the barring infos. + * @param barringInfos a vector of barring info for all barring service types + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:MODEM_ERR + */ + void getBarringInfoResponse( + in RadioResponseInfo info, in CellIdentity cellIdentity, in BarringInfo[] barringInfos); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param version string containing version string for log reporting + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:EMPTY_RECORD + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:NOT_PROVISIONED + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void getBasebandVersionResponse(in RadioResponseInfo info, in String version); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param mdn MDN if CDMA subscription is available + * @param hSid is a comma separated list of H_SID (Home SID) if CDMA subscription is available, + * in decimal format + * @param hNid is a comma separated list of H_NID (Home NID) if CDMA subscription is available, + * in decimal format + * @param min MIN (10 digits, MIN2+MIN1) if CDMA subscription is available + * @param prl PRL version if CDMA subscription is available + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SUBSCRIPTION_NOT_AVAILABLE + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:MODEM_ERR + * RadioError:NOT_PROVISIONED + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:SIM_ABSENT + */ + void getCDMASubscriptionResponse(in RadioResponseInfo info, in String mdn, in String hSid, + in String hNid, in String min, in String prl); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param callForwardInfos points to a vector of CallForwardInfo, one for each distinct + * registered phone number. For example, if data is forwarded to +18005551212 and voice + * is forwarded to +18005559999, then two separate CallForwardInfo's must be returned. + * However, if both data and voice are forwarded to +18005551212, then a single + * CallForwardInfo must be returned with the service class set to "data + voice = 3". + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SS_MODIFIED_TO_DIAL + * RadioError:SS_MODIFIED_TO_USSD + * RadioError:SS_MODIFIED_TO_SS + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:FDN_CHECK_FAILURE + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:SYSTEM_ERR + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void getCallForwardStatusResponse( + in RadioResponseInfo info, in CallForwardInfo[] callForwardInfos); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param enable If current call waiting state is disabled, enable = false else true + * @param serviceClass If enable, then callWaitingResp[1] must follow, with the TS 27.007 + * service class bit vector of services for which call waiting is enabled. For example, + * if callWaitingResp[0] is 1 and callWaitingResp[1] is 3, then call waiting is enabled + * for data and voice and disabled for everything else. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SS_MODIFIED_TO_DIAL + * RadioError:SS_MODIFIED_TO_USSD + * RadioError:SS_MODIFIED_TO_SS + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:FDN_CHECK_FAILURE + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void getCallWaitingResponse(in RadioResponseInfo info, in boolean enable, in int serviceClass); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param configs Vector of CDMA Broadcast SMS configs. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:INVALID_STATE + * RadioError:NO_MEMORY + * RadioError:REQUEST_RATE_LIMITED + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:NO_RESOURCES + * RadioError:INTERNAL_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_MODEM_STATE + */ + void getCdmaBroadcastConfigResponse( + in RadioResponseInfo info, in CdmaBroadcastSmsConfigInfo[] configs); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param type CdmaRoamingType defined in types.hal + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:SIM_ABSENT + */ + void getCdmaRoamingPreferenceResponse(in RadioResponseInfo info, in CdmaRoamingType type); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param source CDMA subscription source + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SUBSCRIPTION_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:SIM_ABSENT + */ + void getCdmaSubscriptionSourceResponse( + in RadioResponseInfo info, in CdmaSubscriptionSource source); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param cellInfo List of current cell information known to radio + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + */ + void getCellInfoListResponse(in RadioResponseInfo info, in CellInfo[] cellInfo); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param status indicates CLIP status + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:FDN_CHECK_FAILURE + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void getClipResponse(in RadioResponseInfo info, in ClipStatus status); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param n is "n" parameter from TS 27.007 7.7 + * @param m is "m" parameter from TS 27.007 7.7 + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SS_MODIFIED_TO_DIAL + * RadioError:SS_MODIFIED_TO_USSD + * RadioError:SS_MODIFIED_TO_SS + * RadioError:NO_MEMORY + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:FDN_CHECK_FAILURE + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void getClirResponse(in RadioResponseInfo info, in int n, in int m); + + /** + * @param info Response info struct containing respontype, serial no. and error + * @param calls Current call list + * + * Valid errors returned: + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void getCurrentCallsResponse(in RadioResponseInfo info, in Call[] calls); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param dcResponse List of SetupDataCallResult as defined in types.hal + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:SIM_ABSENT + */ + void getDataCallListResponse(in RadioResponseInfo info, in SetupDataCallResult[] dcResponse); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param dataRegResponse Current Data registration response as defined by RegStateResult in + * types.hal + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:NOT_PROVISIONED + */ + void getDataRegistrationStateResponse( + in RadioResponseInfo info, in RegStateResult dataRegResponse); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param imei IMEI if GSM subscription is available + * @param imeisv IMEISV if GSM subscription is available + * @param esn ESN if CDMA subscription is available + * @param meid MEID if CDMA subscription is available + * + * If a empty string value is returned for any of the device id, it means that there was error + * accessing the device. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:MODEM_ERR + * RadioError:NOT_PROVISIONED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:REQUEST_NOT_SUPPORTED + */ + void getDeviceIdentityResponse(in RadioResponseInfo info, in String imei, in String imeisv, + in String esn, in String meid); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param response 0 is the TS 27.007 service class bit vector of services for which the + * specified barring facility is active. "0" means "disabled for all" + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SS_MODIFIED_TO_DIAL + * RadioError:SS_MODIFIED_TO_USSD + * RadioError:SS_MODIFIED_TO_SS + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:FDN_CHECK_FAILURE + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void getFacilityLockForAppResponse(in RadioResponseInfo info, in int response); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param configs Vector of GSM/WCDMA Cell broadcast configs + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:INVALID_STATE + * RadioError:NO_MEMORY + * RadioError:REQUEST_RATE_LIMITED + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:NO_RESOURCES + * RadioError:INTERNAL_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_MODEM_STATE + */ + void getGsmBroadcastConfigResponse( + in RadioResponseInfo info, in GsmBroadcastSmsConfigInfo[] configs); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param config Array of HardwareConfig of the radio. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:REQUEST_NOT_SUPPORTED + */ + void getHardwareConfigResponse(in RadioResponseInfo info, in HardwareConfig[] config); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param imsi String containing the IMSI + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE (radio resetting) + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_SIM_STATE + * RadioError:SIM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + */ + void getIMSIForAppResponse(in RadioResponseInfo info, in String imsi); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param cardStatus ICC card status as defined by CardStatus in types.hal + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:NO_RESOURCES + * RadioError:REQUEST_NOT_SUPPORTED + */ + void getIccCardStatusResponse(in RadioResponseInfo info, in CardStatus cardStatus); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param isRegistered false = not registered, true = registered + * @param ratFamily RadioTechnologyFamily as defined in types.hal. This value is valid only if + * isRegistered is true. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_MODEM_STATE + * RadioError:REQUEST_NOT_SUPPORTED + */ + void getImsRegistrationStateResponse( + in RadioResponseInfo info, in boolean isRegistered, in RadioTechnologyFamily ratFamily); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param failCauseInfo Contains LastCallFailCause and vendor cause code. + * + * The vendor cause code must be used for debugging purpose only. The implementation must return + * one of the values of LastCallFailCause as mentioned below. + * GSM failure reasons codes for the cause codes defined in TS 24.008 Annex H where possible. + * CDMA failure reasons codes for the possible call failure scenarios described in the + * "CDMA IS-2000 Release A (C.S0005-A v6.0)" standard. + * Any of the following reason codes if the call is failed or dropped due to reason mentioned + * with in the braces. + * LastCallFailCause:RADIO_OFF (Radio is OFF) + * LastCallFailCause:OUT_OF_SERVICE (No cell coverage) + * LastCallFailCause:NO_VALID_SIM (No valid SIM) + * LastCallFailCause:RADIO_INTERNAL_ERROR (Modem hit unexpected error scenario) + * LastCallFailCause:NETWORK_RESP_TIMEOUT (No response from network) + * LastCallFailCause:NETWORK_REJECT (Explicit network reject) + * LastCallFailCause:RADIO_ACCESS_FAILURE (RRC connection failure. Eg.RACH) + * LastCallFailCause:RADIO_LINK_FAILURE (Radio Link Failure) + * LastCallFailCause:RADIO_LINK_LOST (Radio link lost due to poor coverage) + * LastCallFailCause:RADIO_UPLINK_FAILURE (Radio uplink failure) + * LastCallFailCause:RADIO_SETUP_FAILURE (RRC connection setup failure) + * LastCallFailCause:RADIO_RELEASE_NORMAL (RRC connection release, normal) + * LastCallFailCause:RADIO_RELEASE_ABNORMAL (RRC connection release, abnormal) + * LastCallFailCause:ACCESS_CLASS_BLOCKED (Access class barring) + * LastCallFailCause:NETWORK_DETACH (Explicit network detach) + * OEM causes (LastCallFailCause:OEM_CAUSE_XX) must be used for debug purpose only + * + * If the implementation does not have access to the exact cause codes, then it must return one + * of the values listed in LastCallFailCause, as the UI layer needs to distinguish these cases + * for tone generation or error notification. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:NO_MEMORY + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SYSTEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:INTERNAL_ERR + * RadioError:MODEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void getLastCallFailCauseResponse( + in RadioResponseInfo info, in LastCallFailCauseInfo failCauseinfo); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param activityInfo modem activity information + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:NOT_PROVISIONED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:REQUEST_NOT_SUPPORTED + */ + void getModemActivityInfoResponse(in RadioResponseInfo info, in ActivityStatsInfo activityInfo); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:MODEM_ERR + */ + void getModemStackStatusResponse(in RadioResponseInfo info, in boolean isEnabled); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param enable true for "mute enabled" and false for "mute disabled" + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SS_MODIFIED_TO_DIAL + * RadioError:SS_MODIFIED_TO_USSD + * RadioError:SS_MODIFIED_TO_SS + * RadioError:NO_MEMORY + * RadioError:REQUEST_RATE_LIMITED + * RadioError:INVALID_ARGUMENTS + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void getMuteResponse(in RadioResponseInfo info, in boolean enable); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param cells Vector of neighboring radio cell + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:NO_NETWORK_FOUND + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void getNeighboringCidsResponse(in RadioResponseInfo info, in NeighboringCell[] cells); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param selection false for automatic selection, true for manual selection + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:MODEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void getNetworkSelectionModeResponse(in RadioResponseInfo info, in boolean manual); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param longName is long alpha ONS or EONS or empty string if unregistered + * @param shortName is short alpha ONS or EONS or empty string if unregistered + * @param numeric is 5 or 6 digit numeric code (MCC + MNC) or empty string if unregistered + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void getOperatorResponse( + in RadioResponseInfo info, in String longName, in String shortName, in String numeric); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param networkTypeBitmap a 32-bit bitmap of RadioAccessFamily. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:MODEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + */ + void getPreferredNetworkTypeBitmapResponse( + in RadioResponseInfo info, in RadioAccessFamily networkTypeBitmap); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param nwType RadioPreferredNetworkType defined in types.hal + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:MODEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void getPreferredNetworkTypeResponse(in RadioResponseInfo info, in PreferredNetworkType nwType); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param enable false for Standard Privacy Mode (Public Long Code Mask) + * true for Enhanced Privacy Mode (Private Long Code Mask) + * + * Valid errors: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void getPreferredVoicePrivacyResponse(in RadioResponseInfo info, in boolean enable); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param rc Radio capability as defined by RadioCapability in types.hal + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:INVALID_STATE + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void getRadioCapabilityResponse(in RadioResponseInfo info, in RadioCapability rc); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param signalStrength Current signal strength + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + */ + void getSignalStrengthResponse(in RadioResponseInfo info, in SignalStrength signalStrength); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param capacity Response capacity enum indicating response processing status + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_ARGUMENTS + * RadioError:INVALID_SIM_STATE + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * REQUEST_NOT_SUPPORTED may only be returned on devices that don't support this API, + * indicated by the HAL capability CAPABILITY_SIM_PHONEBOOK_IN_MODEM. + */ + void getSimPhonebookCapacityResponse(in RadioResponseInfo info, in PhonebookCapacity capacity); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_ARGUMENTS + * RadioError:INVALID_SIM_STATE + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * REQUEST_NOT_SUPPORTED may only be returned on devices that don't support this API, + * indicated by the HAL capability CAPABILITY_SIM_PHONEBOOK_IN_MODEM. + */ + void getSimPhonebookRecordsResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param slicingConfig Current slicing configuration + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:MODEM_ERR + */ + void getSlicingConfigResponse(in RadioResponseInfo info, in SlicingConfig slicingConfig); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param smsc Short Message Service Center address on the device + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_RATE_LIMITED + * RadioError:MODEM_ERR + * RadioError:INVALID_MODEM_STATE + * RadioError:NOT_PROVISIONED + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:SIM_ABSENT + */ + void getSmscAddressResponse(in RadioResponseInfo info, in String smsc); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param specifiers List of RadioAccessSpecifiers that are scanned. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:INVALID_ARGUMENTS + */ + void getSystemSelectionChannelsResponse( + in RadioResponseInfo info, in RadioAccessSpecifier[] specifiers); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param mode TtyMode + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void getTTYModeResponse(in RadioResponseInfo info, in TtyMode mode); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param rat Current voice RAT + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:REQUEST_NOT_SUPPORTED + */ + void getVoiceRadioTechnologyResponse(in RadioResponseInfo info, in RadioTechnology rat); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param voiceRegResponse Current Voice registration response as defined by RegStateResult + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + */ + void getVoiceRegistrationStateResponse( + in RadioResponseInfo info, in RegStateResult voiceRegResponse); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:SIM_ABSENT + */ + void handleStkCallSetupRequestFromSimResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE (radio resetting) + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:INVALID_STATE + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:INVALID_CALL_ID + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:REQUEST_NOT_SUPPORTED + */ + void hangupConnectionResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE (radio resetting) + * RadioError:INVALID_STATE + * RadioError:NO_MEMORY + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:INVALID_CALL_ID + * RadioError:NO_RESOURCES + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:INVALID_ARGUMENTS + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void hangupForegroundResumeBackgroundResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE (radio resetting) + * RadioError:INVALID_STATE + * RadioError:NO_MEMORY + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:INVALID_CALL_ID + * RadioError:NO_RESOURCES + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:INVALID_ARGUMENTS + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:CANCELLED + */ + void hangupWaitingOrBackgroundResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:REQUEST_NOT_SUPPORTED + */ + void iccCloseLogicalChannelResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param iccIo ICC io operation response as defined by IccIoResult in types.hal + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SIM_PIN2 + * RadioError:SIM_PUK2 + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_SIM_STATE + * RadioError:SIM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + */ + void iccIOForAppResponse(in RadioResponseInfo info, in IccIoResult iccIo); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param channelId session id of the logical channel. + * @param selectResponse Contains the select response for the open channel command with one + * byte per integer + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:MISSING_RESOURCE + * RadioError:NO_SUCH_ELEMENT + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:SIM_ERR + * RadioError:INVALID_SIM_STATE + * RadioError:MISSING_RESOURCE + * RadioError:REQUEST_NOT_SUPPORTED + */ + void iccOpenLogicalChannelResponse( + in RadioResponseInfo info, in int channelId, in byte[] selectResponse); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param result IccIoResult as defined in types.hal + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:REQUEST_NOT_SUPPORTED + */ + void iccTransmitApduBasicChannelResponse(in RadioResponseInfo info, in IccIoResult result); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param result IccIoResult as defined in types.hal + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:REQUEST_NOT_SUPPORTED + */ + void iccTransmitApduLogicalChannelResponse(in RadioResponseInfo info, in IccIoResult result); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param isEnabled Indicates whether NR dual connectivity is enabled or not, True if enabled + * else false. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:REQUEST_NOT_SUPPORTED + */ + void isNrDualConnectivityEnabledResponse(in RadioResponseInfo info, in boolean isEnabled); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param result string containing the contents of the NV item + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:REQUEST_NOT_SUPPORTED + */ + void nvReadItemResponse(in RadioResponseInfo info, in String result); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:REQUEST_NOT_SUPPORTED + */ + void nvResetConfigResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:REQUEST_NOT_SUPPORTED + */ + void nvWriteCdmaPrlResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:REQUEST_NOT_SUPPORTED + */ + void nvWriteItemResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param lceInfo LceDataInfo indicating LCE data + * + * Valid errors returned: + * RadioError:REQUEST_NOT_SUPPORTED may be returned when HAL 1.2 or higher is supported. + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:LCE_NOT_SUPPORTED + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:SIM_ABSENT + */ + void pullLceDataResponse(in RadioResponseInfo info, in LceDataInfo lceInfo); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE (radio resetting) + * RadioError:INVALID_STATE + * RadioError:NO_RESOURCES + * RadioError:NO_MEMORY + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:INVALID_CALL_ID + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:INVALID_ARGUMENTS + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_MODEM_STATE + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void rejectCallResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:NO_RESOURCES + * RadioError:REQUEST_NOT_SUPPORTED + */ + void releasePduSessionIdResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_RATE_LIMITED + * RadioError:MODEM_ERR + * RadioError:INVALID_STATE + * RadioError:INTERNAL_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:SIM_ABSENT + */ + void reportSmsMemoryStatusResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:REQUEST_NOT_SUPPORTED + */ + void reportStkServiceIsRunningResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param result IccIoResult as defined in types.hal + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_MODEM_STATE + * RadioError:SIM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:REQUEST_NOT_SUPPORTED + */ + void requestIccSimAuthenticationResponse(in RadioResponseInfo info, in IccIoResult result); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param response response string of the challenge/response algo for ISIM auth in base64 format + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_MODEM_STATE + * RadioError:INVALID_ARGUMENTS + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:SIM_ABSENT + */ + void requestIsimAuthenticationResponse(in RadioResponseInfo info, in String response); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void requestShutdownResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:INVALID_CALL_ID + * RadioError:INVALID_STATE + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_MODEM_STATE + * RadioError:OPERATION_NOT_ALLOWED + */ + void sendBurstDtmfResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:INVALID_CALL_ID + * RadioError:INVALID_STATE + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_MODEM_STATE + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:OPERATION_NOT_ALLOWED + */ + void sendCDMAFeatureCodeResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param sms Response to sms sent as defined by SendSmsResult in types.hal + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SMS_SEND_FAIL_RETRY + * RadioError:NETWORK_REJECT + * RadioError:INVALID_STATE + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:REQUEST_RATE_LIMITED + * RadioError:INVALID_SMS_FORMAT + * RadioError:SYSTEM_ERR + * RadioError:FDN_CHECK_FAILURE + * RadioError:ENCODING_ERR + * RadioError:INVALID_SMSC_ADDRESS + * RadioError:MODEM_ERR + * RadioError:NETWORK_ERR + * RadioError:INTERNAL_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_MODEM_STATE + * RadioError:NETWORK_NOT_READY + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:SIM_ABSENT + * RadioError:SIMULTANEOUS_SMS_AND_CALL_NOT_ALLOWED + * RadioError:ACCESS_BARRED + * RadioError:BLOCKED_DUE_TO_CALL + */ + void sendCdmaSmsExpectMoreResponse(in RadioResponseInfo info, in SendSmsResult sms); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param sms Sms result struct as defined by SendSmsResult in types.hal + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:SMS_SEND_FAIL_RETRY + * RadioError:NETWORK_REJECT + * RadioError:INVALID_STATE + * RadioError:NO_MEMORY + * RadioError:REQUEST_RATE_LIMITED + * RadioError:INVALID_SMS_FORMAT + * RadioError:SYSTEM_ERR + * RadioError:FDN_CHECK_FAILURE + * RadioError:MODEM_ERR + * RadioError:NETWORK_ERR + * RadioError:ENCODING_ERR + * RadioError:INVALID_SMSC_ADDRESS + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:ENCODING_ERR + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:SIM_ABSENT + * RadioError:SIMULTANEOUS_SMS_AND_CALL_NOT_ALLOWED + * RadioError:ACCESS_BARRED + * RadioError:BLOCKED_DUE_TO_CALL + */ + void sendCdmaSmsResponse(in RadioResponseInfo info, in SendSmsResult sms); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void sendDeviceStateResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_RESOURCES + * RadioError:NO_MEMORY + * RadioError:MODEM_ERR + * RadioError:INVALID_CALL_ID + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:CANCELLED + * RadioError:INVALID_MODEM_STATE + */ + void sendDtmfResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param commandResponse SAT/USAT response in hexadecimal format string starting with first + * byte of response + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SIM_BUSY + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_ARGUMENTS + * RadioError:MODEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:SIM_ABSENT + */ + void sendEnvelopeResponse(in RadioResponseInfo info, in String commandResponse); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param iccIo IccIoResult as defined in types.hal corresponding to ICC IO response + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SIM_BUSY + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:SIM_ABSENT + */ + void sendEnvelopeWithStatusResponse(in RadioResponseInfo info, in IccIoResult iccIo); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param sms Response to sms sent as defined by SendSmsResult in types.hal + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SMS_SEND_FAIL_RETRY + * RadioError:FDN_CHECK_FAILURE + * RadioError:NETWORK_REJECT + * RadioError:INVALID_ARGUMENTS + * RadioError:INVALID_STATE + * RadioError:NO_MEMORY + * RadioError:INVALID_SMS_FORMAT + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_RATE_LIMITED + * RadioError:MODEM_ERR + * RadioError:NETWORK_ERR + * RadioError:ENCODING_ERR + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:INTERNAL_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NETWORK_NOT_READY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void sendImsSmsResponse(in RadioResponseInfo info, in SendSmsResult sms); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param sms Response to sms sent as defined by SendSmsResult in types.hal + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SMS_SEND_FAIL_RETRY + * RadioError:NETWORK_REJECT + * RadioError:INVALID_STATE + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:REQUEST_RATE_LIMITED + * RadioError:INVALID_SMS_FORMAT + * RadioError:SYSTEM_ERR + * RadioError:FDN_CHECK_FAILURE + * RadioError:ENCODING_ERR + * RadioError:INVALID_SMSC_ADDRESS + * RadioError:MODEM_ERR + * RadioError:NETWORK_ERR + * RadioError:INTERNAL_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_MODEM_STATE + * RadioError:NETWORK_NOT_READY + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:SIM_ABSENT + */ + void sendSMSExpectMoreResponse(in RadioResponseInfo info, in SendSmsResult sms); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param sms Response to sms sent as defined by SendSmsResult in types.hal + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SMS_SEND_FAIL_RETRY + * RadioError:NETWORK_REJECT + * RadioError:INVALID_STATE + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:REQUEST_RATE_LIMITED + * RadioError:INVALID_SMS_FORMAT + * RadioError:SYSTEM_ERR + * RadioError:FDN_CHECK_FAILURE + * RadioError:ENCODING_ERR + * RadioError:INVALID_SMSC_ADDRESS + * RadioError:MODEM_ERR + * RadioError:NETWORK_ERR + * RadioError:INTERNAL_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_MODEM_STATE + * RadioError:NETWORK_NOT_READY + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:SIM_ABSENT + * RadioError:ACCESS_BARRED + * RadioError:BLOCKED_DUE_TO_CALL + */ + void sendSmsExpectMoreResponse(in RadioResponseInfo info, in SendSmsResult sms); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param sms Response to sms sent as defined by SendSmsResult in types.hal + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SMS_SEND_FAIL_RETRY + * RadioError:NETWORK_REJECT + * RadioError:INVALID_STATE + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:REQUEST_RATE_LIMITED + * RadioError:INVALID_SMS_FORMAT + * RadioError:SYSTEM_ERR + * RadioError:ENCODING_ERR + * RadioError:INVALID_SMSC_ADDRESS + * RadioError:MODEM_ERR + * RadioError:NETWORK_ERR + * RadioError:INTERNAL_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_MODEM_STATE + * RadioError:NETWORK_NOT_READY + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:SIM_ABSENT + * RadioError:ACCESS_BARRED + * RadioError:BLOCKED_DUE_TO_CALL + */ + void sendSmsResponse(in RadioResponseInfo info, in SendSmsResult sms); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_MODEM_STATE + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:SIM_ABSENT + */ + void sendTerminalResponseToSimResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:FDN_CHECK_FAILURE + * RadioError:USSD_MODIFIED_TO_DIAL + * RadioError:USSD_MODIFIED_TO_SS + * RadioError:USSD_MODIFIED_TO_USSD + * RadioError:SIM_BUSY + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:ABORTED + * RadioError:SYSTEM_ERR + * RadioError:INVALID_STATE + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_MODEM_STATE + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void sendUssdResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:INVALID_STATE + * RadioError:NO_RESOURCES + * RadioError:NO_MEMORY + * RadioError:MODEM_ERR + * RadioError:SYSTEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:INVALID_CALL_ID + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_MODEM_STATE + * RadioError:CANCELLED + */ + void separateConnectionResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:REQUEST_NOT_SUPPORTED + */ + void setAllowedCarriersResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:MODE_NOT_SUPPORTED + * RadioError:INTERNAL_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:MODEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + */ + void setAllowedNetworkTypesBitmapResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:MODEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void setBandModeResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SS_MODIFIED_TO_DIAL + * RadioError:SS_MODIFIED_TO_USSD + * RadioError:SS_MODIFIED_TO_SS + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:FDN_CHECK_FAILURE + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void setBarringPasswordResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SS_MODIFIED_TO_DIAL + * RadioError:SS_MODIFIED_TO_USSD + * RadioError:SS_MODIFIED_TO_SS + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:INVALID_STATE + * RadioError:FDN_CHECK_FAILURE + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_MODEM_STATE + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void setCallForwardResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SS_MODIFIED_TO_DIAL + * RadioError:SS_MODIFIED_TO_USSD + * RadioError:SS_MODIFIED_TO_SS + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:INVALID_STATE + * RadioError:FDN_CHECK_FAILURE + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_MODEM_STATE + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void setCallWaitingResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:RIL_E_SUCCESS + * RadioError:RIL_E_RADIO_NOT_AVAILABLE + * RadioError:SIM_ABSENT + * RadioError:RIL_E_REQUEST_NOT_SUPPORTED + * RadioError:INVALID_ARGUMENTS + * RadioError:MODEM_INTERNAL_FAILURE + */ + void setCarrierInfoForImsiEncryptionResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:INVALID_STATE + * RadioError:NO_MEMORY + * RadioError:REQUEST_RATE_LIMITED + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_MODEM_STATE + */ + void setCdmaBroadcastActivationResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:INVALID_STATE + * RadioError:NO_MEMORY + * RadioError:REQUEST_RATE_LIMITED + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_MODEM_STATE + */ + void setCdmaBroadcastConfigResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:MODEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:SIM_ABSENT + */ + void setCdmaRoamingPreferenceResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SIM_ABSENT + * RadioError:SUBSCRIPTION_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:REQUEST_NOT_SUPPORTED + */ + void setCdmaSubscriptionSourceResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:REQUEST_NOT_SUPPORTED + */ + void setCellInfoListRateResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:INVALID_ARGUMENTS + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SS_MODIFIED_TO_DIAL + * RadioError:SS_MODIFIED_TO_USSD + * RadioError:SS_MODIFIED_TO_SS + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void setClirResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:DEVICE_IN_USE + * RadioError:INVALID_MODEM_STATE + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:REQUEST_NOT_SUPPORTED + */ + void setDataAllowedResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SUBSCRIPTION_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:SIM_ABSENT + */ + void setDataProfileResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:MODEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:REQUEST_NOT_SUPPORTED + */ + void setDataThrottlingResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param retry 0 is the number of retries remaining, or -1 if unknown + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SS_MODIFIED_TO_DIAL + * RadioError:SS_MODIFIED_TO_USSD + * RadioError:SS_MODIFIED_TO_SS + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:INVALID_STATE + * RadioError:FDN_CHECK_FAILURE + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_MODEM_STATE + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void setFacilityLockForAppResponse(in RadioResponseInfo info, in int retry); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:INVALID_STATE + * RadioError:NO_MEMORY + * RadioError:REQUEST_RATE_LIMITED + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_MODEM_STATE + */ + void setGsmBroadcastActivationResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:INVALID_STATE + * RadioError:NO_MEMORY + * RadioError:REQUEST_RATE_LIMITED + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_MODEM_STATE + */ + void setGsmBroadcastConfigResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:INVALID_ARGUMENTS + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + */ + void setIndicationFilterResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SUBSCRIPTION_NOT_AVAILABLE + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:NOT_PROVISIONED + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void setInitialAttachApnResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:INVALID_ARGUMENTS + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + */ + void setLinkCapacityReportingCriteriaResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:MODEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:SIM_ABSENT + */ + void setLocationUpdatesResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_MEMORY + * RadioError:REQUEST_RATE_LIMITED + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void setMuteResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:ILLEGAL_SIM_OR_ME + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:MODEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * + * Returns RadioError:ILLEGAL_SIM_OR_ME when the failure is permanent and + * no retries needed, such as illegal SIM or ME. + */ + void setNetworkSelectionModeAutomaticResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:ILLEGAL_SIM_OR_ME + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:INVALID_STATE + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:MODEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * + * Returns RadioError:ILLEGAL_SIM_OR_ME when the failure is permanent and + * no retries needed, such as illegal SIM or ME. + */ + void setNetworkSelectionModeManualResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_STATE + */ + void setNrDualConnectivityStateResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:MODE_NOT_SUPPORTED + * RadioError:INTERNAL_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:MODEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + */ + void setPreferredNetworkTypeBitmapResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:MODE_NOT_SUPPORTED + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:MODEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void setPreferredNetworkTypeResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_CALL_ID + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void setPreferredVoicePrivacyResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param rc Radio capability as defined by RadioCapability in types.hal used to + * feedback return status + * + * Valid errors returned: + * RadioError:NONE means a unsol radioCapability() will be sent within 30 seconds. + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:MODEM_ERR + * RadioError:INVALID_STATE + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void setRadioCapabilityResponse(in RadioResponseInfo info, in RadioCapability rc); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:INTERNAL_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:RF_HARDWARE_ISSUE + * RadioError:NO_RF_CALIBRATION_INFO + */ + void setRadioPowerResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:INVALID_ARGUMENTS + * RadioError:RADIO_NOT_AVAILABLE + */ + void setSignalStrengthReportingCriteriaResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:SIM_ERR (indicates a timeout or other issue making the SIM unresponsive) + */ + void setSimCardPowerResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:INVALID_SMS_FORMAT + * RadioError:NO_MEMORY + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_RATE_LIMITED + * RadioError:MODEM_ERR + * RadioError:NO_RESOURCES + * RadioError:INTERNAL_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:SIM_ABSENT + */ + void setSmscAddressResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:SIM_BUSY + * RadioError:NO_MEMORY + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:SIM_ABSENT + */ + void setSuppServiceNotificationsResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:INVALID_ARGUMENTS + */ + void setSystemSelectionChannelsResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void setTTYModeResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SUBSCRIPTION_NOT_SUPPORTED + * RadioError:NO_MEMORY + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void setUiccSubscriptionResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param dcResponse SetupDataCallResult defined in types.hal + * + * Valid errors returned: + * RadioError:NONE must be returned on both success and failure of setup with the + * DataCallResponse.status containing the actual status + * For all other errors the DataCallResponse is ignored. + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:OP_NOT_ALLOWED_BEFORE_REG_TO_NW + * RadioError:OP_NOT_ALLOWED_DURING_VOICE_CALL + * RadioError:INVALID_ARGUMENTS + * RadioError:INTERNAL_ERR + * RadioError:NO_RESOURCES if the vendor is unable handle due to resources are full. + * RadioError:SIM_ABSENT + */ + void setupDataCallResponse(in RadioResponseInfo info, in SetupDataCallResult dcResponse); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_RESOURCES + * RadioError:NO_MEMORY + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:INVALID_CALL_ID + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:CANCELLED + * RadioError:INVALID_MODEM_STATE + */ + void startDtmfResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:NO_RESOURCES + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_CALL_ID + */ + void startHandoverResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param status Status object containing a new handle and a current status. The status returned + * here may be PENDING to indicate that the radio has not yet processed the keepalive + * request. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:NO_RESOURCES + * RadioError:INVALID_ARGUMENTS + */ + void startKeepaliveResponse(in RadioResponseInfo info, in KeepaliveStatus status); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param statusInfo LceStatusInfo indicating LCE status + * + * Valid errors returned: + * RadioError:REQUEST_NOT_SUPPORTED may be returned when HAL 1.2 or higher is supported. + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:LCE_NOT_SUPPORTED + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void startLceServiceResponse(in RadioResponseInfo info, in LceStatusInfo statusInfo); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:DEVICE_IN_USE + * RadioError:INTERNAL_ERR + * RadioError:MODEM_ERR + * RadioError:INVALID_ARGUMENTS + */ + void startNetworkScanResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_RESOURCES + * RadioError:NO_MEMORY + * RadioError:INVALID_ARGUMENTS + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:INVALID_CALL_ID + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:CANCELLED + * RadioError:INVALID_MODEM_STATE + */ + void stopDtmfResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:INVALID_ARGUMENTS + */ + void stopKeepaliveResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param statusInfo LceStatusInfo indicating LCE status + * + * Valid errors returned: + * RadioError:REQUEST_NOT_SUPPORTED may be returned when HAL 1.2 or higher is supported. + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:LCE_NOT_SUPPORTED + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:SIM_ABSENT + */ + void stopLceServiceResponse(in RadioResponseInfo info, in LceStatusInfo statusInfo); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:INTERNAL_ERR + * RadioError:MODEM_ERR + */ + void stopNetworkScanResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param remainingRetries Number of retries remaining, must be equal to -1 if unknown. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE (radio resetting) + * RadioError:PASSWORD_INCORRECT + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_ARGUMENTS + * RadioError:INVALID_SIM_STATE + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:SIM_PUK2 + */ + void supplyIccPin2ForAppResponse(in RadioResponseInfo info, in int remainingRetries); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param remainingRetries Number of retries remaining, must be equal to -1 if unknown. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE (radio resetting) + * RadioError:PASSWORD_INCORRECT + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_ARGUMENTS + * RadioError:INVALID_SIM_STATE + * RadioError:REQUEST_NOT_SUPPORTED + */ + void supplyIccPinForAppResponse(in RadioResponseInfo info, in int remainingRetries); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param remainingRetries Number of retries remaining, must be equal to -1 if unknown. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE (radio resetting) + * RadioError:PASSWORD_INCORRECT (PUK is invalid) + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_ARGUMENTS + * RadioError:INVALID_SIM_STATE + * RadioError:REQUEST_NOT_SUPPORTED + */ + void supplyIccPuk2ForAppResponse(in RadioResponseInfo info, in int remainingRetries); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param remainingRetries Number of retries remaining, must be equal to -1 if unknown. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE (radio resetting) + * RadioError:PASSWORD_INCORRECT (PUK is invalid) + * RadioError:INTERNAL_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_ARGUMENTS + * RadioError:INVALID_SIM_STATE + * RadioError:REQUEST_NOT_SUPPORTED + */ + void supplyIccPukForAppResponse(in RadioResponseInfo info, in int remainingRetries); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param remainingRetries Number of retries remaining, must be equal to -1 if unknown. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:PASSWORD_INCORRECT (code is invalid) + * RadioError:NO_MEMORY + * RadioError:INVALID_SIM_STATE + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:SIM_ABSENT + */ + void supplyNetworkDepersonalizationResponse(in RadioResponseInfo info, in int remainingRetries); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param persoType SIM Personalisation type + * @param remainingRetries postiive values indicates number of retries remaining, must be equal + * to -1 if number of retries is infinite. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:PASSWORD_INCORRECT (code is invalid) + * RadioError:NO_MEMORY + * RadioError:INVALID_SIM_STATE + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_RESOURCES + * RadioError:REQUEST_NOT_SUPPORTED + */ + void supplySimDepersonalizationResponse( + in RadioResponseInfo info, in PersoSubstate persoType, in int remainingRetries); + + /** + * @param info Response info struct containing response type, serial no. and error + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE (radio resetting) + * RadioError:INVALID_STATE + * RadioError:NO_MEMORY + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:INVALID_STATE + * RadioError:INVALID_CALL_ID + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:INVALID_ARGUMENTS + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_MODEM_STATE + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + */ + void switchWaitingOrHoldingAndActiveResponse(in RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param updatedRecordIndex The index of the updated or inserted record in the phonebook and + * the minimum value is 1 + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:INVALID_ARGUMENTS + * RadioError:INVALID_SIM_STATE + * RadioError:MODEM_ERR + * RadioError:INTERNAL_ERR + * RadioError:SIM_ERR + * RadioError:NO_SUCH_ENTRY + * RadioError:NO_RESOURCES + * REQUEST_NOT_SUPPORTED may only be returned on devices that don't support this API, + * indicated by the HAL capability CAPABILITY_SIM_PHONEBOOK_IN_MODEM. + */ + void updateSimPhonebookRecordsResponse(in RadioResponseInfo info, in int updatedRecordIndex); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param index record index where the cmda sms message is stored + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INVALID_ARGUMENTS + * RadioError:INVALID_SMS_FORMAT + * RadioError:SIM_FULL + * RadioError:INTERNAL_ERR + * RadioError:MODEM_ERR + * RadioError:ENCODING_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:INVALID_MODEM_STATE + * RadioError:INVALID_SMSC_ADDRESS + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * RadioError:INVALID_MODEM_STATE + * RadioError:SIM_ABSENT + */ + void writeSmsToRuimResponse(in RadioResponseInfo info, in int index); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param index record index where the message is stored + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SIM_FULL + * RadioError:INVALID_ARGUMENTS + * RadioError:INVALID_SMS_FORMAT + * RadioError:INTERNAL_ERR + * RadioError:MODEM_ERR + * RadioError:ENCODING_ERR + * RadioError:NO_MEMORY + * RadioError:NO_RESOURCES + * RadioError:INVALID_MODEM_STATE + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:INVALID_SMSC_ADDRESS + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:SYSTEM_ERR + * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:CANCELLED + * RadioError:INVALID_MODEM_STATE + * RadioError:SIM_ABSENT + */ + void writeSmsToSimResponse(in RadioResponseInfo info, in int index); +} diff --git a/radio/aidl/android/hardware/radio/ISap.aidl b/radio/aidl/android/hardware/radio/ISap.aidl new file mode 100644 index 0000000000..1ca4fe7c12 --- /dev/null +++ b/radio/aidl/android/hardware/radio/ISap.aidl @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.ISapCallback; +import android.hardware.radio.SapApduType; +import android.hardware.radio.SapTransferProtocol; + +/** + * Empty top level interface. + */ +@VintfStability +oneway interface ISap { + /** + * TRANSFER_APDU_REQ from SAP 1.1 spec 5.1.6 + * + * @param token Id to match req-resp. Resp must include same token. + * @param type APDU command type + * @param command CommandAPDU/CommandAPDU7816 parameter depending on type + */ + void apduReq(in int token, in SapApduType type, in byte[] command); + + /** + * CONNECT_REQ from SAP 1.1 spec 5.1.1 + * + * @param token Id to match req-resp. Resp must include same token. + * @param maxMsgSize MaxMsgSize to be used for SIM Access Profile connection + */ + void connectReq(in int token, in int maxMsgSize); + + /** + * DISCONNECT_REQ from SAP 1.1 spec 5.1.3 + * + * @param token Id to match req-resp. Resp must include same token. + */ + void disconnectReq(in int token); + + /** + * POWER_SIM_OFF_REQ and POWER_SIM_ON_REQ from SAP 1.1 spec 5.1.10 + 5.1.12 + * + * @param token Id to match req-resp. Resp must include same token. + * @param state true for on, false for off + */ + void powerReq(in int token, in boolean state); + + /** + * RESET_SIM_REQ from SAP 1.1 spec 5.1.14 + * + * @param token Id to match req-resp. Resp must include same token. + */ + void resetSimReq(in int token); + + /** + * Set callback that has response and unsolicited indication functions + * + * @param sapCallback Object containing response and unosolicited indication callbacks + */ + void setCallback(in ISapCallback sapCallback); + + /** + * SET_TRANSPORT_PROTOCOL_REQ from SAP 1.1 spec 5.1.20 + * + * @param token Id to match req-resp. Resp must include same token. + * @param transferProtocol Transport Protocol + */ + void setTransferProtocolReq(in int token, in SapTransferProtocol transferProtocol); + + /** + * TRANSFER_ATR_REQ from SAP 1.1 spec 5.1.8 + * + * @param token Id to match req-resp. Resp must include same token. + */ + void transferAtrReq(in int token); + + /** + * TRANSFER_CARD_READER_STATUS_REQ from SAP 1.1 spec 5.1.17 + * + * @param token Id to match req-resp. Resp must include same token. + */ + void transferCardReaderStatusReq(in int token); +} diff --git a/radio/aidl/android/hardware/radio/ISapCallback.aidl b/radio/aidl/android/hardware/radio/ISapCallback.aidl new file mode 100644 index 0000000000..00e543b4f3 --- /dev/null +++ b/radio/aidl/android/hardware/radio/ISapCallback.aidl @@ -0,0 +1,152 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.SapConnectRsp; +import android.hardware.radio.SapDisconnectType; +import android.hardware.radio.SapResultCode; +import android.hardware.radio.SapStatus; + +@VintfStability +oneway interface ISapCallback { + /** + * TRANSFER_APDU_RESP from SAP 1.1 spec 5.1.7 + * + * @param token Id to match req-resp. Value must match the one in req. + * @param resultCode ResultCode to indicate if command was processed correctly + * Possible values: + * SapResultCode:SUCCESS, + * SapResultCode:GENERIC_FAILURE, + * SapResultCode:CARD_NOT_ACCESSSIBLE, + * SapResultCode:CARD_ALREADY_POWERED_OFF, + * SapResultCode:CARD_REMOVED + * @param apduRsp APDU Response. Valid only if command was processed correctly and no error + * occurred. + */ + void apduResponse(in int token, in SapResultCode resultCode, in byte[] apduRsp); + + /** + * CONNECT_RESP from SAP 1.1 spec 5.1.2 + * + * @param token Id to match req-resp. Value must match the one in req. + * @param sapConnectRsp Connection Status + * @param maxMsgSize MaxMsgSize supported by server if request cannot be fulfilled. + * Valid only if connectResponse is SapConnectResponse:MSG_SIZE_TOO_LARGE. + */ + void connectResponse(in int token, in SapConnectRsp sapConnectRsp, in int maxMsgSize); + + /** + * DISCONNECT_IND from SAP 1.1 spec 5.1.5 + * + * @param token Id to match req-resp. Value must match the one in req. + * @param disconnectType Disconnect Type to indicate if shutdown is graceful or immediate + */ + void disconnectIndication(in int token, in SapDisconnectType disconnectType); + + /** + * DISCONNECT_RESP from SAP 1.1 spec 5.1.4 + * + * @param token Id to match req-resp. Value must match the one in req. + */ + void disconnectResponse(in int token); + + /** + * ERROR_RESP from SAP 1.1 spec 5.1.19 + * + * @param token Id to match req-resp. Value must match the one in req. + */ + void errorResponse(in int token); + + /** + * POWER_SIM_OFF_RESP and POWER_SIM_ON_RESP from SAP 1.1 spec 5.1.11 + 5.1.13 + * + * @param token Id to match req-resp. Value must match the one in req. + * @param resultCode ResultCode to indicate if command was processed correctly + * Possible values: + * SapResultCode:SUCCESS, + * SapResultCode:GENERIC_FAILURE, + * SapResultCode:CARD_NOT_ACCESSSIBLE, (possible only for power on req) + * SapResultCode:CARD_ALREADY_POWERED_OFF, (possible only for power off req) + * SapResultCode:CARD_REMOVED, + * SapResultCode:CARD_ALREADY_POWERED_ON (possible only for power on req) + */ + void powerResponse(in int token, in SapResultCode resultCode); + + /** + * RESET_SIM_RESP from SAP 1.1 spec 5.1.15 + * + * @param token Id to match req-resp. Value must match the one in req. + * @param resultCode ResultCode to indicate if command was processed correctly + * Possible values: + * SapResultCode:SUCCESS, + * SapResultCode:GENERIC_FAILURE, + * SapResultCode:CARD_NOT_ACCESSSIBLE, + * SapResultCode:CARD_ALREADY_POWERED_OFF, + * SapResultCode:CARD_REMOVED + */ + void resetSimResponse(in int token, in SapResultCode resultCode); + + /** + * STATUS_IND from SAP 1.1 spec 5.1.16 + * + * @param token Id to match req-resp. Value must match the one in req. + * @param status Parameter to indicate reason for the status change. + */ + void statusIndication(in int token, in SapStatus status); + + /** + * TRANSFER_ATR_RESP from SAP 1.1 spec 5.1.9 + * + * @param token Id to match req-resp. Value must match the one in req. + * @param resultCode ResultCode to indicate if command was processed correctly + * Possible values: + * SapResultCode:SUCCESS, + * SapResultCode:GENERIC_FAILURE, + * SapResultCode:CARD_ALREADY_POWERED_OFF, + * SapResultCode:CARD_REMOVED, + * SapResultCode:DATA_NOT_AVAILABLE + * @param atr Answer to Reset from the subscription module. Included only if no error occurred, + * otherwise empty. + */ + void transferAtrResponse(in int token, in SapResultCode resultCode, in byte[] atr); + + /** + * TRANSFER_CARD_READER_STATUS_REQ from SAP 1.1 spec 5.1.18 + * + * @param token Id to match req-resp. Value must match the one in req. + * @param resultCode ResultCode to indicate if command was processed correctly + * Possible values: + * SapResultCode:SUCCESS, + * SapResultCode:GENERIC_FAILURE + * SapResultCode:DATA_NOT_AVAILABLE + * @param cardReaderStatus Card Reader Status coded as described in 3GPP TS 11.14 Section 12.33 + * and TS 31.111 Section 8.33 + */ + void transferCardReaderStatusResponse( + in int token, in SapResultCode resultCode, in int cardReaderStatus); + + /** + * SET_TRANSPORT_PROTOCOL_RESP from SAP 1.1 spec 5.1.21 + * + * @param token Id to match req-resp. Value must match the one in req. + * @param resultCode ResultCode to indicate if command was processed correctly + * Possible values: + * SapResultCode:SUCCESS + * SapResultCode:NOT_SUPPORTED + */ + void transferProtocolResponse(in int token, in SapResultCode resultCode); +} diff --git a/radio/aidl/android/hardware/radio/IccIo.aidl b/radio/aidl/android/hardware/radio/IccIo.aidl new file mode 100644 index 0000000000..7441758507 --- /dev/null +++ b/radio/aidl/android/hardware/radio/IccIo.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable IccIo { + /** + * One of the commands listed for TS 27.007 +CRSM + */ + int command; + /** + * EF ID + */ + int fileId; + /** + * "pathid" from TS 27.007 +CRSM command. Path is in hex ASCII format eg "7f205f70" + * Path must always be provided. + */ + String path; + /** + * Value of p1 defined as per 3GPP TS 51.011 + */ + int p1; + /** + * Value of p2 defined as per 3GPP TS 51.011 + */ + int p2; + /** + * Value of p3 defined as per 3GPP TS 51.011 + */ + int p3; + /** + * Information to be written to the SIM + */ + String data; + String pin2; + /** + * AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value. + */ + String aid; +} diff --git a/radio/aidl/android/hardware/radio/IccIoResult.aidl b/radio/aidl/android/hardware/radio/IccIoResult.aidl new file mode 100644 index 0000000000..94377b4072 --- /dev/null +++ b/radio/aidl/android/hardware/radio/IccIoResult.aidl @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable IccIoResult { + int sw1; + int sw2; + /** + * In hex string format ([a-fA-F0-9]*), except for SIM_AUTHENTICATION response for which it is + * in Base64 format, see 3GPP TS 31.102 7.1.2 + */ + String simResponse; +} diff --git a/radio/aidl/android/hardware/radio/ImsSmsMessage.aidl b/radio/aidl/android/hardware/radio/ImsSmsMessage.aidl new file mode 100644 index 0000000000..3b4efe68fd --- /dev/null +++ b/radio/aidl/android/hardware/radio/ImsSmsMessage.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CdmaSmsMessage; +import android.hardware.radio.GsmSmsMessage; +import android.hardware.radio.RadioTechnologyFamily; + +@VintfStability +parcelable ImsSmsMessage { + RadioTechnologyFamily tech; + /** + * Retry if true + */ + boolean retry; + /** + * Valid field if retry is set to true. + * Contains messageRef from SendSmsResult struct corresponding to failed MO SMS. + */ + int messageRef; + /** + * 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. + */ + CdmaSmsMessage[] cdmaMessage; + /** + * Valid field if tech is 3GPP 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. + */ + GsmSmsMessage[] gsmMessage; +} diff --git a/radio/aidl/android/hardware/radio/ImsiEncryptionInfo.aidl b/radio/aidl/android/hardware/radio/ImsiEncryptionInfo.aidl new file mode 100644 index 0000000000..3429beb7e8 --- /dev/null +++ b/radio/aidl/android/hardware/radio/ImsiEncryptionInfo.aidl @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * Carrier specific Information sent by the carrier, which will be used to encrypt IMSI and IMPI. + */ +@VintfStability +parcelable ImsiEncryptionInfo { + /** + * Key type to be used for ePDG + */ + const byte PUBLIC_KEY_TYPE_EPDG = 1; + /** + * Key type to be used for WLAN + */ + const byte PUBLIC_KEY_TYPE_WLAN = 2; + + /** + * MCC of the Carrier. + */ + String mcc; + /** + * MNC of the Carrier. + */ + String mnc; + /** + * Carrier specific key to be used for encryption. It must be opaque to the framework. + * This is the byte-stream representation of the key. This is an external encoded form for the + * key used when a standard representation of the key is needed outside the Java Virtual + * Machine, as when transmitting the key to some other party. The key is encoded according to a + * standard format (such as X.509 SubjectPublicKeyInfo or PKCS#8), and is returned using the + * getEncoded method as defined on the java.security.Key interface. + */ + byte[] carrierKey; + /** + * This is an opaque value we're given by the carrier and is returned to the carrier. + * This is used by the server to help it locate the private key to decrypt the + * permanent identity. + */ + String keyIdentifier; + /** + * Date-time in UTC when the key will expire. + */ + long expirationTime; + /** + * Public key type from carrier certificate. + * Values are PUBLIC_KEY_TYPE_ + */ + byte keyType; +} diff --git a/radio/aidl/android/hardware/radio/IndicationFilter.aidl b/radio/aidl/android/hardware/radio/IndicationFilter.aidl new file mode 100644 index 0000000000..826c8c1c57 --- /dev/null +++ b/radio/aidl/android/hardware/radio/IndicationFilter.aidl @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum IndicationFilter { + NONE = 0, + ALL = ~0, + /** + * When this bit is set, modem must send the signal strength update through + * IRadioIndication.currentSignalStrength() when all criteria specified by + * IRadio.setSignalStrengthReportingCriteria() are met. + */ + SIGNAL_STRENGTH = 1 << 0, + /** + * When this bit is set, modem must invoke IRadioIndication.networkStateChanged() when any field + * in VoiceRegStateResult or DataRegStateResult changes. When this bit is not set, modem must + * suppress IRadioIndication.networkStateChanged() when there are only changes from + * insignificant fields. Modem must invoke IRadioIndication.networkStateChanged() when + * significant fields are updated regardless of whether this bit is set. + * + * The following fields are considered significant: VoiceRegStateResult.regState, + * VoiceRegStateResult.rat, DataRegStateResult.regState, DataRegStateResult.rat. + */ + FULL_NETWORK_STATE = 1 << 1, + /** + * When this bit is set, modem must send IRadioIndication.dataCallListChanged() whenever any + * field in ITypes.SetupDataCallResult changes. When this bit is not set, modem must suppress + * the indication when the only changed field is 'active' (for data dormancy). For all other + * field changes, the modem must send IRadioIndication.dataCallListChanged() regardless of + * whether this bit is set. + */ + DATA_CALL_DORMANCY_CHANGED = 1 << 2, + /** + * When this bit is set, modem must send the link capacity update through + * IRadioIndication.currentLinkCapacityEstimate() when all criteria specified by + * IRadio.setLinkCapacityReportingCriteria() are met. + */ + LINK_CAPACITY_ESTIMATE = 1 << 3, + /** + * When this bit is set, the modem must send the physical channel configuration update through + * IRadioIndication.currentPhysicalChannelConfigs() when the configuration has changed. It is + * recommended that this be reported whenever link capacity or signal strength is reported. + */ + PHYSICAL_CHANNEL_CONFIG = 1 << 4, + /** + * Control the unsolicited sending of registration failure reports via onRegistrationFailed + */ + REGISTRATION_FAILURE = 1 << 5, + /** + * Control the unsolicited sending of barring info updates via onBarringInfo + */ + BARRING_INFO = 1 << 6, +} diff --git a/radio/aidl/android/hardware/radio/KeepaliveRequest.aidl b/radio/aidl/android/hardware/radio/KeepaliveRequest.aidl new file mode 100644 index 0000000000..1433b96397 --- /dev/null +++ b/radio/aidl/android/hardware/radio/KeepaliveRequest.aidl @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable KeepaliveRequest { + /** + * Keepalive specified by RFC 3948 Sec. 2.3 using IPv4 + */ + const int TYPE_NATT_IPV4 = 0; + /** + * Keepalive specified by RFC 3948 Sec. 2.3 using IPv6 + */ + const int TYPE_NATT_IPV6 = 1; + + /** + * The format of the keepalive packet + * Values are TYPE_ + */ + int type; + /** + * Source address with type = family, in network byte order + */ + byte[] sourceAddress; + /** + * Source port if relevant for the given type + * INT_MAX: 0x7FFFFFFF denotes that the field is unused + */ + int sourcePort; + /** + * Destination address with type = family, in network byte order + */ + byte[] destinationAddress; + /** + * Destination if relevant for the given type + * INT_MAX: 0x7FFFFFFF denotes that the field is unused + */ + int destinationPort; + /** + * The max interval between packets, in milliseconds + */ + int maxKeepaliveIntervalMillis; + /** + * Context ID, returned in setupDataCallResponse that uniquely identifies the data call to which + * this keepalive must applied. + */ + int cid; +} diff --git a/radio/aidl/android/hardware/radio/KeepaliveStatus.aidl b/radio/aidl/android/hardware/radio/KeepaliveStatus.aidl new file mode 100644 index 0000000000..0cf6767929 --- /dev/null +++ b/radio/aidl/android/hardware/radio/KeepaliveStatus.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable KeepaliveStatus { + /** + * Keepalive is currently active. + */ + const int CODE_ACTIVE = 0; + /** + * Keepalive is inactive, which indicates an error. + */ + const int CODE_INACTIVE = 1; + /** + * Requested keepalive has not yet been processed by the modem. + * Only allowed in a RESPONSE message to a REQUEST. + */ + const int CODE_PENDING = 2; + + /** + * The sessionHandle provided by the API. + */ + int sessionHandle; + /** + * Status for the given keepalive. + * Values are CODE_ + */ + int code; +} diff --git a/radio/aidl/android/hardware/radio/LastCallFailCause.aidl b/radio/aidl/android/hardware/radio/LastCallFailCause.aidl new file mode 100644 index 0000000000..e5a5145fa4 --- /dev/null +++ b/radio/aidl/android/hardware/radio/LastCallFailCause.aidl @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum LastCallFailCause { + UNOBTAINABLE_NUMBER = 1, + NO_ROUTE_TO_DESTINATION = 3, + CHANNEL_UNACCEPTABLE = 6, + OPERATOR_DETERMINED_BARRING = 8, + NORMAL = 16, + BUSY = 17, + NO_USER_RESPONDING = 18, + NO_ANSWER_FROM_USER = 19, + CALL_REJECTED = 21, + NUMBER_CHANGED = 22, + PREEMPTION = 25, + DESTINATION_OUT_OF_ORDER = 27, + INVALID_NUMBER_FORMAT = 28, + FACILITY_REJECTED = 29, + RESP_TO_STATUS_ENQUIRY = 30, + NORMAL_UNSPECIFIED = 31, + CONGESTION = 34, + NETWORK_OUT_OF_ORDER = 38, + TEMPORARY_FAILURE = 41, + SWITCHING_EQUIPMENT_CONGESTION = 42, + ACCESS_INFORMATION_DISCARDED = 43, + REQUESTED_CIRCUIT_OR_CHANNEL_NOT_AVAILABLE = 44, + RESOURCES_UNAVAILABLE_OR_UNSPECIFIED = 47, + QOS_UNAVAILABLE = 49, + REQUESTED_FACILITY_NOT_SUBSCRIBED = 50, + INCOMING_CALLS_BARRED_WITHIN_CUG = 55, + BEARER_CAPABILITY_NOT_AUTHORIZED = 57, + BEARER_CAPABILITY_UNAVAILABLE = 58, + SERVICE_OPTION_NOT_AVAILABLE = 63, + BEARER_SERVICE_NOT_IMPLEMENTED = 65, + ACM_LIMIT_EXCEEDED = 68, + REQUESTED_FACILITY_NOT_IMPLEMENTED = 69, + ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE = 70, + SERVICE_OR_OPTION_NOT_IMPLEMENTED = 79, + INVALID_TRANSACTION_IDENTIFIER = 81, + USER_NOT_MEMBER_OF_CUG = 87, + INCOMPATIBLE_DESTINATION = 88, + INVALID_TRANSIT_NW_SELECTION = 91, + SEMANTICALLY_INCORRECT_MESSAGE = 95, + INVALID_MANDATORY_INFORMATION = 96, + MESSAGE_TYPE_NON_IMPLEMENTED = 97, + MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98, + INFORMATION_ELEMENT_NON_EXISTENT = 99, + CONDITIONAL_IE_ERROR = 100, + MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101, + RECOVERY_ON_TIMER_EXPIRED = 102, + PROTOCOL_ERROR_UNSPECIFIED = 111, + INTERWORKING_UNSPECIFIED = 127, + CALL_BARRED = 240, + FDN_BLOCKED = 241, + IMSI_UNKNOWN_IN_VLR = 242, + IMEI_NOT_ACCEPTED = 243, + /** + * STK Call Control + */ + DIAL_MODIFIED_TO_USSD = 244, + DIAL_MODIFIED_TO_SS = 245, + DIAL_MODIFIED_TO_DIAL = 246, + /** + * Radio is off + */ + RADIO_OFF = 247, + /** + * No cellular coverage + */ + OUT_OF_SERVICE = 248, + /** + * No valid SIM is present + */ + NO_VALID_SIM = 249, + /** + * Internal error at modem + */ + RADIO_INTERNAL_ERROR = 250, + /** + * No response from network + */ + NETWORK_RESP_TIMEOUT = 251, + /** + * Explicit network reject + */ + NETWORK_REJECT = 252, + /** + * RRC connection failure. Eg.RACH + */ + RADIO_ACCESS_FAILURE = 253, + /** + * Radio link failure + */ + RADIO_LINK_FAILURE = 254, + /** + * Radio link lost due to poor coverage + */ + RADIO_LINK_LOST = 255, + /** + * Radio uplink failure + */ + RADIO_UPLINK_FAILURE = 256, + /** + * RRC connection setup failure + */ + RADIO_SETUP_FAILURE = 257, + /** + * RRC connection release, normal + */ + RADIO_RELEASE_NORMAL = 258, + /** + * RRC connection release, abnormal + */ + RADIO_RELEASE_ABNORMAL = 259, + /** + * Access class barring + */ + ACCESS_CLASS_BLOCKED = 260, + /** + * Explicit network detach + */ + NETWORK_DETACH = 261, + CDMA_LOCKED_UNTIL_POWER_CYCLE = 1000, + CDMA_DROP = 1001, + CDMA_INTERCEPT = 1002, + CDMA_REORDER = 1003, + CDMA_SO_REJECT = 1004, + CDMA_RETRY_ORDER = 1005, + CDMA_ACCESS_FAILURE = 1006, + CDMA_PREEMPTED = 1007, + /** + * For non-emergency number dialed during emergency callback mode + */ + CDMA_NOT_EMERGENCY = 1008, + CDMA_ACCESS_BLOCKED = 1009, + /** + * OEM specific error codes. Used to distinguish error from + * CALL_FAIL_ERROR_UNSPECIFIED and help assist debugging + */ + OEM_CAUSE_1 = 0xf001, + OEM_CAUSE_2 = 0xf002, + OEM_CAUSE_3 = 0xf003, + OEM_CAUSE_4 = 0xf004, + OEM_CAUSE_5 = 0xf005, + OEM_CAUSE_6 = 0xf006, + OEM_CAUSE_7 = 0xf007, + OEM_CAUSE_8 = 0xf008, + OEM_CAUSE_9 = 0xf009, + OEM_CAUSE_10 = 0xf00a, + OEM_CAUSE_11 = 0xf00b, + OEM_CAUSE_12 = 0xf00c, + OEM_CAUSE_13 = 0xf00d, + OEM_CAUSE_14 = 0xf00e, + OEM_CAUSE_15 = 0xf00f, + /** + * This error will be deprecated soon, vendor code must make sure to map error code to specific + * error + */ + ERROR_UNSPECIFIED = 0xffff, +} diff --git a/radio/aidl/android/hardware/radio/LastCallFailCauseInfo.aidl b/radio/aidl/android/hardware/radio/LastCallFailCauseInfo.aidl new file mode 100644 index 0000000000..6866e99d91 --- /dev/null +++ b/radio/aidl/android/hardware/radio/LastCallFailCauseInfo.aidl @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.LastCallFailCause; + +@VintfStability +parcelable LastCallFailCauseInfo { + LastCallFailCause causeCode; + String vendorCause; +} diff --git a/radio/aidl/android/hardware/radio/LceDataInfo.aidl b/radio/aidl/android/hardware/radio/LceDataInfo.aidl new file mode 100644 index 0000000000..68521b559b --- /dev/null +++ b/radio/aidl/android/hardware/radio/LceDataInfo.aidl @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable LceDataInfo { + /** + * Last-hop cellular capacity: kilobits/second. + */ + int lastHopCapacityKbps; + /** + * Capacity estimate confidence: 0-100. + */ + byte confidenceLevel; + /** + * Whether the LCE report is going to be suspended (e.g., radio moves to inactive state or + * network type changes). + */ + boolean lceSuspended; +} diff --git a/radio/aidl/android/hardware/radio/LceStatusInfo.aidl b/radio/aidl/android/hardware/radio/LceStatusInfo.aidl new file mode 100644 index 0000000000..d663d38597 --- /dev/null +++ b/radio/aidl/android/hardware/radio/LceStatusInfo.aidl @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable LceStatusInfo { + const int LCE_STATUS_NOT_SUPPORTED = 0; + const int LCE_STATUS_STOPPED = 1; + const int LCE_STATUS_ACTIVE = 2; + + /** + * Values are LCE_STATUS_ + */ + int lceStatus; + /** + * Actual LCE reporting interval, meaningful only if LceStatus = ACTIVE. + */ + byte actualIntervalMs; +} diff --git a/radio/aidl/android/hardware/radio/LinkAddress.aidl b/radio/aidl/android/hardware/radio/LinkAddress.aidl new file mode 100644 index 0000000000..0c18e271cc --- /dev/null +++ b/radio/aidl/android/hardware/radio/LinkAddress.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * Describes a data link address for mobile data connection. + */ +@VintfStability +parcelable LinkAddress { + const int ADDRESS_PROPERTY_NONE = 0; + /** + * Indicates this address is deprecated + */ + const int ADDRESS_PROPERTY_DEPRECATED = 0x20; + /** + * The format is IP address with optional "/" prefix length (The format is defined in RFC-4291 + * section 2.3). For example, "192.0.1.3", "192.0.1.11/16", or "2001:db8::1/64". Typically one + * IPv4 or one IPv6 or one of each. If the prefix length is absent, then the addresses are + * assumed to be point to point with IPv4 with prefix length 32 or IPv6 with prefix length 128. + */ + String address; + /** + * The properties of the link address, as defined in if_addr.h in the Linux kernel. + * Values are ADDRESS_PROPERTY_ + */ + int addressProperties; + /** + * The time, as reported by SystemClock.elapsedRealtime(), when this link address will be or + * was deprecated. -1 indicates this information is not available. At the time existing + * connections can still use this address until it expires, but new connections should use the + * new address. LONG_MAX(0x7FFFFFFFFFFFFFFF) indicates this link address will never be + * deprecated. + */ + long deprecationTime; + /** + * The time, as reported by SystemClock.elapsedRealtime(), when this link address will expire + * and be removed from the interface. -1 indicates this information is not available. + * LONG_MAX(0x7FFFFFFFFFFFFFFF) indicates this link address will never expire. + */ + long expirationTime; +} diff --git a/radio/aidl/android/hardware/radio/LinkCapacityEstimate.aidl b/radio/aidl/android/hardware/radio/LinkCapacityEstimate.aidl new file mode 100644 index 0000000000..78ddee2f8f --- /dev/null +++ b/radio/aidl/android/hardware/radio/LinkCapacityEstimate.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable LinkCapacityEstimate { + /** + * Estimated downlink capacity in kbps. In case of a dual connected network, this includes + * capacity of both primary and secondary. This bandwidth estimate shall be the estimated + * maximum sustainable link bandwidth (as would be measured at the Upper PDCP or SNDCP SAP). + * If the DL Aggregate Maximum Bit Rate is known, this value shall not exceed the DL-AMBR for + * the Internet PDN connection. This must be filled with 0 if network is not connected. + */ + int downlinkCapacityKbps; + /** + * Estimated uplink capacity in kbps. In case of a dual connected network, this includes + * capacity of both primary and secondary. This bandwidth estimate shall be the estimated + * maximum sustainable link bandwidth (as would be measured at the Upper PDCP or SNDCP SAP). + * If the UL Aggregate Maximum Bit Rate is known, this value shall not exceed the UL-AMBR for + * the Internet PDN connection. This must be filled with 0 if network is not connected. + */ + int uplinkCapacityKbps; + /** + * Estimated downlink capacity of secondary carrier in a dual connected NR mode in kbps. This + * bandwidth estimate shall be the estimated maximum sustainable link bandwidth (as would be + * measured at the Upper PDCP or SNDCP SAP). This is valid only in if device is connected to + * both primary and secodary in dual connected mode. This must be filled with 0 if secondary is + * not connected or if modem does not support this feature. + */ + int secondaryDownlinkCapacityKbps; + /** + * Estimated uplink capacity secondary carrier in a dual connected NR mode in kbps. This + * bandwidth estimate shall be the estimated maximum sustainable link bandwidth (as would be + * measured at the Upper PDCP or SNDCP SAP). This is valid only in if device is connected to + * both primary and secodary in dual connected mode.This must be filled with 0 if secondary is + * not connected or if modem does not support this feature. + */ + int secondaryUplinkCapacityKbps; +} diff --git a/radio/aidl/android/hardware/radio/LteSignalStrength.aidl b/radio/aidl/android/hardware/radio/LteSignalStrength.aidl new file mode 100644 index 0000000000..699925d419 --- /dev/null +++ b/radio/aidl/android/hardware/radio/LteSignalStrength.aidl @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable LteSignalStrength { + /** + * Valid values are (0-31, 99) as defined in TS 27.007 8.5; INT_MAX means invalid/unreported. + */ + int signalStrength; + /** + * The current Reference Signal Receive Power in dBm multiplied by -1. Range: 44 to 140 dBm; + * INT_MAX: 0x7FFFFFFF denotes invalid/unreported value. Reference: 3GPP TS 36.133 9.1.4 + */ + int rsrp; + /** + * The current Reference Signal Receive Quality in dB multiplied by -1. Range: 20 to 3 dB; + * INT_MAX: 0x7FFFFFFF denotes invalid/unreported value. Reference: 3GPP TS 36.133 9.1.7 + */ + int rsrq; + /** + * The current reference signal signal-to-noise ratio in 0.1 dB units. + * Range: -200 to +300 (-200 = -20.0 dB, +300 = 30dB). + * INT_MAX: 0x7FFFFFFF denotes invalid/unreported value. Reference: 3GPP TS 36.101 8.1.1 + */ + int rssnr; + /** + * The current Channel Quality Indicator. Range: 0 to 15. + * INT_MAX: 0x7FFFFFFF denotes invalid/unreported value. Reference: 3GPP TS 36.101 9.2, 9.3, A.4 + */ + int cqi; + /** + * Timing advance in micro seconds for a one way trip from cell to device. Approximate distance + * is calculated using 300m/us * timingAdvance. Range: 0 to 1282 inclusive. + * INT_MAX: 0x7FFFFFFF denotes invalid/unreported value. Reference: 3GPP 36.213 section 4.2.3 + */ + int timingAdvance; + /** + * CSI channel quality indicator (CQI) table index. There are multiple CQI tables. + * The definition of CQI in each table is different. + * Reference: 3GPP TS 136.213 section 7.2.3. + * Range [1, 6], INT_MAX means invalid/unreported. + */ + int cqiTableIndex; +} diff --git a/radio/aidl/android/hardware/radio/LteVopsInfo.aidl b/radio/aidl/android/hardware/radio/LteVopsInfo.aidl new file mode 100644 index 0000000000..b487a8f20d --- /dev/null +++ b/radio/aidl/android/hardware/radio/LteVopsInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * Type to define the LTE specific network capabilities for voice over PS including emergency and + * normal voice calls. + */ +@VintfStability +parcelable LteVopsInfo { + /** + * This indicates if camped network support VoLTE services. This information is received from + * LTE network during LTE NAS registration procedure through LTE ATTACH ACCEPT/TAU ACCEPT. + * Refer 3GPP 24.301 EPS network feature support -> IMS VoPS + */ + boolean isVopsSupported; + /** + * This indicates if camped network support VoLTE emergency bearers. This information is + * received from LTE network through two sources: + * a. During LTE NAS registration procedure through LTE ATTACH ACCEPT/TAU ACCEPT. Refer + * 3GPP 24.301 EPS network feature support -> EMC BS + * b. In case device is not registered on network. Refer 3GPP 25.331 LTE RRC + * SIB1 : ims-EmergencySupport-r9 + * If device is registered on LTE, then this field indicates (a). + * In case of limited service on LTE this field indicates (b). + */ + boolean isEmcBearerSupported; +} diff --git a/radio/aidl/android/hardware/radio/NeighboringCell.aidl b/radio/aidl/android/hardware/radio/NeighboringCell.aidl new file mode 100644 index 0000000000..b48a2d4e51 --- /dev/null +++ b/radio/aidl/android/hardware/radio/NeighboringCell.aidl @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable NeighboringCell { + /** + * Combination of LAC and cell ID in 32 bits in GSM. Upper 16 bits is LAC and lower 16 bits is + * CID (as described in TS 27.005). + */ + String cid; + /** + * Received RSSI in GSM, level index of CPICH Received Signal Code Power in UMTS + */ + int rssi; +} diff --git a/radio/aidl/android/hardware/radio/NetworkScanRequest.aidl b/radio/aidl/android/hardware/radio/NetworkScanRequest.aidl new file mode 100644 index 0000000000..d495a9de58 --- /dev/null +++ b/radio/aidl/android/hardware/radio/NetworkScanRequest.aidl @@ -0,0 +1,80 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.RadioAccessSpecifier; + +@VintfStability +parcelable NetworkScanRequest { + const int INCREMENTAL_RESULTS_PREIODICITY_RANGE_MIN = 1; + const int INCREMENTAL_RESULTS_PREIODICITY_RANGE_MAX = 10; + + const int MAX_SEARCH_TIME_RANGE_MIN = 60; + const int MAX_SEARCH_TIME_RANGE_MAX = 3600; + + const int SCAN_INTERVAL_RANGE_MIN = 5; + const int SCAN_INTERVAL_RANGE_MAX = 300; + + /** + * Performs the scan only once + */ + const int SCAN_TYPE_ONE_SHOT = 0; + /** + * Performs the scan periodically until cancelled + */ + const int SCAN_TYPE_PERIODIC = 1; + + /** + * Values are SCAN_TYPE_ + */ + int type; + /** + * Time interval in seconds between the completion of one scan and the start of a subsequent + * scan. Implementations may ignore this field unless the 'type' is 'PERIODIC'. + * Range: SCAN_INTERVAL_RANGE_MIN to SCAN_INTERVAL_RANGE_MAX. + */ + int interval; + /** + * Networks with bands/channels to scan. + * Maximum length of the vector is RadioConst:RADIO_ACCESS_SPECIFIER_MAX_SIZE. + */ + RadioAccessSpecifier[] specifiers; + /** + * Maximum duration of the periodic search (in seconds). If the search lasts maxSearchTime, it + * must be terminated. Range: MAX_SEARCH_TIME_RANGE_MIN to MAX_SEARCH_TIME_RANGE_MAX + */ + int maxSearchTime; + /** + * Whether the modem must report incremental results of the network scan to the client. + * FALSE – Incremental results must not be reported. + * TRUE – Incremental must be reported. + */ + boolean incrementalResults; + /** + * Indicates the periodicity with which the modem must report incremental results to the client + * (in seconds). Implementations may ignore this value if the incremental results are not + * requested. This value must be less than or equal to maxSearchTime. + * Range: INCREMENTAL_RESULTS_PREIODICITY_RANGE_MIN to INCREMENTAL_RESULTS_PREIODICITY_RANGE_MAX + */ + int incrementalResultsPeriodicity; + /** + * Describes the List of PLMN ids (MCC-MNC). If any PLMN of this list is found, search must end + * at that point and results with all PLMN found until that point should be sent as response. + * If the list is not sent, search to be completed until end and all PLMNs found to be reported. + */ + String[] mccMncs; +} diff --git a/radio/aidl/android/hardware/radio/NetworkScanResult.aidl b/radio/aidl/android/hardware/radio/NetworkScanResult.aidl new file mode 100644 index 0000000000..dd71d11627 --- /dev/null +++ b/radio/aidl/android/hardware/radio/NetworkScanResult.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CellInfo; +import android.hardware.radio.RadioError; + +@VintfStability +parcelable NetworkScanResult { + /** + * The result contains a part of the scan results. + */ + const int SCAN_STATUS_PARTIAL = 1; + /** + * The result contains the last part of the scan results. + */ + const int SCAN_STATUS_COMPLETE = 2; + + /** + * The status of the scan. + * Values are SCAN_STATUS_ + */ + int status; + /** + * The error code of the incremental result. + */ + RadioError error; + /** + * List of network information as CellInfo. + */ + CellInfo[] networkInfos; +} diff --git a/radio/aidl/android/hardware/radio/NgranBands.aidl b/radio/aidl/android/hardware/radio/NgranBands.aidl new file mode 100644 index 0000000000..7887011c77 --- /dev/null +++ b/radio/aidl/android/hardware/radio/NgranBands.aidl @@ -0,0 +1,84 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * NGRAN bands up to V16.5.0 + */ +@VintfStability +@Backing(type="int") +enum NgranBands { + /** + * 3GPP TS 38.101-1, Table 5.2-1: FR1 bands + */ + BAND_1 = 1, + BAND_2 = 2, + BAND_3 = 3, + BAND_5 = 5, + BAND_7 = 7, + BAND_8 = 8, + BAND_12 = 12, + BAND_14 = 14, + BAND_18 = 18, + BAND_20 = 20, + BAND_25 = 25, + BAND_26 = 26, + BAND_28 = 28, + BAND_29 = 29, + BAND_30 = 30, + BAND_34 = 34, + BAND_38 = 38, + BAND_39 = 39, + BAND_40 = 40, + BAND_41 = 41, + BAND_46 = 46, + BAND_48 = 48, + BAND_50 = 50, + BAND_51 = 51, + BAND_53 = 53, + BAND_65 = 65, + BAND_66 = 66, + BAND_70 = 70, + BAND_71 = 71, + BAND_74 = 74, + BAND_75 = 75, + BAND_76 = 76, + BAND_77 = 77, + BAND_78 = 78, + BAND_79 = 79, + BAND_80 = 80, + BAND_81 = 81, + BAND_82 = 82, + BAND_83 = 83, + BAND_84 = 84, + BAND_86 = 86, + BAND_89 = 89, + BAND_90 = 90, + BAND_91 = 91, + BAND_92 = 92, + BAND_93 = 93, + BAND_94 = 94, + BAND_95 = 95, + BAND_96 = 96, + /** + * 3GPP TS 38.101-2, Table 5.2-1: FR2 bands + */ + BAND_257 = 257, + BAND_258 = 258, + BAND_260 = 260, + BAND_261 = 261, +} diff --git a/radio/aidl/android/hardware/radio/NrDualConnectivityState.aidl b/radio/aidl/android/hardware/radio/NrDualConnectivityState.aidl new file mode 100644 index 0000000000..52bd048469 --- /dev/null +++ b/radio/aidl/android/hardware/radio/NrDualConnectivityState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * NR Dual connectivity state + */ +@VintfStability +@Backing(type="byte") +enum NrDualConnectivityState { + /** + * Enable NR dual connectivity. Enabled state does not mean dual connectivity is active. + * It means device is allowed to connect to both primary and secondary. + */ + ENABLE = 1, + /** + * Disable NR dual connectivity. Disabled state does not mean secondary cell is released. + * Modem will release it only if current bearer is released to avoid radio link failure. + */ + DISABLE = 2, + /** + * Disable NR dual connectivity and force secondary cell to be released if dual connectivity + * was active. This may result in radio link failure. + */ + DISABLE_IMMEDIATE = 3, +} diff --git a/radio/aidl/android/hardware/radio/NrIndicators.aidl b/radio/aidl/android/hardware/radio/NrIndicators.aidl new file mode 100644 index 0000000000..2a1dfece78 --- /dev/null +++ b/radio/aidl/android/hardware/radio/NrIndicators.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * The parameters of NR 5G Non-Standalone. + */ +@VintfStability +parcelable NrIndicators { + /** + * Indicates that if E-UTRA-NR Dual Connectivity (EN-DC) is supported by the primary serving + * cell. True the primary serving cell is LTE cell and the plmn-InfoList-r15 is present in SIB2 + * and at least one bit in this list is true, otherwise this value should be false. + * Reference: 3GPP TS 36.331 v15.2.2 6.3.1 System information blocks. + */ + boolean isEndcAvailable; + /** + * True if use of dual connectivity with NR is restricted. + * Reference: 3GPP TS 24.301 v15.03 section 9.3.3.12A. + */ + boolean isDcNrRestricted; + /** + * True if the bit N is in the PLMN-InfoList-r15 is true and the selected PLMN is present in + * plmn-IdentityList at position N. + * Reference: 3GPP TS 36.331 v15.2.2 section 6.3.1 PLMN-InfoList-r15. + * 3GPP TS 36.331 v15.2.2 section 6.2.2 SystemInformationBlockType1 message. + */ + boolean isNrAvailable; +} diff --git a/radio/aidl/android/hardware/radio/NrQos.aidl b/radio/aidl/android/hardware/radio/NrQos.aidl new file mode 100644 index 0000000000..d791eefe80 --- /dev/null +++ b/radio/aidl/android/hardware/radio/NrQos.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.QosBandwidth; + +/** + * 5G Quality of Service parameters as per 3gpp spec 24.501 sec 9.11.4.12 + */ +@VintfStability +parcelable NrQos { + const byte FLOW_ID_RANGE_MIN = 1; + const byte FLOW_ID_RANGE_MAX = 63; + + /** + * 5G QOS Identifier (5QI), see 3GPP TS 24.501 and 23.501. The allowed values are standard + * values (1-9, 65-68, 69-70, 75, 79-80, 82-85) defined in the spec and operator specific values + * in the range 128-254. + */ + int fiveQi; + QosBandwidth downlink; + QosBandwidth uplink; + /** + * QOS flow identifier of the QOS flow description in the range + * (FLOW_ID_RANGE_MIN, FLOW_ID_RANGE_MAX) + */ + byte qfi; + char averagingWindowMs; +} diff --git a/radio/aidl/android/hardware/radio/NrSignalStrength.aidl b/radio/aidl/android/hardware/radio/NrSignalStrength.aidl new file mode 100644 index 0000000000..40c6c3ebe0 --- /dev/null +++ b/radio/aidl/android/hardware/radio/NrSignalStrength.aidl @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable NrSignalStrength { + /** + * SS reference signal received power, multiplied by -1. + * Reference: 3GPP TS 38.215. + * Range [44, 140], INT_MAX means invalid/unreported. + */ + int ssRsrp; + /** + * SS reference signal received quality, multiplied by -1. + * Reference: 3GPP TS 38.215, 3GPP TS 38.133 section 10. + * Range [-20 dB, 43 dB], INT_MAX means invalid/unreported. + */ + int ssRsrq; + /** + * SS signal-to-noise and interference ratio. + * Reference: 3GPP TS 38.215 section 5.1.*, 3GPP TS 38.133 section 10.1.16.1. + * Range [-23, 40], INT_MAX means invalid/unreported. + */ + int ssSinr; + /** + * CSI reference signal received power, multiplied by -1. + * Reference: 3GPP TS 38.215. + * Range [44, 140], INT_MAX means invalid/unreported. + */ + int csiRsrp; + /** + * CSI reference signal received quality, multiplied by -1. + * Reference: 3GPP TS 38.215. + * Range [3, 20], INT_MAX means invalid/unreported. + */ + int csiRsrq; + /** + * CSI signal-to-noise and interference ratio. + * Reference: 3GPP TS 138.215 section 5.1.*, 3GPP TS 38.133 section 10.1.16.1. + * Range [-23, 40], INT_MAX means invalid/unreported. + */ + int csiSinr; + /** + * CSI channel quality indicator (CQI) table index. There are multiple CQI tables. + * The definition of CQI in each table is different. + * Reference: 3GPP TS 138.214 section 5.2.2.1. + * Range [1, 3], INT_MAX means invalid/unreported. + */ + int csiCqiTableIndex; + /** + * CSI channel quality indicator (CQI) for all subbands. If the CQI report is for the entire + * wideband, a single CQI index is provided. If the CQI report is for all subbands, one CQI + * index is provided for each subband, in ascending order of subband index. If CQI is not + * available, the CQI report is empty. + * Reference: 3GPP TS 138.214 section 5.2.2.1. + * Range [0, 15], 0xFF means invalid/unreported. + */ + byte[] csiCqiReport; +} diff --git a/radio/aidl/android/hardware/radio/NrVopsInfo.aidl b/radio/aidl/android/hardware/radio/NrVopsInfo.aidl new file mode 100644 index 0000000000..0d01aaba3f --- /dev/null +++ b/radio/aidl/android/hardware/radio/NrVopsInfo.aidl @@ -0,0 +1,100 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * Type to define the NR specific network capabilities for voice over PS including emergency and + * normal voice calls. + */ +@VintfStability +parcelable NrVopsInfo { + /** + * Emergency services not supported + */ + const byte EMC_INDICATOR_NOT_SUPPORTED = 0; + /** + * Emergency services supported in NR connected to 5GCN only + */ + const byte EMC_INDICATOR_NR_CONNECTED_TO_5GCN = 1; + /** + * Emergency services supported in E-UTRA connected to 5GCN only + */ + const byte EMC_INDICATOR_EUTRA_CONNECTED_TO_5GCN = 2; + /** + * Emergency services supported in NR connected to 5GCN and E-UTRA connected to 5GCN + */ + const byte EMC_INDICATOR_BOTH_NR_EUTRA_CONNECTED_TO_5GCN = 3; + + /** + * Emergency services fallback not supported + */ + const byte EMF_INDICATOR_NOT_SUPPORTED = 0; + /** + * Emergency services fallback supported in NR connected to 5GCN only + */ + const byte EMF_INDICATOR_NR_CONNECTED_TO_5GCN = 1; + /** + * Emergency services fallback supported in E-UTRA connected to 5GCN only + */ + const byte EMF_INDICATOR_EUTRA_CONNECTED_TO_5GCN = 2; + /** + * Emergency services fallback supported in NR connected to 5GCN and E-UTRA connected to 5GCN. + */ + const byte EMF_INDICATOR_BOTH_NR_EUTRA_CONNECTED_TO_5GCN = 3; + + /** + * IMS voice over PS session not supported + */ + const byte VOPS_INDICATOR_VOPS_NOT_SUPPORTED = 0; + /** + * IMS voice over PS session supported over 3GPP access + */ + const byte VOPS_INDICATOR_VOPS_OVER_3GPP = 1; + /** + * IMS voice over PS session supported over non-3GPP access + */ + const byte VOPS_INDICATOR_VOPS_OVER_NON_3GPP = 2; + + /** + * This indicates if the camped network supports VoNR services, and what kind of services + * it supports. This information is received from NR network during NR NAS registration + * procedure through NR REGISTRATION ACCEPT. + * Refer 3GPP 24.501 EPS 5GS network feature support -> IMS VoPS + * Values are VOPS_INDICATOR + */ + byte vopsSupported; + /** + * This indicates if the camped network supports VoNR emergency service. This information + * is received from NR network through two sources: + * a. During NR NAS registration procedure through NR REGISTRATION ACCEPT. + * Refer 3GPP 24.501 EPS 5GS network feature support -> EMC + * b. In case the device is not registered on the network. + * Refer 3GPP 38.331 SIB1 : ims-EmergencySupport + * If device is registered on NR, then this field indicates whether the cell + * supports IMS emergency bearer services for UEs in limited service mode. + * Values are EMC_INDICATOR_ + */ + byte emcSupported; + /** + * This indicates if the camped network supports VoNR emergency service fallback. This + * information is received from NR network during NR NAS registration procedure through + * NR REGISTRATION ACCEPT. + * Refer 3GPP 24.501 EPS 5GS network feature support -> EMF + * Values are EMF_INDICATOR_ from TS 24.501 sec 9.10.3.5. + */ + byte emfSupported; +} diff --git a/radio/aidl/android/hardware/radio/NvItem.aidl b/radio/aidl/android/hardware/radio/NvItem.aidl new file mode 100644 index 0000000000..0d4f79f150 --- /dev/null +++ b/radio/aidl/android/hardware/radio/NvItem.aidl @@ -0,0 +1,191 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum NvItem { + /** + * CDMA radio and account information (items 1-10) + * CDMA MEID (hex) + */ + CDMA_MEID = 1, + /** + * CDMA MIN (MSID) + */ + CDMA_MIN = 2, + /** + * CDMA MDN + */ + CDMA_MDN = 3, + /** + * CDMA access overload control + */ + CDMA_ACCOLC = 4, + /** + * Carrier device provisioning (items 11-30) + * Device MSL + */ + DEVICE_MSL = 11, + /** + * RTN reconditioned status + */ + RTN_RECONDITIONED_STATUS = 12, + /** + * RTN activation date + */ + RTN_ACTIVATION_DATE = 13, + /** + * RTN life timer + */ + RTN_LIFE_TIMER = 14, + /** + * RTN life calls + */ + RTN_LIFE_CALLS = 15, + /** + * RTN life data TX + */ + RTN_LIFE_DATA_TX = 16, + /** + * RTN life data RX + */ + RTN_LIFE_DATA_RX = 17, + /** + * HFA in progress + */ + OMADM_HFA_LEVEL = 18, + /** + * Mobile IP profile information (items 31-50) + * NAI realm + */ + MIP_PROFILE_NAI = 31, + /** + * MIP home address + */ + MIP_PROFILE_HOME_ADDRESS = 32, + /** + * AAA auth + */ + MIP_PROFILE_AAA_AUTH = 33, + /** + * HA auth + */ + MIP_PROFILE_HA_AUTH = 34, + /** + * Primary HA address + */ + MIP_PROFILE_PRI_HA_ADDR = 35, + /** + * Secondary HA address + */ + MIP_PROFILE_SEC_HA_ADDR = 36, + /** + * Reverse TUN preference + */ + MIP_PROFILE_REV_TUN_PREF = 37, + /** + * HA SPI + */ + MIP_PROFILE_HA_SPI = 38, + /** + * AAA SPI + */ + MIP_PROFILE_AAA_SPI = 39, + /** + * HA shared secret + */ + MIP_PROFILE_MN_HA_SS = 40, + /** + * AAA shared secret + */ + MIP_PROFILE_MN_AAA_SS = 41, + /** + * CDMA network and band config (items 51-70) + * CDMA PRL version + */ + CDMA_PRL_VERSION = 51, + /** + * CDMA band class 10 + */ + CDMA_BC10 = 52, + /** + * CDMA band class 14 + */ + CDMA_BC14 = 53, + /** + * CDMA SO68 + */ + CDMA_SO68 = 54, + /** + * CDMA SO73 COP0 + */ + CDMA_SO73_COP0 = 55, + /** + * CDMA SO73 COP1-7 + */ + CDMA_SO73_COP1TO7 = 56, + /** + * CDMA 1X Advanced enabled + */ + CDMA_1X_ADVANCED_ENABLED = 57, + /** + * CDMA eHRPD enabled + */ + CDMA_EHRPD_ENABLED = 58, + /** + * CDMA eHRPD forced + */ + CDMA_EHRPD_FORCED = 59, + /** + * LTE network and band config (items 71-90) + * LTE band 25 enabled + */ + LTE_BAND_ENABLE_25 = 71, + /** + * LTE band 26 enabled + */ + LTE_BAND_ENABLE_26 = 72, + /** + * LTE band 41 enabled + */ + LTE_BAND_ENABLE_41 = 73, + /** + * LTE band 25 scan priority + */ + LTE_SCAN_PRIORITY_25 = 74, + /** + * LTE band 26 scan priority + */ + LTE_SCAN_PRIORITY_26 = 75, + /** + * LTE band 41 scan priority + */ + LTE_SCAN_PRIORITY_41 = 76, + /** + * LTE hidden band 25 priority + */ + LTE_HIDDEN_BAND_PRIORITY_25 = 77, + /** + * LTE hidden band 26 priority + */ + LTE_HIDDEN_BAND_PRIORITY_26 = 78, + /** + * LTE hidden band 41 priority + */ + LTE_HIDDEN_BAND_PRIORITY_41 = 79, +} diff --git a/radio/aidl/android/hardware/radio/NvWriteItem.aidl b/radio/aidl/android/hardware/radio/NvWriteItem.aidl new file mode 100644 index 0000000000..f3061612b4 --- /dev/null +++ b/radio/aidl/android/hardware/radio/NvWriteItem.aidl @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.NvItem; + +@VintfStability +parcelable NvWriteItem { + NvItem itemId; + String value; +} diff --git a/radio/aidl/android/hardware/radio/OperatorInfo.aidl b/radio/aidl/android/hardware/radio/OperatorInfo.aidl new file mode 100644 index 0000000000..e0234fca8a --- /dev/null +++ b/radio/aidl/android/hardware/radio/OperatorInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable OperatorInfo { + const int STATUS_UNKNOWN = 0; + const int STATUS_AVAILABLE = 1; + const int STATUS_CURRENT = 2; + const int STATUS_FORBIDDEN = 3; + + /** + * Long alpha ONS or EONS + */ + String alphaLong; + /** + * Short alpha ONS or EONS + */ + String alphaShort; + /** + * 5 or 6 digit numeric code (MCC + MNC) + */ + String operatorNumeric; + /** + * Values are STATUS_ + */ + int status; +} diff --git a/radio/aidl/android/hardware/radio/OsAppId.aidl b/radio/aidl/android/hardware/radio/OsAppId.aidl new file mode 100644 index 0000000000..57dfc80168 --- /dev/null +++ b/radio/aidl/android/hardware/radio/OsAppId.aidl @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * This struct represents the OsId + OsAppId as defined in TS 24.526 Section 5.2 + */ +@VintfStability +parcelable OsAppId { + /** + * Byte array representing OsId + OsAppId. The minimum length of the array is 18 and maximum + * length is 272 (16 bytes for OsId + 1 byte for OsAppId length + up to 255 bytes for OsAppId). + */ + byte[] osAppId; +} diff --git a/radio/aidl/android/hardware/radio/PbReceivedStatus.aidl b/radio/aidl/android/hardware/radio/PbReceivedStatus.aidl new file mode 100644 index 0000000000..44ed4d95e5 --- /dev/null +++ b/radio/aidl/android/hardware/radio/PbReceivedStatus.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * Enum representing the status of the received PB indication. + */ +@VintfStability +@Backing(type="byte") +enum PbReceivedStatus { + /** + * Indicates that retrieval is fine. + */ + PB_RECEIVED_OK = 1, + /** + * Indicates that an error happened. In general, the process can't be restored soon. + */ + PB_RECEIVED_ERROR = 2, + /** + * Indicates that the process is interrupted. In this case, the modem might need resources and + * interrupt the current process, or it is timed out to receive all indications, and client can + * retry soon. + */ + PB_RECEIVED_ABORT = 3, + /** + * Indicates that the whole process is finished with a full chunk of phonebook data, meaning + * this is the last indication with the remaining data. + */ + PB_RECEIVED_FINAL = 4, +} diff --git a/radio/aidl/android/hardware/radio/PcoDataInfo.aidl b/radio/aidl/android/hardware/radio/PcoDataInfo.aidl new file mode 100644 index 0000000000..7b600e6622 --- /dev/null +++ b/radio/aidl/android/hardware/radio/PcoDataInfo.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable PcoDataInfo { + /** + * Context ID, uniquely identifies this call + */ + int cid; + /** + * One of the PDP_type values in TS 27.007 section 10.1.1. For example, "IP", "IPV6", "IPV4V6" + */ + String bearerProto; + /** + * The protocol ID for this box. Note that only IDs from FF00H - FFFFH are accepted. + * If more than one is included from the network, multiple calls must be made to send + * all of them. + */ + int pcoId; + /** + * Carrier-defined content. It is binary, opaque and loosely defined in LTE Layer 3 spec 24.008 + */ + byte[] contents; +} diff --git a/radio/aidl/android/hardware/radio/PdpProtocolType.aidl b/radio/aidl/android/hardware/radio/PdpProtocolType.aidl new file mode 100644 index 0000000000..e74b1e3da2 --- /dev/null +++ b/radio/aidl/android/hardware/radio/PdpProtocolType.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * Specifies the type of packet data protocol which is defined in TS 27.007 section 10.1.1. + */ +@VintfStability +@Backing(type="int") +enum PdpProtocolType { + /** + * Unknown protocol + */ + UNKNOWN = -1, + /** + * Internet protocol + */ + IP = 0, + /** + * Internet protocol, version 6 + */ + IPV6 = 1, + /** + * Virtual PDP type introduced to handle dual IP stack UE capability. + */ + IPV4V6 = 2, + /** + * Point to point protocol + */ + PPP = 3, + /** + * Transfer of Non-IP data to external packet data network + */ + NON_IP = 4, + /** + * Transfer of Unstructured data to the Data Network via N6 + */ + UNSTRUCTURED = 5, +} diff --git a/radio/aidl/android/hardware/radio/PersoSubstate.aidl b/radio/aidl/android/hardware/radio/PersoSubstate.aidl new file mode 100644 index 0000000000..93b2af53c4 --- /dev/null +++ b/radio/aidl/android/hardware/radio/PersoSubstate.aidl @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * Additional personalization categories in addition to those specified in 3GPP TS 22.022 and + * 3GPP2 C.S0068-0. + */ +@VintfStability +@Backing(type="int") +enum PersoSubstate { + /** + * Initial state + */ + UNKNOWN, + /** + * In between each lock transition + */ + IN_PROGRESS, + /** + * When either SIM or RUIM Perso is finished since each app must only have 1 active perso + * involved. + */ + READY, + SIM_NETWORK, + SIM_NETWORK_SUBSET, + SIM_CORPORATE, + SIM_SERVICE_PROVIDER, + SIM_SIM, + /** + * The corresponding perso lock is blocked + */ + SIM_NETWORK_PUK, + SIM_NETWORK_SUBSET_PUK, + SIM_CORPORATE_PUK, + SIM_SERVICE_PROVIDER_PUK, + SIM_SIM_PUK, + RUIM_NETWORK1, + RUIM_NETWORK2, + RUIM_HRPD, + RUIM_CORPORATE, + RUIM_SERVICE_PROVIDER, + RUIM_RUIM, + /** + * The corresponding perso lock is blocked + */ + RUIM_NETWORK1_PUK, + RUIM_NETWORK2_PUK, + RUIM_HRPD_PUK, + RUIM_CORPORATE_PUK, + RUIM_SERVICE_PROVIDER_PUK, + RUIM_RUIM_PUK, + /** + * The device is personalized using the content of the Service Provider Name (SPN) in the SIM + * card. + */ + SIM_SPN, + SIM_SPN_PUK, + /** + * Service Provider and Equivalent Home PLMN. The device is personalized using both the content + * of the GID1 (equivalent to service provider personalization) and the content of the + * Equivalent Home PLMN (EHPLMN) in the SIM card. If the GID1 in the SIM is absent, then just + * the content of the Equivalent Home PLMN is matched. + */ + SIM_SP_EHPLMN, + SIM_SP_EHPLMN_PUK, + /** + * Device is personalized using the first digits of the ICCID of the SIM card. + */ + SIM_ICCID, + SIM_ICCID_PUK, + /** + * Device is personalized using the content of the IMPI in the ISIM. + */ + SIM_IMPI, + SIM_IMPI_PUK, + /** + * Network Subset and Service Provider. Device is personalized using both the content of GID1 + * (equivalent to service provider personalization) and the first digits of the IMSI (equivalent + * to network subset personalization). + */ + SIM_NS_SP, + SIM_NS_SP_PUK, +} diff --git a/radio/aidl/android/hardware/radio/PhoneRestrictedState.aidl b/radio/aidl/android/hardware/radio/PhoneRestrictedState.aidl new file mode 100644 index 0000000000..5f5f1b8a39 --- /dev/null +++ b/radio/aidl/android/hardware/radio/PhoneRestrictedState.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum PhoneRestrictedState { + /** + * No restriction at all including voice/SMS/USSD/SS/AV64 and packet data. + */ + NONE = 0x00, + /** + * Block emergency call due to restriction. But allow all normal voice/SMS/USSD/SS/AV64. + */ + CS_EMERGENCY = 0x01, + /** + * Block all normal voice/SMS/USSD/SS/AV64 due to restriction. Only Emergency call allowed. + */ + CS_NORMAL = 0x02, + /** + * Block all voice/SMS/USSD/SS/AV64 including emergency call due to restriction. + */ + CS_ALL = 0x04, + /** + * Block packet data access due to restriction. + */ + PS_ALL = 0x10, +} diff --git a/radio/aidl/android/hardware/radio/PhonebookCapacity.aidl b/radio/aidl/android/hardware/radio/PhonebookCapacity.aidl new file mode 100644 index 0000000000..c14141114b --- /dev/null +++ b/radio/aidl/android/hardware/radio/PhonebookCapacity.aidl @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable PhonebookCapacity { + /** + * Maximum number of ADN records possible in the SIM phonebook. Needs to be non-negative. + */ + int maxAdnRecords; + /** + * Used ADN records in the SIM phonebook. Needs to be non-negative. + */ + int usedAdnRecords; + /** + * Maximum email records possible in the SIM phonebook. Needs to be non-negative. + */ + int maxEmailRecords; + /** + * Used email records in the SIM phonebook. Needs to be non-negative. + */ + int usedEmailRecords; + /** + * Maximum additional number records possible in the SIM phonebook. Needs to be non-negative. + */ + int maxAdditionalNumberRecords; + /** + * Used additional number records in the SIM phonebook. Needs to be non-negative. + */ + int usedAdditionalNumberRecords; + /** + * Maximum name length possible in the SIM phonebook. Needs to be non-negative. + */ + int maxNameLen; + /** + * Maximum number length possible in the SIM phonebook. Needs to be non-negative. + */ + int maxNumberLen; + /** + * Maximum email length possible in the SIM phonebook. Needs to be non-negative. + */ + int maxEmailLen; + /** + * Maximum additional number length possible in the SIM phonebook. Needs to be non-negative. + */ + int maxAdditionalNumberLen; +} diff --git a/radio/aidl/android/hardware/radio/PhonebookRecordInfo.aidl b/radio/aidl/android/hardware/radio/PhonebookRecordInfo.aidl new file mode 100644 index 0000000000..eb0c880d26 --- /dev/null +++ b/radio/aidl/android/hardware/radio/PhonebookRecordInfo.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * Phonebook-record-information specified by EF_ADN (Abbreviated dialing numbers) record of SIM + * as per 3GPP spec 31.102 v15 Section-4.4.2.3. + */ +@VintfStability +parcelable PhonebookRecordInfo { + /** + * Record index. 0 is used to insert a record + */ + int recordId; + /** + * Alpha identifier, empty string if no value + */ + String name; + /** + * Dialling number, empty string if no value + */ + String number; + /** + * Email addresses + */ + String[] emails; + /** + * Additional numbers + */ + String[] additionalNumbers; +} diff --git a/radio/aidl/android/hardware/radio/PhysicalChannelConfig.aidl b/radio/aidl/android/hardware/radio/PhysicalChannelConfig.aidl new file mode 100644 index 0000000000..05b31e5dbf --- /dev/null +++ b/radio/aidl/android/hardware/radio/PhysicalChannelConfig.aidl @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CellConnectionStatus; +import android.hardware.radio.PhysicalChannelConfigBand; +import android.hardware.radio.RadioTechnology; + +@VintfStability +parcelable PhysicalChannelConfig { + /** + * Connection status for cell. Valid values are PRIMARY_SERVING and SECONDARY_SERVING + */ + CellConnectionStatus status; + /** + * The radio technology for this physical channel + */ + RadioTechnology rat; + /** + * Downlink Absolute Radio Frequency Channel Number + */ + int downlinkChannelNumber; + /** + * Uplink Absolute Radio Frequency Channel Number + */ + int uplinkChannelNumber; + /** + * Downlink cell bandwidth, in kHz + */ + int cellBandwidthDownlinkKhz; + /** + * Uplink cell bandwidth, in kHz + */ + int cellBandwidthUplinkKhz; + /** + * A list of data calls mapped to this physical channel. The context id must match the cid of + * SetupDataCallResult. An empty list means the physical channel has no data call mapped to it. + */ + int[] contextIds; + /** + * The physical cell identifier for this cell. + * In UTRAN, this value is primary scrambling code. The range is [0, 511]. + * Reference: 3GPP TS 25.213 section 5.2.2. + * In EUTRAN, this value is physical layer cell identity. The range is [0, 503]. + * Reference: 3GPP TS 36.211 section 6.11. + * In NGRAN, this value is physical layer cell identity. The range is [0, 1007]. + * Reference: 3GPP TS 38.211 section 7.4.2.1. + */ + int physicalCellId; + /** + * The frequency band to scan. + */ + PhysicalChannelConfigBand band; +} diff --git a/radio/aidl/android/hardware/radio/PhysicalChannelConfigBand.aidl b/radio/aidl/android/hardware/radio/PhysicalChannelConfigBand.aidl new file mode 100644 index 0000000000..953b1c4b28 --- /dev/null +++ b/radio/aidl/android/hardware/radio/PhysicalChannelConfigBand.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.EutranBands; +import android.hardware.radio.GeranBands; +import android.hardware.radio.NgranBands; +import android.hardware.radio.UtranBands; + +@VintfStability +union PhysicalChannelConfigBand { + boolean noinit; + /** + * Valid only if radioAccessNetwork = GERAN. + */ + GeranBands geranBand; + /** + * Valid only if radioAccessNetwork = UTRAN. + */ + UtranBands utranBand; + /** + * Valid only if radioAccessNetwork = EUTRAN. + */ + EutranBands eutranBand; + /** + * Valid only if radioAccessNetwork = NGRAN. + */ + NgranBands ngranBand; +} diff --git a/radio/aidl/android/hardware/radio/PinState.aidl b/radio/aidl/android/hardware/radio/PinState.aidl new file mode 100644 index 0000000000..cb42ff232b --- /dev/null +++ b/radio/aidl/android/hardware/radio/PinState.aidl @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum PinState { + UNKNOWN, + ENABLED_NOT_VERIFIED, + ENABLED_VERIFIED, + DISABLED, + ENABLED_BLOCKED, + ENABLED_PERM_BLOCKED, +} diff --git a/radio/aidl/android/hardware/radio/PortRange.aidl b/radio/aidl/android/hardware/radio/PortRange.aidl new file mode 100644 index 0000000000..2b67e0eb2a --- /dev/null +++ b/radio/aidl/android/hardware/radio/PortRange.aidl @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * Defines range of ports. start and end are the first and last port numbers (inclusive) in the + * range. Both start and end are in PORT_RANGE_MIN to PORT_RANGE_MAX range. A single port shall + * be represented by the same start and end value. + */ +@VintfStability +parcelable PortRange { + const int PORT_RANGE_MIN = 20; + const int PORT_RANGE_MAX = 65535; + + int start; + int end; +} diff --git a/radio/aidl/android/hardware/radio/PreferredNetworkType.aidl b/radio/aidl/android/hardware/radio/PreferredNetworkType.aidl new file mode 100644 index 0000000000..7ca38c6a79 --- /dev/null +++ b/radio/aidl/android/hardware/radio/PreferredNetworkType.aidl @@ -0,0 +1,114 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum PreferredNetworkType { + /** + * GSM/WCDMA (WCDMA preferred) + */ + GSM_WCDMA, + /** + * GSM only + */ + GSM_ONLY, + /** + * WCDMA + */ + WCDMA, + /** + * GSM/WCDMA (auto mode, according to PRL) + */ + GSM_WCDMA_AUTO, + /** + * CDMA and EvDo (auto mode, according to PRL) + */ + CDMA_EVDO_AUTO, + /** + * CDMA only + */ + CDMA_ONLY, + /** + * EvDo only + */ + EVDO_ONLY, + /** + * GSM/WCDMA, CDMA, and EvDo (auto mode, according to PRL) + */ + GSM_WCDMA_CDMA_EVDO_AUTO, + /** + * LTE, CDMA and EvDo + */ + LTE_CDMA_EVDO, + /** + * LTE, GSM/WCDMA + */ + LTE_GSM_WCDMA, + /** + * LTE, CDMA, EvDo, GSM/WCDMA + */ + LTE_CMDA_EVDO_GSM_WCDMA, + /** + * LTE only + */ + LTE_ONLY, + /** + * LTE/WCDMA only + */ + LTE_WCDMA, + /** + * TD-SCDMA only + */ + TD_SCDMA_ONLY, + /** + * TD-SCDMA and WCDMA + */ + TD_SCDMA_WCDMA, + /** + * TD-SCDMA and LTE + */ + TD_SCDMA_LTE, + /** + * TD-SCDMA and GSM + */ + TD_SCDMA_GSM, + /** + * TD-SCDMA,GSM and LTE + */ + TD_SCDMA_GSM_LTE, + /** + * TD-SCDMA, GSM/WCDMA + */ + TD_SCDMA_GSM_WCDMA, + /** + * TD-SCDMA, WCDMA and LTE + */ + TD_SCDMA_WCDMA_LTE, + /** + * TD-SCDMA, GSM/WCDMA and LTE + */ + TD_SCDMA_GSM_WCDMA_LTE, + /** + * TD-SCDMA, GSM/WCDMA, CDMA and EvDo + */ + TD_SCDMA_GSM_WCDMA_CDMA_EVDO_AUTO, + /** + * TD-SCDMA, LTE, CDMA, EvDo GSM/WCDMA + */ + TD_SCDMA_LTE_CDMA_EVDO_GSM_WCDMA, +} diff --git a/radio/aidl/android/hardware/radio/Qos.aidl b/radio/aidl/android/hardware/radio/Qos.aidl new file mode 100644 index 0000000000..0f84ad1406 --- /dev/null +++ b/radio/aidl/android/hardware/radio/Qos.aidl @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.EpsQos; +import android.hardware.radio.NrQos; + +/** + * EPS or NR QOS parameters + */ +@VintfStability +union Qos { + boolean noinit; + EpsQos eps; + NrQos nr; +} diff --git a/radio/aidl/android/hardware/radio/QosBandwidth.aidl b/radio/aidl/android/hardware/radio/QosBandwidth.aidl new file mode 100644 index 0000000000..344b796ed9 --- /dev/null +++ b/radio/aidl/android/hardware/radio/QosBandwidth.aidl @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable QosBandwidth { + /** + * Maximum bit rate possible on the bearer + */ + int maxBitrateKbps; + /** + * Minimum bit rate that is guaranteed to be provided by the network + */ + int guaranteedBitrateKbps; +} diff --git a/radio/aidl/android/hardware/radio/QosFilter.aidl b/radio/aidl/android/hardware/radio/QosFilter.aidl new file mode 100644 index 0000000000..8b126490b2 --- /dev/null +++ b/radio/aidl/android/hardware/radio/QosFilter.aidl @@ -0,0 +1,97 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.PortRange; +import android.hardware.radio.QosFilterIpsecSpi; +import android.hardware.radio.QosFilterIpv6FlowLabel; +import android.hardware.radio.QosFilterTypeOfService; + +/** + * See 3gpp 24.008 10.5.6.12 and 3gpp 24.501 9.11.4.13 + */ +@VintfStability +parcelable QosFilter { + const byte DIRECTION_DOWNLINK = 0; + const byte DIRECTION_UPLINK = 1; + const byte DIRECTION_BIDIRECTIONAL = 2; + + /** + * No protocol specified + */ + const byte PROTOCOL_UNSPECIFIED = -1; + /** + * Transmission Control Protocol + */ + const byte PROTOCOL_TCP = 6; + /** + * User Datagram Protocol + */ + const byte PROTOCOL_UDP = 17; + /** + * Encapsulating Security Payload Protocol + */ + const byte PROTOCOL_ESP = 50; + /** + * Authentication Header + */ + const byte PROTOCOL_AH = 51; + + /** + * Local and remote IP addresses, typically one IPv4 or one IPv6 or one of each. Addresses could + * be with optional "/" prefix length, e.g.,"192.0.1.3" or "192.0.1.11/16 2001:db8::1/64". + * If the prefix length is absent the addresses are assumed to be point to point with IPv4 + * having a prefix length of 32 and IPv6 128. + */ + String[] localAddresses; + String[] remoteAddresses; + /** + * Local port/range + */ + @nullable PortRange localPort; + /** + * Remote port/range + */ + @nullable PortRange remotePort; + /** + * Next header QoS protocol numbers defined by IANA, RFC 5237 + * Values are PROTOCOL_ + */ + byte protocol; + /** + * Type of service value or mask as defined in RFC 1349 + */ + QosFilterTypeOfService tos; + /** + * IPv6 flow label as defined in RFC 6437 + */ + QosFilterIpv6FlowLabel flowLabel; + /** + * IPSec security parameter index + */ + QosFilterIpsecSpi spi; + /** + * Filter direction + * Values are DIRECTION_ + */ + byte direction; + /** + * Specifies the order in which the filter needs to be matched. A lower numerical (positive) + * value has a higher precedence. Set -1 when unspecified. + */ + int precedence; +} diff --git a/radio/aidl/android/hardware/radio/QosFilterIpsecSpi.aidl b/radio/aidl/android/hardware/radio/QosFilterIpsecSpi.aidl new file mode 100644 index 0000000000..e213402bc1 --- /dev/null +++ b/radio/aidl/android/hardware/radio/QosFilterIpsecSpi.aidl @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +union QosFilterIpsecSpi { + boolean noinit; + int value; +} diff --git a/radio/aidl/android/hardware/radio/QosFilterIpv6FlowLabel.aidl b/radio/aidl/android/hardware/radio/QosFilterIpv6FlowLabel.aidl new file mode 100644 index 0000000000..d5c5a6c830 --- /dev/null +++ b/radio/aidl/android/hardware/radio/QosFilterIpv6FlowLabel.aidl @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +union QosFilterIpv6FlowLabel { + boolean noinit; + int value; +} diff --git a/radio/aidl/android/hardware/radio/QosFilterTypeOfService.aidl b/radio/aidl/android/hardware/radio/QosFilterTypeOfService.aidl new file mode 100644 index 0000000000..b91323cb43 --- /dev/null +++ b/radio/aidl/android/hardware/radio/QosFilterTypeOfService.aidl @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +union QosFilterTypeOfService { + boolean noinit; + byte value; +} diff --git a/radio/aidl/android/hardware/radio/QosSession.aidl b/radio/aidl/android/hardware/radio/QosSession.aidl new file mode 100644 index 0000000000..2620ac5af1 --- /dev/null +++ b/radio/aidl/android/hardware/radio/QosSession.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.Qos; +import android.hardware.radio.QosFilter; + +/** + * QOS session associated with a dedicated bearer + */ +@VintfStability +parcelable QosSession { + /** + * Unique ID of the QoS session within the data call + */ + int qosSessionId; + /** + * QOS attributes + */ + Qos qos; + /** + * List of QOS filters associated with this session + */ + QosFilter[] qosFilters; +} diff --git a/radio/aidl/android/hardware/radio/RadioAccessFamily.aidl b/radio/aidl/android/hardware/radio/RadioAccessFamily.aidl new file mode 100644 index 0000000000..719837dd56 --- /dev/null +++ b/radio/aidl/android/hardware/radio/RadioAccessFamily.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.RadioTechnology; + +@VintfStability +@Backing(type="int") +enum RadioAccessFamily { + UNKNOWN = 1 << RadioTechnology.UNKNOWN, + GPRS = 1 << RadioTechnology.GPRS, + EDGE = 1 << RadioTechnology.EDGE, + UMTS = 1 << RadioTechnology.UMTS, + IS95A = 1 << RadioTechnology.IS95A, + IS95B = 1 << RadioTechnology.IS95B, + ONE_X_RTT = 1 << RadioTechnology.ONE_X_RTT, + EVDO_0 = 1 << RadioTechnology.EVDO_0, + EVDO_A = 1 << RadioTechnology.EVDO_A, + HSDPA = 1 << RadioTechnology.HSDPA, + HSUPA = 1 << RadioTechnology.HSUPA, + HSPA = 1 << RadioTechnology.HSPA, + EVDO_B = 1 << RadioTechnology.EVDO_B, + EHRPD = 1 << RadioTechnology.EHRPD, + LTE = 1 << RadioTechnology.LTE, + HSPAP = 1 << RadioTechnology.HSPAP, + GSM = 1 << RadioTechnology.GSM, + TD_SCDMA = 1 << RadioTechnology.TD_SCDMA, + LTE_CA = 1 << RadioTechnology.LTE_CA, + /** + * 5G NR. This is only use in 5G Standalone mode. + */ + NR = 1 << RadioTechnology.NR, +} diff --git a/radio/aidl/android/hardware/radio/RadioAccessNetworks.aidl b/radio/aidl/android/hardware/radio/RadioAccessNetworks.aidl new file mode 100644 index 0000000000..3757233f24 --- /dev/null +++ b/radio/aidl/android/hardware/radio/RadioAccessNetworks.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum RadioAccessNetworks { + UNKNOWN, + /** + * GSM EDGE Radio Access Network + */ + GERAN, + /** + * Universal Terrestrial Radio Access Network + */ + UTRAN, + /** + * Evolved Universal Terrestrial Radio Access Network + */ + EUTRAN, + /** + * Next Generation Radio Access Network + */ + NGRAN, + /** + * CDMA 2000 Network + */ + CDMA2000, +} diff --git a/radio/aidl/android/hardware/radio/RadioAccessSpecifier.aidl b/radio/aidl/android/hardware/radio/RadioAccessSpecifier.aidl new file mode 100644 index 0000000000..889124a728 --- /dev/null +++ b/radio/aidl/android/hardware/radio/RadioAccessSpecifier.aidl @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.RadioAccessNetworks; +import android.hardware.radio.RadioAccessSpecifierBands; + +@VintfStability +parcelable RadioAccessSpecifier { + /** + * The type of network to scan. + */ + RadioAccessNetworks radioAccessNetwork; + /** + * The frequency bands to scan. Maximum length of the vector is 8. + */ + RadioAccessSpecifierBands bands; + /** + * The radio channels to scan as defined in 3GPP TS 25.101 and 36.101. + * Maximum length of the vector is 32. + */ + int[] channels; +} diff --git a/radio/aidl/android/hardware/radio/RadioAccessSpecifierBands.aidl b/radio/aidl/android/hardware/radio/RadioAccessSpecifierBands.aidl new file mode 100644 index 0000000000..dde46262dc --- /dev/null +++ b/radio/aidl/android/hardware/radio/RadioAccessSpecifierBands.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.EutranBands; +import android.hardware.radio.GeranBands; +import android.hardware.radio.NgranBands; +import android.hardware.radio.UtranBands; + +@VintfStability +union RadioAccessSpecifierBands { + boolean noinit; + /** + * Valid only if radioAccessNetwork = GERAN. + */ + GeranBands[] geranBands; + /** + * Valid only if radioAccessNetwork = UTRAN. + */ + UtranBands[] utranBands; + /** + * Valid only if radioAccessNetwork = EUTRAN. + */ + EutranBands[] eutranBands; + /** + * Valid only if radioAccessNetwork = NGRAN. + */ + NgranBands[] ngranBands; +} diff --git a/radio/aidl/android/hardware/radio/RadioBandMode.aidl b/radio/aidl/android/hardware/radio/RadioBandMode.aidl new file mode 100644 index 0000000000..e6064c4dad --- /dev/null +++ b/radio/aidl/android/hardware/radio/RadioBandMode.aidl @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum RadioBandMode { + /** + * "Unspecified" (selected by baseband automatically) + */ + BAND_MODE_UNSPECIFIED, + /** + * "EURO band" (GSM-900 / DCS-1800 / WCDMA-IMT-2000) + */ + BAND_MODE_EURO, + /** + * "US band" (GSM-850 / PCS-1900 / WCDMA-850 / WCDMA-PCS-1900) + */ + BAND_MODE_USA, + /** + * "JPN band" (WCDMA-800 / WCDMA-IMT-2000) + */ + BAND_MODE_JPN, + /** + * "AUS band" (GSM-900 / DCS-1800 / WCDMA-850 / WCDMA-IMT-2000) + */ + BAND_MODE_AUS, + /** + * "AUS band 2" (GSM-900 / DCS-1800 / WCDMA-850) + */ + BAND_MODE_AUS_2, + /** + * "Cellular" (800-MHz Band) + */ + BAND_MODE_CELL_800, + /** + * "PCS" (1900-MHz Band) + */ + BAND_MODE_PCS, + /** + * "Band Class 3" (JTACS Band) + */ + BAND_MODE_JTACS, + /** + * "Band Class 4" (Korean PCS Band) + */ + BAND_MODE_KOREA_PCS, + /** + * "Band Class 5" (450-MHz Band) + */ + BAND_MODE_5_450M, + /** + * "Band Class 6" (2-GMHz IMT2000 Band) + */ + BAND_MODE_IMT2000, + /** + * "Band Class 7" (Upper 700-MHz Band) + */ + BAND_MODE_7_700M_2, + /** + * "Band Class 8" (1800-MHz Band) + */ + BAND_MODE_8_1800M, + /** + * "Band Class 9" (900-MHz Band) + */ + BAND_MODE_9_900M, + /** + * "Band Class 10" (Secondary 800-MHz Band) + */ + BAND_MODE_10_800M_2, + /** + * "Band Class 11" (400-MHz European PAMR Band) + */ + BAND_MODE_EURO_PAMR_400M, + /** + * "Band Class 15" (AWS Band) + */ + BAND_MODE_AWS, + /** + * "Band Class 16" (US 2.5-GHz Band) + */ + BAND_MODE_USA_2500M, +} diff --git a/radio/aidl/android/hardware/radio/RadioCapability.aidl b/radio/aidl/android/hardware/radio/RadioCapability.aidl new file mode 100644 index 0000000000..a94e96abce --- /dev/null +++ b/radio/aidl/android/hardware/radio/RadioCapability.aidl @@ -0,0 +1,84 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.RadioAccessFamily; + +@VintfStability +parcelable RadioCapability { + /** + * Logical Modem's (LM) initial value and value after PHASE_FINISH completes. + */ + const int PHASE_CONFIGURED = 0; + /** + * PHASE_START is sent before PHASE_APPLY and indicates that an APPLY is forthcoming with these + * same parameters. + */ + const int PHASE_START = 1; + /** + * PHASE_APPLY is sent after all LM's receive PHASE_START and returned + * RadioCapability.status = 0. + * If any PHASE_START's fail, hal implementation must not send PHASE_APPLY. + */ + const int PHASE_APPLY = 2; + /** + * PHASE_UNSOL_RSP is sent with unsolicited radioCapability(). + */ + const int PHASE_UNSOL_RSP = 3; + /** + * PHASE_FINISH is sent after all commands have completed. If an error occurs in any previous + * command, the RadioAccessFamily and logicalModemUuid fields must be the prior configuration + * thus restoring the configuration to the previous value. An error returned by PHASE_FINISH + * will generally be ignored or may cause that LM to be removed from service. + */ + const int PHASE_FINISH = 4; + + /** + * This parameter has no meaning with PHASE_START, PHASE_APPLY. + */ + const int STATUS_NONE = 0; + /** + * Tell modem the action transaction of set radio capability was successful with PHASE_FINISH. + */ + const int STATUS_SUCCESS = 1; + /** + * Tell modem the action transaction of set radio capability failed with PHASE_FINISH. + */ + const int STATUS_FAIL = 2; + + /** + * Unique session value defined by framework returned in all "responses/unslo". + */ + int session; + /** + * Values are PHASE_ + */ + int phase; + /** + * 32-bit bitmap of RadioAccessFamily. + */ + RadioAccessFamily raf; + /** + * A UUID typically "com.xxxx.lmX" where X is the logical modem. + * RadioConst:MAX_UUID_LENGTH is the max length. + */ + String logicalModemUuid; + /** + * Values are STATUS_ + */ + int status; +} diff --git a/radio/aidl/android/hardware/radio/RadioConst.aidl b/radio/aidl/android/hardware/radio/RadioConst.aidl new file mode 100644 index 0000000000..2e1bcf04df --- /dev/null +++ b/radio/aidl/android/hardware/radio/RadioConst.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum RadioConst { + CDMA_ALPHA_INFO_BUFFER_LENGTH = 64, + CDMA_NUMBER_INFO_BUFFER_LENGTH = 81, + MAX_RILDS = 3, + MAX_SOCKET_NAME_LENGTH = 6, + MAX_CLIENT_ID_LENGTH = 2, + MAX_DEBUG_SOCKET_NAME_LENGTH = 12, + MAX_QEMU_PIPE_NAME_LENGTH = 11, + MAX_UUID_LENGTH = 64, + CARD_MAX_APPS = 8, + CDMA_MAX_NUMBER_OF_INFO_RECS = 10, + SS_INFO_MAX = 4, + NUM_SERVICE_CLASSES = 7, + NUM_TX_POWER_LEVELS = 5, + RADIO_ACCESS_SPECIFIER_MAX_SIZE = 8, + /** + * No P2 value is provided + */ + P2_CONSTANT_NO_P2 = -1, +} diff --git a/radio/aidl/android/hardware/radio/RadioError.aidl b/radio/aidl/android/hardware/radio/RadioError.aidl new file mode 100644 index 0000000000..a708d2bd9c --- /dev/null +++ b/radio/aidl/android/hardware/radio/RadioError.aidl @@ -0,0 +1,299 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum RadioError { + /** + * Success + */ + NONE = 0, + /** + * If radio did not start or is resetting + */ + RADIO_NOT_AVAILABLE = 1, + GENERIC_FAILURE = 2, + /** + * For PIN/PIN2 methods only + */ + PASSWORD_INCORRECT = 3, + /** + * Operation requires SIM PIN2 to be entered + */ + SIM_PIN2 = 4, + /** + * Operation requires SIM PUK2 to be entered + */ + SIM_PUK2 = 5, + REQUEST_NOT_SUPPORTED = 6, + CANCELLED = 7, + /** + * Data ops are not allowed during voice call on a Class C GPRS device + */ + OP_NOT_ALLOWED_DURING_VOICE_CALL = 8, + /** + * Data ops are not allowed before device registers in network + */ + OP_NOT_ALLOWED_BEFORE_REG_TO_NW = 9, + /** + * Fail to send SMS and need to retry + */ + SMS_SEND_FAIL_RETRY = 10, + /** + * Fail to set the location where CDMA subscription shall be retrieved because of SIM or + * RUIM card absent + */ + SIM_ABSENT = 11, + /** + * Fail to find CDMA subscription from specified location + */ + SUBSCRIPTION_NOT_AVAILABLE = 12, + /** + * HW does not support preferred network type + */ + MODE_NOT_SUPPORTED = 13, + /** + * Command failed becausee recipient is not on FDN list + */ + FDN_CHECK_FAILURE = 14, + /** + * Network selection failed due to illegal SIM or ME + */ + ILLEGAL_SIM_OR_ME = 15, + /** + * No logical channel available + */ + MISSING_RESOURCE = 16, + /** + * Application not found on SIM + */ + NO_SUCH_ELEMENT = 17, + /** + * DIAL request modified to USSD + */ + DIAL_MODIFIED_TO_USSD = 18, + /** + * DIAL request modified to SS + */ + DIAL_MODIFIED_TO_SS = 19, + /** + * DIAL request modified to DIAL with different data + */ + DIAL_MODIFIED_TO_DIAL = 20, + /** + * USSD request modified to DIAL + */ + USSD_MODIFIED_TO_DIAL = 21, + /** + * USSD request modified to SS + */ + USSD_MODIFIED_TO_SS = 22, + /** + * USSD request modified to different USSD request + */ + USSD_MODIFIED_TO_USSD = 23, + /** + * SS request modified to DIAL + */ + SS_MODIFIED_TO_DIAL = 24, + /** + * SS request modified to USSD + */ + SS_MODIFIED_TO_USSD = 25, + /** + * Subscription not supported by RIL + */ + SUBSCRIPTION_NOT_SUPPORTED = 26, + /** + * SS request modified to different SS request + */ + SS_MODIFIED_TO_SS = 27, + /** + * LCE service not supported(36 in RILConstants.java) + */ + LCE_NOT_SUPPORTED = 36, + /** + * Not sufficieent memory to process the request + */ + NO_MEMORY = 37, + /** + * Modem hit unexpected error scenario while handling this request + */ + INTERNAL_ERR = 38, + /** + * Hit platform or system error + */ + SYSTEM_ERR = 39, + /** + * Vendor RIL got unexpected or incorrect response from modem for this request + */ + MODEM_ERR = 40, + /** + * Unexpected request for the current state + */ + INVALID_STATE = 41, + /** + * Not sufficient resource to process the request + */ + NO_RESOURCES = 42, + /** + * Received error from SIM card + */ + SIM_ERR = 43, + /** + * Received invalid arguments in request + */ + INVALID_ARGUMENTS = 44, + /** + * Cannot process the request in current SIM state + */ + INVALID_SIM_STATE = 45, + /** + * Cannot process the request in current modem state + */ + INVALID_MODEM_STATE = 46, + /** + * Received invalid call ID in request + */ + INVALID_CALL_ID = 47, + /** + * ACK received when there is no SMS to ack + */ + NO_SMS_TO_ACK = 48, + /** + * Received error from network + */ + NETWORK_ERR = 49, + /** + * Operation denied due to overly-frequent requests + */ + REQUEST_RATE_LIMITED = 50, + /** + * SIM is busy + */ + SIM_BUSY = 51, + /** + * The target EF is full + */ + SIM_FULL = 52, + /** + * Request is rejected by network + */ + NETWORK_REJECT = 53, + /** + * Not allowed the request not + */ + OPERATION_NOT_ALLOWED = 54, + /** + * The request record is empty + */ + EMPTY_RECORD = 55, + /** + * Invalid SMS format + */ + INVALID_SMS_FORMAT = 56, + /** + * Message not encoded properly + */ + ENCODING_ERR = 57, + /** + * SMSC addrss specified is invalid + */ + INVALID_SMSC_ADDRESS = 58, + /** + * No such entry present to perform the request + */ + NO_SUCH_ENTRY = 59, + /** + * Network is not ready to perform the request + */ + NETWORK_NOT_READY = 60, + /** + * Device does not have this value provisioned + */ + NOT_PROVISIONED = 61, + /** + * Device does not have subscription + */ + NO_SUBSCRIPTION = 62, + /** + * Network cannot be found + */ + NO_NETWORK_FOUND = 63, + /** + * Operation cannot be performed because the device is currently in use + */ + DEVICE_IN_USE = 64, + /** + * Operation aborted + */ + ABORTED = 65, + /** + * Response from vendor had invalid data + */ + INVALID_RESPONSE = 66, + OEM_ERROR_1 = 501, + OEM_ERROR_2 = 502, + OEM_ERROR_3 = 503, + OEM_ERROR_4 = 504, + OEM_ERROR_5 = 505, + OEM_ERROR_6 = 506, + OEM_ERROR_7 = 507, + OEM_ERROR_8 = 508, + OEM_ERROR_9 = 509, + OEM_ERROR_10 = 510, + OEM_ERROR_11 = 511, + OEM_ERROR_12 = 512, + OEM_ERROR_13 = 513, + OEM_ERROR_14 = 514, + OEM_ERROR_15 = 515, + OEM_ERROR_16 = 516, + OEM_ERROR_17 = 517, + OEM_ERROR_18 = 518, + OEM_ERROR_19 = 519, + OEM_ERROR_20 = 520, + OEM_ERROR_21 = 521, + OEM_ERROR_22 = 522, + OEM_ERROR_23 = 523, + OEM_ERROR_24 = 524, + OEM_ERROR_25 = 525, + /** + * 1X voice and SMS are not allowed simulteneously. + */ + SIMULTANEOUS_SMS_AND_CALL_NOT_ALLOWED = 67, + /** + * Access is barred. + */ + ACCESS_BARRED = 68, + /** + * SMS is blocked due to call control, e.g., resource unavailable + * in the SMR entity. + */ + BLOCKED_DUE_TO_CALL = 69, + /** + * Returned from setRadioPowerResponse when detecting RF HW issues. Some RF Front-End (RFFE) + * components like antenna are considered critical for modem to provide telephony service. + * This RadioError is used when modem detect such RFFE problem. + */ + RF_HARDWARE_ISSUE = 70, + /** + * Returned from setRadioPowerResponse when detecting no RF calibration issue. + * Unlike RF_HARDWARE_ISSUE, this is a SW problem and no HW repair is needed. + */ + NO_RF_CALIBRATION_INFO = 71, +} diff --git a/radio/aidl/android/hardware/radio/RadioFrequencyInfo.aidl b/radio/aidl/android/hardware/radio/RadioFrequencyInfo.aidl new file mode 100644 index 0000000000..140d65af46 --- /dev/null +++ b/radio/aidl/android/hardware/radio/RadioFrequencyInfo.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +union RadioFrequencyInfo { + /** + * Indicates the frequency range is below 1GHz. + */ + const int FREQUENCY_RANGE_LOW = 1; + /** + * Indicates the frequency range is between 1GHz and 3GHz. + */ + const int FREQUENCY_RANGE_MID = 2; + /** + * Indicates the frequency range is between 3GHz and 6GHz. + */ + const int FREQUENCY_RANGE_HIGH = 3; + /** + * Indicates the frequency range is above 6GHz (millimeter wave frequency). + */ + const int FREQUENCY_RANGE_MMWAVE = 4; + + boolean noinit; + /** + * A rough frequency range. + * Values are FREQUENCY_RANGE_ + */ + int range; + /** + * The Absolute Radio Frequency Channel Number. + */ + int channelNumber; +} diff --git a/radio/aidl/android/hardware/radio/RadioIndicationType.aidl b/radio/aidl/android/hardware/radio/RadioIndicationType.aidl new file mode 100644 index 0000000000..aa5215f439 --- /dev/null +++ b/radio/aidl/android/hardware/radio/RadioIndicationType.aidl @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum RadioIndicationType { + UNSOLICITED, + UNSOLICITED_ACK_EXP, +} diff --git a/radio/aidl/android/hardware/radio/RadioResponseInfo.aidl b/radio/aidl/android/hardware/radio/RadioResponseInfo.aidl new file mode 100644 index 0000000000..d81c49c83e --- /dev/null +++ b/radio/aidl/android/hardware/radio/RadioResponseInfo.aidl @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.RadioError; +import android.hardware.radio.RadioResponseType; + +@VintfStability +parcelable RadioResponseInfo { + /** + * Response type + */ + RadioResponseType type; + /** + * Serial number of the request + */ + int serial; + /** + * Response error + */ + RadioError error; +} diff --git a/radio/aidl/android/hardware/radio/RadioResponseInfoModem.aidl b/radio/aidl/android/hardware/radio/RadioResponseInfoModem.aidl new file mode 100644 index 0000000000..8c7b94c1a4 --- /dev/null +++ b/radio/aidl/android/hardware/radio/RadioResponseInfoModem.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.RadioError; +import android.hardware.radio.RadioResponseType; + +@VintfStability +parcelable RadioResponseInfoModem { + /** + * Response type + */ + RadioResponseType type; + /** + * Serial number of the request + */ + int serial; + /** + * Response error + */ + RadioError error; + /** + * Whether the modem is enabled or not + */ + boolean isEnabled; +} diff --git a/radio/aidl/android/hardware/radio/RadioResponseType.aidl b/radio/aidl/android/hardware/radio/RadioResponseType.aidl new file mode 100644 index 0000000000..882c759eb1 --- /dev/null +++ b/radio/aidl/android/hardware/radio/RadioResponseType.aidl @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum RadioResponseType { + SOLICITED, + SOLICITED_ACK, + SOLICITED_ACK_EXP, +} diff --git a/radio/aidl/android/hardware/radio/RadioState.aidl b/radio/aidl/android/hardware/radio/RadioState.aidl new file mode 100644 index 0000000000..1915870316 --- /dev/null +++ b/radio/aidl/android/hardware/radio/RadioState.aidl @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum RadioState { + /** + * Radio explicitly powered off (eg CFUN=0) + */ + OFF = 0, + /** + * Radio unavailable (eg, resetting or not booted) + */ + UNAVAILABLE = 1, + /** + * Radio is on + */ + ON = 10, +} diff --git a/radio/aidl/android/hardware/radio/RadioTechnology.aidl b/radio/aidl/android/hardware/radio/RadioTechnology.aidl new file mode 100644 index 0000000000..d439866f2f --- /dev/null +++ b/radio/aidl/android/hardware/radio/RadioTechnology.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum RadioTechnology { + UNKNOWN, + GPRS, + EDGE, + UMTS, + IS95A, + IS95B, + ONE_X_RTT, + EVDO_0, + EVDO_A, + HSDPA, + HSUPA, + HSPA, + EVDO_B, + EHRPD, + LTE, + /** + * HSPA+ + */ + HSPAP, + /** + * Only supports voice + */ + GSM, + TD_SCDMA, + IWLAN, + LTE_CA, + /** + * 5G NR. This is only used in 5G Standalone mode. + */ + NR, +} diff --git a/radio/aidl/android/hardware/radio/RadioTechnologyFamily.aidl b/radio/aidl/android/hardware/radio/RadioTechnologyFamily.aidl new file mode 100644 index 0000000000..37a1df238b --- /dev/null +++ b/radio/aidl/android/hardware/radio/RadioTechnologyFamily.aidl @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum RadioTechnologyFamily { + /** + * 3GPP Technologies - GSM, WCDMA + */ + THREE_GPP, + /** + * 3GPP2 Technologies - CDMA + */ + THREE_GPP2, +} diff --git a/radio/aidl/android/hardware/radio/RegState.aidl b/radio/aidl/android/hardware/radio/RegState.aidl new file mode 100644 index 0000000000..91fd239868 --- /dev/null +++ b/radio/aidl/android/hardware/radio/RegState.aidl @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * Please note that registration state UNKNOWN is treated as "out of service" in Android telephony. + * Registration state REG_DENIED must be returned if Location Update Reject (with cause 17 - Network + * Failure) is received repeatedly from the network, to facilitate "managed roaming". + */ +@VintfStability +@Backing(type="int") +enum RegState { + /** + * Not registered, MT is not currently searching for a new operator to register + */ + NOT_REG_MT_NOT_SEARCHING_OP = 0, + /** + * Registered, home network + */ + REG_HOME = 1, + /** + * Not registered, but MT is currently searching for a new operator to register + */ + NOT_REG_MT_SEARCHING_OP = 2, + /** + * Registration denied + */ + REG_DENIED = 3, + /** + * Unknown + */ + UNKNOWN = 4, + /** + * Registered, roaming + */ + REG_ROAMING = 5, + /** + * Same as NOT_REG_MT_NOT_SEARCHING_OP but indicates that emergency calls are enabled + */ + NOT_REG_MT_NOT_SEARCHING_OP_EM = 10, + /** + * Same as NOT_REG_MT_SEARCHING_OP but indicatees that emergency calls are enabled + */ + NOT_REG_MT_SEARCHING_OP_EM = 12, + /** + * Same as REG_DENIED but indicates that emergency calls are enabled + */ + REG_DENIED_EM = 13, + /** + * Same as UNKNOWN but indicates that emergency calls are enabled + */ + UNKNOWN_EM = 14, +} diff --git a/radio/aidl/android/hardware/radio/RegStateResult.aidl b/radio/aidl/android/hardware/radio/RegStateResult.aidl new file mode 100644 index 0000000000..615392c011 --- /dev/null +++ b/radio/aidl/android/hardware/radio/RegStateResult.aidl @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.AccessTechnologySpecificInfo; +import android.hardware.radio.CellIdentity; +import android.hardware.radio.RadioTechnology; +import android.hardware.radio.RegState; +import android.hardware.radio.RegistrationFailCause; + +@VintfStability +parcelable RegStateResult { + /** + * Registration state. If the RAT is indicated as a GERAN, UTRAN, or CDMA2000 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. + */ + RegState regState; + /** + * Indicates the available voice radio technology, valid values as defined by RadioTechnology, + * except LTE_CA, which is no longer a valid value on 1.5 or above. When the device is on + * carrier aggregation, vendor RIL service should properly report multiple PhysicalChannelConfig + * elements through IRadio::currentPhysicalChannelConfigs. + */ + RadioTechnology rat; + /** + * Cause code reported by the network in case registration fails. This will be a mobility + * management cause code defined for MM, GMM, MME or equivalent as appropriate for the RAT. + */ + RegistrationFailCause reasonForDenial; + /** + * CellIdentity + */ + CellIdentity cellIdentity; + /** + * The most-recent PLMN-ID upon which the UE registered (or attempted to register if a failure + * is reported in the reasonForDenial field). This PLMN shall be in standard format consisting + * of a 3 digit MCC concatenated with a 2 or 3 digit MNC. + */ + String registeredPlmn; + /** + * Access-technology-specific registration information, such as for CDMA2000. + */ + AccessTechnologySpecificInfo accessTechnologySpecificInfo; +} diff --git a/radio/aidl/android/hardware/radio/RegistrationFailCause.aidl b/radio/aidl/android/hardware/radio/RegistrationFailCause.aidl new file mode 100644 index 0000000000..d9c7f23a3a --- /dev/null +++ b/radio/aidl/android/hardware/radio/RegistrationFailCause.aidl @@ -0,0 +1,189 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * Call fail causes for Circuit-switched service enumerated in 3GPP TS 24.008, 10.5.3.6 and + * 10.5.147. Additional detail is available in 3GPP TS 24.008 Annex G. + */ +@VintfStability +@Backing(type="int") +enum RegistrationFailCause { + /** + * 0 - None + */ + NONE = 0, + /** + * 2 - IMSI unknown in HLR + */ + IMSI_UNKNOWN_IN_HLR = 2, + /** + * 3 - Illegal MS + */ + ILLEGAL_MS = 3, + /** + * 4 - Illegal ME + */ + IMSI_UNKNOWN_IN_VLR = 4, + /** + * 5 - PLMN not allowed + */ + IMEI_NOT_ACCEPTED = 5, + /** + * 6 - Location area not allowed + */ + ILLEGAL_ME = 6, + /** + * 7 - Roaming not allowed + */ + GPRS_SERVICES_NOT_ALLOWED = 7, + /** + * 8 - No Suitable Cells in this Location Area + */ + GPRS_AND_NON_GPRS_SERVICES_NOT_ALLOWED = 8, + /** + * 9 - Network failure + */ + MS_IDENTITY_CANNOT_BE_DERIVED_BY_NETWORK = 9, + /** + * 10 - Persistent location update reject + */ + IMPLICITLY_DETACHED = 10, + /** + * 11 - PLMN not allowed + */ + PLMN_NOT_ALLOWED = 11, + /** + * 12 - Location area not allowed + */ + LOCATION_AREA_NOT_ALLOWED = 12, + /** + * 13 - Roaming not allowed in this Location Area + */ + ROAMING_NOT_ALLOWED = 13, + /** + * 14 - GPRS Services not allowed in this PLMN + */ + GPRS_SERVICES_NOT_ALLOWED_IN_PLMN = 14, + /** + * 15 - No Suitable Cells in this Location Area + */ + NO_SUITABLE_CELLS = 15, + /** + * 16 - MSC temporarily not reachable + */ + MSC_TEMPORARILY_NOT_REACHABLE = 15, + /** + * 17 - Network Failure + */ + NETWORK_FAILURE = 17, + /** + * 20 - MAC Failure + */ + MAC_FAILURE = 20, + /** + * 21 - Sync Failure + */ + SYNC_FAILURE = 21, + /** + * 22 - Congestion + */ + CONGESTION = 22, + /** + * 23 - GSM Authentication unacceptable + */ + GSM_AUTHENTICATION_UNACCEPTABLE = 23, + /** + * 25 - Not Authorized for this CSG + */ + NOT_AUTHORIZED_FOR_THIS_CSG = 25, + /** + * 28 SMS provided via GPRS in this routing area + */ + SMS_PROVIDED_BY_GPRS_IN_ROUTING_AREA, + /** + * 32 - Service option not supported + */ + SERVICE_OPTION_NOT_SUPPORTED = 32, + /** + * 33 - Requested service option not subscribed + */ + SERVICE_OPTION_NOT_SUBSCRIBED = 33, + /** + * 34 - Service option temporarily out of order + */ + SERVICE_OPTION_TEMPORARILY_OUT_OF_ORDER = 34, + /** + * 38 - Call cannot be identified + */ + CALL_CANNOT_BE_IDENTIFIED = 38, + /** + * 40 No PDP context activated + */ + NO_PDP_CONTEXT_ACTIVATED = 40, + /** + * 48-63 - Retry upon entry into a new cell + */ + RETRY_UPON_ENTRY_INTO_NEW_CELL_1 = 48, + RETRY_UPON_ENTRY_INTO_NEW_CELL_2 = 49, + RETRY_UPON_ENTRY_INTO_NEW_CELL_3 = 50, + RETRY_UPON_ENTRY_INTO_NEW_CELL_4 = 51, + RETRY_UPON_ENTRY_INTO_NEW_CELL_5 = 52, + RETRY_UPON_ENTRY_INTO_NEW_CELL_6 = 53, + RETRY_UPON_ENTRY_INTO_NEW_CELL_7 = 54, + RETRY_UPON_ENTRY_INTO_NEW_CELL_8 = 55, + RETRY_UPON_ENTRY_INTO_NEW_CELL_9 = 56, + RETRY_UPON_ENTRY_INTO_NEW_CELL_10 = 57, + RETRY_UPON_ENTRY_INTO_NEW_CELL_11 = 58, + RETRY_UPON_ENTRY_INTO_NEW_CELL_12 = 59, + RETRY_UPON_ENTRY_INTO_NEW_CELL_13 = 60, + RETRY_UPON_ENTRY_INTO_NEW_CELL_14 = 61, + RETRY_UPON_ENTRY_INTO_NEW_CELL_15 = 62, + RETRY_UPON_ENTRY_INTO_NEW_CELL_16 = 63, + /** + * 95 - Semantically incorrect message + */ + SEMANTICALLY_INCORRECT_MESSAGE = 95, + /** + * 96 - Invalid mandatory information + */ + INVALID_MANDATORY_INFORMATION = 96, + /** + * 97 - Message type non-existent or not implemented + */ + MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED = 97, + /** + * 98 - Message type not compatible with protocol state + */ + MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98, + /** + * 99 - Information element non-existent or not implemented + */ + INFORMATION_ELEMENT_NON_EXISTENT_OR_NOT_IMPLEMENTED = 99, + /** + * 100 - Conditional IE error + */ + CONDITIONAL_IE_ERROR = 100, + /** + * 101 - Message not compatible with protocol state + */ + MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101, + /** + * 111 - Protocol error, unspecified + */ + PROTOCOL_ERROR_UNSPECIFIED = 111, +} diff --git a/radio/aidl/android/hardware/radio/ResetNvType.aidl b/radio/aidl/android/hardware/radio/ResetNvType.aidl new file mode 100644 index 0000000000..59c74da9f8 --- /dev/null +++ b/radio/aidl/android/hardware/radio/ResetNvType.aidl @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum ResetNvType { + /** + * Reload all NV items + */ + RELOAD, + /** + * Erase NV reset (SCRTN) + */ + ERASE, + /** + * Factory reset (RTN) + */ + FACTORY_RESET, +} diff --git a/radio/aidl/android/hardware/radio/RouteSelectionDescriptor.aidl b/radio/aidl/android/hardware/radio/RouteSelectionDescriptor.aidl new file mode 100644 index 0000000000..a1b482bcdd --- /dev/null +++ b/radio/aidl/android/hardware/radio/RouteSelectionDescriptor.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.PdpProtocolType; +import android.hardware.radio.SliceInfo; + +/** + * This struct represents a single route selection descriptor as defined in 3GPP TS 24.526. + */ +@VintfStability +parcelable RouteSelectionDescriptor { + const byte SSC_MODE_UNKNOWN = -1; + const byte SSC_MODE_1 = 1; + const byte SSC_MODE_2 = 2; + const byte SSC_MODE_3 = 3; + + /** + * Precedence value in the range of 0 to 255. Higher value has lower precedence. + */ + byte precedence; + /** + * Valid values are IP, IPV6, IPV4V6, and UNKNOWN. + */ + PdpProtocolType sessionType; + /** + * Session and service continuity mode as defined in 3GPP TS 23.501. + * Valid values are SSC_MODE_ + */ + byte sscMode; + /** + * There can be 0 or more SliceInfo specified in a route descriptor. + */ + SliceInfo[] sliceInfo; + /** + * DNN stands for Data Network Name and represents an APN as defined in 3GPP TS 23.003. + * There can be 0 or more DNNs specified in a route descriptor. + */ + String[] dnn; +} diff --git a/radio/aidl/android/hardware/radio/SapApduType.aidl b/radio/aidl/android/hardware/radio/SapApduType.aidl new file mode 100644 index 0000000000..f697e58aad --- /dev/null +++ b/radio/aidl/android/hardware/radio/SapApduType.aidl @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum SapApduType { + APDU, + APDU7816, +} diff --git a/radio/aidl/android/hardware/radio/SapConnectRsp.aidl b/radio/aidl/android/hardware/radio/SapConnectRsp.aidl new file mode 100644 index 0000000000..d2046d21ef --- /dev/null +++ b/radio/aidl/android/hardware/radio/SapConnectRsp.aidl @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum SapConnectRsp { + SUCCESS, + CONNECT_FAILURE, + MSG_SIZE_TOO_LARGE, + MSG_SIZE_TOO_SMALL, + CONNECT_OK_CALL_ONGOING, +} diff --git a/radio/aidl/android/hardware/radio/SapDisconnectType.aidl b/radio/aidl/android/hardware/radio/SapDisconnectType.aidl new file mode 100644 index 0000000000..30a04bde46 --- /dev/null +++ b/radio/aidl/android/hardware/radio/SapDisconnectType.aidl @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum SapDisconnectType { + GRACEFUL, + IMMEDIATE, +} diff --git a/radio/aidl/android/hardware/radio/SapResultCode.aidl b/radio/aidl/android/hardware/radio/SapResultCode.aidl new file mode 100644 index 0000000000..db87374ce9 --- /dev/null +++ b/radio/aidl/android/hardware/radio/SapResultCode.aidl @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum SapResultCode { + SUCCESS, + GENERIC_FAILURE, + CARD_NOT_ACCESSSIBLE, + CARD_ALREADY_POWERED_OFF, + CARD_REMOVED, + CARD_ALREADY_POWERED_ON, + DATA_NOT_AVAILABLE, + NOT_SUPPORTED, +} diff --git a/radio/aidl/android/hardware/radio/SapStatus.aidl b/radio/aidl/android/hardware/radio/SapStatus.aidl new file mode 100644 index 0000000000..0a6b4a757a --- /dev/null +++ b/radio/aidl/android/hardware/radio/SapStatus.aidl @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum SapStatus { + UNKNOWN_ERROR, + CARD_RESET, + CARD_NOT_ACCESSIBLE, + CARD_REMOVED, + CARD_INSERTED, + RECOVERED, +} diff --git a/radio/aidl/android/hardware/radio/SapTransferProtocol.aidl b/radio/aidl/android/hardware/radio/SapTransferProtocol.aidl new file mode 100644 index 0000000000..7f385de00d --- /dev/null +++ b/radio/aidl/android/hardware/radio/SapTransferProtocol.aidl @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum SapTransferProtocol { + T0, + T1, +} diff --git a/radio/aidl/android/hardware/radio/SelectUiccSub.aidl b/radio/aidl/android/hardware/radio/SelectUiccSub.aidl new file mode 100644 index 0000000000..f762e9f953 --- /dev/null +++ b/radio/aidl/android/hardware/radio/SelectUiccSub.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable SelectUiccSub { + const int SUBSCRIPTION_TYPE_1 = 0; + const int SUBSCRIPTION_TYPE_2 = 1; + const int SUBSCRIPTION_TYPE_3 = 2; + + const int ACT_STATUS_DEACTIVATE = 0; + const int ACT_STATUS_ACTIVATE = 1; + + int slot; + /** + * Array subscriptor from applications[RadioConst:CARD_MAX_APPS] in getIccCardStatus() + */ + int appIndex; + /** + * Values are SUBSCRIPTION_TYPE_ + */ + int subType; + /** + * Values are ACT_STATUS_ + */ + int actStatus; +} diff --git a/radio/aidl/android/hardware/radio/SendSmsResult.aidl b/radio/aidl/android/hardware/radio/SendSmsResult.aidl new file mode 100644 index 0000000000..31865637ee --- /dev/null +++ b/radio/aidl/android/hardware/radio/SendSmsResult.aidl @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable SendSmsResult { + /** + * TP-Message-Reference for GSM, and BearerData MessageId for CDMA. + * See 3GPP2 C.S0015-B, v2.0, table 4.5-1 + */ + int messageRef; + /** + * Ack PDU or empty string if n/a + */ + 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. + */ + int errorCode; +} diff --git a/radio/aidl/android/hardware/radio/SetupDataCallResult.aidl b/radio/aidl/android/hardware/radio/SetupDataCallResult.aidl new file mode 100644 index 0000000000..0fae8b0d83 --- /dev/null +++ b/radio/aidl/android/hardware/radio/SetupDataCallResult.aidl @@ -0,0 +1,150 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.DataCallFailCause; +import android.hardware.radio.LinkAddress; +import android.hardware.radio.PdpProtocolType; +import android.hardware.radio.Qos; +import android.hardware.radio.QosSession; +import android.hardware.radio.SliceInfo; +import android.hardware.radio.TrafficDescriptor; + +@VintfStability +parcelable SetupDataCallResult { + /** + * Indicates the data connection is inactive. + */ + const int DATA_CONNECTION_STATUS_INACTIVE = 0; + /** + * Indicates the data connection is active with physical link dormant. + */ + const int DATA_CONNECTION_STATUS_DORMANT = 1; + /** + * Indicates the data connection is active with physical link up. + */ + const int DATA_CONNECTION_STATUS_ACTIVE = 2; + + /** + * On data handover failure, fallback to the source data transport when the fail cause is due + * to a hand off preference change. + */ + const byte HANDOVER_FAILURE_MODE_LEGACY = 0; + /** + * On data handover failure, fallback to the source data transport. + */ + const byte HANDOVER_FAILURE_MODE_DO_FALLBACK = 1; + /** + * On data handover failure, retry the handover instead of falling back to the source data + * transport. + */ + const byte HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_HANDOVER = 2; + /** + * On data handover failure, setup a new data connection by sending a normal request to the + * underlying data service. + */ + const byte HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_SETUP_NORMAL = 3; + + /** + * Data call fail cause. DataCallFailCause.NONE if no error. + */ + DataCallFailCause cause; + /** + * If cause is not DataCallFailCause.NONE, this field indicates the network suggested data + * retry back-off time in milliseconds. Negative value indicates network does not give any + * suggestion. 0 indicates retry should be performed immediately. 0x7fffffffffffffff indicates + * the device should not retry data setup anymore. During this time, no calls to + * IRadio.setupDataCall for this APN will be made unless IRadioIndication.unthrottleApn is sent + * with the same APN. + */ + long suggestedRetryTime; + /** + * Context ID, uniquely identifies this data connection. + */ + int cid; + /** + * Data connection active status. + * Values are DATA_CONNECTION_STATUS_ + */ + int active; + /** + * PDP protocol type. If cause is DataCallFailCause.ONLY_SINGLE_BEARER_ALLOWED, this is the + * protocol type supported, such as "IP" or "IPV6". + */ + PdpProtocolType type; + /** + * The network interface name. + */ + String ifname; + /** + * List of link address. + */ + LinkAddress[] addresses; + /** + * List of DNS server addresses, e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1". Empty if no dns + * server addresses returned. + */ + String[] dnses; + /** + * List of default gateway addresses, e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1". + * When empty, the addresses represent point to point connections. + */ + String[] gateways; + /** + * List of P-CSCF (Proxy Call State Control Function) addresses via PCO (Protocol Configuration + * Option), e.g., "2001:db8::1 2001:db8::2 2001:db8::3". Empty if not IMS client. + */ + String[] pcscf; + /** + * MTU received from network for IPv4. + * Value <= 0 means network has either not sent a value or sent an invalid value. + */ + int mtuV4; + /** + * MTU received from network for IPv6. + * Value <= 0 means network has either not sent a value or sent an invalid value. + */ + int mtuV6; + /** + * Default bearer QoS. Applicable to LTE and NR + */ + Qos defaultQos; + /** + * Active QOS sessions of the dedicated bearers. Applicable to PDNs that support dedicated + * bearers. + */ + QosSession[] qosSessions; + /** + * Specifies the fallback mode on an IWLAN handover failure. + * Values are HANDOVER_FAILURE_MODE_ + */ + byte handoverFailureMode; + /** + * The allocated pdu session id for this data call. A value of 0 means no pdu session id was + * attached to this call. Reference: 3GPP TS 24.007 section 11.2.3.1b. + */ + int pduSessionId; + /** + * Slice used for this data call. It is valid only when this data call is on AccessNetwork:NGRAN + */ + @nullable SliceInfo sliceInfo; + /** + * TrafficDescriptors for which this data call must be used. It only includes the TDs for which + * a data call has been requested so far; it is not an exhaustive list. + */ + TrafficDescriptor[] trafficDescriptors; +} diff --git a/radio/aidl/android/hardware/radio/SignalStrength.aidl b/radio/aidl/android/hardware/radio/SignalStrength.aidl new file mode 100644 index 0000000000..0ffdaa34cc --- /dev/null +++ b/radio/aidl/android/hardware/radio/SignalStrength.aidl @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CdmaSignalStrength; +import android.hardware.radio.EvdoSignalStrength; +import android.hardware.radio.GsmSignalStrength; +import android.hardware.radio.LteSignalStrength; +import android.hardware.radio.NrSignalStrength; +import android.hardware.radio.TdscdmaSignalStrength; +import android.hardware.radio.WcdmaSignalStrength; + +@VintfStability +parcelable SignalStrength { + /** + * If GSM measurements are provided, this structure must contain valid measurements; otherwise + * all fields should be set to INT_MAX to mark them as invalid. + */ + GsmSignalStrength gsm; + /** + * If CDMA measurements are provided, this structure must contain valid measurements; otherwise + * all fields should be set to INT_MAX to mark them as invalid. + */ + CdmaSignalStrength cdma; + /** + * If EvDO measurements are provided, this structure must contain valid measurements; otherwise + * all fields should be set to INT_MAX to mark them as invalid. + */ + EvdoSignalStrength evdo; + /** + * If LTE measurements are provided, this structure must contain valid measurements; otherwise + * all fields should be set to INT_MAX to mark them as invalid. + */ + LteSignalStrength lte; + /** + * If TD-SCDMA measurements are provided, this structure must contain valid measurements; + * otherwise all fields should be set to INT_MAX to mark them as invalid. + */ + TdscdmaSignalStrength tdscdma; + /** + * If WCDMA measurements are provided, this structure must contain valid measurements; otherwise + * all fields should be set to INT_MAX to mark them as invalid. + */ + WcdmaSignalStrength wcdma; + /** + * If NR 5G measurements are provided, this structure must contain valid measurements; otherwise + * all fields should be set to INT_MAX to mark them as invalid. + */ + NrSignalStrength nr; +} diff --git a/radio/aidl/android/hardware/radio/SignalThresholdInfo.aidl b/radio/aidl/android/hardware/radio/SignalThresholdInfo.aidl new file mode 100644 index 0000000000..0d818b4e19 --- /dev/null +++ b/radio/aidl/android/hardware/radio/SignalThresholdInfo.aidl @@ -0,0 +1,109 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * Contains the threshold values of each signal measurement type. + */ +@VintfStability +parcelable SignalThresholdInfo { + /** + * Received Signal Strength Indication. + * Range: -113 dBm and -51 dBm + * Used RAN: GERAN, CDMA2000 + * Reference: 3GPP TS 27.007 section 8.5. + */ + const int SIGNAL_MEASUREMENT_TYPE_RSSI = 1; + /** + * Received Signal Code Power. + * Range: -120 dBm to -25 dBm; + * Used RAN: UTRAN + * Reference: 3GPP TS 25.123, section 9.1.1.1 + */ + const int SIGNAL_MEASUREMENT_TYPE_RSCP = 2; + /** + * Reference Signal Received Power. + * Range: -140 dBm to -44 dBm; + * Used RAN: EUTRAN + * Reference: 3GPP TS 36.133 9.1.4 + */ + const int SIGNAL_MEASUREMENT_TYPE_RSRP = 3; + /** + * Reference Signal Received Quality + * Range: -34 dB to 3 dB; + * Used RAN: EUTRAN + * Reference: 3GPP TS 36.133 v12.6.0 section 9.1.7 + */ + const int SIGNAL_MEASUREMENT_TYPE_RSRQ = 4; + /** + * Reference Signal Signal to Noise Ratio + * Range: -20 dB to 30 dB; + * Used RAN: EUTRAN + * Note: This field is optional; how to support it can be decided by the corresponding vendor. + * Though the response code is not enforced, vendor's implementation must ensure this interface + * does not crash. + */ + const int SIGNAL_MEASUREMENT_TYPE_RSSNR = 5; + /** + * 5G SS reference signal received power. + * Range: -140 dBm to -44 dBm. + * Used RAN: NGRAN + * Reference: 3GPP TS 38.215. + */ + const int SIGNAL_MEASUREMENT_TYPE_SSRSRP = 6; + /** + * 5G SS reference signal received quality. + * Range: -43 dB to 20 dB. + * Used RAN: NGRAN + * Reference: 3GPP TS 38.215, 3GPP TS 38.133 section 10 + */ + const int SIGNAL_MEASUREMENT_TYPE_SSRSRQ = 7; + /** + * 5G SS signal-to-noise and interference ratio. + * Range: -23 dB to 40 dB + * Used RAN: NGRAN + * Reference: 3GPP TS 38.215 section 5.1.*, 3GPP TS 38.133 section 10.1.16.1. + */ + const int SIGNAL_MEASUREMENT_TYPE_SSSINR = 8; + + /** + * Signal Measurement Type + * Values are SIGNAL_MEASUREMENT_TYPE_ + */ + int signalMeasurement; + /** + * A hysteresis time in milliseconds to prevent flapping. A value of 0 disables hysteresis. + */ + int hysteresisMs; + /** + * An interval in dB defining the required magnitude change between reports. This must be + * smaller than the smallest threshold delta. An interval value of 0 disables hysteresis. + */ + int hysteresisDb; + /** + * List of threshold values. Range and unit must reference specific SignalMeasurementType. + * The threshold values for which to apply criteria. A vector size of 0 disables the use of + * thresholds for reporting. + */ + int[] thresholds; + /** + * Indicates whether the reporting criteria of the corresponding measurement is enabled + * (true) or disabled (false). If enabled, modem must trigger the report based on the criteria. + * If disabled, modem must not trigger the report based on the criteria. + */ + boolean isEnabled; +} diff --git a/radio/aidl/android/hardware/radio/SimApdu.aidl b/radio/aidl/android/hardware/radio/SimApdu.aidl new file mode 100644 index 0000000000..65dae4c72e --- /dev/null +++ b/radio/aidl/android/hardware/radio/SimApdu.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable SimApdu { + /** + * "sessionid" from TS 27.007 +CGLA command. Must be ignored for +CSIM command. + */ + int sessionId; + /** + * Used to derive the APDU ("command" and "length" values in TS 27.007 +CSIM and +CGLA commands) + */ + int cla; + /** + * Used to derive the APDU ("command" and "length" values in TS 27.007 +CSIM and +CGLA commands) + */ + int instruction; + /** + * Used to derive the APDU ("command" and "length" values in TS 27.007 +CSIM and +CGLA commands) + */ + int p1; + /** + * Used to derive the APDU ("command" and "length" values in TS 27.007 +CSIM and +CGLA commands) + */ + int p2; + /** + * Used to derive the APDU ("command" and "length" values in TS 27.007 +CSIM and +CGLA commands) + * A negative P3 implies a 4 byte APDU. + */ + int p3; + /** + * Used to derive the APDU ("command" and "length" values in TS 27.007 +CSIM and +CGLA commands) + * In hex string format ([a-fA-F0-9]*) + */ + String data; +} diff --git a/radio/aidl/android/hardware/radio/SimLockMultiSimPolicy.aidl b/radio/aidl/android/hardware/radio/SimLockMultiSimPolicy.aidl new file mode 100644 index 0000000000..89e13fd27b --- /dev/null +++ b/radio/aidl/android/hardware/radio/SimLockMultiSimPolicy.aidl @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum SimLockMultiSimPolicy { + /** + * Indicates that configuration applies to each slot independently. + */ + NO_MULTISIM_POLICY, + /** + * Indicates that any SIM card can be used as far as one valid card is present in the device. + * For the modem, a SIM card is valid when its content (i.e. MCC, MNC, GID, SPN) matches the + * carrier restriction configuration. + */ + ONE_VALID_SIM_MUST_BE_PRESENT, +} diff --git a/radio/aidl/android/hardware/radio/SimRefreshResult.aidl b/radio/aidl/android/hardware/radio/SimRefreshResult.aidl new file mode 100644 index 0000000000..9e38fff6b0 --- /dev/null +++ b/radio/aidl/android/hardware/radio/SimRefreshResult.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable SimRefreshResult { + /** + * A file on SIM has been updated. + */ + const int TYPE_SIM_FILE_UPDATE = 0; + /** + * SIM initialized. All files should be re-read. + */ + const int TYPE_SIM_INIT = 1; + /** + * SIM reset. SIM power required, SIM may be locked and all files must be re-read. + */ + const int TYPE_SIM_RESET = 2; + + /** + * Values are TYPE_SIM_ + */ + int type; + /** + * EFID of the updated file if the result is SIM_FILE_UPDATE or 0 for any other result. + */ + int efId; + /** + * AID(application ID) of the card application. See ETSI 102.221 8.1 and 101.220 4. + * For SIM_FILE_UPDATE result it must be set to AID of application in which updated EF resides + * or it must be empty string if EF is outside of an application. For SIM_INIT result this field + * is set to AID of application that caused REFRESH. For SIM_RESET result it is empty string. + */ + String aid; +} diff --git a/radio/aidl/android/hardware/radio/SliceInfo.aidl b/radio/aidl/android/hardware/radio/SliceInfo.aidl new file mode 100644 index 0000000000..e5b435461d --- /dev/null +++ b/radio/aidl/android/hardware/radio/SliceInfo.aidl @@ -0,0 +1,92 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * This struct represents a S-NSSAI as defined in 3GPP TS 24.501. + */ +@VintfStability +parcelable SliceInfo { + /* + * Not specified + */ + const byte SERVICE_TYPE_NONE = 0; + /* + * Slice suitable for the handling of 5G enhanced Mobile Broadband + */ + const byte SERVICE_TYPE_EMBB = 1; + /** + * Slice suitable for the handling of ultra-reliable low latency communications + */ + const byte SERVICE_TYPE_URLLC = 2; + /* + * Slice suitable for the handling of massive IoT + */ + const byte SERVICE_TYPE_MIOT = 3; + + const byte STATUS_UNKNOWN = 0; + /** + * Configured but not allowed or rejected yet + */ + const byte STATUS_CONFIGURED = 1; + /** + * Allowed to be used + */ + const byte STATUS_ALLOWED = 2; + /** + * Rejected because not available in PLMN + */ + const byte STATUS_REJECTED_NOT_AVAILABLE_IN_PLMN = 3; + /** + * Rejected because not available in reg area + */ + const byte STATUS_REJECTED_NOT_AVAILABLE_IN_REG_AREA = 4; + /** + * Considered valid when configured/allowed slices are not available + */ + const byte STATUS_DEFAULT_CONFIGURED = 5; + + /** + * The type of service provided by the slice. See: 3GPP TS 24.501 Section 9.11.2.8. + * Values are SERVICE_TYPE_ + */ + byte sliceServiceType; + /** + * Slice differentiator is the identifier of a slice that has SliceServiceType as SST. A value + * of -1 indicates that there is no corresponding SliceInfo of the HPLMN. + * See: 3GPP TS 24.501 Section 9.11.2.8. + */ + int sliceDifferentiator; + /** + * This SST corresponds to a SliceInfo (S-NSSAI) of the HPLMN; the SST is mapped to this value. + * See: 3GPP TS 24.501 Section 9.11.2.8. + * Values are SERVICE_TYPE_ + */ + byte mappedHplmnSst; + /** + * Present only if both sliceDifferentiator and mappedHplmnSst are also present. This SD + * corresponds to a SliceInfo (S-NSSAI) of the HPLMN; sliceDifferentiator is mapped to this + * value. A value of -1 indicates that there is no corresponding SliceInfo of the HPLMN. + * See: 3GPP TS 24.501 Section 9.11.2.8. + */ + int mappedHplmnSD; + /** + * Field to indicate the current status of the slice. + * Values are STATUS_ + */ + byte status; +} diff --git a/radio/aidl/android/hardware/radio/SlicingConfig.aidl b/radio/aidl/android/hardware/radio/SlicingConfig.aidl new file mode 100644 index 0000000000..d8d0885142 --- /dev/null +++ b/radio/aidl/android/hardware/radio/SlicingConfig.aidl @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.SliceInfo; +import android.hardware.radio.UrspRule; + +/** + * This struct represents the current slicing configuration. + */ +@VintfStability +parcelable SlicingConfig { + /** + * This vector contains the current URSP rules. Empty vector indicates no rules are configured. + */ + UrspRule[] urspRules; + /** + * List of all slices. + */ + SliceInfo[] sliceInfo; +} diff --git a/radio/aidl/android/hardware/radio/SmsAcknowledgeFailCause.aidl b/radio/aidl/android/hardware/radio/SmsAcknowledgeFailCause.aidl new file mode 100644 index 0000000000..265a10918d --- /dev/null +++ b/radio/aidl/android/hardware/radio/SmsAcknowledgeFailCause.aidl @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum SmsAcknowledgeFailCause { + MEMORY_CAPACITY_EXCEEDED = 0xD3, + UNSPECIFIED_ERROR = 0XFF, +} diff --git a/radio/aidl/android/hardware/radio/SmsWriteArgs.aidl b/radio/aidl/android/hardware/radio/SmsWriteArgs.aidl new file mode 100644 index 0000000000..7258e0aeef --- /dev/null +++ b/radio/aidl/android/hardware/radio/SmsWriteArgs.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable SmsWriteArgs { + const int STATUS_REC_UNREAD = 0; + const int STATUS_REC_READ = 1; + const int STATUS_STO_UNSENT = 2; + const int STATUS_STO_SENT = 3; + + /** + * Status of message. See TS 27.005 3.1. + * Values are STATUS_ + */ + int status; + /** + * PDU of message to write, as an ASCII hex string less the SMSC address, the TP-layer length + * is strlen(pdu)/2. + */ + String pdu; + /** + * SMSC address in GSM BCD format prefixed by a length byte (as expected by TS 27.005) + * or NULL for default SMSC. + */ + String smsc; +} diff --git a/radio/aidl/android/hardware/radio/SrvccState.aidl b/radio/aidl/android/hardware/radio/SrvccState.aidl new file mode 100644 index 0000000000..d4283149f9 --- /dev/null +++ b/radio/aidl/android/hardware/radio/SrvccState.aidl @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum SrvccState { + HANDOVER_STARTED, + HANDOVER_COMPLETED, + HANDOVER_FAILED, + HANDOVER_CANCELED, +} diff --git a/radio/aidl/android/hardware/radio/SsInfoData.aidl b/radio/aidl/android/hardware/radio/SsInfoData.aidl new file mode 100644 index 0000000000..6ee3da0597 --- /dev/null +++ b/radio/aidl/android/hardware/radio/SsInfoData.aidl @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable SsInfoData { + /** + * This is the response data for all of the SS GET/SET Radio requests. + * E.g. IRadio.getClir() returns two ints, so first two values of ssInfo[] will be used for + * response if serviceType is SS_CLIR and requestType is SS_INTERROGATION. + * Max size = RadioConst:SS_INFO_MAX + */ + int[] ssInfo; +} diff --git a/radio/aidl/android/hardware/radio/StkCcUnsolSsResult.aidl b/radio/aidl/android/hardware/radio/StkCcUnsolSsResult.aidl new file mode 100644 index 0000000000..d73f68751b --- /dev/null +++ b/radio/aidl/android/hardware/radio/StkCcUnsolSsResult.aidl @@ -0,0 +1,96 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CfData; +import android.hardware.radio.RadioError; +import android.hardware.radio.SsInfoData; + +@VintfStability +parcelable StkCcUnsolSsResult { + const int REQUEST_TYPE_ACTIVATION = 0; + const int REQUEST_TYPE_DEACTIVATION = 1; + const int REQUEST_TYPE_INTERROGATION = 2; + const int REQUEST_TYPE_REGISTRATION = 3; + const int REQUEST_TYPE_ERASURE = 4; + + const int SERVICE_TYPE_CFU = 0; + const int SERVICE_TYPE_CF_BUSY = 1; + const int SERVICE_TYPE_CF_NO_REPLY = 2; + const int SERVICE_TYPE_CF_NOT_REACHABLE = 3; + const int SERVICE_TYPE_CF_ALL = 4; + const int SERVICE_TYPE_CF_ALL_CONDITIONAL = 5; + const int SERVICE_TYPE_CLIP = 6; + const int SERVICE_TYPE_CLIR = 7; + const int SERVICE_TYPE_COLP = 8; + const int SERVICE_TYPE_COLR = 9; + const int SERVICE_TYPE_WAIT = 10; + const int SERVICE_TYPE_BAOC = 11; + const int SERVICE_TYPE_BAOIC = 12; + const int SERVICE_TYPE_BAOIC_EXC_HOME = 13; + const int SERVICE_TYPE_BAIC = 14; + const int SERVICE_TYPE_BAIC_ROAMING = 15; + const int SERVICE_TYPE_ALL_BARRING = 16; + const int SERVICE_TYPE_OUTGOING_BARRING = 17; + const int SERVICE_TYPE_INCOMING_BARRING = 18; + + const int TELESERVICE_TYPE_ALL_TELE_AND_BEARER_SERVICES = 0; + const int TELESERVICE_TYPE_ALL_TELESEVICES = 1; + const int TELESERVICE_TYPE_TELEPHONY = 2; + const int TELESERVICE_TYPE_ALL_DATA_TELESERVICES = 3; + const int TELESERVICE_TYPE_SMS_SERVICES = 4; + const int TELESERVICE_TYPE_ALL_TELESERVICES_EXCEPT_SMS = 5; + + const int SUPP_SERVICE_CLASS_NONE = 0; + const int SUPP_SERVICE_CLASS_VOICE = 1 << 0; + const int SUPP_SERVICE_CLASS_DATA = 1 << 1; + const int SUPP_SERVICE_CLASS_FAX = 1 << 2; + const int SUPP_SERVICE_CLASS_SMS = 1 << 3; + const int SUPP_SERVICE_CLASS_DATA_SYNC = 1 << 4; + const int SUPP_SERVICE_CLASS_DATA_ASYNC = 1 << 5; + const int SUPP_SERVICE_CLASS_PACKET = 1 << 6; + const int SUPP_SERVICE_CLASS_PAD = 1 << 7; + const int SUPP_SERVICE_CLASS_MAX = 1 << 7; + + /** + * Values are SERVICE_TYPE_ + */ + int serviceType; + /** + * Values are REQUEST_TYPE_ + */ + int requestType; + /** + * Values are TELESERVICE_TYPE_ + */ + int teleserviceType; + /** + * Values are a bitfield of SUPP_SERVICE_CLASS_ + */ + int serviceClass; + RadioError result; + /** + * Valid only for all SsServiceType except SsServiceType:CF_* else empty. + * Only one of ssInfo and cfData may contain values and the other must be empty. + */ + SsInfoData[] ssInfo; + /** + * Valid for SsServiceType:CF_* else empty + * Only one of ssInfo and cfData may contain values and the other must be empty. + */ + CfData[] cfData; +} diff --git a/radio/aidl/android/hardware/radio/SuppSvcNotification.aidl b/radio/aidl/android/hardware/radio/SuppSvcNotification.aidl new file mode 100644 index 0000000000..b41292b170 --- /dev/null +++ b/radio/aidl/android/hardware/radio/SuppSvcNotification.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable SuppSvcNotification { + /** + * Notification type + * false = MO intermediate result code + * true = MT unsolicited result code + */ + boolean isMT; + /** + * Result code. See 27.007 7.17. + */ + int code; + /** + * CUG index. See 27.007 7.17. + */ + int index; + /** + * "type" from 27.007 7.17 (MT only). + */ + int type; + /** + * "number" from 27.007 7.17. MT only, may be empty string. + */ + String number; +} diff --git a/radio/aidl/android/hardware/radio/TdscdmaSignalStrength.aidl b/radio/aidl/android/hardware/radio/TdscdmaSignalStrength.aidl new file mode 100644 index 0000000000..baed68a17b --- /dev/null +++ b/radio/aidl/android/hardware/radio/TdscdmaSignalStrength.aidl @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable TdscdmaSignalStrength { + /** + * UTRA carrier RSSI as defined in TS 25.225 5.1.4. Valid values are (0-31, 99) as defined in + * TS 27.007 8.5. INT_MAX denotes that the value is invalid/unreported. + */ + int signalStrength; + /** + * Transport Channel BER as defined in TS 25.225 5.2.5. Valid values are (0-7, 99) as defined in + * TS 27.007 8.5. INT_MAX denotes that the value is invalid/unreported. + */ + int bitErrorRate; + /** + * P-CCPCH RSCP as defined in TS 25.225 5.1.1. Valid values are (0-96, 255) as defined in + * TS 27.007 8.69. INT_MAX denotes that the value is invalid/unreported. + */ + int rscp; +} diff --git a/radio/aidl/android/hardware/radio/TrafficDescriptor.aidl b/radio/aidl/android/hardware/radio/TrafficDescriptor.aidl new file mode 100644 index 0000000000..2580a4c069 --- /dev/null +++ b/radio/aidl/android/hardware/radio/TrafficDescriptor.aidl @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.OsAppId; + +/** + * This struct represents a traffic descriptor. A valid struct must have at least one of the + * optional values present. This is based on the definition of traffic descriptor in + * TS 24.526 Section 5.2. + */ +@VintfStability +parcelable TrafficDescriptor { + /** + * DNN stands for Data Network Name and represents an APN as defined in 3GPP TS 23.003. + */ + @nullable String dnn; + /** + * Indicates the OsId + OsAppId (used as category in Android). + */ + @nullable OsAppId osAppId; +} diff --git a/radio/aidl/android/hardware/radio/TtyMode.aidl b/radio/aidl/android/hardware/radio/TtyMode.aidl new file mode 100644 index 0000000000..344ba67734 --- /dev/null +++ b/radio/aidl/android/hardware/radio/TtyMode.aidl @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum TtyMode { + OFF, + FULL, + /** + * Hearing carryover + */ + HCO, + /** + * Voice carryover + */ + VCO, +} diff --git a/radio/aidl/android/hardware/radio/UrspRule.aidl b/radio/aidl/android/hardware/radio/UrspRule.aidl new file mode 100644 index 0000000000..67d797a1bb --- /dev/null +++ b/radio/aidl/android/hardware/radio/UrspRule.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.RouteSelectionDescriptor; +import android.hardware.radio.TrafficDescriptor; + +/** + * This struct represents a single URSP rule as defined in 3GPP TS 24.526. + */ +@VintfStability +parcelable UrspRule { + /** + * Precedence value in the range of 0 to 255. Higher value has lower precedence. + */ + int precedence; + /** + * Used as a matcher for network requests. + */ + TrafficDescriptor[] trafficDescriptors; + /** + * List of routes (connection parameters) that must be used for requests matching a + * trafficDescriptor. + */ + RouteSelectionDescriptor[] routeSelectionDescriptor; +} diff --git a/radio/aidl/android/hardware/radio/UssdModeType.aidl b/radio/aidl/android/hardware/radio/UssdModeType.aidl new file mode 100644 index 0000000000..187130c48c --- /dev/null +++ b/radio/aidl/android/hardware/radio/UssdModeType.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +@Backing(type="int") +enum UssdModeType { + /** + * USSD-Notify + */ + NOTIFY, + /** + * USSD-Request + */ + REQUEST, + /** + * Session terminated by network + */ + NW_RELEASE, + /** + * Other local client (eg, SIM Toolkit) has responded + */ + LOCAL_CLIENT, + /** + * Operation not supported + */ + NOT_SUPPORTED, + /** + * Network timeout + */ + NW_TIMEOUT, +} diff --git a/radio/aidl/android/hardware/radio/UtranBands.aidl b/radio/aidl/android/hardware/radio/UtranBands.aidl new file mode 100644 index 0000000000..8a22ed75b3 --- /dev/null +++ b/radio/aidl/android/hardware/radio/UtranBands.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * UTRAN bands up to V15.0.0 + */ +@VintfStability +@Backing(type="int") +enum UtranBands { + BAND_1 = 1, + BAND_2 = 2, + BAND_3 = 3, + BAND_4 = 4, + BAND_5 = 5, + BAND_6 = 6, + BAND_7 = 7, + BAND_8 = 8, + BAND_9 = 9, + BAND_10 = 10, + BAND_11 = 11, + BAND_12 = 12, + BAND_13 = 13, + BAND_14 = 14, + BAND_19 = 19, + BAND_20 = 20, + BAND_21 = 21, + BAND_22 = 22, + BAND_25 = 25, + BAND_26 = 26, + /** + * TD-SCDMA bands. 3GPP TS 25.102, Table 5.2: Frequency bands + */ + BAND_A = 101, + BAND_B = 102, + BAND_C = 103, + BAND_D = 104, + BAND_E = 105, + BAND_F = 106, +} diff --git a/radio/aidl/android/hardware/radio/UusInfo.aidl b/radio/aidl/android/hardware/radio/UusInfo.aidl new file mode 100644 index 0000000000..c96c626f7a --- /dev/null +++ b/radio/aidl/android/hardware/radio/UusInfo.aidl @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2021 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.radio; + +/** + * User-to-User Signaling Information defined in 3GPP 23.087 v8.0 + */ +@VintfStability +parcelable UusInfo { + /** + * User specified protocol + */ + const int UUS_DCS_USP = 0; + /** + * OSI higher layer protocol + */ + const int UUS_DCS_OSIHLP = 1; + /** + * X.244 + */ + const int UUS_DCS_X244 = 2; + /** + * Reserved for system management + */ + const int UUS_DCS_RMCF = 3; + /** + * IA5 characters + */ + const int UUS_DCS_IA5C = 4; + + const int UUS_TYPE_TYPE1_IMPLICIT = 0; + const int UUS_TYPE_TYPE1_REQUIRED = 1; + const int UUS_TYPE_TYPE1_NOT_REQUIRED = 2; + const int UUS_TYPE_TYPE2_REQUIRED = 3; + const int UUS_TYPE_TYPE2_NOT_REQUIRED = 4; + const int UUS_TYPE_TYPE3_REQUIRED = 5; + const int UUS_TYPE_TYPE3_NOT_REQUIRED = 6; + + /** + * User-to-User Signaling Information activation types derived from 3GPP 23.087 v8.0 + * Values are UUS_TYPE_ + */ + int uusType; + /** + * User-to-User Signaling Information data coding schemes. Possible values for Octet 3 (Protocol + * Discriminator field) in the UUIE. The values have been specified in section 10.5.4.25 of + * 3GPP TS 24.008 + * Values are UUS_DCS_ + */ + int uusDcs; + /** + * UUS data + */ + String uusData; +} diff --git a/radio/aidl/android/hardware/radio/VoiceRegStateResult.aidl b/radio/aidl/android/hardware/radio/VoiceRegStateResult.aidl new file mode 100644 index 0000000000..897c663621 --- /dev/null +++ b/radio/aidl/android/hardware/radio/VoiceRegStateResult.aidl @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2021 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.radio; + +import android.hardware.radio.CellIdentity; +import android.hardware.radio.RegState; + +@VintfStability +parcelable VoiceRegStateResult { + /** + * Valid reg states are NOT_REG_MT_NOT_SEARCHING_OP, REG_HOME, NOT_REG_MT_SEARCHING_OP, + * REG_DENIED, UNKNOWN, REG_ROAMING defined in RegState. + */ + RegState regState; + /** + * Indicates the available voice radio technology, valid values as defined by RadioTechnology. + */ + int rat; + /** + * Concurrent services support indicator, if registered on a CDMA system. + * false - Concurrent services not supported, + * true - Concurrent services supported + */ + boolean cssSupported; + /** + * TSB-58 Roaming Indicator if registered on a CDMA or EVDO system or -1 if not. + * Valid values are 0-255. + */ + 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 + */ + 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. + */ + int defaultRoamingIndicator; + /** + * Reason for denial if registration state is REG_DENIED. This is an enumerated reason why + * registration was denied. See 3GPP TS 24.008, 10.5.3.6 and Annex G. + * 0 - General + * 1 - Authentication Failure + * 2 - IMSI unknown in HLR + * 3 - Illegal MS + * 4 - Illegal ME + * 5 - PLMN not allowed + * 6 - Location area not allowed + * 7 - Roaming not allowed + * 8 - No Suitable Cells in this Location Area + * 9 - Network failure + * 10 - Persistent location update reject + * 11 - PLMN not allowed + * 12 - Location area not allowed + * 13 - Roaming not allowed in this Location Area + * 15 - No Suitable Cells in this Location Area + * 17 - Network Failure + * 20 - MAC Failure + * 21 - Sync Failure + * 22 - Congestion + * 23 - GSM Authentication unacceptable + * 25 - Not Authorized for this CSG + * 32 - Service option not supported + * 33 - Requested service option not subscribed + * 34 - Service option temporarily out of order + * 38 - Call cannot be identified + * 48-63 - Retry upon entry into a new cell + * 95 - Semantically incorrect message + * 96 - Invalid mandatory information + * 97 - Message type non-existent or not implemented + * 98 - Message type not compatible with protocol state + * 99 - Information element non-existent or not implemented + * 100 - Conditional IE error + * 101 - Message not compatible with protocol state + * 111 - Protocol error, unspecified + */ + int reasonForDenial; + CellIdentity cellIdentity; +} diff --git a/radio/aidl/android/hardware/radio/WcdmaSignalStrength.aidl b/radio/aidl/android/hardware/radio/WcdmaSignalStrength.aidl new file mode 100644 index 0000000000..95a3455e4c --- /dev/null +++ b/radio/aidl/android/hardware/radio/WcdmaSignalStrength.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.radio; + +@VintfStability +parcelable WcdmaSignalStrength { + /** + * Valid values are (0-31, 99) as defined in TS 27.007 8.5; INT_MAX means unreported. + */ + int signalStrength; + /** + * Bit error rate (0-7, 99) as defined in TS 27.007 8.5; INT_MAX means invalid/unreported. + */ + int bitErrorRate; + /** + * CPICH RSCP as defined in TS 25.215 5.1.1. Valid values are (0-96, 255) as defined in + * TS 27.007 8.69. INT_MAX denotes that the value is invalid/unreported. + */ + int rscp; + /** + * Ec/No value as defined in TS 25.215 5.1.5. Valid values are (0-49, 255) as defined in + * TS 27.007 8.69. INT_MAX denotes that the value is invalid/unreported. + */ + int ecno; +} diff --git a/secure_element/1.0/vts/functional/OWNERS b/secure_element/1.0/vts/functional/OWNERS new file mode 100644 index 0000000000..a7ee7e925e --- /dev/null +++ b/secure_element/1.0/vts/functional/OWNERS @@ -0,0 +1,2 @@ +# Bug component: 456592 +jackcwyu@google.com diff --git a/secure_element/1.1/vts/functional/OWNERS b/secure_element/1.1/vts/functional/OWNERS new file mode 100644 index 0000000000..a7ee7e925e --- /dev/null +++ b/secure_element/1.1/vts/functional/OWNERS @@ -0,0 +1,2 @@ +# Bug component: 456592 +jackcwyu@google.com diff --git a/secure_element/1.2/vts/functional/OWNERS b/secure_element/1.2/vts/functional/OWNERS new file mode 100644 index 0000000000..a7ee7e925e --- /dev/null +++ b/secure_element/1.2/vts/functional/OWNERS @@ -0,0 +1,2 @@ +# Bug component: 456592 +jackcwyu@google.com diff --git a/security/keymint/aidl/vts/functional/KeyMintTest.cpp b/security/keymint/aidl/vts/functional/KeyMintTest.cpp index 651b21f19e..a90ee65843 100644 --- a/security/keymint/aidl/vts/functional/KeyMintTest.cpp +++ b/security/keymint/aidl/vts/functional/KeyMintTest.cpp @@ -951,8 +951,12 @@ TEST_P(NewKeyGenerationTest, RsaWithAttestation) { * * Verifies that keymint can generate all required RSA key sizes, using an attestation key * that has been generated using an associate IRemotelyProvisionedComponent. + * + * This test is disabled because the KeyMint specification does not require that implementations + * of the first version of KeyMint have to also implement IRemotelyProvisionedComponent. + * However, the test is kept in the code because KeyMint v2 will impose this requirement. */ -TEST_P(NewKeyGenerationTest, RsaWithRpkAttestation) { +TEST_P(NewKeyGenerationTest, DISABLED_RsaWithRpkAttestation) { // There should be an IRemotelyProvisionedComponent instance associated with the KeyMint // instance. std::shared_ptr<IRemotelyProvisionedComponent> rp; diff --git a/security/secureclock/aidl/android/hardware/security/secureclock/ISecureClock.aidl b/security/secureclock/aidl/android/hardware/security/secureclock/ISecureClock.aidl index a742ff0dad..e6d63c8358 100644 --- a/security/secureclock/aidl/android/hardware/security/secureclock/ISecureClock.aidl +++ b/security/secureclock/aidl/android/hardware/security/secureclock/ISecureClock.aidl @@ -25,6 +25,10 @@ import android.hardware.security.secureclock.TimeStampToken; * secret. The shared secret must be available to secure clock service by implementing * ISharedSecret aidl. Note: ISecureClock depends on the shared secret, without which the secure * time stamp token cannot be generated. + * + * The timer must be the same that is used for HardwareAuthTokens. The ISecureClock interface is + * used to convey a fresh timestamp to those components that do not share a timer with the + * authenticators. * @hide */ @VintfStability diff --git a/sensors/2.1/default/Android.bp b/sensors/2.1/default/Android.bp index 0be81e11d7..e11316b8bc 100644 --- a/sensors/2.1/default/Android.bp +++ b/sensors/2.1/default/Android.bp @@ -22,6 +22,11 @@ package { default_applicable_licenses: ["hardware_interfaces_license"], } +filegroup { + name: "android.hardware.sensors@2.1.xml", + srcs: ["android.hardware.sensors@2.1.xml"], +} + cc_binary { name: "android.hardware.sensors@2.1-service.mock", defaults: ["hidl_defaults"], @@ -50,5 +55,5 @@ cc_binary { "android.hardware.sensors@1.0-convert", "android.hardware.sensors@2.X-shared-impl", ], - vintf_fragments: ["android.hardware.sensors@2.1.xml"], + vintf_fragments: [":android.hardware.sensors@2.1.xml"], } diff --git a/sensors/2.1/default/apex/Android.bp b/sensors/2.1/default/apex/Android.bp new file mode 100644 index 0000000000..3345b92b90 --- /dev/null +++ b/sensors/2.1/default/apex/Android.bp @@ -0,0 +1,46 @@ +package { + default_applicable_licenses: ["hardware_interfaces_license"], +} + +apex_key { + name: "com.android.hardware.sensors.key", + public_key: "com.android.hardware.sensors.avbpubkey", + private_key: "com.android.hardware.sensors.pem", +} + +android_app_certificate { + name: "com.android.hardware.sensors.certificate", + certificate: "com.android.hardware.sensors", +} + +prebuilt_etc { + name: "com.android.hardware.sensors.rc", + src: "com.android.hardware.sensors.rc", + installable: false, +} + +// Default vendor APEX for android.hardware.sensors. +// Custom implementations may use override_apex based on this APEX. +apex { + name: "com.android.hardware.sensors", + manifest: "apex_manifest.json", + key: "com.android.hardware.sensors.key", + certificate: ":com.android.hardware.sensors.certificate", + file_contexts: "file_contexts", + use_vndk_as_stable: true, + updatable: false, + // Install the apex in /vendor/apex + soc_specific: true, + binaries: ["android.hardware.sensors@2.1-service.mock"], + prebuilts: [ + "com.android.hardware.sensors.rc", + "android.hardware.sensor.ambient_temperature.prebuilt.xml", + "android.hardware.sensor.barometer.prebuilt.xml", + "android.hardware.sensor.gyroscope.prebuilt.xml", + "android.hardware.sensor.hinge_angle.prebuilt.xml", + "android.hardware.sensor.light.prebuilt.xml", + "android.hardware.sensor.proximity.prebuilt.xml", + "android.hardware.sensor.relative_humidity.prebuilt.xml", + ], + vintf_fragments: [":android.hardware.sensors@2.1.xml"], +} diff --git a/sensors/2.1/default/apex/apex_manifest.json b/sensors/2.1/default/apex/apex_manifest.json new file mode 100644 index 0000000000..47e45ee63e --- /dev/null +++ b/sensors/2.1/default/apex/apex_manifest.json @@ -0,0 +1,4 @@ +{ + "name": "com.android.hardware.sensors", + "version": 1 +} diff --git a/sensors/2.1/default/apex/com.android.hardware.sensors.avbpubkey b/sensors/2.1/default/apex/com.android.hardware.sensors.avbpubkey Binary files differnew file mode 100644 index 0000000000..98dfb71b81 --- /dev/null +++ b/sensors/2.1/default/apex/com.android.hardware.sensors.avbpubkey diff --git a/sensors/2.1/default/apex/com.android.hardware.sensors.pem b/sensors/2.1/default/apex/com.android.hardware.sensors.pem new file mode 100644 index 0000000000..a2f1833035 --- /dev/null +++ b/sensors/2.1/default/apex/com.android.hardware.sensors.pem @@ -0,0 +1,51 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIJKAIBAAKCAgEArUwl9rjXtNrSqJ2rfEryTnVEte7uhZlsn42rXRHFZtuV8N03 +AKAFDDkhJIT+FqmVJLW1Whrno+goaKzA23BodZcSo/xOJuTopgQ/TVqIO2QZ2WUS +1NiYT3+kydZgtBHhfS+ek9h6aTLgJUn/XBX2xgEA6kp/NkcLpGkqj9Xs7XUpG+n/ +KnyYg+/YFqooEKHTTi4dT9YgRblgzv5zhCKxjB9gqy8dmhwDTpbPGavNiMIZvnSs +aQzXh7+UMwte+V4QdaEqonoVWm85vEh6rsPpvvmxvlkVnUstRWRwsvbA183gvwZg +f7OmAgpVu0kEkSHpoJJWpDUhzxmTdxmwvmL92eCJqQUjvxLqak4uBt+epUgbgxcA +nS7rNg6PsNlHhYl5wRArPP17iW/QK3qnoz8rKgJCtdxPPD13byA13eY9q+Fdwb2H +uHxGu1iYlRxUAzptvb6pIED/v9MMw/g3yMJkR89WG+pBLbUXHko6H0qOVchYrd8C +OtcGo7GBBPbJmj9ZGZDX7p5YBSdTZs8f9wWqJmXkfVR60zZE0dOnOchzL44c8oUh +uwEZMee7Ae/2LfWnfIe5KBNTvvH1CzU8KbQUJJVbATbb3j/eYExgsbnk0WgFi6i4 +osuJZZmfC44tAg18gXozcji+xYuW3MIMV2+drdc3xXn7LXKn5JZCLVJ6n+cCAwEA +AQKCAgATT6P/XVO0NJo67e75F8Tul0TD3U85FgKzuO66nUtZDekkgRIrAKnvVcJq +tmM2FUmoYJNH6i2b5zfxiianjVwmlmIeYfQ3g1Slg12megsqSxpSTmAN1eELItcz +Iq9+AWwWLiNGqF3jsSanIRrSoSPxppT6hrisTLhwZsO2aYlQYLjnAmlLy7yXHzf+ +NpHmYJISaTMc/Wh1PJYcGuC2fcM5MRntmX9799kqfcWwP6PUtIR347p+rk6qMuAJ +3B+GPEQrR31fw6jzfed6Ir2BEhXPETYMVxMAhysRS4L/fl247pk30Dcao+NA4PPy +vc1Devr0yLnc7IrK8DetkvBOFuvgl53gHPZ4f7ge2PQMPghwjBaFuXklcfY96PVw +Yo/CyAN+VEANThFFcKUzovtHI6m3sNTlxE6F+AYvx5dE/WZKmE5/cYCSJ8bhLPJl +G68VkdeNv0LMZ/7rf1OEWP/YWw/5/tQ7MJ0IO5GShjE2EAGG0SZgK8/fwHZZJFES +oYVWlriGtGDfiYjPLqVIjdZI6iOo6BMQh6pl0TPIJpn3ODqtRy8gN3TMvG6VcTJy +QE3Z+br7UsK4gXSw0+MNLC3VKhX2bjT5q9lVpVnLv4L7q1ad4kwHblFAo686ZbWt +eKTUv7QTI3fFqYeZEgCqRBQZ3UoKyWOBg0MAbf26hZFTFFpbEQKCAQEA2JdW6wDM +iO1haR168l497nUC382/f/fJA8vzFdJ7cHVM95Tx/5JNYNJSL30XDyux9RJNqnFu +tByec4c5CVuX/Gv/B4Q++xaaI7OVT9hTl/aoTShObGRJGbVh8xZagb7on7dAfD6G +1SzTaahxQT5neoiki13GvJ6teL+0ZbCxRDMfPyy79lRzH5d0mw+EQvtc0Vvkweyj +zf/Mn0yMZHO19oCKjJo8QkciseOqaS2mpgtOiRDc01uuaFAcw6taiERrR86xK2Yl +OowIx6Yu8n7jRyTGUfr2Oz97a/zDVMVRi3BuyePOyCD9PfUmoj9JyCFbQSS1Lq3N +AWacnNwQpkDDiQKCAQEAzNQ3/hKhjrLyEm2ktQk1Tzyk4eGu/NElxSKM7uJTeU0k +xxKuMNMQCJbZmklJKojVYZ0fsh6AyLEpBMV6mWTmVo0qA/A09jKD2tsKu52KGCMt +vgrN4Gi5JJJACNbtpG7uSJstAYuUGYQSTuS/xCE+urgMVbWBTocsf0bEeEe0FRWX +txhS/zdj6wspTd6lJ0SSahWG/BsV7990zaRDGYv0N1+SwF8/C0Ml99WbyRof6oP9 +jx0esKA+giWc5lSk+Ag2gpsTIH36aF53lQnDBZL3hqSgqP0ollKa9Uyjfmp65D1m +TwoENrKnVNO5ZKteTM3SGQ+zsHxBPpinK7T2BPe77wKCAQBdS+Nu2ys/mDErnD1H +hXzb6J9SVEg3ET8PWZzeO4pciMqcoxYS5qxaFn68Yf+60zGWxUmbL71l7CX80bSp +6UBwxPxX+ok+kx/WXRbmC+MGRIN+qOwPGKu8XTtSAMD/voJpugAXBMADt4lhq+MN +HZppV865Ea33tco3hyxn2VKic/rztYtJslrcstrRqD9qsufqbtD9D7gHljZIMCsR +Yh5xjjEgG5f1XLr/MXhIUhfE0n4D4LWefZGE8W1Sg889f2tOxSPf8+H5dDSb+2Oh +pTK1hIvA6H+ESfYaMAjbzRsxGz89y9lYr40mUSFRJj3b7TJnvy4ka00xW0f+8XRi +iOcxAoIBAB0o8Te4i0t3akL5XQNw5if7qDWIHZNcaxYfjxTLH7sbIms825OT2KqA +X0Y5vLLTfB1Dcym2cfsgTYiiXIvN84TK3/pjjgamtmLH4EVJbkl1aKOvghO6lPEB +6R/ZCUfpiv7HKKcZqeHgDYMxyaMwYG/Ql+Dz0A7P66PK/VlqS9bclha43cf7qLvj +gOPXGIf4mSeFHQxzBrJ5i3VjNzJB3GitsIS2ipEd5B/eRylgEL8gP07KhH38silx +FV8tGbc95BS/4v8zMBz/peKP2zXF8Hs4oK6uK8MKy4i0emoa2pf3rcL+2A65bF0F +L1WHmAszGf/7Xkd3yQoSTWpJfuTCJ/0CggEBAJjkBaEoiRYp0RBq1Ty0wa+xbPHp +gAcpco+VC3T8uqniKBDrf5QsMDm7+P9IZRYrfgyy0KFeG4mHrTt61JgOLnhSTOyz +EEChc8SOn6+vqMB36FmSSqVb6CdLEZhv5dtTzzHgyd3xS3cwga9Mf2SCoG/l34HJ +XzfoQyLKvqF0kWOq/76k+kBM5QwWIGc2fVXcpJpWaAuPWKDQJnkvTcPp8XPyEADv +z2YbSDDqqcwczX2DWepf2t2RU1fdyjS5wS6pNDvsuyd6gwUTQT1P5ODHbIdAwcdi +5Gxui8voJmzvrfabIsN6H73ZS4Lw20ZB+ejYyiwxZcb0os45C1coicMJ9wQ= +-----END RSA PRIVATE KEY----- diff --git a/sensors/2.1/default/apex/com.android.hardware.sensors.pk8 b/sensors/2.1/default/apex/com.android.hardware.sensors.pk8 Binary files differnew file mode 100644 index 0000000000..7a1cca055a --- /dev/null +++ b/sensors/2.1/default/apex/com.android.hardware.sensors.pk8 diff --git a/sensors/2.1/default/apex/com.android.hardware.sensors.rc b/sensors/2.1/default/apex/com.android.hardware.sensors.rc new file mode 100644 index 0000000000..bd245b4ebd --- /dev/null +++ b/sensors/2.1/default/apex/com.android.hardware.sensors.rc @@ -0,0 +1,7 @@ +service vendor.sensors-hal-2-1-mock /apex/com.android.hardware.sensors/bin/hw/android.hardware.sensors@2.1-service.mock + interface android.hardware.sensors@2.0::ISensors default + interface android.hardware.sensors@2.1::ISensors default + class hal + user system + group system + rlimit rtprio 10 10 diff --git a/sensors/2.1/default/apex/com.android.hardware.sensors.x509.pem b/sensors/2.1/default/apex/com.android.hardware.sensors.x509.pem new file mode 100644 index 0000000000..20a06f942e --- /dev/null +++ b/sensors/2.1/default/apex/com.android.hardware.sensors.x509.pem @@ -0,0 +1,34 @@ +-----BEGIN CERTIFICATE----- +MIIF3TCCA8UCFAbIl4RS714WSLo4k64MHsINz4VEMA0GCSqGSIb3DQEBCwUAMIGp +MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91 +bnRhaW4gVmlldzEQMA4GA1UECgwHQW5kcm9pZDEQMA4GA1UECwwHQW5kcm9pZDEi +MCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTElMCMGA1UEAwwcY29t +LmFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yczAgFw0yMTA5MDMxNjEyNDNaGA80NzU5 +MDczMTE2MTI0M1owgakxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlh +MRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdBbmRyb2lkMRAwDgYD +VQQLDAdBbmRyb2lkMSIwIAYJKoZIhvcNAQkBFhNhbmRyb2lkQGFuZHJvaWQuY29t +MSUwIwYDVQQDDBxjb20uYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzMIICIjANBgkq +hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnluNTPcq4pDEeb5gEYszRYQCawq8czUY +J+x2b0i7qO2wLidX45CX6BLZ9N7c5veoV3FvC1wMTRR6lGAyg7UbD80vVmPdmr6R +vw2AdIqrghXinvAEv6gxQQPVQa8UHkCL4lULLXo2gdmoCBM8VJHihjO/2F8ZLsP/ +nKhYx9Nr6w9LEyalmHTkXOgNyrNprpbJwugdk3hDXbAK+j5nF9fsz/iWFoXnPuNe +oqdWj21YhXKDAbewBXaM6l3qmTdGsVVJL4HmVURGUY2f2UZwMWTEjpy9UDzyfqqg +CSdH1RLmGVAINyfNI3Zswo0CjnOCf0jW6mq9/6mfGYu8hBCrky/rOH8reDwYZTGe +H6JbNj0dhEN5HzQcxGEQQ43L1nmH7XlnuPO0xPSsw5binPVuUvURivR3PSsFgpPl +0Uche62XgLAXCXhNV2uUQtZLVFGug7JcGgS4O3GoKr6w35Q+W9SEXanXFMW6X+wN +hkbhB4MDSuKTZrjEnZEyxMOLG8ILN9i7osa+yjWONTn9bZc6q3Y9jyu3u84o8kC8 +KDcvr8YZEL63nQsQXO44GiQmqBptuB+ehcAC6uRCKkY9tQ95EQ7laGQ3C85d3gPj +NcGjT7SSuUir7n+LI9pZsotedd9+rGhiiyT8CM4sVWiYJFnA2UX/bsnkZyAOq9Po +jz1aMdHc4wUCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEATEPN2SZk8pJc4DaWmhyR +MUklzVeuN0J0Mij1mHuVmID7Q5IhBBXxtVmwRIo208rHSvFLAo7Z4FnuZCV3A/c9 +TlXT3S2t+iYG5eOyXSsoSc/uerJ7kIBcOe27qIrO9GwcK5CQlTaXP+CG1gbLp1nl +IaqKAT+eb/ji5wmFxMI77wo3uKLPTCfpaptFNaYlRqvxiXdJsCZwCPgmCtXJUeeZ +R/HKOA4PcS2QB+HwhYePY5kUJPwt6MwJEyno72oenfl49FrGHj0BzVmQ7KMfiYjZ +eRSB2Wbo50xfiICkPlUcvWD8rRNg7N9CM/Q5O0MW3ivAe42aGap/8qfXUa+L5vu4 +9vaxgQvBVcPXE/pyeCYM8beB84Us+FOYPC7gIUhcctBqGYAQmHzp3sXvIg0DVxz7 +0aqolFGpjRFqbgheS9WRkDHFpYrhR1XMVOQjussHqWEyRcvliqeFlZr8+JNkJNi+ +lmGMdnEAWZs8PL0/AEf+8y0Nr/w0k3Y6IZCDcwpxbpJQOU5pAbkfUzEJHkxMfuvW +ZshvqIMOaLWCGxZaxlbLRxWGuarWYzfmDY3n9TwJmAIUdMLiswv3UsCmLBJO1XGX +SUWfgi4fyG1/phfzhdU3efMvmN+XT16/ykMrY8P5S+ghwK12IZ3DgTl0ooLFABUj +zYeQ8LLz3SP9LNgeLnPP/po= +-----END CERTIFICATE----- diff --git a/sensors/2.1/default/apex/file_contexts b/sensors/2.1/default/apex/file_contexts new file mode 100644 index 0000000000..d0095c03be --- /dev/null +++ b/sensors/2.1/default/apex/file_contexts @@ -0,0 +1,5 @@ +(/.*)? u:object_r:vendor_file:s0 +# Permission XMLs +/etc/permissions(/.*)? u:object_r:vendor_configs_file:s0 +# Service binary +/bin/hw/android\.hardware\.sensors@2\.1-service\.mock u:object_r:hal_sensors_default_exec:s0 diff --git a/sensors/common/default/2.X/Sensor.cpp b/sensors/common/default/2.X/Sensor.cpp index 1a7c62853f..23c98032d1 100644 --- a/sensors/common/default/2.X/Sensor.cpp +++ b/sensors/common/default/2.X/Sensor.cpp @@ -114,7 +114,7 @@ void Sensor::run() { }); } else { timespec curTime; - clock_gettime(CLOCK_REALTIME, &curTime); + clock_gettime(CLOCK_BOOTTIME, &curTime); int64_t now = (curTime.tv_sec * kNanosecondsInSeconds) + curTime.tv_nsec; int64_t nextSampleTime = mLastSampleTimeNs + mSamplingPeriodNs; diff --git a/sensors/common/default/2.X/multihal/tests/fake_subhal/Sensor.cpp b/sensors/common/default/2.X/multihal/tests/fake_subhal/Sensor.cpp index 69debb6885..f5745c5793 100644 --- a/sensors/common/default/2.X/multihal/tests/fake_subhal/Sensor.cpp +++ b/sensors/common/default/2.X/multihal/tests/fake_subhal/Sensor.cpp @@ -125,7 +125,7 @@ void Sensor::run() { }); } else { timespec curTime; - clock_gettime(CLOCK_REALTIME, &curTime); + clock_gettime(CLOCK_BOOTTIME, &curTime); int64_t now = (curTime.tv_sec * kNanosecondsInSeconds) + curTime.tv_nsec; int64_t nextSampleTime = mLastSampleTimeNs + mSamplingPeriodNs; diff --git a/tv/cec/1.0/default/OWNERS b/tv/cec/1.0/default/OWNERS new file mode 100644 index 0000000000..c1d3f1d4b9 --- /dev/null +++ b/tv/cec/1.0/default/OWNERS @@ -0,0 +1 @@ +include platform/frameworks/base:/core/java/android/hardware/hdmi/OWNERS diff --git a/wifi/hostapd/aidl/Android.bp b/wifi/hostapd/aidl/Android.bp new file mode 100644 index 0000000000..fcd06ffb7a --- /dev/null +++ b/wifi/hostapd/aidl/Android.bp @@ -0,0 +1,46 @@ +// Copyright (C) 2021 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 { + // 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" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: ["hardware_interfaces_license"], +} + +aidl_interface { + name: "android.hardware.wifi.hostapd", + vendor_available: true, + srcs: [ + "android/hardware/wifi/hostapd/*.aidl", + ], + stability: "vintf", + backend: { + java: { + sdk_version: "module_current", + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], + min_sdk_version: "30", + }, + ndk: { + vndk: { + enabled: true, + }, + }, + }, +} 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 new file mode 100644 index 0000000000..bdbaadd16e --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/ApInfo.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; +@VintfStability +parcelable ApInfo { + String ifaceName; + String apIfaceInstance; + int freqMhz; + android.hardware.wifi.hostapd.Bandwidth bandwidth; + android.hardware.wifi.hostapd.Generation generation; + byte[] apIfaceInstanceMacAddress; +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/BandMask.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/BandMask.aidl new file mode 100644 index 0000000000..b1e7f66ed4 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/BandMask.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; +@Backing(type="int") @VintfStability +enum BandMask { + BAND_2_GHZ = 1, + BAND_5_GHZ = 2, + BAND_6_GHZ = 4, + BAND_60_GHZ = 8, +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/Bandwidth.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/Bandwidth.aidl new file mode 100644 index 0000000000..890d986f77 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/Bandwidth.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; +@Backing(type="int") @VintfStability +enum Bandwidth { + BANDWIDTH_INVALID = 0, + BANDWIDTH_20_NOHT = 1, + BANDWIDTH_20 = 2, + BANDWIDTH_40 = 3, + BANDWIDTH_80 = 4, + BANDWIDTH_80P80 = 5, + BANDWIDTH_160 = 6, + BANDWIDTH_2160 = 7, + BANDWIDTH_4320 = 8, + BANDWIDTH_6480 = 9, + BANDWIDTH_8640 = 10, +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/ChannelParams.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/ChannelParams.aidl new file mode 100644 index 0000000000..43a9ada0e8 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/ChannelParams.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; +@VintfStability +parcelable ChannelParams { + android.hardware.wifi.hostapd.BandMask bandMask; + android.hardware.wifi.hostapd.FrequencyRange[] acsChannelFreqRangesMhz; + boolean enableAcs; + boolean acsShouldExcludeDfs; + int channel; +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/ClientInfo.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/ClientInfo.aidl new file mode 100644 index 0000000000..c4d62b68cc --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/ClientInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; +@VintfStability +parcelable ClientInfo { + String ifaceName; + String apIfaceInstance; + byte[] clientAddress; + boolean isConnected; +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/DebugLevel.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/DebugLevel.aidl new file mode 100644 index 0000000000..9795211df0 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/DebugLevel.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; +@Backing(type="int") @VintfStability +enum DebugLevel { + EXCESSIVE = 0, + MSGDUMP = 1, + DEBUG = 2, + INFO = 3, + WARNING = 4, + ERROR = 5, +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/EncryptionType.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/EncryptionType.aidl new file mode 100644 index 0000000000..cec0c14f49 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/EncryptionType.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; +@Backing(type="int") @VintfStability +enum EncryptionType { + NONE = 0, + WPA = 1, + WPA2 = 2, + WPA3_SAE_TRANSITION = 3, + WPA3_SAE = 4, +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/FrequencyRange.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/FrequencyRange.aidl new file mode 100644 index 0000000000..11851438bd --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/FrequencyRange.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; +@VintfStability +parcelable FrequencyRange { + int startMhz; + int endMhz; +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/Generation.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/Generation.aidl new file mode 100644 index 0000000000..6b60d17400 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/Generation.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; +@Backing(type="int") @VintfStability +enum Generation { + WIFI_STANDARD_UNKNOWN = -1, + WIFI_STANDARD_LEGACY = 0, + WIFI_STANDARD_11N = 1, + WIFI_STANDARD_11AC = 2, + WIFI_STANDARD_11AX = 3, + WIFI_STANDARD_11AD = 4, +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/HostapdStatusCode.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/HostapdStatusCode.aidl new file mode 100644 index 0000000000..548e497680 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/HostapdStatusCode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; +@Backing(type="int") @VintfStability +enum HostapdStatusCode { + SUCCESS = 0, + FAILURE_UNKNOWN = 1, + FAILURE_ARGS_INVALID = 2, + FAILURE_IFACE_UNKNOWN = 3, + FAILURE_IFACE_EXISTS = 4, + FAILURE_CLIENT_UNKNOWN = 5, +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/HwModeParams.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/HwModeParams.aidl new file mode 100644 index 0000000000..844c838c44 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/HwModeParams.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; +@VintfStability +parcelable HwModeParams { + boolean enable80211N; + boolean enable80211AC; + boolean enable80211AX; + boolean enable6GhzBand; + boolean enableHeSingleUserBeamformer; + boolean enableHeSingleUserBeamformee; + boolean enableHeMultiUserBeamformer; + boolean enableHeTargetWakeTime; + boolean enableEdmg; +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/IHostapd.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/IHostapd.aidl new file mode 100644 index 0000000000..ff941fdbf7 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/IHostapd.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; +@VintfStability +interface IHostapd { + void addAccessPoint(in android.hardware.wifi.hostapd.IfaceParams ifaceParams, in android.hardware.wifi.hostapd.NetworkParams nwParams); + void forceClientDisconnect(in String ifaceName, in byte[] clientAddress, in android.hardware.wifi.hostapd.Ieee80211ReasonCode reasonCode); + void registerCallback(in android.hardware.wifi.hostapd.IHostapdCallback callback); + void removeAccessPoint(in String ifaceName); + void setDebugParams(in android.hardware.wifi.hostapd.DebugLevel level); + oneway void terminate(); +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/IHostapdCallback.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/IHostapdCallback.aidl new file mode 100644 index 0000000000..36d210476a --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/IHostapdCallback.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; +@VintfStability +interface IHostapdCallback { + oneway void onApInstanceInfoChanged(in android.hardware.wifi.hostapd.ApInfo apInfo); + oneway void onConnectedClientsChanged(in android.hardware.wifi.hostapd.ClientInfo clientInfo); + oneway void onFailure(in String ifaceName); +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/Ieee80211ReasonCode.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/Ieee80211ReasonCode.aidl new file mode 100644 index 0000000000..99879b59bd --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/Ieee80211ReasonCode.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; +@Backing(type="int") @VintfStability +enum Ieee80211ReasonCode { + WLAN_REASON_UNSPECIFIED = 1, + WLAN_REASON_PREV_AUTH_NOT_VALID = 2, + WLAN_REASON_DISASSOC_AP_BUSY = 5, +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/IfaceParams.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/IfaceParams.aidl new file mode 100644 index 0000000000..0c88a398a3 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/IfaceParams.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; +@VintfStability +parcelable IfaceParams { + String name; + android.hardware.wifi.hostapd.HwModeParams hwModeParams; + android.hardware.wifi.hostapd.ChannelParams[] channelParams; +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/NetworkParams.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/NetworkParams.aidl new file mode 100644 index 0000000000..ffe2f33475 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/NetworkParams.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; +@VintfStability +parcelable NetworkParams { + byte[] ssid; + boolean isHidden; + android.hardware.wifi.hostapd.EncryptionType encryptionType; + String passphrase; + boolean isMetered; +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/ParamSizeLimits.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/ParamSizeLimits.aidl new file mode 100644 index 0000000000..70f94c1b5e --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/current/android/hardware/wifi/hostapd/ParamSizeLimits.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; +@Backing(type="int") @VintfStability +enum ParamSizeLimits { + SSID_MAX_LEN_IN_BYTES = 32, + WPA2_PSK_PASSPHRASE_MIN_LEN_IN_BYTES = 8, + WPA2_PSK_PASSPHRASE_MAX_LEN_IN_BYTES = 63, +} diff --git a/wifi/hostapd/aidl/android/hardware/wifi/hostapd/ApInfo.aidl b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/ApInfo.aidl new file mode 100644 index 0000000000..bf506b296b --- /dev/null +++ b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/ApInfo.aidl @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; + +import android.hardware.wifi.hostapd.Bandwidth; +import android.hardware.wifi.hostapd.Generation; + +/** + * Parameters to control the channel selection for the interface. + */ +@VintfStability +parcelable ApInfo { + /** + * Name of the interface which was added via |IHostapd.addAccessPoint|. + */ + String ifaceName; + + /** + * The identity of the AP instance. The interface will have two instances + * (e.g. 2.4 Ghz AP and 5 GHz AP) in dual AP mode. + * The apIfaceInstance can be used to identify which instance the callback + * is from. + * Note: The apIfaceInstance must be same as ifaceName in single AP mode. + */ + String apIfaceInstance; + + /** + * The operational frequency of the AP in Mhz. + */ + int freqMhz; + + /** + * The operational bandwidth of the AP. + */ + Bandwidth bandwidth; + + /** + * The operational mode of the AP (e.g. 11ac, 11ax). + */ + Generation generation; + + /** + * MAC Address of the apIfaceInstance. + */ + byte[] apIfaceInstanceMacAddress; +} diff --git a/wifi/hostapd/aidl/android/hardware/wifi/hostapd/BandMask.aidl b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/BandMask.aidl new file mode 100644 index 0000000000..0c64bd1f6a --- /dev/null +++ b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/BandMask.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; + +@VintfStability +@Backing(type="int") +enum BandMask { + /** + * 2.4 GHz band. + */ + BAND_2_GHZ = 1 << 0, + /** + * 5 GHz band. + */ + BAND_5_GHZ = 1 << 1, + /** + * 6 GHz band. + */ + BAND_6_GHZ = 1 << 2, + /** + * 60 GHz band. + */ + BAND_60_GHZ = 1 << 3, +} diff --git a/wifi/hostapd/aidl/android/hardware/wifi/hostapd/Bandwidth.aidl b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/Bandwidth.aidl new file mode 100644 index 0000000000..c9824027e9 --- /dev/null +++ b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/Bandwidth.aidl @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; + +/** + * The channel bandwidth of the AP. + */ +@VintfStability +@Backing(type="int") +enum Bandwidth { + BANDWIDTH_INVALID = 0, + BANDWIDTH_20_NOHT = 1, + BANDWIDTH_20 = 2, + BANDWIDTH_40 = 3, + BANDWIDTH_80 = 4, + BANDWIDTH_80P80 = 5, + BANDWIDTH_160 = 6, + BANDWIDTH_2160 = 7, + BANDWIDTH_4320 = 8, + BANDWIDTH_6480 = 9, + BANDWIDTH_8640 = 10, +} diff --git a/wifi/hostapd/aidl/android/hardware/wifi/hostapd/ChannelParams.aidl b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/ChannelParams.aidl new file mode 100644 index 0000000000..b2e0c8138e --- /dev/null +++ b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/ChannelParams.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; + +import android.hardware.wifi.hostapd.BandMask; +import android.hardware.wifi.hostapd.FrequencyRange; + +/** + * Parameters to control the channel selection for the interface. + */ +@VintfStability +parcelable ChannelParams { + /** + * Band to use for the SoftAp operations. + */ + BandMask bandMask; + /** + * This option can be used to specify the channel frequencies (in MHz) selected by ACS. + * If this is an empty list, all channels allowed in selected HW mode + * are specified implicitly. + * Note: channels may be overridden by firmware. + * Note: this option is ignored if ACS is disabled. + */ + FrequencyRange[] acsChannelFreqRangesMhz; + /** + * Whether to enable ACS (Automatic Channel Selection) or not. + * The channel can be selected automatically at run time by setting + * this flag, which must enable the ACS survey based algorithm. + */ + boolean enableAcs; + /** + * This option can be used to exclude all DFS channels from the ACS + * channel list in cases where the driver supports DFS channels. + **/ + boolean acsShouldExcludeDfs; + /** + * Channel number (IEEE 802.11) to use for the interface. + * If ACS is enabled, this field is ignored. + * + * If |enableEdmg| is true, the channel must be set. Refer to + * P802.11ay_D4.0 29.3.4. + */ + int channel; +} diff --git a/wifi/hostapd/aidl/android/hardware/wifi/hostapd/ClientInfo.aidl b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/ClientInfo.aidl new file mode 100644 index 0000000000..7bed6584f4 --- /dev/null +++ b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/ClientInfo.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; + +/** + * Parameters to control the channel selection for the interface. + */ +@VintfStability +parcelable ClientInfo { + /** + * Name of the interface which was added via |IHostapd.addAccessPoint|. + */ + String ifaceName; + + /** + * The identity of the AP instance. The interface will have two instances in dual AP mode. + * The apIfaceInstance can be used to identify which instance the callback is from. + * Note: The apIfaceInstance must be same as ifaceName in single AP mode. + */ + String apIfaceInstance; + + /** + * MAC Address of hotspot client. + */ + byte[] clientAddress; + + /** + * True when client connected, false when client disconnected. + */ + boolean isConnected; +} diff --git a/wifi/hostapd/aidl/android/hardware/wifi/hostapd/DebugLevel.aidl b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/DebugLevel.aidl new file mode 100644 index 0000000000..5187729124 --- /dev/null +++ b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/DebugLevel.aidl @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; + +/** + * Debug levels for the hostapd. + * Only log messages with a level greater than the set level + * (via |setDebugParams|) will be logged. + */ +@VintfStability +@Backing(type="int") +enum DebugLevel { + EXCESSIVE = 0, + MSGDUMP = 1, + DEBUG = 2, + INFO = 3, + WARNING = 4, + ERROR = 5, +} diff --git a/wifi/hostapd/aidl/android/hardware/wifi/hostapd/EncryptionType.aidl b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/EncryptionType.aidl new file mode 100644 index 0000000000..bfc634d9d4 --- /dev/null +++ b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/EncryptionType.aidl @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; + +import android.hardware.wifi.hostapd.EncryptionType; + +/** + * Possible Security types. + */ +@VintfStability +@Backing(type="int") +enum EncryptionType { + NONE, + WPA, + WPA2, + WPA3_SAE_TRANSITION, + WPA3_SAE, +} diff --git a/wifi/hostapd/aidl/android/hardware/wifi/hostapd/FrequencyRange.aidl b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/FrequencyRange.aidl new file mode 100644 index 0000000000..81f6744c87 --- /dev/null +++ b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/FrequencyRange.aidl @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; + +/** + * Parameters to specify the channel frequency range. + */ +@VintfStability +parcelable FrequencyRange { + /** + * Channel Frequency (in MHz) at the start of the range. + */ + int startMhz; + /** + * Channel Frequency (in MHz) at the end of the range. + */ + int endMhz; +} diff --git a/wifi/hostapd/aidl/android/hardware/wifi/hostapd/Generation.aidl b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/Generation.aidl new file mode 100644 index 0000000000..2cda55bd97 --- /dev/null +++ b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/Generation.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; + +/** + * The wifi operational mode of the AP. + * It depends on hw mode and HT/VHT capabilities in hostapd. + * + * WIFI_STANDARD_LEGACY = (hw_mode is HOSTAPD_MODE_IEEE80211B) or + * (hw_mode is HOSTAPD_MODE_IEEE80211G and HT is 0). + * WIFI_STANDARD_11N = [hw_mode is HOSTAPD_MODE_IEEE80211G and (HT is 1 or HT40 is 1)] or + * [hw_mode is HOSTAPD_MODE_IEEE80211A and VHT is 0]. + * WIFI_STANDARD_11AC = hw_mode is HOSTAPD_MODE_IEEE80211A and VHT is 1. + * WIFI_STANDARD_11AX = hw_mode is HOSTAPD_MODE_IEEE80211A and High Efficiency supported. + * WIFI_STANDARD_11AD = hw_mode is HOSTAPD_MODE_IEEE80211AD. + */ +@VintfStability +@Backing(type="int") +enum Generation { + WIFI_STANDARD_UNKNOWN = -1, + WIFI_STANDARD_LEGACY = 0, + WIFI_STANDARD_11N = 1, + WIFI_STANDARD_11AC = 2, + WIFI_STANDARD_11AX = 3, + WIFI_STANDARD_11AD = 4, +} diff --git a/wifi/hostapd/aidl/android/hardware/wifi/hostapd/HostapdStatusCode.aidl b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/HostapdStatusCode.aidl new file mode 100644 index 0000000000..87f1453cfd --- /dev/null +++ b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/HostapdStatusCode.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; + +/** + * Enum values indicating the status of any hostapd operation. + */ +@VintfStability +@Backing(type="int") +enum HostapdStatusCode { + /** + * No errors. + */ + SUCCESS, + /** + * Unknown failure occurred. + */ + FAILURE_UNKNOWN, + /** + * One or more of the incoming args is invalid. + */ + FAILURE_ARGS_INVALID, + /** + * Interface with the provided name does not exist. + */ + FAILURE_IFACE_UNKNOWN, + /** + * Interface with the provided name already exists. + */ + FAILURE_IFACE_EXISTS, + /** + * Failure because the client is unknown. + */ + FAILURE_CLIENT_UNKNOWN, +} diff --git a/wifi/hostapd/aidl/android/hardware/wifi/hostapd/HwModeParams.aidl b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/HwModeParams.aidl new file mode 100644 index 0000000000..210e99ff1f --- /dev/null +++ b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/HwModeParams.aidl @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; + +/** + * Parameters to control the HW mode for the interface. + */ +@VintfStability +parcelable HwModeParams { + /** + * Whether IEEE 802.11n (HT) is enabled or not. + * Note: hwMode=G (2.4 GHz) and hwMode=A (5 GHz) is used to specify + * the band. + */ + boolean enable80211N; + /** + * Whether IEEE 802.11ac (VHT) is enabled or not. + * Note: hw_mode=a is used to specify that 5 GHz band is used with VHT. + */ + boolean enable80211AC; + /** + * Whether IEEE 802.11ax (High Efficiency) is enabled or not. + * Note: hw_mode=a is used to specify that 5 GHz band or 6 GHz band is + * used with High Efficiency. + */ + boolean enable80211AX; + /** + * Whether 6GHz band enabled or not on softAp. + * Note: hw_mode=a is used to specify that 5 GHz band or 6 GHz band is + * used. + */ + boolean enable6GhzBand; + /** + * Whether High Efficiency single user beamformer in enabled or not on softAp. + * Note: this is only applicable if 802.11ax is supported for softAp + */ + boolean enableHeSingleUserBeamformer; + /** + * Whether High Efficiency single user beamformee is enabled or not on softAp. + * Note: this is only applicable if 802.11ax is supported for softAp + */ + boolean enableHeSingleUserBeamformee; + /** + * Whether High Efficiency multiple user beamformer is enabled or not on softAp. + * Note: this is only applicable if 802.11ax is supported for softAp + */ + boolean enableHeMultiUserBeamformer; + /** + * Whether High Efficiency Target Wait Time (TWT) is enabled or not on softAp. + * Note: this is only applicable if 802.11ax is supported for softAp + */ + boolean enableHeTargetWakeTime; + /** + * Enable EDMG (802.11ay), this option is only allowed for the 60GHz band. + */ + boolean enableEdmg; +} diff --git a/wifi/hostapd/aidl/android/hardware/wifi/hostapd/IHostapd.aidl b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/IHostapd.aidl new file mode 100644 index 0000000000..d2f47953ba --- /dev/null +++ b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/IHostapd.aidl @@ -0,0 +1,106 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; + +import android.hardware.wifi.hostapd.BandMask; +import android.hardware.wifi.hostapd.ChannelParams; +import android.hardware.wifi.hostapd.DebugLevel; +import android.hardware.wifi.hostapd.HwModeParams; +import android.hardware.wifi.hostapd.IHostapdCallback; +import android.hardware.wifi.hostapd.Ieee80211ReasonCode; +import android.hardware.wifi.hostapd.IfaceParams; +import android.hardware.wifi.hostapd.NetworkParams; + +/** + * Top-level interface for managing SoftAPs. + */ +@VintfStability +interface IHostapd { + /** + * Adds a new access point for hostapd to control. + * + * This should trigger the setup of an access point with the specified + * interface and network params. + * + * @param ifaceParams AccessPoint Params for the access point. + * @param nwParams Network Params for the access point. + * @throws ServiceSpecificException with one of the following values: + * |HostapdStatusCode.FAILURE_ARGS_INVALID|, + * |HostapdStatusCode.FAILURE_UNKNOWN|, + * |HostapdStatusCode.FAILURE_IFACE_EXISTS| + */ + void addAccessPoint(in IfaceParams ifaceParams, in NetworkParams nwParams); + + /** + * Force one of the hotspot clients to disconnect. + * + * @param ifaceName Name of the interface. + * @param clientAddress MAC Address of the hotspot client. + * @param reasonCode One of disconnect reason code defined by 802.11. + * @throws ServiceSpecificException with one of the following values: + * |HostapdStatusCode.FAILURE_IFACE_UNKNOWN|, + * |HostapdStatusCode.FAILURE_CLIENT_UNKNOWN| + */ + void forceClientDisconnect( + in String ifaceName, in byte[] clientAddress, in Ieee80211ReasonCode reasonCode); + + /** + * Register for callbacks from the hostapd service. + * + * These callbacks are invoked for global events that are not specific + * to any interface or network. Registration of multiple callback + * objects is supported. These objects must be deleted when the corresponding + * client process is dead. + * + * @param callback An instance of the |IHostapdCallback| AIDL interface + * object. + * @throws ServiceSpecificException with one of the following values: + * |HostapdStatusCode.FAILURE_UNKNOWN| + */ + void registerCallback(in IHostapdCallback callback); + + /** + * Removes an existing access point from hostapd. + * + * This must bring down the access point previously set up on the + * interface. + * + * @param ifaceName Name of the interface. + * @throws ServiceSpecificException with one of the following values: + * |HostapdStatusCode.FAILURE_UNKNOWN|, + * |HostapdStatusCode.FAILURE_IFACE_UNKNOWN| + */ + void removeAccessPoint(in String ifaceName); + + /** + * Set debug parameters for the hostapd. + * + * @param level Debug logging level for the hostapd. + * (one of |DebugLevel| values). + * @throws ServiceSpecificException with one of the following values: + * |HostapdStatusCode.FAILURE_UNKNOWN| + */ + void setDebugParams(in DebugLevel level); + + /** + * Terminate the service. + * This must de-register the service and clear all states. If this HAL + * supports the lazy HAL protocol, then this may trigger daemon to exit and + * wait to be restarted. + */ + oneway void terminate(); +} diff --git a/wifi/hostapd/aidl/android/hardware/wifi/hostapd/IHostapdCallback.aidl b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/IHostapdCallback.aidl new file mode 100644 index 0000000000..7b049442a6 --- /dev/null +++ b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/IHostapdCallback.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; + +import android.hardware.wifi.hostapd.ApInfo; +import android.hardware.wifi.hostapd.ClientInfo; + +/** + * Top-level callback interface for managing SoftAPs. + */ +@VintfStability +interface IHostapdCallback { + /** + * Invoked when information changes for one of the AP instances. + * + * @param apInfo AP information of the instance changed. + */ + oneway void onApInstanceInfoChanged(in ApInfo apInfo); + + /** + * Invoked when a client connects/disconnects from the hotspot. + * + */ + oneway void onConnectedClientsChanged(in ClientInfo clientInfo); + + /** + * Invoked when an asynchronous failure is encountered in one of the access + * points added via |IHostapd.addAccessPoint|. + * + * @param ifaceName Name of the interface. + */ + oneway void onFailure(in String ifaceName); +} diff --git a/wifi/hostapd/aidl/android/hardware/wifi/hostapd/Ieee80211ReasonCode.aidl b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/Ieee80211ReasonCode.aidl new file mode 100644 index 0000000000..a11f44a3d4 --- /dev/null +++ b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/Ieee80211ReasonCode.aidl @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; + +/** + * Enum values indicating the reason code for disconnect packet. + * Reason codes (IEEE Std 802.11-2016, 9.4.1.7, Table 9-45). + */ +@VintfStability +@Backing(type="int") +enum Ieee80211ReasonCode { + WLAN_REASON_UNSPECIFIED = 1, + WLAN_REASON_PREV_AUTH_NOT_VALID = 2, + WLAN_REASON_DISASSOC_AP_BUSY = 5, +} diff --git a/wifi/hostapd/aidl/android/hardware/wifi/hostapd/IfaceParams.aidl b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/IfaceParams.aidl new file mode 100644 index 0000000000..a8abec3c13 --- /dev/null +++ b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/IfaceParams.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; + +import android.hardware.wifi.hostapd.ChannelParams; +import android.hardware.wifi.hostapd.HwModeParams; + +/** + * Parameters to use for setting up the dual access point interfaces. + */ +@VintfStability +parcelable IfaceParams { + /** + * Name of the interface + */ + String name; + /** + * Additional hardware mode params for the interface + */ + HwModeParams hwModeParams; + /** + * The list of the channel params for the dual interfaces. + */ + ChannelParams[] channelParams; +} diff --git a/wifi/hostapd/aidl/android/hardware/wifi/hostapd/NetworkParams.aidl b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/NetworkParams.aidl new file mode 100644 index 0000000000..df84eca23d --- /dev/null +++ b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/NetworkParams.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; + +import android.hardware.wifi.hostapd.EncryptionType; + +/** + * Parameters to use for setting up the access point network. + */ +@VintfStability +parcelable NetworkParams { + /** + * SSID to set for the network + */ + byte[] ssid; + /** + * Whether the network needs to be hidden or not. + */ + boolean isHidden; + /** + * Key management mask for the replace encryptionType. + */ + EncryptionType encryptionType; + /** + * Passphrase for WPA3_SAE network, WPA3_SAE_TRANSITION and WPA2_PSK. + */ + String passphrase; + /** + * Enable the interworking service and set access network type to + * CHARGEABLE_PUBLIC_NETWORK when set to true. + */ + boolean isMetered; +} diff --git a/wifi/hostapd/aidl/android/hardware/wifi/hostapd/ParamSizeLimits.aidl b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/ParamSizeLimits.aidl new file mode 100644 index 0000000000..bf34c3475f --- /dev/null +++ b/wifi/hostapd/aidl/android/hardware/wifi/hostapd/ParamSizeLimits.aidl @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2021 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.wifi.hostapd; + +/** + * Size limits for some of the params used in this interface. + */ +@VintfStability +@Backing(type="int") +enum ParamSizeLimits { + /** + * Max length of SSID param. + */ + SSID_MAX_LEN_IN_BYTES = 32, + /** + * Min length of PSK passphrase param. + */ + WPA2_PSK_PASSPHRASE_MIN_LEN_IN_BYTES = 8, + /** + * Max length of PSK passphrase param. + */ + WPA2_PSK_PASSPHRASE_MAX_LEN_IN_BYTES = 63, +} diff --git a/wifi/hostapd/aidl/vts/OWNERS b/wifi/hostapd/aidl/vts/OWNERS new file mode 100644 index 0000000000..2a7a7b0bef --- /dev/null +++ b/wifi/hostapd/aidl/vts/OWNERS @@ -0,0 +1,2 @@ +etancohen@google.com +lzye@google.com diff --git a/wifi/hostapd/aidl/vts/functional/Android.bp b/wifi/hostapd/aidl/vts/functional/Android.bp new file mode 100644 index 0000000000..d37da08385 --- /dev/null +++ b/wifi/hostapd/aidl/vts/functional/Android.bp @@ -0,0 +1,27 @@ +package { + // 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" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: ["hardware_interfaces_license"], +} + +cc_test { + name: "VtsHalHostapdTargetTest", + defaults: [ + "VtsHalTargetTestDefaults", + "use_libaidlvintf_gtest_helper_static", + ], + srcs: ["VtsHalHostapdTargetTest.cpp"], + shared_libs: [ + "libbinder", + ], + static_libs: [ + "android.hardware.wifi.hostapd-V1-cpp", + ], + test_suites: [ + "general-tests", + "vts", + ], +} diff --git a/wifi/hostapd/aidl/vts/functional/VtsHalHostapdTargetTest.cpp b/wifi/hostapd/aidl/vts/functional/VtsHalHostapdTargetTest.cpp new file mode 100644 index 0000000000..92fbf505eb --- /dev/null +++ b/wifi/hostapd/aidl/vts/functional/VtsHalHostapdTargetTest.cpp @@ -0,0 +1,417 @@ +/* + * Copyright (C) 2021 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. + */ +#include <VtsCoreUtil.h> + +#include <aidl/Gtest.h> +#include <aidl/Vintf.h> +#include <android/hardware/wifi/hostapd/BnHostapd.h> +#include <binder/IServiceManager.h> +#include <binder/ProcessState.h> + +using android::ProcessState; +using android::sp; +using android::String16; +using android::hardware::wifi::hostapd::BandMask; +using android::hardware::wifi::hostapd::ChannelParams; +using android::hardware::wifi::hostapd::DebugLevel; +using android::hardware::wifi::hostapd::EncryptionType; +using android::hardware::wifi::hostapd::FrequencyRange; +using android::hardware::wifi::hostapd::Ieee80211ReasonCode; +using android::hardware::wifi::hostapd::IfaceParams; +using android::hardware::wifi::hostapd::IHostapd; +using android::hardware::wifi::hostapd::NetworkParams; + +namespace { +const unsigned char kNwSsid[] = {'t', 'e', 's', 't', '1', '2', '3', '4', '5'}; +const String16 kIfaceName = String16("wlan0"); +const String16 kPassphrase = String16("test12345"); +const String16 kInvalidMinPassphrase = String16("test"); +const String16 kInvalidMaxPassphrase = String16( + "0123456789012345678901234567890123456789012345678901234567890123456789"); +const int kIfaceChannel = 6; +const int kIfaceInvalidChannel = 567; +const std::vector<uint8_t> kTestZeroMacAddr(6, 0x0); +const Ieee80211ReasonCode kTestDisconnectReasonCode = + Ieee80211ReasonCode::WLAN_REASON_UNSPECIFIED; + +inline BandMask operator|(BandMask a, BandMask b) { + return static_cast<BandMask>(static_cast<int32_t>(a) | + static_cast<int32_t>(b)); +} +} // namespace + +class HostapdAidl : public testing::TestWithParam<std::string> { + public: + virtual void SetUp() override { + hostapd = android::waitForDeclaredService<IHostapd>( + String16(GetParam().c_str())); + ASSERT_NE(hostapd, nullptr); + EXPECT_TRUE(hostapd->setDebugParams(DebugLevel::EXCESSIVE).isOk()); + isAcsSupport = testing::checkSubstringInCommandOutput( + "/system/bin/cmd wifi get-softap-supported-features", + "wifi_softap_acs_supported"); + isWpa3SaeSupport = testing::checkSubstringInCommandOutput( + "/system/bin/cmd wifi get-softap-supported-features", + "wifi_softap_wpa3_sae_supported"); + isBridgedSupport = testing::checkSubstringInCommandOutput( + "/system/bin/cmd wifi get-softap-supported-features", + "wifi_softap_bridged_ap_supported"); + } + + virtual void TearDown() override { + hostapd->terminate(); + // Wait 3 seconds to allow terminate to complete + sleep(3); + } + + sp<IHostapd> hostapd; + bool isAcsSupport; + bool isWpa3SaeSupport; + bool isBridgedSupport; + + IfaceParams getIfaceParamsWithoutAcs(String16 iface_name) { + IfaceParams iface_params; + ChannelParams channelParams; + std::vector<ChannelParams> vec_channelParams; + + iface_params.name = iface_name; + iface_params.hwModeParams.enable80211N = true; + iface_params.hwModeParams.enable80211AC = false; + iface_params.hwModeParams.enable80211AX = false; + iface_params.hwModeParams.enable6GhzBand = false; + + channelParams.enableAcs = false; + channelParams.acsShouldExcludeDfs = false; + channelParams.channel = kIfaceChannel; + channelParams.bandMask = BandMask::BAND_2_GHZ; + + vec_channelParams.push_back(channelParams); + iface_params.channelParams = vec_channelParams; + return iface_params; + } + + IfaceParams getIfaceParamsWithBridgedModeACS(String16 iface_name) { + IfaceParams iface_params = getIfaceParamsWithoutAcs(iface_name); + iface_params.channelParams[0].enableAcs = true; + iface_params.channelParams[0].acsShouldExcludeDfs = true; + + std::vector<ChannelParams> vec_channelParams; + vec_channelParams.push_back(iface_params.channelParams[0]); + + ChannelParams second_channelParams; + second_channelParams.channel = 0; + second_channelParams.enableAcs = true; + second_channelParams.bandMask = BandMask::BAND_5_GHZ; + vec_channelParams.push_back(second_channelParams); + + iface_params.channelParams = vec_channelParams; + return iface_params; + } + + IfaceParams getIfaceParamsWithAcs(String16 iface_name) { + IfaceParams iface_params = getIfaceParamsWithoutAcs(iface_name); + iface_params.channelParams[0].enableAcs = true; + iface_params.channelParams[0].acsShouldExcludeDfs = true; + iface_params.channelParams[0].channel = 0; + iface_params.channelParams[0].bandMask = + iface_params.channelParams[0].bandMask | BandMask::BAND_5_GHZ; + return iface_params; + } + + IfaceParams getIfaceParamsWithAcsAndFreqRange(String16 iface_name) { + IfaceParams iface_params = getIfaceParamsWithAcs(iface_name); + FrequencyRange freqRange; + freqRange.startMhz = 2412; + freqRange.endMhz = 2462; + std::vector<FrequencyRange> vec_FrequencyRange; + vec_FrequencyRange.push_back(freqRange); + iface_params.channelParams[0].acsChannelFreqRangesMhz = + vec_FrequencyRange; + return iface_params; + } + + IfaceParams getIfaceParamsWithAcsAndInvalidFreqRange(String16 iface_name) { + IfaceParams iface_params = + getIfaceParamsWithAcsAndFreqRange(iface_name); + iface_params.channelParams[0].acsChannelFreqRangesMhz[0].startMhz = + 222; + iface_params.channelParams[0].acsChannelFreqRangesMhz[0].endMhz = + 999; + return iface_params; + } + + IfaceParams getIfaceParamsWithInvalidChannel(String16 iface_name) { + IfaceParams iface_params = getIfaceParamsWithoutAcs(iface_name); + iface_params.channelParams[0].channel = kIfaceInvalidChannel; + return iface_params; + } + + NetworkParams getOpenNwParams() { + NetworkParams nw_params; + nw_params.ssid = + std::vector<uint8_t>(kNwSsid, kNwSsid + sizeof(kNwSsid)); + nw_params.isHidden = false; + nw_params.encryptionType = EncryptionType::NONE; + nw_params.isMetered = true; + return nw_params; + } + + NetworkParams getPskNwParamsWithNonMetered() { + NetworkParams nw_params = getOpenNwParams(); + nw_params.encryptionType = EncryptionType::WPA2; + nw_params.passphrase = kPassphrase; + nw_params.isMetered = false; + return nw_params; + } + + NetworkParams getPskNwParams() { + NetworkParams nw_params = getOpenNwParams(); + nw_params.encryptionType = EncryptionType::WPA2; + nw_params.passphrase = kPassphrase; + return nw_params; + } + + NetworkParams getInvalidPskNwParams() { + NetworkParams nw_params = getOpenNwParams(); + nw_params.encryptionType = EncryptionType::WPA2; + nw_params.passphrase = kInvalidMaxPassphrase; + return nw_params; + } + + NetworkParams getSaeTransitionNwParams() { + NetworkParams nw_params = getOpenNwParams(); + nw_params.encryptionType = EncryptionType::WPA3_SAE_TRANSITION; + nw_params.passphrase = kPassphrase; + return nw_params; + } + + NetworkParams getInvalidSaeTransitionNwParams() { + NetworkParams nw_params = getOpenNwParams(); + nw_params.encryptionType = EncryptionType::WPA2; + nw_params.passphrase = kInvalidMinPassphrase; + return nw_params; + } + + NetworkParams getSaeNwParams() { + NetworkParams nw_params = getOpenNwParams(); + nw_params.encryptionType = EncryptionType::WPA3_SAE; + nw_params.passphrase = kPassphrase; + return nw_params; + } + + NetworkParams getInvalidSaeNwParams() { + NetworkParams nw_params = getOpenNwParams(); + nw_params.encryptionType = EncryptionType::WPA3_SAE; + nw_params.passphrase = String16(""); + return nw_params; + } +}; + +/** + * Adds an access point with PSK network config & ACS enabled. + * Access point creation should pass. + */ +TEST_P(HostapdAidl, AddPskAccessPointWithAcs) { + if (!isAcsSupport) GTEST_SKIP() << "Missing ACS support"; + auto status = hostapd->addAccessPoint(getIfaceParamsWithAcs(kIfaceName), + getPskNwParams()); + EXPECT_TRUE(status.isOk()); +} + +/** + * Adds an access point with PSK network config, ACS enabled & frequency Range. + * Access point creation should pass. + */ +TEST_P(HostapdAidl, AddPskAccessPointWithAcsAndFreqRange) { + if (!isAcsSupport) GTEST_SKIP() << "Missing ACS support"; + auto status = hostapd->addAccessPoint( + getIfaceParamsWithAcsAndFreqRange(kIfaceName), getPskNwParams()); + EXPECT_TRUE(status.isOk()); +} + +/** + * Adds an access point with invalid channel range. + * Access point creation should fail. + */ +TEST_P(HostapdAidl, AddPskAccessPointWithAcsAndInvalidFreqRange) { + if (!isAcsSupport) GTEST_SKIP() << "Missing ACS support"; + auto status = hostapd->addAccessPoint( + getIfaceParamsWithAcsAndInvalidFreqRange(kIfaceName), getPskNwParams()); + EXPECT_FALSE(status.isOk()); +} + +/** + * Adds an access point with Open network config & ACS enabled. + * Access point creation should pass. + */ +TEST_P(HostapdAidl, AddOpenAccessPointWithAcs) { + if (!isAcsSupport) GTEST_SKIP() << "Missing ACS support"; + auto status = hostapd->addAccessPoint(getIfaceParamsWithAcs(kIfaceName), + getOpenNwParams()); + EXPECT_TRUE(status.isOk()); +} + +/** + * Adds an access point with PSK network config & ACS disabled. + * Access point creation should pass. + */ +TEST_P(HostapdAidl, AddPskAccessPointWithoutAcs) { + auto status = hostapd->addAccessPoint(getIfaceParamsWithoutAcs(kIfaceName), + getPskNwParams()); + EXPECT_TRUE(status.isOk()); +} + +/** + * Adds an access point with PSK network config, ACS disabled & Non metered. + * Access point creation should pass. + */ +TEST_P(HostapdAidl, AddPskAccessPointWithoutAcsAndNonMetered) { + auto status = hostapd->addAccessPoint(getIfaceParamsWithoutAcs(kIfaceName), + getPskNwParamsWithNonMetered()); + EXPECT_TRUE(status.isOk()); +} + +/** + * Adds an access point with Open network config & ACS disabled. + * Access point creation should pass. + */ +TEST_P(HostapdAidl, AddOpenAccessPointWithoutAcs) { + auto status = hostapd->addAccessPoint(getIfaceParamsWithoutAcs(kIfaceName), + getOpenNwParams()); + EXPECT_TRUE(status.isOk()); +} + +/** + * Adds an access point with SAE Transition network config & ACS disabled. + * Access point creation should pass. + */ +TEST_P(HostapdAidl, AddSaeTransitionAccessPointWithoutAcs) { + if (!isWpa3SaeSupport) GTEST_SKIP() << "Missing SAE support"; + auto status = hostapd->addAccessPoint(getIfaceParamsWithoutAcs(kIfaceName), + getSaeTransitionNwParams()); + EXPECT_TRUE(status.isOk()); +} + +/** + * Adds an access point with SAE network config & ACS disabled. + * Access point creation should pass. + */ +TEST_P(HostapdAidl, AddSAEAccessPointWithoutAcs) { + if (!isWpa3SaeSupport) GTEST_SKIP() << "Missing SAE support"; + auto status = hostapd->addAccessPoint(getIfaceParamsWithoutAcs(kIfaceName), + getSaeNwParams()); + EXPECT_TRUE(status.isOk()); +} + +/** + * Adds & then removes an access point with PSK network config & ACS enabled. + * Access point creation & removal should pass. + */ +TEST_P(HostapdAidl, RemoveAccessPointWithAcs) { + if (!isAcsSupport) GTEST_SKIP() << "Missing ACS support"; + auto status = hostapd->addAccessPoint(getIfaceParamsWithAcs(kIfaceName), + getPskNwParams()); + EXPECT_TRUE(status.isOk()); + EXPECT_TRUE(hostapd->removeAccessPoint(kIfaceName).isOk()); +} + +/** + * Adds & then removes an access point with PSK network config & ACS disabled. + * Access point creation & removal should pass. + */ +TEST_P(HostapdAidl, RemoveAccessPointWithoutAcs) { + auto status = hostapd->addAccessPoint(getIfaceParamsWithoutAcs(kIfaceName), + getPskNwParams()); + EXPECT_TRUE(status.isOk()); + EXPECT_TRUE(hostapd->removeAccessPoint(kIfaceName).isOk()); +} + +/** + * Adds an access point with invalid channel. + * Access point creation should fail. + */ +TEST_P(HostapdAidl, AddPskAccessPointWithInvalidChannel) { + auto status = hostapd->addAccessPoint( + getIfaceParamsWithInvalidChannel(kIfaceName), getPskNwParams()); + EXPECT_FALSE(status.isOk()); +} + +/** + * Adds an access point with invalid PSK network config. + * Access point creation should fail. + */ +TEST_P(HostapdAidl, AddInvalidPskAccessPointWithoutAcs) { + auto status = hostapd->addAccessPoint(getIfaceParamsWithoutAcs(kIfaceName), + getInvalidPskNwParams()); + EXPECT_FALSE(status.isOk()); +} + +/** + * Adds an access point with invalid SAE transition network config. + * Access point creation should fail. + */ +TEST_P(HostapdAidl, AddInvalidSaeTransitionAccessPointWithoutAcs) { + if (!isWpa3SaeSupport) GTEST_SKIP() << "Missing SAE support"; + auto status = hostapd->addAccessPoint(getIfaceParamsWithoutAcs(kIfaceName), + getInvalidSaeTransitionNwParams()); + EXPECT_FALSE(status.isOk()); +} + +/** + * Adds an access point with invalid SAE network config. + * Access point creation should fail. + */ +TEST_P(HostapdAidl, AddInvalidSaeAccessPointWithoutAcs) { + if (!isWpa3SaeSupport) GTEST_SKIP() << "Missing SAE support"; + auto status = hostapd->addAccessPoint(getIfaceParamsWithoutAcs(kIfaceName), + getInvalidSaeNwParams()); + EXPECT_FALSE(status.isOk()); +} + +/** + * forceClientDisconnect should fail when hotspot interface available. + */ +TEST_P(HostapdAidl, DisconnectClientWhenIfacAvailable) { + auto status = hostapd->addAccessPoint(getIfaceParamsWithoutAcs(kIfaceName), + getOpenNwParams()); + EXPECT_TRUE(status.isOk()); + + status = hostapd->forceClientDisconnect(kIfaceName, kTestZeroMacAddr, + kTestDisconnectReasonCode); + EXPECT_FALSE(status.isOk()); +} + +/** + * AddAccessPointWithDualBandConfig should pass + */ +TEST_P(HostapdAidl, AddAccessPointWithDualBandConfig) { + if (!isBridgedSupport) GTEST_SKIP() << "Missing Bridged AP support"; + auto status = hostapd->addAccessPoint( + getIfaceParamsWithBridgedModeACS(kIfaceName), getOpenNwParams()); + EXPECT_TRUE(status.isOk()); +} + +INSTANTIATE_TEST_SUITE_P( + Hostapd, HostapdAidl, + testing::ValuesIn(android::getAidlHalInstanceNames(IHostapd::descriptor)), + android::PrintInstanceNameToString); + +int main(int argc, char **argv) { + ::testing::InitGoogleTest(&argc, argv); + ProcessState::self()->setThreadPoolMaxThreadCount(1); + ProcessState::self()->startThreadPool(); + return RUN_ALL_TESTS(); +} |