Create IRadio AIDL
Create IRadio AIDL from HIDL versions 1.0-1.6 using the hidl2aidl tool.
This is just a skeleton implementation to allow 1.7 APIs to be added to
the AIDL interface. Changes to the API surface and modularization to
come after this change is merged.
Test: build
Bug: 198331182
Change-Id: Ice71b7c159b98de8b36124f379167fb579a4ea2f
diff --git a/compatibility_matrices/compatibility_matrix.current.xml b/compatibility_matrices/compatibility_matrix.current.xml
index f03008a..9eaa847 100644
--- a/compatibility_matrices/compatibility_matrix.current.xml
+++ b/compatibility_matrices/compatibility_matrix.current.xml
@@ -446,6 +446,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>
diff --git a/radio/aidl/Android.bp b/radio/aidl/Android.bp
new file mode 100644
index 0000000..29d7a58
--- /dev/null
+++ b/radio/aidl/Android.bp
@@ -0,0 +1,54 @@
+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,
+ srcs: ["android/hardware/radio/translate-ndk.cpp"],
+ 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",
+ ],
+ export_include_dirs: ["include"],
+}
+
+java_library {
+ name: "android.hardware.radio-translate-java",
+ srcs: ["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 0000000..0327d6c
--- /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/ActivityStatsInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ActivityStatsInfo.aidl
new file mode 100644
index 0000000..f9ef742
--- /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/AddressProperty.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/AddressProperty.aidl
new file mode 100644
index 0000000..dd6e79a
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/AddressProperty.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 AddressProperty {
+ NONE = 0,
+ DEPRECATED = 32,
+}
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 0000000..bae7d1f
--- /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 0000000..0829fa6
--- /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/AppState.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/AppState.aidl
new file mode 100644
index 0000000..59e2bd4
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/AppState.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 AppState {
+ UNKNOWN = 0,
+ DETECTED = 1,
+ PIN = 2,
+ PUK = 3,
+ SUBSCRIPTION_PERSO = 4,
+ READY = 5,
+}
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 0000000..c9abe32
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/AppStatus.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 AppStatus {
+ android.hardware.radio.AppType appType;
+ android.hardware.radio.AppState appState;
+ android.hardware.radio.PersoSubstate persoSubstate;
+ String aidPtr;
+ String appLabelPtr;
+ int pin1Replaced;
+ android.hardware.radio.PinState pin1;
+ android.hardware.radio.PinState pin2;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/AppType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/AppType.aidl
new file mode 100644
index 0000000..adbbe9f
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/AppType.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 AppType {
+ UNKNOWN = 0,
+ SIM = 1,
+ USIM = 2,
+ RUIM = 3,
+ CSIM = 4,
+ 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 0000000..a596969
--- /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 0000000..ac0b4aa
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/BarringInfo.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 BarringInfo {
+ android.hardware.radio.BarringInfoServiceType serviceType;
+ android.hardware.radio.BarringInfoBarringType barringType;
+ android.hardware.radio.BarringInfoBarringTypeSpecificInfo barringTypeSpecificInfo;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/BarringInfoBarringType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/BarringInfoBarringType.aidl
new file mode 100644
index 0000000..6b8006e
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/BarringInfoBarringType.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 BarringInfoBarringType {
+ NONE = 0,
+ CONDITIONAL = 1,
+ UNCONDITIONAL = 2,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/BarringInfoBarringTypeSpecificInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/BarringInfoBarringTypeSpecificInfo.aidl
new file mode 100644
index 0000000..c2ba1d2
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/BarringInfoBarringTypeSpecificInfo.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 BarringInfoBarringTypeSpecificInfo {
+ boolean noinit;
+ android.hardware.radio.BarringInfoBarringTypeSpecificInfoConditional conditional;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/BarringInfoBarringTypeSpecificInfoConditional.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/BarringInfoBarringTypeSpecificInfoConditional.aidl
new file mode 100644
index 0000000..8c079e2
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/BarringInfoBarringTypeSpecificInfoConditional.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 BarringInfoBarringTypeSpecificInfoConditional {
+ int factor;
+ int timeSeconds;
+ boolean isBarred;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/BarringInfoServiceType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/BarringInfoServiceType.aidl
new file mode 100644
index 0000000..faea9b9
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/BarringInfoServiceType.aidl
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 BarringInfoServiceType {
+ CS_SERVICE = 0,
+ PS_SERVICE = 1,
+ CS_VOICE = 2,
+ MO_SIGNALLING = 3,
+ MO_DATA = 4,
+ CS_FALLBACK = 5,
+ MMTEL_VOICE = 6,
+ MMTEL_VIDEO = 7,
+ EMERGENCY = 8,
+ SMS = 9,
+ OPERATOR_1 = 1001,
+ OPERATOR_2 = 1002,
+ OPERATOR_3 = 1003,
+ OPERATOR_4 = 1004,
+ OPERATOR_5 = 1005,
+ OPERATOR_6 = 1006,
+ OPERATOR_7 = 1007,
+ OPERATOR_8 = 1008,
+ OPERATOR_9 = 1009,
+ OPERATOR_10 = 1010,
+ OPERATOR_11 = 1011,
+ OPERATOR_12 = 1012,
+ OPERATOR_13 = 1013,
+ OPERATOR_14 = 1014,
+ OPERATOR_15 = 1015,
+ OPERATOR_16 = 1016,
+ OPERATOR_17 = 1017,
+ OPERATOR_18 = 1018,
+ OPERATOR_19 = 1019,
+ OPERATOR_20 = 1020,
+ OPERATOR_21 = 1021,
+ OPERATOR_22 = 1022,
+ OPERATOR_23 = 1023,
+ OPERATOR_24 = 1024,
+ OPERATOR_25 = 1025,
+ OPERATOR_26 = 1026,
+ OPERATOR_27 = 1027,
+ OPERATOR_28 = 1028,
+ OPERATOR_29 = 1029,
+ OPERATOR_30 = 1030,
+ OPERATOR_31 = 1031,
+ OPERATOR_32 = 1032,
+}
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 0000000..36e1ae3
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Call.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 Call {
+ android.hardware.radio.CallState state;
+ int index;
+ int toa;
+ boolean isMpty;
+ boolean isMT;
+ byte als;
+ boolean isVoice;
+ boolean isVoicePrivacy;
+ String number;
+ android.hardware.radio.CallPresentation numberPresentation;
+ String name;
+ android.hardware.radio.CallPresentation namePresentation;
+ android.hardware.radio.UusInfo[] uusInfo;
+ android.hardware.radio.AudioQuality audioQuality;
+ String forwardedNumber;
+}
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 0000000..bcfa90f
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CallForwardInfo.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 CallForwardInfo {
+ android.hardware.radio.CallForwardInfoStatus status;
+ int reason;
+ int serviceClass;
+ int toa;
+ String number;
+ int timeSeconds;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CallForwardInfoStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CallForwardInfoStatus.aidl
new file mode 100644
index 0000000..5ac129a
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CallForwardInfoStatus.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 CallForwardInfoStatus {
+ DISABLE = 0,
+ ENABLE = 1,
+ INTERROGATE = 2,
+ REGISTRATION = 3,
+ ERASURE = 4,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CallPresentation.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CallPresentation.aidl
new file mode 100644
index 0000000..c32cd08
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CallPresentation.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 CallPresentation {
+ ALLOWED = 0,
+ RESTRICTED = 1,
+ UNKNOWN = 2,
+ PAYPHONE = 3,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CallState.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CallState.aidl
new file mode 100644
index 0000000..375ca2c
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CallState.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 CallState {
+ ACTIVE = 0,
+ HOLDING = 1,
+ DIALING = 2,
+ ALERTING = 3,
+ INCOMING = 4,
+ WAITING = 5,
+}
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 0000000..1a3b4c6
--- /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/CardState.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CardState.aidl
new file mode 100644
index 0000000..d200b97
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CardState.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 CardState {
+ ABSENT = 0,
+ PRESENT = 1,
+ ERROR = 2,
+ RESTRICTED = 3,
+}
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 0000000..e11bb21
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CardStatus.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 CardStatus {
+ android.hardware.radio.CardState 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;
+}
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 0000000..bbf777f
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Carrier.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 Carrier {
+ String mcc;
+ String mnc;
+ android.hardware.radio.CarrierMatchType matchType;
+ String matchData;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CarrierMatchType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CarrierMatchType.aidl
new file mode 100644
index 0000000..c3596cd
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CarrierMatchType.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 CarrierMatchType {
+ ALL = 0,
+ SPN = 1,
+ IMSI_PREFIX = 2,
+ GID1 = 3,
+ 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 0000000..f8cafb5
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CarrierRestrictions.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 CarrierRestrictions {
+ android.hardware.radio.Carrier[] allowedCarriers;
+ android.hardware.radio.Carrier[] excludedCarriers;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CarrierRestrictionsWithPriority.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CarrierRestrictionsWithPriority.aidl
new file mode 100644
index 0000000..1f06980
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CarrierRestrictionsWithPriority.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 CarrierRestrictionsWithPriority {
+ android.hardware.radio.Carrier[] allowedCarriers;
+ android.hardware.radio.Carrier[] excludedCarriers;
+ boolean allowedCarriersPrioritized;
+}
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 0000000..73c7fae
--- /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 0000000..564433f
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaCallWaiting.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 CdmaCallWaiting {
+ String number;
+ android.hardware.radio.CdmaCallWaitingNumberPresentation numberPresentation;
+ String name;
+ android.hardware.radio.CdmaSignalInfoRecord signalInfoRecord;
+ android.hardware.radio.CdmaCallWaitingNumberType numberType;
+ android.hardware.radio.CdmaCallWaitingNumberPlan numberPlan;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaCallWaitingNumberPlan.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaCallWaitingNumberPlan.aidl
new file mode 100644
index 0000000..6dcd594
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaCallWaitingNumberPlan.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 CdmaCallWaitingNumberPlan {
+ UNKNOWN = 0,
+ ISDN = 1,
+ DATA = 3,
+ TELEX = 4,
+ NATIONAL = 8,
+ PRIVATE = 9,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaCallWaitingNumberPresentation.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaCallWaitingNumberPresentation.aidl
new file mode 100644
index 0000000..22eaf6b
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaCallWaitingNumberPresentation.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 CdmaCallWaitingNumberPresentation {
+ ALLOWED = 0,
+ RESTRICTED = 1,
+ UNKNOWN = 2,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaCallWaitingNumberType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaCallWaitingNumberType.aidl
new file mode 100644
index 0000000..4740108
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaCallWaitingNumberType.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 CdmaCallWaitingNumberType {
+ UNKNOWN = 0,
+ INTERNATIONAL = 1,
+ NATIONAL = 2,
+ NETWORK_SPECIFIC = 3,
+ 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 0000000..11f082f
--- /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/CdmaInfoRecName.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaInfoRecName.aidl
new file mode 100644
index 0000000..182dcc0
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaInfoRecName.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;
+@Backing(type="int") @VintfStability
+enum CdmaInfoRecName {
+ DISPLAY = 0,
+ CALLED_PARTY_NUMBER = 1,
+ CALLING_PARTY_NUMBER = 2,
+ CONNECTED_NUMBER = 3,
+ SIGNAL = 4,
+ REDIRECTING_NUMBER = 5,
+ LINE_CONTROL = 6,
+ EXTENDED_DISPLAY = 7,
+ T53_CLIR = 8,
+ T53_RELEASE = 9,
+ T53_AUDIO_CONTROL = 10,
+}
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 0000000..844a1bf
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaInformationRecord.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 CdmaInformationRecord {
+ android.hardware.radio.CdmaInfoRecName 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;
+}
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 0000000..88a4331
--- /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 0000000..48180a7
--- /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 0000000..86376a7
--- /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 0000000..7cd88ac
--- /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 0000000..44b7993
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaRedirectingNumberInfoRecord.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 CdmaRedirectingNumberInfoRecord {
+ android.hardware.radio.CdmaNumberInfoRecord redirectingNumber;
+ android.hardware.radio.CdmaRedirectingReason redirectingReason;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaRedirectingReason.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaRedirectingReason.aidl
new file mode 100644
index 0000000..e109c5b
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaRedirectingReason.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 CdmaRedirectingReason {
+ UNKNOWN = 0,
+ CALL_FORWARDING_BUSY = 1,
+ CALL_FORWARDING_NO_REPLY = 2,
+ CALLED_DTE_OUT_OF_ORDER = 9,
+ CALL_FORWARDING_BY_THE_CALLED_DTE = 10,
+ CALL_FORWARDING_UNCONDITIONAL = 15,
+ 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 0000000..09a59a0
--- /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 0000000..efb396a
--- /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 0000000..2939183
--- /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 0000000..0ef4331
--- /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 {
+ android.hardware.radio.CdmaSmsErrorClass 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 0000000..a37f1e7
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsAddress.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 CdmaSmsAddress {
+ android.hardware.radio.CdmaSmsDigitMode digitMode;
+ android.hardware.radio.CdmaSmsNumberMode numberMode;
+ android.hardware.radio.CdmaSmsNumberType numberType;
+ android.hardware.radio.CdmaSmsNumberPlan numberPlan;
+ byte[] digits;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsDigitMode.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsDigitMode.aidl
new file mode 100644
index 0000000..7c77830
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsDigitMode.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 CdmaSmsDigitMode {
+ FOUR_BIT = 0,
+ EIGHT_BIT = 1,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsErrorClass.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsErrorClass.aidl
new file mode 100644
index 0000000..3ad5c1a
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsErrorClass.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 CdmaSmsErrorClass {
+ NO_ERROR = 0,
+ ERROR = 1,
+}
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 0000000..c419bad
--- /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/CdmaSmsNumberMode.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsNumberMode.aidl
new file mode 100644
index 0000000..31d49d4
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsNumberMode.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 CdmaSmsNumberMode {
+ NOT_DATA_NETWORK = 0,
+ DATA_NETWORK = 1,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsNumberPlan.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsNumberPlan.aidl
new file mode 100644
index 0000000..fcbd1cc
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsNumberPlan.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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// 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 CdmaSmsNumberPlan {
+ UNKNOWN = 0,
+ TELEPHONY = 1,
+ RESERVED_2 = 2,
+ DATA = 3,
+ TELEX = 4,
+ RESERVED_5 = 5,
+ RESERVED_6 = 6,
+ RESERVED_7 = 7,
+ RESERVED_8 = 8,
+ PRIVATE = 9,
+ RESERVED_10 = 10,
+ RESERVED_11 = 11,
+ RESERVED_12 = 12,
+ RESERVED_13 = 13,
+ RESERVED_14 = 14,
+ RESERVED_15 = 15,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsNumberType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsNumberType.aidl
new file mode 100644
index 0000000..ca14dbc
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsNumberType.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 CdmaSmsNumberType {
+ UNKNOWN = 0,
+ INTERNATIONAL_OR_DATA_IP = 1,
+ NATIONAL_OR_INTERNET_MAIL = 2,
+ NETWORK = 3,
+ SUBSCRIBER = 4,
+ ALPHANUMERIC = 5,
+ ABBREVIATED = 6,
+ RESERVED_7 = 7,
+}
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 0000000..a0155da
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsSubaddress.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 CdmaSmsSubaddress {
+ android.hardware.radio.CdmaSmsSubaddressType subaddressType;
+ boolean odd;
+ byte[] digits;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsSubaddressType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsSubaddressType.aidl
new file mode 100644
index 0000000..a4db5ec
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsSubaddressType.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 CdmaSmsSubaddressType {
+ NSAP = 0,
+ 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 0000000..3202314
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsWriteArgs.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 CdmaSmsWriteArgs {
+ android.hardware.radio.CdmaSmsWriteArgsStatus status;
+ android.hardware.radio.CdmaSmsMessage message;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsWriteArgsStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsWriteArgsStatus.aidl
new file mode 100644
index 0000000..4bad261
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/CdmaSmsWriteArgsStatus.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 CdmaSmsWriteArgsStatus {
+ REC_UNREAD = 0,
+ REC_READ = 1,
+ STO_UNSENT = 2,
+ 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 0000000..11e8a24
--- /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 0000000..9285eb7
--- /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 0000000..ff4d3c3
--- /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 0000000..184af1c
--- /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 0000000..96f8368
--- /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 0000000..aa37fdf
--- /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 0000000..d24b91d
--- /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 0000000..4ee2148
--- /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 0000000..5a8c272
--- /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;
+ android.hardware.radio.OptionalCsgInfo optionalCsgInfo;
+ 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 0000000..60a24d7
--- /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 0000000..161797f
--- /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 0000000..35e1f5d
--- /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;
+ android.hardware.radio.OptionalCsgInfo optionalCsgInfo;
+}
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 0000000..7bcc4d5
--- /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;
+ android.hardware.radio.OptionalCsgInfo optionalCsgInfo;
+}
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 0000000..20ea3cb
--- /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 0000000..dd940c2
--- /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 0000000..7084e5e
--- /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 0000000..fda976c
--- /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 0000000..9c22555
--- /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 0000000..9976feb
--- /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 0000000..7883692
--- /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 0000000..4fbe5b6
--- /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 0000000..cb92ed9
--- /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 0000000..88ca975
--- /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 0000000..6a2b026
--- /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 0000000..36a1510
--- /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/Clir.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Clir.aidl
new file mode 100644
index 0000000..97ba4ed
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Clir.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 Clir {
+ DEFAULT = 0,
+ INVOCATION = 1,
+ SUPPRESSION = 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 0000000..0c10ca4
--- /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 0000000..df895f8
--- /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/DataConnActiveStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataConnActiveStatus.aidl
new file mode 100644
index 0000000..0d11390
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataConnActiveStatus.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 DataConnActiveStatus {
+ INACTIVE = 0,
+ DORMANT = 1,
+ ACTIVE = 2,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataProfileId.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataProfileId.aidl
new file mode 100644
index 0000000..2c86c0f
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataProfileId.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 DataProfileId {
+ DEFAULT = 0,
+ TETHERED = 1,
+ IMS = 2,
+ FOTA = 3,
+ CBS = 4,
+ OEM_BASE = 1000,
+ INVALID = -1,
+}
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 0000000..d9d0487
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataProfileInfo.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 DataProfileInfo {
+ android.hardware.radio.DataProfileId profileId;
+ String apn;
+ android.hardware.radio.PdpProtocolType protocol;
+ android.hardware.radio.PdpProtocolType roamingProtocol;
+ android.hardware.radio.ApnAuthType authType;
+ String user;
+ String password;
+ android.hardware.radio.DataProfileInfoType 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;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataProfileInfoType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataProfileInfoType.aidl
new file mode 100644
index 0000000..a559de0
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataProfileInfoType.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 DataProfileInfoType {
+ COMMON = 0,
+ THREE_GPP = 1,
+ 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 0000000..303035f
--- /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;
+ android.hardware.radio.DataRegStateResultVopsInfo vopsInfo;
+ android.hardware.radio.NrIndicators nrIndicators;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataRegStateResultVopsInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataRegStateResultVopsInfo.aidl
new file mode 100644
index 0000000..2ce646e
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/DataRegStateResultVopsInfo.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 DataRegStateResultVopsInfo {
+ boolean noinit;
+ android.hardware.radio.LteVopsInfo lteVopsInfo;
+}
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 0000000..1dd0e08
--- /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 0000000..70aaa0f
--- /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 0000000..2d3cea8
--- /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 0000000..f8edf48
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/Dial.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 Dial {
+ String address;
+ android.hardware.radio.Clir clir;
+ android.hardware.radio.UusInfo[] uusInfo;
+}
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 0000000..062af35
--- /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/EmcIndicator.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EmcIndicator.aidl
new file mode 100644
index 0000000..846084b
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EmcIndicator.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 EmcIndicator {
+ EMC_NOT_SUPPORTED = 0,
+ EMC_NR_CONNECTED_TO_5GCN = 1,
+ EMC_EUTRA_CONNECTED_TO_5GCN = 2,
+ EMC_BOTH_NR_EUTRA_CONNECTED_TO_5GCN = 3,
+}
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 0000000..95f5a46
--- /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 0000000..7aa4cd8
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EmergencyNumber.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 EmergencyNumber {
+ String number;
+ String mcc;
+ String mnc;
+ android.hardware.radio.EmergencyServiceCategory categories;
+ String[] urns;
+ android.hardware.radio.EmergencyNumberSource sources;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EmergencyNumberSource.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EmergencyNumberSource.aidl
new file mode 100644
index 0000000..1424bfa
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EmergencyNumberSource.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 EmergencyNumberSource {
+ NETWORK_SIGNALING = 1,
+ SIM = 2,
+ MODEM_CONFIG = 4,
+ 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 0000000..0341572
--- /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/EmfIndicator.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EmfIndicator.aidl
new file mode 100644
index 0000000..21100f2
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EmfIndicator.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 EmfIndicator {
+ EMF_NOT_SUPPORTED = 0,
+ EMF_NR_CONNECTED_TO_5GCN = 1,
+ EMF_EUTRA_CONNECTED_TO_5GCN = 2,
+ EMF_BOTH_NR_EUTRA_CONNECTED_TO_5GCN = 3,
+}
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 0000000..8eb3fda
--- /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 0000000..1449865
--- /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/EvdoSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/EvdoSignalStrength.aidl
new file mode 100644
index 0000000..148dfa0
--- /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/FrequencyRange.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/FrequencyRange.aidl
new file mode 100644
index 0000000..243b54e
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/FrequencyRange.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 FrequencyRange {
+ LOW = 1,
+ MID = 2,
+ HIGH = 3,
+ MMWAVE = 4,
+}
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 0000000..0efe023
--- /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 0000000..e74845e
--- /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 0000000..5d3a6e1
--- /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 0000000..1b00b0f
--- /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/HandoverFailureMode.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/HandoverFailureMode.aidl
new file mode 100644
index 0000000..661b7b7
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/HandoverFailureMode.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 HandoverFailureMode {
+ LEGACY = 0,
+ DO_FALLBACK = 1,
+ NO_FALLBACK_RETRY_HANDOVER = 2,
+ NO_FALLBACK_RETRY_SETUP_NORMAL = 3,
+}
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 0000000..4a5c107
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/HardwareConfig.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 HardwareConfig {
+ android.hardware.radio.HardwareConfigType type;
+ String uuid;
+ android.hardware.radio.HardwareConfigState state;
+ android.hardware.radio.HardwareConfigModem[] modem;
+ android.hardware.radio.HardwareConfigSim[] sim;
+}
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 0000000..08e12e6
--- /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 0000000..8df23b4
--- /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/HardwareConfigState.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/HardwareConfigState.aidl
new file mode 100644
index 0000000..672fe47
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/HardwareConfigState.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 HardwareConfigState {
+ ENABLED = 0,
+ STANDBY = 1,
+ DISABLED = 2,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/HardwareConfigType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/HardwareConfigType.aidl
new file mode 100644
index 0000000..a152282
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/HardwareConfigType.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 HardwareConfigType {
+ MODEM = 0,
+ SIM = 1,
+}
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 0000000..5a7b251
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/IRadio.aidl
@@ -0,0 +1,200 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 pullLceData(in int serial);
+ 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 sendSMSExpectMore(in int serial, in android.hardware.radio.GsmSmsMessage 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.CarrierRestrictionsWithPriority 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);
+ 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 android.hardware.radio.OptionalSliceInfo sliceInfo, in android.hardware.radio.OptionalTrafficDescriptor 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 startLceService(in int serial, in int reportInterval, in boolean pullMode);
+ 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 stopLceService(in int serial);
+ 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 0000000..48e9e3e
--- /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 0000000..9137b973
--- /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.CarrierRestrictionsWithPriority 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 0000000..fa04264
--- /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);
+ 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 0000000..5ae0392
--- /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 0000000..1bea23a
--- /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 0000000..50b1e9e
--- /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 0000000..b5ffcc6
--- /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 0000000..c89c3a0
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ImsiEncryptionInfo.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 ImsiEncryptionInfo {
+ String mcc;
+ String mnc;
+ byte[] carrierKey;
+ String keyIdentifier;
+ long expirationTime;
+ android.hardware.radio.PublicKeyType keyType;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/IncrementalResultsPeriodicityRange.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/IncrementalResultsPeriodicityRange.aidl
new file mode 100644
index 0000000..ad3441f
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/IncrementalResultsPeriodicityRange.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 IncrementalResultsPeriodicityRange {
+ MIN = 1,
+ MAX = 10,
+}
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 0000000..629af68
--- /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 0000000..1f23a69
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/KeepaliveRequest.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 KeepaliveRequest {
+ android.hardware.radio.KeepaliveType type;
+ byte[] sourceAddress;
+ int sourcePort;
+ byte[] destinationAddress;
+ int destinationPort;
+ int maxKeepaliveIntervalMillis;
+ int cid;
+}
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 0000000..8729b69
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/KeepaliveStatus.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 KeepaliveStatus {
+ int sessionHandle;
+ android.hardware.radio.KeepaliveStatusCode code;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/KeepaliveStatusCode.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/KeepaliveStatusCode.aidl
new file mode 100644
index 0000000..8ad5dc5
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/KeepaliveStatusCode.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 KeepaliveStatusCode {
+ ACTIVE = 0,
+ INACTIVE = 1,
+ PENDING = 2,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/KeepaliveType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/KeepaliveType.aidl
new file mode 100644
index 0000000..f0dd521
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/KeepaliveType.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 KeepaliveType {
+ NATT_IPV4 = 0,
+ NATT_IPV6 = 1,
+}
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 0000000..024f7ea
--- /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 0000000..43ef0cd
--- /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 0000000..64c6367
--- /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/LceStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LceStatus.aidl
new file mode 100644
index 0000000..2542cc7
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LceStatus.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 LceStatus {
+ NOT_SUPPORTED = 0,
+ STOPPED = 1,
+ ACTIVE = 2,
+}
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 0000000..29f5ab6
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LceStatusInfo.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 LceStatusInfo {
+ android.hardware.radio.LceStatus lceStatus;
+ byte actualIntervalMs;
+}
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 0000000..b64daf9
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/LinkAddress.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 LinkAddress {
+ String address;
+ android.hardware.radio.AddressProperty properties;
+ long deprecationTime;
+ long expirationTime;
+}
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 0000000..d2a5c83
--- /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 0000000..28840bc
--- /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 0000000..b28c415
--- /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/MaxSearchTimeRange.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/MaxSearchTimeRange.aidl
new file mode 100644
index 0000000..88cdf5f
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/MaxSearchTimeRange.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 MaxSearchTimeRange {
+ MIN = 60,
+ MAX = 3600,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/MaybePort.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/MaybePort.aidl
new file mode 100644
index 0000000..f556c7f
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/MaybePort.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 MaybePort {
+ boolean noinit;
+ android.hardware.radio.PortRange range;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/MvnoType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/MvnoType.aidl
new file mode 100644
index 0000000..8be23b6
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/MvnoType.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 MvnoType {
+ NONE = 0,
+ IMSI = 1,
+ GID = 2,
+ SPN = 3,
+}
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 0000000..89d7818
--- /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 0000000..4e6f613
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NetworkScanRequest.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 NetworkScanRequest {
+ android.hardware.radio.ScanType type;
+ int interval;
+ android.hardware.radio.RadioAccessSpecifier[] specifiers;
+ int maxSearchTime;
+ boolean incrementalResults;
+ int incrementalResultsPeriodicity;
+ String[] mccMncs;
+}
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 0000000..86543e3
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NetworkScanResult.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 NetworkScanResult {
+ android.hardware.radio.ScanStatus status;
+ android.hardware.radio.RadioError error;
+ android.hardware.radio.CellInfo[] networkInfos;
+}
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 0000000..14db49b
--- /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 0000000..c3fb9f2
--- /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 0000000..81dc51c
--- /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 0000000..6cb8f33
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NrQos.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 NrQos {
+ int fiveQi;
+ android.hardware.radio.QosBandwidth downlink;
+ android.hardware.radio.QosBandwidth uplink;
+ byte qfi;
+ char averagingWindowMs;
+}
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 0000000..daf6a41
--- /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 0000000..b737aaf
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/NrVopsInfo.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 NrVopsInfo {
+ android.hardware.radio.VopsIndicator vopsSupported;
+ android.hardware.radio.EmcIndicator emcSupported;
+ android.hardware.radio.EmfIndicator emfSupported;
+}
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 0000000..d7706c5
--- /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 0000000..9e60db6
--- /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 0000000..2f29c02
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OperatorInfo.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 OperatorInfo {
+ String alphaLong;
+ String alphaShort;
+ String operatorNumeric;
+ android.hardware.radio.OperatorStatus status;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OperatorStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OperatorStatus.aidl
new file mode 100644
index 0000000..4ef10ca
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OperatorStatus.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 OperatorStatus {
+ UNKNOWN = 0,
+ AVAILABLE = 1,
+ CURRENT = 2,
+ FORBIDDEN = 3,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OptionalCsgInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OptionalCsgInfo.aidl
new file mode 100644
index 0000000..6866dca
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OptionalCsgInfo.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 OptionalCsgInfo {
+ boolean noinit;
+ android.hardware.radio.ClosedSubscriberGroupInfo csgInfo;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OptionalDnn.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OptionalDnn.aidl
new file mode 100644
index 0000000..88582de
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OptionalDnn.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 OptionalDnn {
+ boolean noinit;
+ String value;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OptionalOsAppId.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OptionalOsAppId.aidl
new file mode 100644
index 0000000..40bfa41
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OptionalOsAppId.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 OptionalOsAppId {
+ boolean noinit;
+ android.hardware.radio.OsAppId value;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OptionalPdpProtocolType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OptionalPdpProtocolType.aidl
new file mode 100644
index 0000000..5b4964f
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OptionalPdpProtocolType.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 OptionalPdpProtocolType {
+ boolean noinit;
+ android.hardware.radio.PdpProtocolType value;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OptionalSliceInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OptionalSliceInfo.aidl
new file mode 100644
index 0000000..d640aac
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OptionalSliceInfo.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 OptionalSliceInfo {
+ boolean noinit;
+ android.hardware.radio.SliceInfo value;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OptionalSscMode.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OptionalSscMode.aidl
new file mode 100644
index 0000000..0472615
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OptionalSscMode.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 OptionalSscMode {
+ boolean noinit;
+ android.hardware.radio.SscMode value;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OptionalTrafficDescriptor.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OptionalTrafficDescriptor.aidl
new file mode 100644
index 0000000..6b57525
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/OptionalTrafficDescriptor.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 OptionalTrafficDescriptor {
+ boolean noinit;
+ android.hardware.radio.TrafficDescriptor value;
+}
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 0000000..bc11229
--- /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/P2Constant.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/P2Constant.aidl
new file mode 100644
index 0000000..eb8b442
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/P2Constant.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;
+@Backing(type="int") @VintfStability
+enum P2Constant {
+ NO_P2 = -1,
+}
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 0000000..dd95ad5
--- /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 0000000..828b08c
--- /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 0000000..980d3af
--- /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 0000000..35b75c6
--- /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 0000000..7a4982f
--- /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 0000000..8d2623b
--- /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 0000000..02a166e
--- /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 0000000..91c4a96
--- /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 0000000..1953083
--- /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 0000000..3b65179
--- /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 0000000..9e4d272
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PortRange.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 PortRange {
+ int start;
+ int end;
+}
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 0000000..7615dff
--- /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/PrlIndicator.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PrlIndicator.aidl
new file mode 100644
index 0000000..b596d30
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PrlIndicator.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 PrlIndicator {
+ NOT_REGISTERED = -1,
+ NOT_IN_PRL = 0,
+ IN_PRL = 1,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PublicKeyType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PublicKeyType.aidl
new file mode 100644
index 0000000..68d96e8
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/PublicKeyType.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="byte") @VintfStability
+enum PublicKeyType {
+ EPDG = 1,
+ WLAN = 2,
+}
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 0000000..d69853f
--- /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 0000000..95622bc
--- /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 0000000..3376c66
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosFilter.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 QosFilter {
+ String[] localAddresses;
+ String[] remoteAddresses;
+ android.hardware.radio.MaybePort localPort;
+ android.hardware.radio.MaybePort remotePort;
+ android.hardware.radio.QosProtocol protocol;
+ android.hardware.radio.QosFilterTypeOfService tos;
+ android.hardware.radio.QosFilterIpv6FlowLabel flowLabel;
+ android.hardware.radio.QosFilterIpsecSpi spi;
+ android.hardware.radio.QosFilterDirection direction;
+ int precedence;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosFilterDirection.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosFilterDirection.aidl
new file mode 100644
index 0000000..efb9c50
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosFilterDirection.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 QosFilterDirection {
+ DOWNLINK = 0,
+ UPLINK = 1,
+ BIDIRECTIONAL = 2,
+}
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 0000000..695b735
--- /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 0000000..5b9c82c
--- /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 0000000..c7c0331
--- /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/QosFlowIdRange.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosFlowIdRange.aidl
new file mode 100644
index 0000000..95468e0
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosFlowIdRange.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="byte") @VintfStability
+enum QosFlowIdRange {
+ MIN = 1,
+ MAX = 63,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosPortRange.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosPortRange.aidl
new file mode 100644
index 0000000..7171c7e
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosPortRange.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 QosPortRange {
+ MIN = 20,
+ MAX = 65535,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosProtocol.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosProtocol.aidl
new file mode 100644
index 0000000..cb68f04
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/QosProtocol.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="byte") @VintfStability
+enum QosProtocol {
+ UNSPECIFIED = -1,
+ TCP = 6,
+ UDP = 17,
+ ESP = 50,
+ AH = 51,
+}
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 0000000..8f1b913
--- /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 0000000..10a956e
--- /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 0000000..67f5e8a
--- /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 0000000..b47ee2d
--- /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 0000000..9d0a997
--- /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 0000000..973ca52
--- /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 0000000..99c1a41
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioCapability.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 RadioCapability {
+ int session;
+ android.hardware.radio.RadioCapabilityPhase phase;
+ android.hardware.radio.RadioAccessFamily raf;
+ String logicalModemUuid;
+ android.hardware.radio.RadioCapabilityStatus status;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioCapabilityPhase.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioCapabilityPhase.aidl
new file mode 100644
index 0000000..7a4b9ad
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioCapabilityPhase.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 RadioCapabilityPhase {
+ CONFIGURED = 0,
+ START = 1,
+ APPLY = 2,
+ UNSOL_RSP = 3,
+ FINISH = 4,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioCapabilityStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioCapabilityStatus.aidl
new file mode 100644
index 0000000..72e0bd5
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioCapabilityStatus.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 RadioCapabilityStatus {
+ NONE = 0,
+ SUCCESS = 1,
+ FAIL = 2,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioCdmaSmsConst.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioCdmaSmsConst.aidl
new file mode 100644
index 0000000..7e5c471
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioCdmaSmsConst.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 RadioCdmaSmsConst {
+ ADDRESS_MAX = 36,
+ SUBADDRESS_MAX = 36,
+ BEARER_DATA_MAX = 255,
+ UDH_MAX_SND_SIZE = 128,
+ UDH_EO_DATA_SEGMENT_MAX = 131,
+ MAX_UD_HEADERS = 7,
+ USER_DATA_MAX = 229,
+ UDH_LARGE_PIC_SIZE = 128,
+ UDH_SMALL_PIC_SIZE = 32,
+ UDH_VAR_PIC_SIZE = 134,
+ UDH_ANIM_NUM_BITMAPS = 4,
+ UDH_LARGE_BITMAP_SIZE = 32,
+ UDH_SMALL_BITMAP_SIZE = 8,
+ UDH_OTHER_SIZE = 226,
+ IP_ADDRESS_SIZE = 4,
+}
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 0000000..d37f13b
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioConst.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 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,
+}
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 0000000..3ef67bc
--- /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 0000000..6c07045
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RadioFrequencyInfo.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 RadioFrequencyInfo {
+ boolean noinit;
+ android.hardware.radio.FrequencyRange range;
+ int channelNumber;
+}
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 0000000..fc5d4df
--- /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 0000000..08c3023
--- /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 0000000..cbc4ab9
--- /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 0000000..cf241830
--- /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 0000000..3dad483
--- /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 0000000..d0ca9b5
--- /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 0000000..c11cd1c
--- /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 0000000..049ded1
--- /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 0000000..78c5c2d
--- /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.RegStateResultAccessTechnologySpecificInfo accessTechnologySpecificInfo;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RegStateResultAccessTechnologySpecificInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RegStateResultAccessTechnologySpecificInfo.aidl
new file mode 100644
index 0000000..6ce6398
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RegStateResultAccessTechnologySpecificInfo.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 RegStateResultAccessTechnologySpecificInfo {
+ boolean noinit;
+ android.hardware.radio.RegStateResultAccessTechnologySpecificInfoCdma2000RegistrationInfo cdmaInfo;
+ android.hardware.radio.RegStateResultAccessTechnologySpecificInfoEutranRegistrationInfo eutranInfo;
+ android.hardware.radio.NrVopsInfo ngranNrVopsInfo;
+ boolean geranDtmSupported;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RegStateResultAccessTechnologySpecificInfoCdma2000RegistrationInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RegStateResultAccessTechnologySpecificInfoCdma2000RegistrationInfo.aidl
new file mode 100644
index 0000000..a56a791
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RegStateResultAccessTechnologySpecificInfoCdma2000RegistrationInfo.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 RegStateResultAccessTechnologySpecificInfoCdma2000RegistrationInfo {
+ boolean cssSupported;
+ int roamingIndicator;
+ android.hardware.radio.PrlIndicator systemIsInPrl;
+ int defaultRoamingIndicator;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RegStateResultAccessTechnologySpecificInfoEutranRegistrationInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RegStateResultAccessTechnologySpecificInfoEutranRegistrationInfo.aidl
new file mode 100644
index 0000000..ed422eb
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RegStateResultAccessTechnologySpecificInfoEutranRegistrationInfo.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 RegStateResultAccessTechnologySpecificInfoEutranRegistrationInfo {
+ android.hardware.radio.LteVopsInfo lteVopsInfo;
+ android.hardware.radio.NrIndicators nrIndicators;
+}
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 0000000..c5529b6
--- /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 0000000..3852a77
--- /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/RestrictedState.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RestrictedState.aidl
new file mode 100644
index 0000000..dc83ba5
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RestrictedState.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 RestrictedState {
+ 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/RouteSelectionDescriptor.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RouteSelectionDescriptor.aidl
new file mode 100644
index 0000000..689ee2f
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/RouteSelectionDescriptor.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 RouteSelectionDescriptor {
+ byte precedence;
+ android.hardware.radio.OptionalPdpProtocolType sessionType;
+ android.hardware.radio.OptionalSscMode sscMode;
+ android.hardware.radio.SliceInfo[] sliceInfo;
+ String[] dnn;
+}
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 0000000..9bfb725
--- /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 0000000..7e4d246
--- /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 0000000..e0d8eb2
--- /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 0000000..0c6c513
--- /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 0000000..715c507
--- /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 0000000..6eadbb7
--- /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/ScanIntervalRange.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ScanIntervalRange.aidl
new file mode 100644
index 0000000..3e6539b
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ScanIntervalRange.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 ScanIntervalRange {
+ MIN = 5,
+ MAX = 300,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ScanStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ScanStatus.aidl
new file mode 100644
index 0000000..f8810b6
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ScanStatus.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 ScanStatus {
+ PARTIAL = 1,
+ COMPLETE = 2,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ScanType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ScanType.aidl
new file mode 100644
index 0000000..7d51ce2
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/ScanType.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 ScanType {
+ ONE_SHOT = 0,
+ PERIODIC = 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 0000000..a285f64
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// 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;
+ android.hardware.radio.SubscriptionType subType;
+ android.hardware.radio.UiccSubActStatus actStatus;
+}
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 0000000..7063db5
--- /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 0000000..ae4493d
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SetupDataCallResult.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 SetupDataCallResult {
+ android.hardware.radio.DataCallFailCause cause;
+ long suggestedRetryTime;
+ int cid;
+ android.hardware.radio.DataConnActiveStatus 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;
+ android.hardware.radio.HandoverFailureMode handoverFailureMode;
+ int pduSessionId;
+ android.hardware.radio.OptionalSliceInfo sliceInfo;
+ android.hardware.radio.TrafficDescriptor[] trafficDescriptors;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SignalMeasurementType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SignalMeasurementType.aidl
new file mode 100644
index 0000000..7f864e5
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SignalMeasurementType.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 SignalMeasurementType {
+ RSSI = 1,
+ RSCP = 2,
+ RSRP = 3,
+ RSRQ = 4,
+ RSSNR = 5,
+ SSRSRP = 6,
+ SSRSRQ = 7,
+ SSSINR = 8,
+}
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 0000000..7c7eade
--- /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 0000000..f519d69
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SignalThresholdInfo.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 SignalThresholdInfo {
+ android.hardware.radio.SignalMeasurementType signalMeasurement;
+ int hysteresisMs;
+ int hysteresisDb;
+ int[] thresholds;
+ boolean isEnabled;
+}
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 0000000..511031a
--- /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 0000000..ad96794
--- /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 0000000..720c8a2
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SimRefreshResult.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 SimRefreshResult {
+ android.hardware.radio.SimRefreshType type;
+ int efId;
+ String aid;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SimRefreshType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SimRefreshType.aidl
new file mode 100644
index 0000000..b114ec7
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SimRefreshType.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 SimRefreshType {
+ SIM_FILE_UPDATE = 0,
+ SIM_INIT = 1,
+ 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 0000000..8b36380
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SliceInfo.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 SliceInfo {
+ android.hardware.radio.SliceServiceType sst;
+ int sliceDifferentiator;
+ android.hardware.radio.SliceServiceType mappedHplmnSst;
+ int mappedHplmnSD;
+ android.hardware.radio.SliceStatus status;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SliceServiceType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SliceServiceType.aidl
new file mode 100644
index 0000000..d0a9f58
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SliceServiceType.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 SliceServiceType {
+ NONE = 0,
+ EMBB = 1,
+ URLLC = 2,
+ MIOT = 3,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SliceStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SliceStatus.aidl
new file mode 100644
index 0000000..3fa1ee6
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SliceStatus.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="byte") @VintfStability
+enum SliceStatus {
+ UNKNOWN = 0,
+ CONFIGURED = 1,
+ ALLOWED = 2,
+ REJECTED_NOT_AVAILABLE_IN_PLMN = 3,
+ REJECTED_NOT_AVAILABLE_IN_REG_AREA = 4,
+ 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 0000000..9d36338
--- /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 0000000..c5b13b9
--- /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 0000000..6b0d9bf
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SmsWriteArgs.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 SmsWriteArgs {
+ android.hardware.radio.SmsWriteArgsStatus status;
+ String pdu;
+ String smsc;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SmsWriteArgsStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SmsWriteArgsStatus.aidl
new file mode 100644
index 0000000..31a3f42
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SmsWriteArgsStatus.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 SmsWriteArgsStatus {
+ REC_UNREAD = 0,
+ REC_READ = 1,
+ STO_UNSENT = 2,
+ 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 0000000..d4a9417
--- /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 0000000..10b4c3d
--- /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/SsRequestType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SsRequestType.aidl
new file mode 100644
index 0000000..75ad9bb
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SsRequestType.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 SsRequestType {
+ ACTIVATION = 0,
+ DEACTIVATION = 1,
+ INTERROGATION = 2,
+ REGISTRATION = 3,
+ ERASURE = 4,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SsServiceType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SsServiceType.aidl
new file mode 100644
index 0000000..c3506b1
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SsServiceType.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 SsServiceType {
+ CFU = 0,
+ CF_BUSY = 1,
+ CF_NO_REPLY = 2,
+ CF_NOT_REACHABLE = 3,
+ CF_ALL = 4,
+ CF_ALL_CONDITIONAL = 5,
+ CLIP = 6,
+ CLIR = 7,
+ COLP = 8,
+ COLR = 9,
+ WAIT = 10,
+ BAOC = 11,
+ BAOIC = 12,
+ BAOIC_EXC_HOME = 13,
+ BAIC = 14,
+ BAIC_ROAMING = 15,
+ ALL_BARRING = 16,
+ OUTGOING_BARRING = 17,
+ INCOMING_BARRING = 18,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SsTeleserviceType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SsTeleserviceType.aidl
new file mode 100644
index 0000000..f06014c
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SsTeleserviceType.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 SsTeleserviceType {
+ ALL_TELE_AND_BEARER_SERVICES = 0,
+ ALL_TELESEVICES = 1,
+ TELEPHONY = 2,
+ ALL_DATA_TELESERVICES = 3,
+ SMS_SERVICES = 4,
+ ALL_TELESERVICES_EXCEPT_SMS = 5,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SscMode.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SscMode.aidl
new file mode 100644
index 0000000..e2c3e09
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SscMode.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 SscMode {
+ MODE_1 = 1,
+ MODE_2 = 2,
+ MODE_3 = 3,
+}
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 0000000..1e4f95b
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/StkCcUnsolSsResult.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 StkCcUnsolSsResult {
+ android.hardware.radio.SsServiceType serviceType;
+ android.hardware.radio.SsRequestType requestType;
+ android.hardware.radio.SsTeleserviceType teleserviceType;
+ android.hardware.radio.SuppServiceClass serviceClass;
+ android.hardware.radio.RadioError result;
+ android.hardware.radio.SsInfoData[] ssInfo;
+ android.hardware.radio.CfData[] cfData;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SubscriptionType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SubscriptionType.aidl
new file mode 100644
index 0000000..f469f2f
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SubscriptionType.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 SubscriptionType {
+ SUBSCRIPTION_1 = 0,
+ SUBSCRIPTION_2 = 1,
+ SUBSCRIPTION_3 = 2,
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SuppServiceClass.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SuppServiceClass.aidl
new file mode 100644
index 0000000..e59f40b
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/SuppServiceClass.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 SuppServiceClass {
+ NONE = 0,
+ VOICE = 1,
+ DATA = 2,
+ FAX = 4,
+ SMS = 8,
+ DATA_SYNC = 16,
+ DATA_ASYNC = 32,
+ PACKET = 64,
+ PAD = 128,
+ 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 0000000..c098e24
--- /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 0000000..a2ba211
--- /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/TimeStampType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/TimeStampType.aidl
new file mode 100644
index 0000000..ae70522
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/TimeStampType.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 TimeStampType {
+ UNKNOWN = 0,
+ ANTENNA = 1,
+ MODEM = 2,
+ OEM_RIL = 3,
+ JAVA_RIL = 4,
+}
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 0000000..9f46848
--- /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 {
+ android.hardware.radio.OptionalDnn dnn;
+ android.hardware.radio.OptionalOsAppId 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 0000000..cee3057
--- /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/UiccSubActStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/UiccSubActStatus.aidl
new file mode 100644
index 0000000..5ec511e
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/UiccSubActStatus.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 UiccSubActStatus {
+ DEACTIVATE = 0,
+ ACTIVATE = 1,
+}
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 0000000..ababb29
--- /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 {
+ byte 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 0000000..992a55f
--- /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 0000000..32cff72
--- /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/UusDcs.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/UusDcs.aidl
new file mode 100644
index 0000000..cf1baca
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/UusDcs.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 UusDcs {
+ USP = 0,
+ OSIHLP = 1,
+ X244 = 2,
+ RMCF = 3,
+ IA5C = 4,
+}
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 0000000..3551fe3
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/UusInfo.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 UusInfo {
+ android.hardware.radio.UusType uusType;
+ android.hardware.radio.UusDcs uusDcs;
+ String uusData;
+}
diff --git a/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/UusType.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/UusType.aidl
new file mode 100644
index 0000000..7176d40
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/UusType.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 UusType {
+ TYPE1_IMPLICIT = 0,
+ TYPE1_REQUIRED = 1,
+ TYPE1_NOT_REQUIRED = 2,
+ TYPE2_REQUIRED = 3,
+ TYPE2_NOT_REQUIRED = 4,
+ TYPE3_REQUIRED = 5,
+ 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 0000000..a693ff5
--- /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/VopsIndicator.aidl b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/VopsIndicator.aidl
new file mode 100644
index 0000000..028b719
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio/current/android/hardware/radio/VopsIndicator.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 VopsIndicator {
+ VOPS_NOT_SUPPORTED = 0,
+ VOPS_OVER_3GPP = 1,
+ VOPS_OVER_NON_3GPP = 2,
+}
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 0000000..764dded
--- /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 0000000..10b84f4
--- /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/ActivityStatsInfo.aidl b/radio/aidl/android/hardware/radio/ActivityStatsInfo.aidl
new file mode 100644
index 0000000..f1a6e0e
--- /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/AddressProperty.aidl b/radio/aidl/android/hardware/radio/AddressProperty.aidl
new file mode 100644
index 0000000..dbafc17
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/AddressProperty.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;
+
+/**
+ * The properties of the link address. This enum reflects the definition in if_addr.h in
+ * Linux kernel.
+ */
+@VintfStability
+@Backing(type="int")
+enum AddressProperty {
+ NONE = 0,
+ /**
+ * Indicates this address is deprecated
+ */
+ DEPRECATED = 0x20,
+}
diff --git a/radio/aidl/android/hardware/radio/ApnAuthType.aidl b/radio/aidl/android/hardware/radio/ApnAuthType.aidl
new file mode 100644
index 0000000..c836a31
--- /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 0000000..340301f
--- /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/AppState.aidl b/radio/aidl/android/hardware/radio/AppState.aidl
new file mode 100644
index 0000000..9488282
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/AppState.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 AppState {
+ UNKNOWN,
+ DETECTED,
+ /**
+ * If PIN1 or UPin is required
+ */
+ PIN,
+ /**
+ * If PUK1 or Puk for Upin is required
+ */
+ PUK,
+ /**
+ * perso_substate must be looked at when app_state is assigned to this value
+ */
+ SUBSCRIPTION_PERSO,
+ READY,
+}
diff --git a/radio/aidl/android/hardware/radio/AppStatus.aidl b/radio/aidl/android/hardware/radio/AppStatus.aidl
new file mode 100644
index 0000000..6b62697
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/AppStatus.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.AppState;
+import android.hardware.radio.AppType;
+import android.hardware.radio.PersoSubstate;
+import android.hardware.radio.PinState;
+
+@VintfStability
+parcelable AppStatus {
+ AppType appType;
+ AppState 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
+ */
+ int pin1Replaced;
+ PinState pin1;
+ PinState pin2;
+}
diff --git a/radio/aidl/android/hardware/radio/AppType.aidl b/radio/aidl/android/hardware/radio/AppType.aidl
new file mode 100644
index 0000000..8403f7d
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/AppType.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 AppType {
+ UNKNOWN,
+ SIM,
+ USIM,
+ RUIM,
+ CSIM,
+ ISIM,
+}
diff --git a/radio/aidl/android/hardware/radio/AudioQuality.aidl b/radio/aidl/android/hardware/radio/AudioQuality.aidl
new file mode 100644
index 0000000..bc4c2f1
--- /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 0000000..c50fa4b
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/BarringInfo.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;
+
+import android.hardware.radio.BarringInfoBarringType;
+import android.hardware.radio.BarringInfoBarringTypeSpecificInfo;
+import android.hardware.radio.BarringInfoServiceType;
+
+@VintfStability
+parcelable BarringInfo {
+ /**
+ * 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]
+ */
+ BarringInfoServiceType serviceType;
+ /**
+ * The type of barring applied to the service
+ */
+ BarringInfoBarringType barringType;
+ /**
+ * Type-specific barring info if applicable
+ */
+ BarringInfoBarringTypeSpecificInfo barringTypeSpecificInfo;
+}
diff --git a/radio/aidl/android/hardware/radio/BarringInfoBarringType.aidl b/radio/aidl/android/hardware/radio/BarringInfoBarringType.aidl
new file mode 100644
index 0000000..41f5fbb
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/BarringInfoBarringType.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 BarringInfoBarringType {
+ /**
+ * Device is not barred for the given service
+ */
+ NONE,
+ /**
+ * Device may be barred based on time and probability factors
+ */
+ CONDITIONAL,
+ /*
+ * Device is unconditionally barred
+ */
+ UNCONDITIONAL,
+}
diff --git a/radio/aidl/android/hardware/radio/BarringInfoBarringTypeSpecificInfo.aidl b/radio/aidl/android/hardware/radio/BarringInfoBarringTypeSpecificInfo.aidl
new file mode 100644
index 0000000..18f309d
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/BarringInfoBarringTypeSpecificInfo.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;
+
+import android.hardware.radio.BarringInfoBarringTypeSpecificInfoConditional;
+
+@VintfStability
+union BarringInfoBarringTypeSpecificInfo {
+ /**
+ * Barring type is either none or unconditional
+ */
+ boolean noinit;
+ /**
+ * Must be included if barring is conditional
+ */
+ BarringInfoBarringTypeSpecificInfoConditional conditional;
+}
diff --git a/radio/aidl/android/hardware/radio/BarringInfoBarringTypeSpecificInfoConditional.aidl b/radio/aidl/android/hardware/radio/BarringInfoBarringTypeSpecificInfoConditional.aidl
new file mode 100644
index 0000000..e3b7dfa
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/BarringInfoBarringTypeSpecificInfoConditional.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 BarringInfoBarringTypeSpecificInfoConditional {
+ /**
+ * 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/BarringInfoServiceType.aidl b/radio/aidl/android/hardware/radio/BarringInfoServiceType.aidl
new file mode 100644
index 0000000..1fa52a0
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/BarringInfoServiceType.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;
+
+@VintfStability
+@Backing(type="int")
+enum BarringInfoServiceType {
+ /**
+ * Applicable to UTRAN
+ * Barring for all CS services, including registration
+ */
+ CS_SERVICE,
+ /**
+ * Barring for all PS services, including registration
+ */
+ PS_SERVICE,
+ /**
+ * Barring for mobile-originated circuit-switched voice calls
+ */
+ CS_VOICE,
+ /**
+ * Applicable to EUTRAN, NGRAN
+ * Barring for mobile-originated signalling for any purpose
+ */
+ MO_SIGNALLING,
+ /**
+ * Barring for mobile-originated internet or other interactive data
+ */
+ MO_DATA,
+ /**
+ * Barring for circuit-switched fallback calling
+ */
+ CS_FALLBACK,
+ /**
+ * Barring for IMS voice calling
+ */
+ MMTEL_VOICE,
+ /**
+ * Barring for IMS video calling
+ */
+ MMTEL_VIDEO,
+ /**
+ * Applicable to UTRAN, EUTRAN, NGRAN
+ * Barring for emergency services, either CS or emergency MMTEL
+ */
+ EMERGENCY,
+ /**
+ * Barring for short message services
+ */
+ SMS,
+ /**
+ * Operator-specific barring codes; applicable to NGRAN
+ */
+ OPERATOR_1 = 1001,
+ OPERATOR_2 = 1002,
+ OPERATOR_3 = 1003,
+ OPERATOR_4 = 1004,
+ OPERATOR_5 = 1005,
+ OPERATOR_6 = 1006,
+ OPERATOR_7 = 1007,
+ OPERATOR_8 = 1008,
+ OPERATOR_9 = 1009,
+ OPERATOR_10 = 1010,
+ OPERATOR_11 = 1011,
+ OPERATOR_12 = 1012,
+ OPERATOR_13 = 1013,
+ OPERATOR_14 = 1014,
+ OPERATOR_15 = 1015,
+ OPERATOR_16 = 1016,
+ OPERATOR_17 = 1017,
+ OPERATOR_18 = 1018,
+ OPERATOR_19 = 1019,
+ OPERATOR_20 = 1020,
+ OPERATOR_21 = 1021,
+ OPERATOR_22 = 1022,
+ OPERATOR_23 = 1023,
+ OPERATOR_24 = 1024,
+ OPERATOR_25 = 1025,
+ OPERATOR_26 = 1026,
+ OPERATOR_27 = 1027,
+ OPERATOR_28 = 1028,
+ OPERATOR_29 = 1029,
+ OPERATOR_30 = 1030,
+ OPERATOR_31 = 1031,
+ OPERATOR_32 = 1032,
+}
diff --git a/radio/aidl/android/hardware/radio/Call.aidl b/radio/aidl/android/hardware/radio/Call.aidl
new file mode 100644
index 0000000..38cb3d3
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/Call.aidl
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.CallPresentation;
+import android.hardware.radio.CallState;
+import android.hardware.radio.UusInfo;
+
+@VintfStability
+parcelable Call {
+ CallState 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;
+ CallPresentation numberPresentation;
+ /**
+ * Remote party name
+ */
+ String name;
+ CallPresentation 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 0000000..91a3055
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CallForwardInfo.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;
+
+import android.hardware.radio.CallForwardInfoStatus;
+
+/**
+ * See also com.android.internal.telephony.gsm.CallForwardInfo
+ */
+@VintfStability
+parcelable CallForwardInfo {
+ /**
+ * For queryCallForwardStatus() status is DISABLE (Not used by vendor code currently)
+ * For setCallForward() status must be DISABLE, ENABLE, INTERROGATE, REGISTRATION, ERASURE
+ */
+ CallForwardInfoStatus 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/CallForwardInfoStatus.aidl b/radio/aidl/android/hardware/radio/CallForwardInfoStatus.aidl
new file mode 100644
index 0000000..f4ae503
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CallForwardInfoStatus.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 CallForwardInfoStatus {
+ DISABLE,
+ ENABLE,
+ INTERROGATE,
+ REGISTRATION,
+ ERASURE,
+}
diff --git a/radio/aidl/android/hardware/radio/CallPresentation.aidl b/radio/aidl/android/hardware/radio/CallPresentation.aidl
new file mode 100644
index 0000000..76b5f21
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CallPresentation.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 CallPresentation {
+ ALLOWED,
+ RESTRICTED,
+ UNKNOWN,
+ PAYPHONE,
+}
diff --git a/radio/aidl/android/hardware/radio/CallState.aidl b/radio/aidl/android/hardware/radio/CallState.aidl
new file mode 100644
index 0000000..4b6f1ac
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CallState.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 CallState {
+ ACTIVE,
+ HOLDING,
+ /**
+ * MO call only
+ */
+ DIALING,
+ /**
+ * MO call only
+ */
+ ALERTING,
+ /**
+ * MT call only
+ */
+ INCOMING,
+ /**
+ * MT call only
+ */
+ WAITING,
+}
diff --git a/radio/aidl/android/hardware/radio/CardPowerState.aidl b/radio/aidl/android/hardware/radio/CardPowerState.aidl
new file mode 100644
index 0000000..23088c9
--- /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/CardState.aidl b/radio/aidl/android/hardware/radio/CardState.aidl
new file mode 100644
index 0000000..c1bbee6
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CardState.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 CardState {
+ /*
+ * 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.)
+ */
+ ABSENT,
+ /*
+ * Card is inserted in the device
+ */
+ PRESENT,
+ ERROR,
+ /*
+ * Card is present but not usable due to carrier restrictions
+ */
+ RESTRICTED,
+}
diff --git a/radio/aidl/android/hardware/radio/CardStatus.aidl b/radio/aidl/android/hardware/radio/CardStatus.aidl
new file mode 100644
index 0000000..a8df53d
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CardStatus.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.radio;
+
+import android.hardware.radio.AppStatus;
+import android.hardware.radio.CardState;
+import android.hardware.radio.PinState;
+
+@VintfStability
+parcelable CardStatus {
+ CardState 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 0000000..be619b9
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/Carrier.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;
+
+import android.hardware.radio.CarrierMatchType;
+
+@VintfStability
+parcelable Carrier {
+ 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.
+ */
+ CarrierMatchType matchType;
+ String matchData;
+}
diff --git a/radio/aidl/android/hardware/radio/CarrierMatchType.aidl b/radio/aidl/android/hardware/radio/CarrierMatchType.aidl
new file mode 100644
index 0000000..39b9466
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CarrierMatchType.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 CarrierMatchType {
+ /**
+ * Apply to all carrier with the same mcc/mnc
+ */
+ ALL,
+ /**
+ * Use SPN and mcc/mnc to identify the carrier
+ */
+ SPN,
+ /**
+ * Use IMSI prefix and mcc/mnc to identify the carrier
+ */
+ IMSI_PREFIX,
+ /**
+ * Use GID1 and mcc/mnc to identify the carrier
+ */
+ GID1,
+ /**
+ * Use GID2 and mcc/mnc to identify the carrier
+ */
+ GID2,
+}
diff --git a/radio/aidl/android/hardware/radio/CarrierRestrictions.aidl b/radio/aidl/android/hardware/radio/CarrierRestrictions.aidl
new file mode 100644
index 0000000..70df637
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CarrierRestrictions.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.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;
+}
diff --git a/radio/aidl/android/hardware/radio/CarrierRestrictionsWithPriority.aidl b/radio/aidl/android/hardware/radio/CarrierRestrictionsWithPriority.aidl
new file mode 100644
index 0000000..057b016
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CarrierRestrictionsWithPriority.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;
+
+import android.hardware.radio.Carrier;
+
+@VintfStability
+parcelable CarrierRestrictionsWithPriority {
+ /**
+ * List of allowed carriers.
+ * The character '?' is used as wildcard character to match any value.
+ */
+ Carrier[] allowedCarriers;
+ /**
+ * List of excluded carriers.
+ * The character '?' is used as wildcard character to match any value.
+ */
+ Carrier[] excludedCarriers;
+ /**
+ * 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/CdmaBroadcastSmsConfigInfo.aidl b/radio/aidl/android/hardware/radio/CdmaBroadcastSmsConfigInfo.aidl
new file mode 100644
index 0000000..46f6345
--- /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 0000000..3db6ee0
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CdmaCallWaiting.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;
+
+import android.hardware.radio.CdmaCallWaitingNumberPlan;
+import android.hardware.radio.CdmaCallWaitingNumberPresentation;
+import android.hardware.radio.CdmaCallWaitingNumberType;
+import android.hardware.radio.CdmaSignalInfoRecord;
+
+@VintfStability
+parcelable CdmaCallWaiting {
+ /**
+ * Remote party number
+ */
+ String number;
+ CdmaCallWaitingNumberPresentation numberPresentation;
+ /**
+ * Remote party name
+ */
+ String name;
+ CdmaSignalInfoRecord signalInfoRecord;
+ /**
+ * Required to support International Call Waiting
+ */
+ CdmaCallWaitingNumberType numberType;
+ /**
+ * Required to support International Call Waiting
+ */
+ CdmaCallWaitingNumberPlan numberPlan;
+}
diff --git a/radio/aidl/android/hardware/radio/CdmaCallWaitingNumberPlan.aidl b/radio/aidl/android/hardware/radio/CdmaCallWaitingNumberPlan.aidl
new file mode 100644
index 0000000..76d2197
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CdmaCallWaitingNumberPlan.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 CdmaCallWaitingNumberPlan {
+ UNKNOWN = 0,
+ ISDN = 1,
+ DATA = 3,
+ TELEX = 4,
+ NATIONAL = 8,
+ PRIVATE = 9,
+}
diff --git a/radio/aidl/android/hardware/radio/CdmaCallWaitingNumberPresentation.aidl b/radio/aidl/android/hardware/radio/CdmaCallWaitingNumberPresentation.aidl
new file mode 100644
index 0000000..f9fca96
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CdmaCallWaitingNumberPresentation.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 CdmaCallWaitingNumberPresentation {
+ ALLOWED,
+ RESTRICTED,
+ UNKNOWN,
+}
diff --git a/radio/aidl/android/hardware/radio/CdmaCallWaitingNumberType.aidl b/radio/aidl/android/hardware/radio/CdmaCallWaitingNumberType.aidl
new file mode 100644
index 0000000..9c5b8ed
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CdmaCallWaitingNumberType.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 CdmaCallWaitingNumberType {
+ UNKNOWN,
+ INTERNATIONAL,
+ NATIONAL,
+ NETWORK_SPECIFIC,
+ SUBSCRIBER,
+}
diff --git a/radio/aidl/android/hardware/radio/CdmaDisplayInfoRecord.aidl b/radio/aidl/android/hardware/radio/CdmaDisplayInfoRecord.aidl
new file mode 100644
index 0000000..9b11f37
--- /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/CdmaInfoRecName.aidl b/radio/aidl/android/hardware/radio/CdmaInfoRecName.aidl
new file mode 100644
index 0000000..63ec699
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CdmaInfoRecName.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;
+
+/**
+ * Names of the CDMA info records (C.S0005 section 3.7.5)
+ */
+@VintfStability
+@Backing(type="int")
+enum CdmaInfoRecName {
+ DISPLAY,
+ CALLED_PARTY_NUMBER,
+ CALLING_PARTY_NUMBER,
+ CONNECTED_NUMBER,
+ SIGNAL,
+ REDIRECTING_NUMBER,
+ LINE_CONTROL,
+ EXTENDED_DISPLAY,
+ T53_CLIR,
+ T53_RELEASE,
+ T53_AUDIO_CONTROL,
+}
diff --git a/radio/aidl/android/hardware/radio/CdmaInformationRecord.aidl b/radio/aidl/android/hardware/radio/CdmaInformationRecord.aidl
new file mode 100644
index 0000000..7d9cb0a
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CdmaInformationRecord.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.CdmaDisplayInfoRecord;
+import android.hardware.radio.CdmaInfoRecName;
+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 {
+ /**
+ * Based on CdmaInfoRecName, only one of the below vectors must have size = 1.
+ * All other vectors must have size 0.
+ */
+ CdmaInfoRecName 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 0000000..dcf0ed2
--- /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 0000000..a6178af
--- /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 0000000..06e8317
--- /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 0000000..0cb4314
--- /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 0000000..d15621a
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CdmaRedirectingNumberInfoRecord.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;
+
+import android.hardware.radio.CdmaNumberInfoRecord;
+import android.hardware.radio.CdmaRedirectingReason;
+
+@VintfStability
+parcelable CdmaRedirectingNumberInfoRecord {
+ CdmaNumberInfoRecord redirectingNumber;
+ /**
+ * Set to UNKNOWN if not included.
+ */
+ CdmaRedirectingReason redirectingReason;
+}
diff --git a/radio/aidl/android/hardware/radio/CdmaRedirectingReason.aidl b/radio/aidl/android/hardware/radio/CdmaRedirectingReason.aidl
new file mode 100644
index 0000000..c86b9b2
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CdmaRedirectingReason.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;
+
+/**
+ * Redirecting Number Information Record as defined in C.S0005 section 3.7.5.11
+ */
+@VintfStability
+@Backing(type="int")
+enum CdmaRedirectingReason {
+ UNKNOWN = 0,
+ CALL_FORWARDING_BUSY = 1,
+ CALL_FORWARDING_NO_REPLY = 2,
+ CALLED_DTE_OUT_OF_ORDER = 9,
+ CALL_FORWARDING_BY_THE_CALLED_DTE = 10,
+ CALL_FORWARDING_UNCONDITIONAL = 15,
+ RESERVED,
+}
diff --git a/radio/aidl/android/hardware/radio/CdmaRoamingType.aidl b/radio/aidl/android/hardware/radio/CdmaRoamingType.aidl
new file mode 100644
index 0000000..df09e03
--- /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 0000000..36ecb18
--- /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 0000000..e6c2fb5
--- /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 0000000..b412b70
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CdmaSmsAck.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;
+
+import android.hardware.radio.CdmaSmsErrorClass;
+
+@VintfStability
+parcelable CdmaSmsAck {
+ CdmaSmsErrorClass 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 0000000..83e8839
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CdmaSmsAddress.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.CdmaSmsDigitMode;
+import android.hardware.radio.CdmaSmsNumberMode;
+import android.hardware.radio.CdmaSmsNumberPlan;
+import android.hardware.radio.CdmaSmsNumberType;
+
+@VintfStability
+parcelable CdmaSmsAddress {
+ /**
+ * CdmaSmsDigitMode is of two types : 4 bit and 8 bit.
+ * For 4-bit type, only "digits" field defined below in this struct is used.
+ */
+ CdmaSmsDigitMode digitMode;
+ /**
+ * Used only when digitMode is 8-bit.
+ */
+ CdmaSmsNumberMode numberMode;
+ /**
+ * Used only when digitMode is 8-bit. To specify an international address, use the following:
+ * digitMode = CdmaSmsDigitMode:EIGHT_BIT:
+ * numberMode = CdmaSmsNumberMode:NOT_DATA_NETWORK
+ * numberType = CdmaSmsNumberType:INTERNATIONAL_OR_DATA_IP
+ * numberPlan = CdmaSmsNumberPlan:TELEPHONY
+ * numberOfDigits = number of digits
+ * digits = ASCII digits, e.g. '1', '2', '3', '4', and '5'
+ */
+ CdmaSmsNumberType numberType;
+ /**
+ * Used only when digitMode is 8-bit.
+ */
+ CdmaSmsNumberPlan 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/CdmaSmsDigitMode.aidl b/radio/aidl/android/hardware/radio/CdmaSmsDigitMode.aidl
new file mode 100644
index 0000000..662311d
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CdmaSmsDigitMode.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 CdmaSmsDigitMode {
+ /**
+ * DTMF digits
+ */
+ FOUR_BIT,
+ EIGHT_BIT,
+}
diff --git a/radio/aidl/android/hardware/radio/CdmaSmsErrorClass.aidl b/radio/aidl/android/hardware/radio/CdmaSmsErrorClass.aidl
new file mode 100644
index 0000000..ec8c74e
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CdmaSmsErrorClass.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 CdmaSmsErrorClass {
+ NO_ERROR,
+ ERROR,
+}
diff --git a/radio/aidl/android/hardware/radio/CdmaSmsMessage.aidl b/radio/aidl/android/hardware/radio/CdmaSmsMessage.aidl
new file mode 100644
index 0000000..f38cc5b
--- /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/CdmaSmsNumberMode.aidl b/radio/aidl/android/hardware/radio/CdmaSmsNumberMode.aidl
new file mode 100644
index 0000000..e1e96dd
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CdmaSmsNumberMode.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 CdmaSmsNumberMode {
+ NOT_DATA_NETWORK,
+ DATA_NETWORK,
+}
diff --git a/radio/aidl/android/hardware/radio/CdmaSmsNumberPlan.aidl b/radio/aidl/android/hardware/radio/CdmaSmsNumberPlan.aidl
new file mode 100644
index 0000000..23dea9b
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CdmaSmsNumberPlan.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;
+
+@VintfStability
+@Backing(type="int")
+enum CdmaSmsNumberPlan {
+ UNKNOWN,
+ /**
+ * CCITT E.164 and E.163, including ISDN plan
+ */
+ TELEPHONY,
+ RESERVED_2,
+ /**
+ * CCITT X.121
+ */
+ DATA,
+ /**
+ * CCITT F.69
+ */
+ TELEX,
+ RESERVED_5,
+ RESERVED_6,
+ RESERVED_7,
+ RESERVED_8,
+ PRIVATE,
+ RESERVED_10,
+ RESERVED_11,
+ RESERVED_12,
+ RESERVED_13,
+ RESERVED_14,
+ RESERVED_15,
+}
diff --git a/radio/aidl/android/hardware/radio/CdmaSmsNumberType.aidl b/radio/aidl/android/hardware/radio/CdmaSmsNumberType.aidl
new file mode 100644
index 0000000..e439d1f
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CdmaSmsNumberType.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 CdmaSmsNumberType {
+ UNKNOWN,
+ /**
+ * INTERNATIONAL is used when number mode is not data network address. DATA_IP is used when the
+ * number mode is data network address.
+ */
+ INTERNATIONAL_OR_DATA_IP,
+ /**
+ * 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
+ */
+ NATIONAL_OR_INTERNET_MAIL,
+ NETWORK,
+ SUBSCRIBER,
+ /**
+ * GSM SMS: address value is GSM 7-bit chars
+ */
+ ALPHANUMERIC,
+ ABBREVIATED,
+ RESERVED_7,
+}
diff --git a/radio/aidl/android/hardware/radio/CdmaSmsSubaddress.aidl b/radio/aidl/android/hardware/radio/CdmaSmsSubaddress.aidl
new file mode 100644
index 0000000..4a84c79
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CdmaSmsSubaddress.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;
+
+import android.hardware.radio.CdmaSmsSubaddressType;
+
+@VintfStability
+parcelable CdmaSmsSubaddress {
+ CdmaSmsSubaddressType 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/CdmaSmsSubaddressType.aidl b/radio/aidl/android/hardware/radio/CdmaSmsSubaddressType.aidl
new file mode 100644
index 0000000..60aa37b
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CdmaSmsSubaddressType.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 CdmaSmsSubaddressType {
+ /**
+ * CCITT X.213 or ISO 8348 AD2
+ */
+ NSAP,
+ /**
+ * e.g. X.25
+ */
+ USER_SPECIFIED,
+}
diff --git a/radio/aidl/android/hardware/radio/CdmaSmsWriteArgs.aidl b/radio/aidl/android/hardware/radio/CdmaSmsWriteArgs.aidl
new file mode 100644
index 0000000..f613e39
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CdmaSmsWriteArgs.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;
+
+import android.hardware.radio.CdmaSmsMessage;
+import android.hardware.radio.CdmaSmsWriteArgsStatus;
+
+@VintfStability
+parcelable CdmaSmsWriteArgs {
+ /**
+ * Status of message. See TS 27.005 3.1
+ */
+ CdmaSmsWriteArgsStatus status;
+ CdmaSmsMessage message;
+}
diff --git a/radio/aidl/android/hardware/radio/CdmaSmsWriteArgsStatus.aidl b/radio/aidl/android/hardware/radio/CdmaSmsWriteArgsStatus.aidl
new file mode 100644
index 0000000..009e8a9
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/CdmaSmsWriteArgsStatus.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 CdmaSmsWriteArgsStatus {
+ REC_UNREAD,
+ REC_READ,
+ STO_UNSENT,
+ STO_SENT,
+}
diff --git a/radio/aidl/android/hardware/radio/CdmaSubscriptionSource.aidl b/radio/aidl/android/hardware/radio/CdmaSubscriptionSource.aidl
new file mode 100644
index 0000000..b83e81a
--- /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 0000000..715a2f7
--- /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 0000000..636d40c
--- /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 0000000..56a1a10
--- /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 0000000..faa9b28
--- /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 0000000..abfcc9d
--- /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 0000000..56867e9
--- /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 0000000..f1c5042
--- /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 0000000..f7f8fef
--- /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.EutranBands;
+import android.hardware.radio.OptionalCsgInfo;
+
+@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
+ */
+ OptionalCsgInfo optionalCsgInfo;
+ /**
+ * 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 0000000..6879c63
--- /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 0000000..dea9929
--- /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 0000000..8268bba
--- /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.OptionalCsgInfo;
+
+@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.
+ */
+ OptionalCsgInfo optionalCsgInfo;
+}
diff --git a/radio/aidl/android/hardware/radio/CellIdentityWcdma.aidl b/radio/aidl/android/hardware/radio/CellIdentityWcdma.aidl
new file mode 100644
index 0000000..667c15b
--- /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.OptionalCsgInfo;
+
+@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.
+ */
+ OptionalCsgInfo optionalCsgInfo;
+}
diff --git a/radio/aidl/android/hardware/radio/CellInfo.aidl b/radio/aidl/android/hardware/radio/CellInfo.aidl
new file mode 100644
index 0000000..fe4f330
--- /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 0000000..27a35d1
--- /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 0000000..cdd3386
--- /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 0000000..16ba857
--- /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 0000000..4d5e12d
--- /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 0000000..d3389c1
--- /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 0000000..b1f311f
--- /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 0000000..b7d09bc
--- /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 0000000..8e5e8c9
--- /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 0000000..03b0863
--- /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 0000000..c6a91b9
--- /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 0000000..c75c609
--- /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/Clir.aidl b/radio/aidl/android/hardware/radio/Clir.aidl
new file mode 100644
index 0000000..a13ff9d
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/Clir.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 Clir {
+ /**
+ * Use subscription default value
+ */
+ DEFAULT,
+ /**
+ * Restrict CLI presentation
+ */
+ INVOCATION,
+ /**
+ * Allow CLI presentation
+ */
+ SUPPRESSION,
+}
diff --git a/radio/aidl/android/hardware/radio/ClosedSubscriberGroupInfo.aidl b/radio/aidl/android/hardware/radio/ClosedSubscriberGroupInfo.aidl
new file mode 100644
index 0000000..7c6fb7a
--- /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 0000000..021988b
--- /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/DataConnActiveStatus.aidl b/radio/aidl/android/hardware/radio/DataConnActiveStatus.aidl
new file mode 100644
index 0000000..1e83727
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/DataConnActiveStatus.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;
+
+/**
+ * Data connection active status
+ */
+@VintfStability
+@Backing(type="int")
+enum DataConnActiveStatus {
+ /**
+ * Indicates the data connection is inactive.
+ */
+ INACTIVE,
+ /**
+ * Indicates the data connection is active with physical link dormant.
+ */
+ DORMANT,
+ /**
+ * Indicates the data connection is active with physical link up.
+ */
+ ACTIVE,
+}
diff --git a/radio/aidl/android/hardware/radio/DataProfileId.aidl b/radio/aidl/android/hardware/radio/DataProfileId.aidl
new file mode 100644
index 0000000..f173f1f
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/DataProfileId.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 DataProfileId {
+ DEFAULT = 0,
+ TETHERED = 1,
+ IMS = 2,
+ FOTA = 3,
+ CBS = 4,
+ /**
+ * Start of OEM-specific profiles
+ */
+ OEM_BASE = 1000,
+ INVALID = 0xFFFFFFFF,
+}
diff --git a/radio/aidl/android/hardware/radio/DataProfileInfo.aidl b/radio/aidl/android/hardware/radio/DataProfileInfo.aidl
new file mode 100644
index 0000000..5e2d4d2
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/DataProfileInfo.aidl
@@ -0,0 +1,103 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.DataProfileId;
+import android.hardware.radio.DataProfileInfoType;
+import android.hardware.radio.PdpProtocolType;
+import android.hardware.radio.RadioAccessFamily;
+
+@VintfStability
+parcelable DataProfileInfo {
+ /**
+ * ID of the data profile.
+ */
+ DataProfileId 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.
+ */
+ DataProfileInfoType 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/DataProfileInfoType.aidl b/radio/aidl/android/hardware/radio/DataProfileInfoType.aidl
new file mode 100644
index 0000000..df46ef3
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/DataProfileInfoType.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 DataProfileInfoType {
+ COMMON,
+ THREE_GPP,
+ THREE_GPP2,
+}
diff --git a/radio/aidl/android/hardware/radio/DataRegStateResult.aidl b/radio/aidl/android/hardware/radio/DataRegStateResult.aidl
new file mode 100644
index 0000000..53a3e52
--- /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.DataRegStateResultVopsInfo;
+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.
+ */
+ DataRegStateResultVopsInfo vopsInfo;
+ /**
+ * 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/DataRegStateResultVopsInfo.aidl b/radio/aidl/android/hardware/radio/DataRegStateResultVopsInfo.aidl
new file mode 100644
index 0000000..885d5b2
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/DataRegStateResultVopsInfo.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.LteVopsInfo;
+
+@VintfStability
+union DataRegStateResultVopsInfo {
+ boolean noinit;
+ /**
+ * LTE network capability
+ */
+ LteVopsInfo lteVopsInfo;
+}
diff --git a/radio/aidl/android/hardware/radio/DataRequestReason.aidl b/radio/aidl/android/hardware/radio/DataRequestReason.aidl
new file mode 100644
index 0000000..74afdcb
--- /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 0000000..1a49762
--- /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 0000000..e622486
--- /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 0000000..9056815
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/Dial.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.Clir;
+import android.hardware.radio.UusInfo;
+
+@VintfStability
+parcelable Dial {
+ String address;
+ Clir 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 0000000..f5e5261
--- /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/EmcIndicator.aidl b/radio/aidl/android/hardware/radio/EmcIndicator.aidl
new file mode 100644
index 0000000..6f0b19f
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/EmcIndicator.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;
+
+/**
+ * Defines the values for emergency service indicator of NR as per 3gpp spec 24.501 sec 9.10.3.5
+ */
+@VintfStability
+@Backing(type="byte")
+enum EmcIndicator {
+ /**
+ * Emergency services not supported
+ */
+ EMC_NOT_SUPPORTED,
+ /**
+ * Emergency services supported in NR connected to 5GCN only
+ */
+ EMC_NR_CONNECTED_TO_5GCN,
+ /**
+ * Emergency services supported in E-UTRA connected to 5GCN only
+ */
+ EMC_EUTRA_CONNECTED_TO_5GCN,
+ /**
+ * Emergency services supported in NR connected to 5GCN and E-UTRA connected to 5GCN
+ */
+ EMC_BOTH_NR_EUTRA_CONNECTED_TO_5GCN,
+}
diff --git a/radio/aidl/android/hardware/radio/EmergencyCallRouting.aidl b/radio/aidl/android/hardware/radio/EmergencyCallRouting.aidl
new file mode 100644
index 0000000..a915ee6
--- /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 0000000..ee425f8
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/EmergencyNumber.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;
+
+import android.hardware.radio.EmergencyNumberSource;
+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 {
+ /**
+ * 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). See EmergencyNumberSource for the value of
+ * each bit.
+ */
+ EmergencyNumberSource sources;
+}
diff --git a/radio/aidl/android/hardware/radio/EmergencyNumberSource.aidl b/radio/aidl/android/hardware/radio/EmergencyNumberSource.aidl
new file mode 100644
index 0000000..c2d6547
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/EmergencyNumberSource.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;
+
+/**
+ * The source to tell where the corresponding EmergencyNumber comes from.
+ * Reference: 3gpp 22.101, Section 10 - Emergency Calls
+ */
+@VintfStability
+@Backing(type="int")
+enum EmergencyNumberSource {
+ /**
+ * Indicates the number is from the network signal.
+ */
+ NETWORK_SIGNALING = 1 << 0,
+ /**
+ * Indicates the number is from the sim card.
+ */
+ SIM = 1 << 1,
+ /**
+ * Indicates the number is from the modem config.
+ */
+ 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.
+ */
+ DEFAULT = 1 << 3,
+}
diff --git a/radio/aidl/android/hardware/radio/EmergencyServiceCategory.aidl b/radio/aidl/android/hardware/radio/EmergencyServiceCategory.aidl
new file mode 100644
index 0000000..30d34ab
--- /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/EmfIndicator.aidl b/radio/aidl/android/hardware/radio/EmfIndicator.aidl
new file mode 100644
index 0000000..226e684
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/EmfIndicator.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;
+
+/**
+ * Defines the values for emergency service fallback indicator of NR as per TS 24.501 sec 9.10.3.5.
+ */
+@VintfStability
+@Backing(type="byte")
+enum EmfIndicator {
+ /**
+ * Emergency services fallback not supported
+ */
+ EMF_NOT_SUPPORTED,
+ /**
+ * Emergency services fallback supported in NR connected to 5GCN only
+ */
+ EMF_NR_CONNECTED_TO_5GCN,
+ /**
+ * Emergency services fallback supported in E-UTRA connected to 5GCN only
+ */
+ EMF_EUTRA_CONNECTED_TO_5GCN,
+ /**
+ * Emergency services fallback supported in NR connected to 5GCN and E-UTRA connected to 5GCN.
+ */
+ EMF_BOTH_NR_EUTRA_CONNECTED_TO_5GCN,
+}
diff --git a/radio/aidl/android/hardware/radio/EpsQos.aidl b/radio/aidl/android/hardware/radio/EpsQos.aidl
new file mode 100644
index 0000000..ee4cbdd
--- /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 0000000..59fe6c4
--- /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/EvdoSignalStrength.aidl b/radio/aidl/android/hardware/radio/EvdoSignalStrength.aidl
new file mode 100644
index 0000000..ff631f3
--- /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/FrequencyRange.aidl b/radio/aidl/android/hardware/radio/FrequencyRange.aidl
new file mode 100644
index 0000000..09ec3bc
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/FrequencyRange.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;
+
+/**
+ * Mapping the frequency to a rough range.
+ */
+@VintfStability
+@Backing(type="int")
+enum FrequencyRange {
+ /**
+ * Indicates the frequency range is below 1GHz.
+ */
+ LOW = 1,
+ /**
+ * Indicates the frequency range is between 1GHz and 3GHz.
+ */
+ MID = 2,
+ /**
+ * Indicates the frequency range is between 3GHz and 6GHz.
+ */
+ HIGH = 3,
+ /**
+ * Indicates the frequency range is above 6GHz (millimeter wave frequency).
+ */
+ MMWAVE = 4,
+}
diff --git a/radio/aidl/android/hardware/radio/GeranBands.aidl b/radio/aidl/android/hardware/radio/GeranBands.aidl
new file mode 100644
index 0000000..d3a7598
--- /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 0000000..9b08ad9
--- /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 0000000..65f853a
--- /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 0000000..248b4be
--- /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/HandoverFailureMode.aidl b/radio/aidl/android/hardware/radio/HandoverFailureMode.aidl
new file mode 100644
index 0000000..f6918a8
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/HandoverFailureMode.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;
+
+/**
+ * The allowed failure modes on an IWLAN handover failure.
+ */
+@VintfStability
+@Backing(type="byte")
+enum HandoverFailureMode {
+ /**
+ * On data handover failure, fallback to the source data transport when the fail cause is due
+ * to a hand off preference change.
+ */
+ LEGACY,
+ /**
+ * On data handover failure, fallback to the source data transport.
+ */
+ DO_FALLBACK,
+ /**
+ * On data handover failure, retry the handover instead of falling back to the source data
+ * transport.
+ */
+ NO_FALLBACK_RETRY_HANDOVER,
+ /**
+ * On data handover failure, setup a new data connection by sending a normal request to the
+ * underlying data service.
+ */
+ NO_FALLBACK_RETRY_SETUP_NORMAL,
+}
diff --git a/radio/aidl/android/hardware/radio/HardwareConfig.aidl b/radio/aidl/android/hardware/radio/HardwareConfig.aidl
new file mode 100644
index 0000000..d3902af
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/HardwareConfig.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;
+
+import android.hardware.radio.HardwareConfigModem;
+import android.hardware.radio.HardwareConfigSim;
+import android.hardware.radio.HardwareConfigState;
+import android.hardware.radio.HardwareConfigType;
+
+@VintfStability
+parcelable HardwareConfig {
+ HardwareConfigType type;
+ /**
+ * RadioConst:MAX_UUID_LENGTH is max length of the string
+ */
+ String uuid;
+ HardwareConfigState 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 0000000..ef348d6
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/HardwareConfigModem.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 HardwareConfigModem {
+ int rilModel;
+ /**
+ * bitset - ref. RadioTechnology.
+ */
+ int rat;
+ int maxVoice;
+ int maxData;
+ 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 0000000..85055de
--- /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/HardwareConfigState.aidl b/radio/aidl/android/hardware/radio/HardwareConfigState.aidl
new file mode 100644
index 0000000..05c806d
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/HardwareConfigState.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 HardwareConfigState {
+ ENABLED,
+ STANDBY,
+ DISABLED,
+}
diff --git a/radio/aidl/android/hardware/radio/HardwareConfigType.aidl b/radio/aidl/android/hardware/radio/HardwareConfigType.aidl
new file mode 100644
index 0000000..5605c2b
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/HardwareConfigType.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 HardwareConfigType {
+ MODEM,
+ SIM,
+}
diff --git a/radio/aidl/android/hardware/radio/IRadio.aidl b/radio/aidl/android/hardware/radio/IRadio.aidl
new file mode 100644
index 0000000..352cbfb
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/IRadio.aidl
@@ -0,0 +1,2073 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.CarrierRestrictionsWithPriority;
+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.OptionalSliceInfo;
+import android.hardware.radio.OptionalTrafficDescriptor;
+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.SmsAcknowledgeFailCause;
+import android.hardware.radio.SmsWriteArgs;
+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
+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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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 @1.0::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
+ * @1.4::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
+ * @1.4::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 @1.4::EmergencyNumberRouting#EMERGENCY, the implementation must use emergency routing to
+ * handle the call. 3) if 'routing' is specified as @1.4::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 @1.4::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 @1.0::Dial information used by @1.0::IRadio.dial.
+ * @param categories bitfield<@1.4::EmergencyServiceCategory> the Emergency Service Category(s)
+ * of the call.
+ * @param urns the emergency Uniform Resource Names (URN)
+ * @param routing @1.4::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()
+ */
+ oneway 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 @1.0::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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway void explicitCallTransfer(in int serial);
+
+ /**
+ * Get carrier restrictions.
+ *
+ * @param serial Serial number of request.
+ *
+ * Response callback is IRadioResponse.getAllowedCarriersResponse_1_4()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway void getAvailableBandModes(in int serial);
+
+ /**
+ * Scans for available networks
+ *
+ * @param serial Serial number of request.
+ *
+ * Response function is IRadioResponse.getAvailableNetworksResponse()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway void getCDMASubscription(in int serial);
+
+ /**
+ * Request call forward status.
+ *
+ * @param serial Serial number of request.
+ * @param callInfo CallForwardInfo
+ *
+ * Response function is IRadioResponse.getCallForwardStatusResponse()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway void getCdmaSubscriptionSource(in int serial);
+
+ /**
+ * Request all of the current cell information known to the radio. The radio
+ * must return 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()
+ */
+ oneway 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()
+ */
+ oneway void getClip(in int serial);
+
+ /**
+ * Gets current CLIR status
+ *
+ * @param serial Serial number of request.
+ *
+ * Response function is IRadioResponse.getClirResponse()
+ */
+ oneway void getClir(in int serial);
+
+ /**
+ * Requests current call list
+ *
+ * @param serial Serial number of request.
+ *
+ * Response function is IRadioResponse.getCurrentCallsResponse_1_6()
+ */
+ oneway 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_1_6()
+ */
+ oneway void getDataCallList(in int serial);
+
+ /**
+ * Request current data registration state.
+ *
+ * @param serial Serial number of request.
+ *
+ * Response function is IRadioResponse.getDataRegistrationStateResponse_1_6()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway void getHardwareConfig(in int serial);
+
+ /**
+ * Requests status of the ICC card
+ *
+ * @param serial Serial number of request.
+ *
+ * Response function is IRadioResponse.getIccCardStatusResponse()
+ *
+ */
+ oneway void getIccCardStatus(in int serial);
+
+ /**
+ * Request current IMS registration state
+ *
+ * @param serial Serial number of request.
+ *
+ * Response callback is IRadioResponse.getImsRegistrationStateResponse()
+ */
+ oneway 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()
+ *
+ */
+ oneway 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()
+ *
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway void getMute(in int serial);
+
+ /**
+ * Request neighboring cell id in GSM network
+ *
+ * @param serial Serial number of request.
+ *
+ * Response callback is IRadioResponse.getNeighboringCidsResponse()
+ */
+ oneway void getNeighboringCids(in int serial);
+
+ /**
+ * Query current network selection mode
+ *
+ * @param serial Serial number of request.
+ *
+ * Response function is IRadioResponse.getNetworkSelectionModeResponse()
+ */
+ oneway void getNetworkSelectionMode(in int serial);
+
+ /**
+ * Request current operator ONS or EONS
+ *
+ * @param serial Serial number of request.
+ *
+ * Response function is IRadioResponse.getOperatorResponse()
+ */
+ oneway 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()
+ */
+ oneway void getPreferredNetworkType(in int serial);
+
+ /**
+ * Query the preferred network type bitmap.
+ *
+ * @param serial Serial number of request.
+ *
+ * Response callback is IRadioResponse.getPreferredNetworkTypeBitmapResponse()
+ */
+ oneway void getPreferredNetworkTypeBitmap(in int serial);
+
+ /**
+ * Request the setting of preferred voice privacy mode.
+ *
+ * @param serial Serial number of request.
+ *
+ * Response callback is IRadioResponse.getPreferredVoicePrivacyResponse()
+ */
+ oneway void getPreferredVoicePrivacy(in int serial);
+
+ /**
+ * Used to get phone radio capability.
+ *
+ * @param serial Serial number of request.
+ *
+ * Response callback is IRadioResponse.getRadioCapabilityResponse()
+ */
+ oneway 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_1_6()
+ */
+ oneway void getSignalStrength(in int serial);
+
+ /**
+ * Get the phone book capacity
+ *
+ * @param serial Serial number of request.
+ *
+ * Response function is defined from IRadioResponse.getSimPhonebookCapacityResponse()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway void getSystemSelectionChannels(in int serial);
+
+ /**
+ * Request the setting of TTY mode
+ *
+ * @param serial Serial number of request.
+ *
+ * Response callback is IRadioResponse.getTTYModeResponse()
+ */
+ oneway 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()
+ */
+ oneway void getVoiceRadioTechnology(in int serial);
+
+ /**
+ * Request current voice registration state.
+ *
+ * @param serial Serial number of request.
+ *
+ * Response function is IRadioResponse.getVoiceRegistrationStateResponse()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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 P2Constant:NO_P2
+ *
+ * Response callback is IRadioResponse.iccOpenLogicalChannelResponse()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway void nvWriteItem(in int serial, in NvWriteItem item);
+
+ /**
+ * Pull LCE service for capacity information.
+ *
+ * @param serial Serial number of request.
+ *
+ * Response callback is IRadioResponse.pullLceDataResponse() which may return
+ * RadioError:REQUEST_NOT_SUPPORTED if @1.2::IRadio or higher is supported.
+ *
+ * DEPRECATED in @1.2 or higher which use the always-on LCE that relies on indications.
+ */
+ oneway void pullLceData(in int serial);
+
+ /**
+ * Send UDUB (user determined user busy) to ringing or waiting call answer)
+ *
+ * @param serial Serial number of request.
+ *
+ * Response function is IRadioResponse.rejectCallResponse()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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().
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway void sendImsSms(in int serial, in ImsSmsMessage 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 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.sendSMSExpectMoreResponse()
+ *
+ * DEPRECATED in @1.6 or higher which uses sendSmsExpectMore().
+ */
+ oneway void sendSMSExpectMore(in int serial, in GsmSmsMessage 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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
+ */
+ oneway 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()
+ */
+ oneway 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 CarrierRestrictionsWithPriority consisting allowed and excluded carriers
+ * as defined in types.hal
+ * @param multiSimPolicy Policy to be used for devices with multiple SIMs.
+ *
+ * Response callback is IRadioResponse.setAllowedCarriersResponse()
+ */
+ oneway void setAllowedCarriers(in int serial, in CarrierRestrictionsWithPriority 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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.
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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_1_5 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.
+ */
+ oneway 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()
+ */
+ oneway 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().
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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 OptionalSliceInfo sliceInfo,
+ in OptionalTrafficDescriptor 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway void startKeepalive(in int serial, in KeepaliveRequest keepalive);
+
+ /**
+ * Start Link Capacity Estimate (LCE) service if supported by the radio.
+ *
+ * @param serial Serial number of request.
+ * @param reportInterval desired reporting interval (ms).
+ * @param pullMode LCE service mode. true: PULL; false: PUSH.
+ *
+ * Response callback is IRadioResponse.startLceServiceResponse()
+ *
+ * DEPRECATED in @1.2 or higher which use the always-on LCE that relies on indications.
+ */
+ oneway void startLceService(in int serial, in int reportInterval, in boolean pullMode);
+
+ /**
+ * 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway void stopKeepalive(in int serial, in int sessionHandle);
+
+ /**
+ * Stop Link Capacity Estimate (LCE) service, the STOP operation must be idempotent for the
+ * radio modem.
+ *
+ * @param serial Serial number of request.
+ *
+ * Response callback is IRadioResponse.stopLceServiceResponse()
+ *
+ * DEPRECATED in @1.2 or higher which use the always-on LCE that relies on indications.
+ */
+ oneway void stopLceService(in int serial);
+
+ /**
+ * Stops ongoing network scan
+ *
+ * @param serial Serial number of request.
+ *
+ * Response function is IRadioResponse.stopNetworkScanResponse()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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()
+ */
+ oneway 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 0000000..054a53e
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/IRadioIndication.aidl
@@ -0,0 +1,632 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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
+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.
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway void cdmaRuimSmsStorageFull(in RadioIndicationType type);
+
+ /**
+ * Indicates when CDMA subscription source changed.
+ *
+ * @param type Type of radio indication
+ * @param cdmaSource New Cdma SubscriptionSource
+ */
+ oneway 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
+ */
+ oneway 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.
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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.
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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.
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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:)
+ */
+ oneway 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
+ */
+ oneway 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:)
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway void radioCapabilityIndication(in RadioIndicationType type, in RadioCapability rc);
+
+ /**
+ * Indicates when radio state changes.
+ *
+ * @param type Type of radio indication
+ * @param radioState Current radio state
+ */
+ oneway 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.
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway void restrictedStateChanged(in RadioIndicationType type, in PhoneRestrictedState state);
+
+ /**
+ * Indicates the ril connects and returns the version
+ *
+ * @param type Type of radio indication
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway void simSmsStorageFull(in RadioIndicationType type);
+
+ /**
+ * Indicates that SIM state changes. Callee must invoke getIccCardStatus().
+ *
+ * @param type Type of radio indication
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway void stkProactiveCommand(in RadioIndicationType type, in String cmd);
+
+ /**
+ * Indicates when STK session is terminated by SIM.
+ *
+ * @param type Type of radio indication
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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 0000000..9ae6495
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/IRadioResponse.aidl
@@ -0,0 +1,3055 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.CarrierRestrictionsWithPriority;
+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
+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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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.
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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.
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway void getAllowedCarriersResponse(in RadioResponseInfo info,
+ in CarrierRestrictionsWithPriority 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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.
+ */
+ oneway 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.
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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.
+ */
+ oneway 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.
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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)
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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.
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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 0000000..55950fd
--- /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
+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
+ */
+ oneway 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
+ */
+ oneway 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.
+ */
+ oneway 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
+ */
+ oneway 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.
+ */
+ oneway 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
+ */
+ oneway 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.
+ */
+ oneway 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.
+ */
+ oneway 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 0000000..e7a4bac
--- /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
+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.
+ */
+ oneway 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.
+ */
+ oneway 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
+ */
+ oneway 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.
+ */
+ oneway 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.
+ */
+ oneway 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)
+ */
+ oneway 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
+ */
+ oneway 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.
+ */
+ oneway 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.
+ */
+ oneway 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
+ */
+ oneway 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
+ */
+ oneway 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 0000000..7441758
--- /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 0000000..94377b4
--- /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 0000000..3b4efe6
--- /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 0000000..dbb0a9e
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/ImsiEncryptionInfo.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.PublicKeyType;
+
+/**
+ * Carrier specific Information sent by the carrier, which will be used to encrypt IMSI and IMPI.
+ */
+@VintfStability
+parcelable ImsiEncryptionInfo {
+ /**
+ * 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.
+ */
+ PublicKeyType keyType;
+}
diff --git a/radio/aidl/android/hardware/radio/IncrementalResultsPeriodicityRange.aidl b/radio/aidl/android/hardware/radio/IncrementalResultsPeriodicityRange.aidl
new file mode 100644
index 0000000..4a863a7
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/IncrementalResultsPeriodicityRange.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;
+
+/**
+ * Values are in seconds.
+ */
+@VintfStability
+@Backing(type="int")
+enum IncrementalResultsPeriodicityRange {
+ MIN = 1,
+ MAX = 10,
+}
diff --git a/radio/aidl/android/hardware/radio/IndicationFilter.aidl b/radio/aidl/android/hardware/radio/IndicationFilter.aidl
new file mode 100644
index 0000000..826c8c1
--- /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 0000000..ef594ad
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/KeepaliveRequest.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.KeepaliveType;
+
+@VintfStability
+parcelable KeepaliveRequest {
+ /**
+ * The format of the keepalive packet
+ */
+ KeepaliveType 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 0000000..911cdae
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/KeepaliveStatus.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;
+
+import android.hardware.radio.KeepaliveStatusCode;
+
+@VintfStability
+parcelable KeepaliveStatus {
+ /**
+ * The sessionHandle provided by the API
+ */
+ int sessionHandle;
+ /**
+ * Status for the given keepalive
+ */
+ KeepaliveStatusCode code;
+}
diff --git a/radio/aidl/android/hardware/radio/KeepaliveStatusCode.aidl b/radio/aidl/android/hardware/radio/KeepaliveStatusCode.aidl
new file mode 100644
index 0000000..ed4b327
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/KeepaliveStatusCode.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 KeepaliveStatusCode {
+ /**
+ * Keepalive is currently active
+ */
+ ACTIVE,
+ /**
+ * Keepalive is inactive, which indicates an error
+ */
+ INACTIVE,
+ /**
+ * Requested keepalive has not yet been processed by the modem.
+ * Only allowed in a RESPONSE message to a REQUEST
+ */
+ PENDING,
+}
diff --git a/radio/aidl/android/hardware/radio/KeepaliveType.aidl b/radio/aidl/android/hardware/radio/KeepaliveType.aidl
new file mode 100644
index 0000000..86b1509
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/KeepaliveType.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 KeepaliveType {
+ /**
+ * Keepalive specified by RFC 3948 Sec. 2.3 using IPv4
+ */
+ NATT_IPV4,
+ /**
+ * Keepalive specified by RFC 3948 Sec. 2.3 using IPv6
+ */
+ NATT_IPV6,
+}
diff --git a/radio/aidl/android/hardware/radio/LastCallFailCause.aidl b/radio/aidl/android/hardware/radio/LastCallFailCause.aidl
new file mode 100644
index 0000000..e5a5145
--- /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 0000000..6866e99
--- /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 0000000..68521b5
--- /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/LceStatus.aidl b/radio/aidl/android/hardware/radio/LceStatus.aidl
new file mode 100644
index 0000000..0d3a27e
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/LceStatus.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 LceStatus {
+ NOT_SUPPORTED,
+ STOPPED,
+ ACTIVE,
+}
diff --git a/radio/aidl/android/hardware/radio/LceStatusInfo.aidl b/radio/aidl/android/hardware/radio/LceStatusInfo.aidl
new file mode 100644
index 0000000..e2b35e1
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/LceStatusInfo.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.LceStatus;
+
+@VintfStability
+parcelable LceStatusInfo {
+ LceStatus 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 0000000..6fc12c7
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/LinkAddress.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;
+
+import android.hardware.radio.AddressProperty;
+
+/**
+ * Describes a data link address for mobile data connection.
+ */
+@VintfStability
+parcelable LinkAddress {
+ /**
+ * 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
+ */
+ AddressProperty properties;
+ /**
+ * 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 0000000..78ddee2
--- /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 0000000..699925d
--- /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 0000000..b487a8f
--- /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/MaxSearchTimeRange.aidl b/radio/aidl/android/hardware/radio/MaxSearchTimeRange.aidl
new file mode 100644
index 0000000..babbd3c
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/MaxSearchTimeRange.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;
+
+/**
+ * Values are in seconds.
+ */
+@VintfStability
+@Backing(type="int")
+enum MaxSearchTimeRange {
+ MIN = 60,
+ MAX = 3600,
+}
diff --git a/radio/aidl/android/hardware/radio/MaybePort.aidl b/radio/aidl/android/hardware/radio/MaybePort.aidl
new file mode 100644
index 0000000..169f90f
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/MaybePort.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.PortRange;
+
+/**
+ * Port is optional, contains either single port or range of ports
+ */
+@VintfStability
+union MaybePort {
+ boolean noinit;
+ PortRange range;
+}
diff --git a/radio/aidl/android/hardware/radio/MvnoType.aidl b/radio/aidl/android/hardware/radio/MvnoType.aidl
new file mode 100644
index 0000000..0f0df62
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/MvnoType.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 MvnoType {
+ /**
+ * None
+ */
+ NONE,
+ /**
+ * The matching data is based on IMSI.
+ */
+ IMSI,
+ /**
+ * The matching data is based on group id.
+ */
+ GID,
+ /**
+ * The matching data is based service provider name.
+ */
+ SPN,
+}
diff --git a/radio/aidl/android/hardware/radio/NeighboringCell.aidl b/radio/aidl/android/hardware/radio/NeighboringCell.aidl
new file mode 100644
index 0000000..b48a2d4
--- /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 0000000..7659b89
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/NetworkScanRequest.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.RadioAccessSpecifier;
+import android.hardware.radio.ScanType;
+
+@VintfStability
+parcelable NetworkScanRequest {
+ ScanType 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: ScanIntervalRange:MIN to ScanIntervalRange: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: MaxSearchTimeRange:MIN to MaxSearchTimeRange: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: IncrementalResultsPeriodicityRange:MIN to IncrementalResultsPeriodicityRange: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 0000000..c542a47
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/NetworkScanResult.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.CellInfo;
+import android.hardware.radio.RadioError;
+import android.hardware.radio.ScanStatus;
+
+@VintfStability
+parcelable NetworkScanResult {
+ /**
+ * The status of the scan.
+ */
+ ScanStatus 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 0000000..7887011
--- /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 0000000..52bd048
--- /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 0000000..2a1dfec
--- /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 0000000..3d0278c
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/NrQos.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.QosBandwidth;
+
+/**
+ * 5G Quality of Service parameters as per 3gpp spec 24.501 sec 9.11.4.12
+ */
+@VintfStability
+parcelable NrQos {
+ /**
+ * 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
+ * (QosFlowIdRange::MIN, QosFlowIdRange::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 0000000..40c6c3e
--- /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 0000000..4d80f32
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/NrVopsInfo.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.EmcIndicator;
+import android.hardware.radio.EmfIndicator;
+import android.hardware.radio.VopsIndicator;
+
+/**
+ * Type to define the NR specific network capabilities for voice over PS including emergency and
+ * normal voice calls.
+ */
+@VintfStability
+parcelable NrVopsInfo {
+ /**
+ * 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
+ */
+ VopsIndicator 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.
+ */
+ EmcIndicator 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
+ */
+ EmfIndicator emfSupported;
+}
diff --git a/radio/aidl/android/hardware/radio/NvItem.aidl b/radio/aidl/android/hardware/radio/NvItem.aidl
new file mode 100644
index 0000000..0d4f79f
--- /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 0000000..f306161
--- /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 0000000..4475ff5
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/OperatorInfo.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.OperatorStatus;
+
+@VintfStability
+parcelable OperatorInfo {
+ /**
+ * Long alpha ONS or EONS
+ */
+ String alphaLong;
+ /**
+ * Short alpha ONS or EONS
+ */
+ String alphaShort;
+ /**
+ * 5 or 6 digit numeric code (MCC + MNC)
+ */
+ String operatorNumeric;
+ OperatorStatus status;
+}
diff --git a/radio/aidl/android/hardware/radio/OperatorStatus.aidl b/radio/aidl/android/hardware/radio/OperatorStatus.aidl
new file mode 100644
index 0000000..fcc31ec
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/OperatorStatus.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 OperatorStatus {
+ UNKNOWN,
+ AVAILABLE,
+ CURRENT,
+ FORBIDDEN,
+}
diff --git a/radio/aidl/android/hardware/radio/OptionalCsgInfo.aidl b/radio/aidl/android/hardware/radio/OptionalCsgInfo.aidl
new file mode 100644
index 0000000..f785693
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/OptionalCsgInfo.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;
+
+import android.hardware.radio.ClosedSubscriberGroupInfo;
+
+@VintfStability
+union OptionalCsgInfo {
+ /**
+ * If no CSG info is provided by the cell, then this structure shall be present.
+ */
+ boolean noinit;
+ /**
+ * If CSG info is provided by the cell, this structure shall be present.
+ */
+ ClosedSubscriberGroupInfo csgInfo;
+}
diff --git a/radio/aidl/android/hardware/radio/OptionalDnn.aidl b/radio/aidl/android/hardware/radio/OptionalDnn.aidl
new file mode 100644
index 0000000..1c38a71
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/OptionalDnn.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;
+
+/**
+ * This safe_union represents an optional DNN. DNN stands for Data Network Name and represents
+ * an APN as defined in 3GPP TS 23.003.
+ */
+@VintfStability
+union OptionalDnn {
+ boolean noinit;
+ String value;
+}
diff --git a/radio/aidl/android/hardware/radio/OptionalOsAppId.aidl b/radio/aidl/android/hardware/radio/OptionalOsAppId.aidl
new file mode 100644
index 0000000..4614601
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/OptionalOsAppId.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.OsAppId;
+
+/**
+ * This safe_union represents an optional OsAppId.
+ */
+@VintfStability
+union OptionalOsAppId {
+ boolean noinit;
+ OsAppId value;
+}
diff --git a/radio/aidl/android/hardware/radio/OptionalPdpProtocolType.aidl b/radio/aidl/android/hardware/radio/OptionalPdpProtocolType.aidl
new file mode 100644
index 0000000..7e51b83
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/OptionalPdpProtocolType.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.PdpProtocolType;
+
+/**
+ * This safe_union represents an optional PdpProtocolType.
+ */
+@VintfStability
+union OptionalPdpProtocolType {
+ boolean noinit;
+ PdpProtocolType value;
+}
diff --git a/radio/aidl/android/hardware/radio/OptionalSliceInfo.aidl b/radio/aidl/android/hardware/radio/OptionalSliceInfo.aidl
new file mode 100644
index 0000000..cfc309c
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/OptionalSliceInfo.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.SliceInfo;
+
+/**
+ * This safe_union represents an optional slice info.
+ */
+@VintfStability
+union OptionalSliceInfo {
+ boolean noinit;
+ SliceInfo value;
+}
diff --git a/radio/aidl/android/hardware/radio/OptionalSscMode.aidl b/radio/aidl/android/hardware/radio/OptionalSscMode.aidl
new file mode 100644
index 0000000..22933b9
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/OptionalSscMode.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.SscMode;
+
+/**
+ * This safe_union represents an optional SscMode.
+ */
+@VintfStability
+union OptionalSscMode {
+ boolean noinit;
+ SscMode value;
+}
diff --git a/radio/aidl/android/hardware/radio/OptionalTrafficDescriptor.aidl b/radio/aidl/android/hardware/radio/OptionalTrafficDescriptor.aidl
new file mode 100644
index 0000000..b524cb3
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/OptionalTrafficDescriptor.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.TrafficDescriptor;
+
+/**
+ * This safe_union represents an optional TrafficDescriptor.
+ */
+@VintfStability
+union OptionalTrafficDescriptor {
+ boolean noinit;
+ TrafficDescriptor value;
+}
diff --git a/radio/aidl/android/hardware/radio/OsAppId.aidl b/radio/aidl/android/hardware/radio/OsAppId.aidl
new file mode 100644
index 0000000..57dfc80
--- /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/P2Constant.aidl b/radio/aidl/android/hardware/radio/P2Constant.aidl
new file mode 100644
index 0000000..d40a446
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/P2Constant.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 P2Constant {
+ /**
+ * No P2 value is provided
+ */
+ NO_P2 = -1,
+}
diff --git a/radio/aidl/android/hardware/radio/PbReceivedStatus.aidl b/radio/aidl/android/hardware/radio/PbReceivedStatus.aidl
new file mode 100644
index 0000000..44ed4d9
--- /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 0000000..7b600e6
--- /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 0000000..e74b1e3
--- /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 0000000..93b2af5
--- /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 0000000..5f5f1b8
--- /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 0000000..c141411
--- /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 0000000..eb0c880
--- /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 0000000..05b31e5
--- /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 0000000..953b1c4
--- /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 0000000..cb42ff2
--- /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 0000000..932d54a
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/PortRange.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;
+
+/**
+ * Defines range of ports. start and end are the first and last port numbers (inclusive) in the
+ * range. Both start and end are in QosPortRange.MIN to QosPortRange.MAX range. A single port shall
+ * be represented by the same start and end value.
+ */
+@VintfStability
+parcelable PortRange {
+ 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 0000000..7ca38c6
--- /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/PrlIndicator.aidl b/radio/aidl/android/hardware/radio/PrlIndicator.aidl
new file mode 100644
index 0000000..acd870e
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/PrlIndicator.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 PrlIndicator {
+ NOT_REGISTERED = -1,
+ NOT_IN_PRL = 0,
+ IN_PRL = 1,
+}
diff --git a/radio/aidl/android/hardware/radio/PublicKeyType.aidl b/radio/aidl/android/hardware/radio/PublicKeyType.aidl
new file mode 100644
index 0000000..c1babc4
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/PublicKeyType.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;
+
+/**
+ * Public key type from carrier certificate.
+ */
+@VintfStability
+@Backing(type="byte")
+enum PublicKeyType {
+ /**
+ * Key type to be used for ePDG
+ */
+ EPDG = 1,
+ /**
+ * Key type to be used for WLAN
+ */
+ WLAN = 2,
+}
diff --git a/radio/aidl/android/hardware/radio/Qos.aidl b/radio/aidl/android/hardware/radio/Qos.aidl
new file mode 100644
index 0000000..0f84ad1
--- /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 0000000..344b796
--- /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 0000000..717944a
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/QosFilter.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;
+
+import android.hardware.radio.MaybePort;
+import android.hardware.radio.QosFilterDirection;
+import android.hardware.radio.QosFilterIpsecSpi;
+import android.hardware.radio.QosFilterIpv6FlowLabel;
+import android.hardware.radio.QosFilterTypeOfService;
+import android.hardware.radio.QosProtocol;
+
+/**
+ * See 3gpp 24.008 10.5.6.12 and 3gpp 24.501 9.11.4.13
+ */
+@VintfStability
+parcelable QosFilter {
+ /**
+ * 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 and remote port/ranges
+ */
+ MaybePort localPort;
+ MaybePort remotePort;
+ /**
+ * QoS protocol
+ */
+ QosProtocol 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
+ */
+ QosFilterDirection 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/QosFilterDirection.aidl b/radio/aidl/android/hardware/radio/QosFilterDirection.aidl
new file mode 100644
index 0000000..7693c8c
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/QosFilterDirection.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="byte")
+enum QosFilterDirection {
+ DOWNLINK,
+ UPLINK,
+ BIDIRECTIONAL,
+}
diff --git a/radio/aidl/android/hardware/radio/QosFilterIpsecSpi.aidl b/radio/aidl/android/hardware/radio/QosFilterIpsecSpi.aidl
new file mode 100644
index 0000000..e213402
--- /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 0000000..d5c5a6c
--- /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 0000000..b91323c
--- /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/QosFlowIdRange.aidl b/radio/aidl/android/hardware/radio/QosFlowIdRange.aidl
new file mode 100644
index 0000000..df2398b
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/QosFlowIdRange.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;
+
+/**
+ * Allowed values for 5G QOS flow identifier
+ */
+@VintfStability
+@Backing(type="byte")
+enum QosFlowIdRange {
+ MIN = 1,
+ MAX = 63,
+}
diff --git a/radio/aidl/android/hardware/radio/QosPortRange.aidl b/radio/aidl/android/hardware/radio/QosPortRange.aidl
new file mode 100644
index 0000000..f3df19f
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/QosPortRange.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;
+
+/**
+ * Allowed port numbers
+ */
+@VintfStability
+@Backing(type="int")
+enum QosPortRange {
+ MIN = 20,
+ MAX = 65535,
+}
diff --git a/radio/aidl/android/hardware/radio/QosProtocol.aidl b/radio/aidl/android/hardware/radio/QosProtocol.aidl
new file mode 100644
index 0000000..05cd670
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/QosProtocol.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;
+
+/**
+ * Next header protocol numbers defined by IANA, RFC 5237
+ */
+@VintfStability
+@Backing(type="byte")
+enum QosProtocol {
+ /**
+ * No protocol specified
+ */
+ UNSPECIFIED = -1,
+ /**
+ * Transmission Control Protocol
+ */
+ TCP = 6,
+ /**
+ * User Datagram Protocol
+ */
+ UDP = 17,
+ /**
+ * Encapsulating Security Payload Protocol
+ */
+ ESP = 50,
+ /**
+ * Authentication Header
+ */
+ AH = 51,
+}
diff --git a/radio/aidl/android/hardware/radio/QosSession.aidl b/radio/aidl/android/hardware/radio/QosSession.aidl
new file mode 100644
index 0000000..2620ac5
--- /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 0000000..719837d
--- /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 0000000..3757233
--- /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 0000000..889124a
--- /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 0000000..dde4626
--- /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 0000000..e6064c4
--- /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 0000000..d911b6f
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/RadioCapability.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.RadioAccessFamily;
+import android.hardware.radio.RadioCapabilityPhase;
+import android.hardware.radio.RadioCapabilityStatus;
+
+@VintfStability
+parcelable RadioCapability {
+ /**
+ * Unique session value defined by framework returned in all "responses/unslo".
+ */
+ int session;
+ RadioCapabilityPhase 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;
+ RadioCapabilityStatus status;
+}
diff --git a/radio/aidl/android/hardware/radio/RadioCapabilityPhase.aidl b/radio/aidl/android/hardware/radio/RadioCapabilityPhase.aidl
new file mode 100644
index 0000000..a586300
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/RadioCapabilityPhase.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;
+
+@VintfStability
+@Backing(type="int")
+enum RadioCapabilityPhase {
+ /**
+ * Logical Modem's (LM) initial value and value after FINISH completes
+ */
+ CONFIGURED,
+ /**
+ * START is sent before APPLY and indicates that an APPLY is forthcoming with these same
+ * parameters.
+ */
+ START,
+ /**
+ * APPLY is sent after all LM's receive START and returned RadioCapability.status = 0.
+ * If any START's fail, hal implementation must not send APPLY.
+ */
+ APPLY,
+ /**
+ * UNSOL_RSP is sent with unsolicited radioCapability()
+ */
+ UNSOL_RSP,
+ /**
+ * 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 FINISH will generally
+ * be ignored or may cause that LM to be removed from service.
+ */
+ FINISH,
+}
diff --git a/radio/aidl/android/hardware/radio/RadioCapabilityStatus.aidl b/radio/aidl/android/hardware/radio/RadioCapabilityStatus.aidl
new file mode 100644
index 0000000..5b90f38
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/RadioCapabilityStatus.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 RadioCapabilityStatus {
+ /**
+ * This parameter has no meaning with RadioCapabilityPhase:START, RadioCapabilityPhase:APPLY
+ */
+ NONE,
+ /**
+ * Tell modem the action transaction of set radio capability was successful with
+ * RadioCapabilityPhase:FINISH
+ */
+ SUCCESS,
+ /**
+ * Tell modem the action transaction of set radio capability failed with
+ * RadioCapabilityPhase:FINISH
+ */
+ FAIL,
+}
diff --git a/radio/aidl/android/hardware/radio/RadioCdmaSmsConst.aidl b/radio/aidl/android/hardware/radio/RadioCdmaSmsConst.aidl
new file mode 100644
index 0000000..f480077
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/RadioCdmaSmsConst.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 RadioCdmaSmsConst {
+ ADDRESS_MAX = 36,
+ SUBADDRESS_MAX = 36,
+ BEARER_DATA_MAX = 255,
+ UDH_MAX_SND_SIZE = 128,
+ UDH_EO_DATA_SEGMENT_MAX = 131,
+ MAX_UD_HEADERS = 7,
+ USER_DATA_MAX = 229,
+ UDH_LARGE_PIC_SIZE = 128,
+ UDH_SMALL_PIC_SIZE = 32,
+ UDH_VAR_PIC_SIZE = 134,
+ UDH_ANIM_NUM_BITMAPS = 4,
+ UDH_LARGE_BITMAP_SIZE = 32,
+ UDH_SMALL_BITMAP_SIZE = 8,
+ UDH_OTHER_SIZE = 226,
+ IP_ADDRESS_SIZE = 4,
+}
diff --git a/radio/aidl/android/hardware/radio/RadioConst.aidl b/radio/aidl/android/hardware/radio/RadioConst.aidl
new file mode 100644
index 0000000..815b3b9
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/RadioConst.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 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,
+}
diff --git a/radio/aidl/android/hardware/radio/RadioError.aidl b/radio/aidl/android/hardware/radio/RadioError.aidl
new file mode 100644
index 0000000..a708d2b
--- /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 0000000..e5aa9fb
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/RadioFrequencyInfo.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;
+
+import android.hardware.radio.FrequencyRange;
+
+@VintfStability
+union RadioFrequencyInfo {
+ boolean noinit;
+ /**
+ * A rough frequency range.
+ */
+ FrequencyRange 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 0000000..aa5215f
--- /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 0000000..d81c49c
--- /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 0000000..8c7b94c
--- /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 0000000..882c759
--- /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 0000000..1915870
--- /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 0000000..d439866
--- /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 0000000..37a1df2
--- /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 0000000..91fd239
--- /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 0000000..4bc55c4
--- /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.CellIdentity;
+import android.hardware.radio.RadioTechnology;
+import android.hardware.radio.RegState;
+import android.hardware.radio.RegStateResultAccessTechnologySpecificInfo;
+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.
+ */
+ RegStateResultAccessTechnologySpecificInfo accessTechnologySpecificInfo;
+}
diff --git a/radio/aidl/android/hardware/radio/RegStateResultAccessTechnologySpecificInfo.aidl b/radio/aidl/android/hardware/radio/RegStateResultAccessTechnologySpecificInfo.aidl
new file mode 100644
index 0000000..b22e413
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/RegStateResultAccessTechnologySpecificInfo.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.NrVopsInfo;
+import android.hardware.radio.RegStateResultAccessTechnologySpecificInfoCdma2000RegistrationInfo;
+import android.hardware.radio.RegStateResultAccessTechnologySpecificInfoEutranRegistrationInfo;
+
+@VintfStability
+union RegStateResultAccessTechnologySpecificInfo {
+ boolean noinit;
+ RegStateResultAccessTechnologySpecificInfoCdma2000RegistrationInfo cdmaInfo;
+ RegStateResultAccessTechnologySpecificInfoEutranRegistrationInfo 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/RegStateResultAccessTechnologySpecificInfoCdma2000RegistrationInfo.aidl b/radio/aidl/android/hardware/radio/RegStateResultAccessTechnologySpecificInfoCdma2000RegistrationInfo.aidl
new file mode 100644
index 0000000..14f68ec
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/RegStateResultAccessTechnologySpecificInfoCdma2000RegistrationInfo.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;
+
+import android.hardware.radio.PrlIndicator;
+
+@VintfStability
+parcelable RegStateResultAccessTechnologySpecificInfoCdma2000RegistrationInfo {
+ /**
+ * 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.
+ */
+ PrlIndicator 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/RegStateResultAccessTechnologySpecificInfoEutranRegistrationInfo.aidl b/radio/aidl/android/hardware/radio/RegStateResultAccessTechnologySpecificInfoEutranRegistrationInfo.aidl
new file mode 100644
index 0000000..5b942f4
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/RegStateResultAccessTechnologySpecificInfoEutranRegistrationInfo.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 RegStateResultAccessTechnologySpecificInfoEutranRegistrationInfo {
+ /**
+ * 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/RegistrationFailCause.aidl b/radio/aidl/android/hardware/radio/RegistrationFailCause.aidl
new file mode 100644
index 0000000..d9c7f23
--- /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 0000000..59c74da
--- /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/RestrictedState.aidl b/radio/aidl/android/hardware/radio/RestrictedState.aidl
new file mode 100644
index 0000000..1cf8be2
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/RestrictedState.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 RestrictedState {
+ NONE = 0x00,
+ CS_EMERGENCY = 0x01,
+ CS_NORMAL = 0x02,
+ CS_ALL = 0x04,
+ PS_ALL = 0x10,
+}
diff --git a/radio/aidl/android/hardware/radio/RouteSelectionDescriptor.aidl b/radio/aidl/android/hardware/radio/RouteSelectionDescriptor.aidl
new file mode 100644
index 0000000..14591a0
--- /dev/null
+++ b/radio/aidl/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.
+ */
+
+package android.hardware.radio;
+
+import android.hardware.radio.OptionalPdpProtocolType;
+import android.hardware.radio.OptionalSscMode;
+import android.hardware.radio.SliceInfo;
+
+/**
+ * This struct represents a single route selection descriptor as defined in 3GPP TS 24.526.
+ */
+@VintfStability
+parcelable RouteSelectionDescriptor {
+ /**
+ * Precedence value in the range of 0 to 255. Higher value has lower precedence.
+ */
+ byte precedence;
+ /**
+ * Valid values are IP, IPV6 and IPV4V6.
+ */
+ OptionalPdpProtocolType sessionType;
+ OptionalSscMode 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 0000000..f697e58
--- /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 0000000..d2046d2
--- /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 0000000..30a04bd
--- /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 0000000..db87374
--- /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 0000000..0a6b4a7
--- /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 0000000..7f385de
--- /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/ScanIntervalRange.aidl b/radio/aidl/android/hardware/radio/ScanIntervalRange.aidl
new file mode 100644
index 0000000..7ea4d12
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/ScanIntervalRange.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;
+
+/**
+ * Values are in seconds
+ */
+@VintfStability
+@Backing(type="int")
+enum ScanIntervalRange {
+ MIN = 5,
+ MAX = 300,
+}
diff --git a/radio/aidl/android/hardware/radio/ScanStatus.aidl b/radio/aidl/android/hardware/radio/ScanStatus.aidl
new file mode 100644
index 0000000..c9c436e
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/ScanStatus.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 ScanStatus {
+ /**
+ * The result contains a part of the scan results
+ */
+ PARTIAL = 1,
+ /**
+ * The result contains the last part of the scan results
+ */
+ COMPLETE = 2,
+}
diff --git a/radio/aidl/android/hardware/radio/ScanType.aidl b/radio/aidl/android/hardware/radio/ScanType.aidl
new file mode 100644
index 0000000..66ed451
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/ScanType.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 ScanType {
+ /**
+ * Performs the scan only once
+ */
+ ONE_SHOT,
+ /**
+ * Performs the scan periodically until cancelled
+ */
+ PERIODIC,
+}
diff --git a/radio/aidl/android/hardware/radio/SelectUiccSub.aidl b/radio/aidl/android/hardware/radio/SelectUiccSub.aidl
new file mode 100644
index 0000000..4db5e66
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/SelectUiccSub.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;
+
+import android.hardware.radio.SubscriptionType;
+import android.hardware.radio.UiccSubActStatus;
+
+@VintfStability
+parcelable SelectUiccSub {
+ int slot;
+ /**
+ * Array subscriptor from applications[RadioConst:CARD_MAX_APPS] in getIccCardStatus()
+ */
+ int appIndex;
+ SubscriptionType subType;
+ UiccSubActStatus actStatus;
+}
diff --git a/radio/aidl/android/hardware/radio/SendSmsResult.aidl b/radio/aidl/android/hardware/radio/SendSmsResult.aidl
new file mode 100644
index 0000000..3186563
--- /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 0000000..5fc017c
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/SetupDataCallResult.aidl
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.DataConnActiveStatus;
+import android.hardware.radio.HandoverFailureMode;
+import android.hardware.radio.LinkAddress;
+import android.hardware.radio.OptionalSliceInfo;
+import android.hardware.radio.PdpProtocolType;
+import android.hardware.radio.Qos;
+import android.hardware.radio.QosSession;
+import android.hardware.radio.TrafficDescriptor;
+
+@VintfStability
+parcelable SetupDataCallResult {
+ /**
+ * 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.
+ */
+ DataConnActiveStatus 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.
+ */
+ HandoverFailureMode 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
+ */
+ OptionalSliceInfo 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/SignalMeasurementType.aidl b/radio/aidl/android/hardware/radio/SignalMeasurementType.aidl
new file mode 100644
index 0000000..d92ae91
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/SignalMeasurementType.aidl
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 signal strength type.
+ */
+@VintfStability
+@Backing(type="int")
+enum SignalMeasurementType {
+ /**
+ * Received Signal Strength Indication.
+ * Range: -113 dBm and -51 dBm
+ * Used RAN: GERAN, CDMA2000
+ * Reference: 3GPP TS 27.007 section 8.5.
+ */
+ 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
+ */
+ RSCP = 2,
+ /**
+ * Reference Signal Received Power.
+ * Range: -140 dBm to -44 dBm;
+ * Used RAN: EUTRAN
+ * Reference: 3GPP TS 36.133 9.1.4
+ */
+ 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
+ */
+ 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.
+ */
+ RSSNR = 5,
+ /**
+ * 5G SS reference signal received power.
+ * Range: -140 dBm to -44 dBm.
+ * Used RAN: NGRAN
+ * Reference: 3GPP TS 38.215.
+ */
+ 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
+ */
+ 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.
+ */
+ SSSINR = 8,
+}
diff --git a/radio/aidl/android/hardware/radio/SignalStrength.aidl b/radio/aidl/android/hardware/radio/SignalStrength.aidl
new file mode 100644
index 0000000..0ffdaa3
--- /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 0000000..9274b42
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/SignalThresholdInfo.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;
+
+import android.hardware.radio.SignalMeasurementType;
+
+/**
+ * Contains the threshold values of each signal measurement type.
+ */
+@VintfStability
+parcelable SignalThresholdInfo {
+ /**
+ * Signal Measurement Type
+ */
+ SignalMeasurementType 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 0000000..65dae4c
--- /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 0000000..89e13fd
--- /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 0000000..f480888
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/SimRefreshResult.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.SimRefreshType;
+
+@VintfStability
+parcelable SimRefreshResult {
+ SimRefreshType 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/SimRefreshType.aidl b/radio/aidl/android/hardware/radio/SimRefreshType.aidl
new file mode 100644
index 0000000..996cdce
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/SimRefreshType.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 SimRefreshType {
+ /**
+ * A file on SIM has been updated.
+ */
+ SIM_FILE_UPDATE,
+ /**
+ * SIM initialized. All files should be re-read.
+ */
+ SIM_INIT,
+ /**
+ * SIM reset. SIM power required, SIM may be locked and all files must be re-read.
+ */
+ SIM_RESET,
+}
diff --git a/radio/aidl/android/hardware/radio/SliceInfo.aidl b/radio/aidl/android/hardware/radio/SliceInfo.aidl
new file mode 100644
index 0000000..91b0067
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/SliceInfo.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.SliceServiceType;
+import android.hardware.radio.SliceStatus;
+
+/**
+ * This struct represents a S-NSSAI as defined in 3GPP TS 24.501.
+ */
+@VintfStability
+parcelable SliceInfo {
+ /**
+ * The type of service provided by the slice. See: 3GPP TS 24.501 Section 9.11.2.8.
+ */
+ SliceServiceType sst;
+ /**
+ * 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.
+ */
+ SliceServiceType 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.
+ */
+ SliceStatus status;
+}
diff --git a/radio/aidl/android/hardware/radio/SliceServiceType.aidl b/radio/aidl/android/hardware/radio/SliceServiceType.aidl
new file mode 100644
index 0000000..624dfb1
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/SliceServiceType.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;
+
+/**
+ * Slice/Service Type as defined in 3GPP TS 23.501.
+ */
+@VintfStability
+@Backing(type="byte")
+enum SliceServiceType {
+ /*
+ * Not specified
+ */
+ NONE,
+ /*
+ * Slice suitable for the handling of 5G enhanced Mobile Broadband
+ */
+ EMBB,
+ /**
+ * Slice suitable for the handling of ultra-reliable low latency communications
+ */
+ URLLC,
+ /*
+ * Slice suitable for the handling of massive IoT
+ */
+ MIOT,
+}
diff --git a/radio/aidl/android/hardware/radio/SliceStatus.aidl b/radio/aidl/android/hardware/radio/SliceStatus.aidl
new file mode 100644
index 0000000..076e23b
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/SliceStatus.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="byte")
+enum SliceStatus {
+ UNKNOWN,
+ /**
+ * Configured but not allowed or rejected yet
+ */
+ CONFIGURED,
+ /**
+ * Allowed to be used
+ */
+ ALLOWED,
+ /**
+ * Rejected because not available in PLMN
+ */
+ REJECTED_NOT_AVAILABLE_IN_PLMN,
+ /**
+ * Rejected because not available in reg area
+ */
+ REJECTED_NOT_AVAILABLE_IN_REG_AREA,
+ /**
+ * Considered valid when configured/allowed slices are not available
+ */
+ DEFAULT_CONFIGURED,
+}
diff --git a/radio/aidl/android/hardware/radio/SlicingConfig.aidl b/radio/aidl/android/hardware/radio/SlicingConfig.aidl
new file mode 100644
index 0000000..d8d0885
--- /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 0000000..265a109
--- /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 0000000..f7a3fd4
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/SmsWriteArgs.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.SmsWriteArgsStatus;
+
+@VintfStability
+parcelable SmsWriteArgs {
+ /**
+ * Status of message. See TS 27.005 3.1.
+ */
+ SmsWriteArgsStatus 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/SmsWriteArgsStatus.aidl b/radio/aidl/android/hardware/radio/SmsWriteArgsStatus.aidl
new file mode 100644
index 0000000..095c71e
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/SmsWriteArgsStatus.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 SmsWriteArgsStatus {
+ REC_UNREAD,
+ REC_READ,
+ STO_UNSENT,
+ STO_SENT,
+}
diff --git a/radio/aidl/android/hardware/radio/SrvccState.aidl b/radio/aidl/android/hardware/radio/SrvccState.aidl
new file mode 100644
index 0000000..d428314
--- /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 0000000..6ee3da0
--- /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/SsRequestType.aidl b/radio/aidl/android/hardware/radio/SsRequestType.aidl
new file mode 100644
index 0000000..f3decbe
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/SsRequestType.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 SsRequestType {
+ ACTIVATION,
+ DEACTIVATION,
+ INTERROGATION,
+ REGISTRATION,
+ ERASURE,
+}
diff --git a/radio/aidl/android/hardware/radio/SsServiceType.aidl b/radio/aidl/android/hardware/radio/SsServiceType.aidl
new file mode 100644
index 0000000..eb344f4
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/SsServiceType.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
+@Backing(type="int")
+enum SsServiceType {
+ CFU,
+ CF_BUSY,
+ CF_NO_REPLY,
+ CF_NOT_REACHABLE,
+ CF_ALL,
+ CF_ALL_CONDITIONAL,
+ CLIP,
+ CLIR,
+ COLP,
+ COLR,
+ WAIT,
+ BAOC,
+ BAOIC,
+ BAOIC_EXC_HOME,
+ BAIC,
+ BAIC_ROAMING,
+ ALL_BARRING,
+ OUTGOING_BARRING,
+ INCOMING_BARRING,
+}
diff --git a/radio/aidl/android/hardware/radio/SsTeleserviceType.aidl b/radio/aidl/android/hardware/radio/SsTeleserviceType.aidl
new file mode 100644
index 0000000..c11bbfa
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/SsTeleserviceType.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 SsTeleserviceType {
+ ALL_TELE_AND_BEARER_SERVICES,
+ ALL_TELESEVICES,
+ TELEPHONY,
+ ALL_DATA_TELESERVICES,
+ SMS_SERVICES,
+ ALL_TELESERVICES_EXCEPT_SMS,
+}
diff --git a/radio/aidl/android/hardware/radio/SscMode.aidl b/radio/aidl/android/hardware/radio/SscMode.aidl
new file mode 100644
index 0000000..8722048
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/SscMode.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;
+
+/**
+ * Enum representing session and service continuity mode as defined in 3GPP TS 23.501.
+ */
+@VintfStability
+@Backing(type="byte")
+enum SscMode {
+ MODE_1 = 1,
+ MODE_2 = 2,
+ MODE_3 = 3,
+}
diff --git a/radio/aidl/android/hardware/radio/StkCcUnsolSsResult.aidl b/radio/aidl/android/hardware/radio/StkCcUnsolSsResult.aidl
new file mode 100644
index 0000000..0895f98
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/StkCcUnsolSsResult.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;
+
+import android.hardware.radio.CfData;
+import android.hardware.radio.RadioError;
+import android.hardware.radio.SsInfoData;
+import android.hardware.radio.SsRequestType;
+import android.hardware.radio.SsServiceType;
+import android.hardware.radio.SsTeleserviceType;
+import android.hardware.radio.SuppServiceClass;
+
+@VintfStability
+parcelable StkCcUnsolSsResult {
+ SsServiceType serviceType;
+ SsRequestType requestType;
+ SsTeleserviceType teleserviceType;
+ SuppServiceClass 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/SubscriptionType.aidl b/radio/aidl/android/hardware/radio/SubscriptionType.aidl
new file mode 100644
index 0000000..47c54f7
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/SubscriptionType.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 SubscriptionType {
+ SUBSCRIPTION_1,
+ SUBSCRIPTION_2,
+ SUBSCRIPTION_3,
+}
diff --git a/radio/aidl/android/hardware/radio/SuppServiceClass.aidl b/radio/aidl/android/hardware/radio/SuppServiceClass.aidl
new file mode 100644
index 0000000..79e73ce
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/SuppServiceClass.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 SuppServiceClass {
+ NONE = 0,
+ VOICE = 1 << 0,
+ DATA = 1 << 1,
+ FAX = 1 << 2,
+ SMS = 1 << 3,
+ DATA_SYNC = 1 << 4,
+ DATA_ASYNC = 1 << 5,
+ PACKET = 1 << 6,
+ PAD = 1 << 7,
+ MAX = 1 << 7,
+}
diff --git a/radio/aidl/android/hardware/radio/SuppSvcNotification.aidl b/radio/aidl/android/hardware/radio/SuppSvcNotification.aidl
new file mode 100644
index 0000000..b41292b
--- /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 0000000..baed68a
--- /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/TimeStampType.aidl b/radio/aidl/android/hardware/radio/TimeStampType.aidl
new file mode 100644
index 0000000..f76a032
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/TimeStampType.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 TimeStampType {
+ UNKNOWN,
+ ANTENNA,
+ MODEM,
+ OEM_RIL,
+ JAVA_RIL,
+}
diff --git a/radio/aidl/android/hardware/radio/TrafficDescriptor.aidl b/radio/aidl/android/hardware/radio/TrafficDescriptor.aidl
new file mode 100644
index 0000000..4c41e8c
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/TrafficDescriptor.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.OptionalDnn;
+import android.hardware.radio.OptionalOsAppId;
+
+/**
+ * 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.
+ */
+ OptionalDnn dnn;
+ /**
+ * Indicates the OsId + OsAppId (used as category in Android).
+ */
+ OptionalOsAppId osAppId;
+}
diff --git a/radio/aidl/android/hardware/radio/Translate.java b/radio/aidl/android/hardware/radio/Translate.java
new file mode 100644
index 0000000..a5d32b4
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/Translate.java
@@ -0,0 +1,2520 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 java.util.List;
+
+public class Translate {
+ static public android.hardware.radio.IccIo h2aTranslate(android.hardware.radio.V1_0.IccIo in) {
+ android.hardware.radio.IccIo out = new android.hardware.radio.IccIo();
+ out.command = in.command;
+ out.fileId = in.fileId;
+ out.path = in.path;
+ out.p1 = in.p1;
+ out.p2 = in.p2;
+ out.p3 = in.p3;
+ out.data = in.data;
+ out.pin2 = in.pin2;
+ out.aid = in.aid;
+ return out;
+ }
+
+ static public android.hardware.radio.NeighboringCell h2aTranslate(
+ android.hardware.radio.V1_0.NeighboringCell in) {
+ android.hardware.radio.NeighboringCell out = new android.hardware.radio.NeighboringCell();
+ out.cid = in.cid;
+ out.rssi = in.rssi;
+ return out;
+ }
+
+ static public android.hardware.radio.UusInfo h2aTranslate(
+ android.hardware.radio.V1_0.UusInfo in) {
+ android.hardware.radio.UusInfo out = new android.hardware.radio.UusInfo();
+ out.uusType = in.uusType;
+ out.uusDcs = in.uusDcs;
+ out.uusData = in.uusData;
+ return out;
+ }
+
+ static public android.hardware.radio.Dial h2aTranslate(android.hardware.radio.V1_0.Dial in) {
+ android.hardware.radio.Dial out = new android.hardware.radio.Dial();
+ out.address = in.address;
+ out.clir = in.clir;
+ if (in.uusInfo != null) {
+ out.uusInfo = new android.hardware.radio.UusInfo[in.uusInfo.size()];
+ for (int i = 0; i < in.uusInfo.size(); i++) {
+ out.uusInfo[i] = h2aTranslate(in.uusInfo.get(i));
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.LastCallFailCauseInfo h2aTranslate(
+ android.hardware.radio.V1_0.LastCallFailCauseInfo in) {
+ android.hardware.radio.LastCallFailCauseInfo out =
+ new android.hardware.radio.LastCallFailCauseInfo();
+ out.causeCode = in.causeCode;
+ out.vendorCause = in.vendorCause;
+ return out;
+ }
+
+ static public android.hardware.radio.GsmSignalStrength h2aTranslate(
+ android.hardware.radio.V1_0.GsmSignalStrength in) {
+ android.hardware.radio.GsmSignalStrength out =
+ new android.hardware.radio.GsmSignalStrength();
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.signalStrength > 2147483647 || in.signalStrength < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.signalStrength");
+ }
+ out.signalStrength = in.signalStrength;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.bitErrorRate > 2147483647 || in.bitErrorRate < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.bitErrorRate");
+ }
+ out.bitErrorRate = in.bitErrorRate;
+ out.timingAdvance = in.timingAdvance;
+ return out;
+ }
+
+ static public android.hardware.radio.CdmaSignalStrength h2aTranslate(
+ android.hardware.radio.V1_0.CdmaSignalStrength in) {
+ android.hardware.radio.CdmaSignalStrength out =
+ new android.hardware.radio.CdmaSignalStrength();
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.dbm > 2147483647 || in.dbm < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.dbm");
+ }
+ out.dbm = in.dbm;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.ecio > 2147483647 || in.ecio < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.ecio");
+ }
+ out.ecio = in.ecio;
+ return out;
+ }
+
+ static public android.hardware.radio.EvdoSignalStrength h2aTranslate(
+ android.hardware.radio.V1_0.EvdoSignalStrength in) {
+ android.hardware.radio.EvdoSignalStrength out =
+ new android.hardware.radio.EvdoSignalStrength();
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.dbm > 2147483647 || in.dbm < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.dbm");
+ }
+ out.dbm = in.dbm;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.ecio > 2147483647 || in.ecio < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.ecio");
+ }
+ out.ecio = in.ecio;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.signalNoiseRatio > 2147483647 || in.signalNoiseRatio < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.signalNoiseRatio");
+ }
+ out.signalNoiseRatio = in.signalNoiseRatio;
+ return out;
+ }
+
+ static public android.hardware.radio.SendSmsResult h2aTranslate(
+ android.hardware.radio.V1_0.SendSmsResult in) {
+ android.hardware.radio.SendSmsResult out = new android.hardware.radio.SendSmsResult();
+ out.messageRef = in.messageRef;
+ out.ackPDU = in.ackPDU;
+ out.errorCode = in.errorCode;
+ return out;
+ }
+
+ static public android.hardware.radio.IccIoResult h2aTranslate(
+ android.hardware.radio.V1_0.IccIoResult in) {
+ android.hardware.radio.IccIoResult out = new android.hardware.radio.IccIoResult();
+ out.sw1 = in.sw1;
+ out.sw2 = in.sw2;
+ out.simResponse = in.simResponse;
+ return out;
+ }
+
+ static public android.hardware.radio.CallForwardInfo h2aTranslate(
+ android.hardware.radio.V1_0.CallForwardInfo in) {
+ android.hardware.radio.CallForwardInfo out = new android.hardware.radio.CallForwardInfo();
+ out.status = in.status;
+ out.reason = in.reason;
+ out.serviceClass = in.serviceClass;
+ out.toa = in.toa;
+ out.number = in.number;
+ out.timeSeconds = in.timeSeconds;
+ return out;
+ }
+
+ static public android.hardware.radio.OperatorInfo h2aTranslate(
+ android.hardware.radio.V1_0.OperatorInfo in) {
+ android.hardware.radio.OperatorInfo out = new android.hardware.radio.OperatorInfo();
+ out.alphaLong = in.alphaLong;
+ out.alphaShort = in.alphaShort;
+ out.operatorNumeric = in.operatorNumeric;
+ out.status = in.status;
+ return out;
+ }
+
+ static public android.hardware.radio.SmsWriteArgs h2aTranslate(
+ android.hardware.radio.V1_0.SmsWriteArgs in) {
+ android.hardware.radio.SmsWriteArgs out = new android.hardware.radio.SmsWriteArgs();
+ out.status = in.status;
+ out.pdu = in.pdu;
+ out.smsc = in.smsc;
+ return out;
+ }
+
+ static public android.hardware.radio.CdmaSmsAddress h2aTranslate(
+ android.hardware.radio.V1_0.CdmaSmsAddress in) {
+ android.hardware.radio.CdmaSmsAddress out = new android.hardware.radio.CdmaSmsAddress();
+ out.digitMode = in.digitMode;
+ out.numberMode = in.numberMode;
+ out.numberType = in.numberType;
+ out.numberPlan = in.numberPlan;
+ if (in.digits != null) {
+ out.digits = new byte[in.digits.size()];
+ for (int i = 0; i < in.digits.size(); i++) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it
+ // doesn't suit your needs.
+ if (in.digits.get(i) > 127 || in.digits.get(i) < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.digits.get(i)");
+ }
+ out.digits[i] = in.digits.get(i);
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.CdmaSmsSubaddress h2aTranslate(
+ android.hardware.radio.V1_0.CdmaSmsSubaddress in) {
+ android.hardware.radio.CdmaSmsSubaddress out =
+ new android.hardware.radio.CdmaSmsSubaddress();
+ out.subaddressType = in.subaddressType;
+ out.odd = in.odd;
+ if (in.digits != null) {
+ out.digits = new byte[in.digits.size()];
+ for (int i = 0; i < in.digits.size(); i++) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it
+ // doesn't suit your needs.
+ if (in.digits.get(i) > 127 || in.digits.get(i) < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.digits.get(i)");
+ }
+ out.digits[i] = in.digits.get(i);
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.CdmaSmsMessage h2aTranslate(
+ android.hardware.radio.V1_0.CdmaSmsMessage in) {
+ android.hardware.radio.CdmaSmsMessage out = new android.hardware.radio.CdmaSmsMessage();
+ out.teleserviceId = in.teleserviceId;
+ out.isServicePresent = in.isServicePresent;
+ out.serviceCategory = in.serviceCategory;
+ out.address = h2aTranslate(in.address);
+ out.subAddress = h2aTranslate(in.subAddress);
+ if (in.bearerData != null) {
+ out.bearerData = new byte[in.bearerData.size()];
+ for (int i = 0; i < in.bearerData.size(); i++) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it
+ // doesn't suit your needs.
+ if (in.bearerData.get(i) > 127 || in.bearerData.get(i) < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.bearerData.get(i)");
+ }
+ out.bearerData[i] = in.bearerData.get(i);
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.CdmaSmsAck h2aTranslate(
+ android.hardware.radio.V1_0.CdmaSmsAck in) {
+ android.hardware.radio.CdmaSmsAck out = new android.hardware.radio.CdmaSmsAck();
+ out.errorClass = in.errorClass;
+ out.smsCauseCode = in.smsCauseCode;
+ return out;
+ }
+
+ static public android.hardware.radio.CdmaBroadcastSmsConfigInfo h2aTranslate(
+ android.hardware.radio.V1_0.CdmaBroadcastSmsConfigInfo in) {
+ android.hardware.radio.CdmaBroadcastSmsConfigInfo out =
+ new android.hardware.radio.CdmaBroadcastSmsConfigInfo();
+ out.serviceCategory = in.serviceCategory;
+ out.language = in.language;
+ out.selected = in.selected;
+ return out;
+ }
+
+ static public android.hardware.radio.CdmaSmsWriteArgs h2aTranslate(
+ android.hardware.radio.V1_0.CdmaSmsWriteArgs in) {
+ android.hardware.radio.CdmaSmsWriteArgs out = new android.hardware.radio.CdmaSmsWriteArgs();
+ out.status = in.status;
+ out.message = h2aTranslate(in.message);
+ return out;
+ }
+
+ static public android.hardware.radio.GsmBroadcastSmsConfigInfo h2aTranslate(
+ android.hardware.radio.V1_0.GsmBroadcastSmsConfigInfo in) {
+ android.hardware.radio.GsmBroadcastSmsConfigInfo out =
+ new android.hardware.radio.GsmBroadcastSmsConfigInfo();
+ out.fromServiceId = in.fromServiceId;
+ out.toServiceId = in.toServiceId;
+ out.fromCodeScheme = in.fromCodeScheme;
+ out.toCodeScheme = in.toCodeScheme;
+ out.selected = in.selected;
+ return out;
+ }
+
+ static public android.hardware.radio.GsmSmsMessage h2aTranslate(
+ android.hardware.radio.V1_0.GsmSmsMessage in) {
+ android.hardware.radio.GsmSmsMessage out = new android.hardware.radio.GsmSmsMessage();
+ out.smscPdu = in.smscPdu;
+ out.pdu = in.pdu;
+ return out;
+ }
+
+ static public android.hardware.radio.ImsSmsMessage h2aTranslate(
+ android.hardware.radio.V1_0.ImsSmsMessage in) {
+ android.hardware.radio.ImsSmsMessage out = new android.hardware.radio.ImsSmsMessage();
+ out.tech = in.tech;
+ out.retry = in.retry;
+ out.messageRef = in.messageRef;
+ if (in.cdmaMessage != null) {
+ out.cdmaMessage = new android.hardware.radio.CdmaSmsMessage[in.cdmaMessage.size()];
+ for (int i = 0; i < in.cdmaMessage.size(); i++) {
+ out.cdmaMessage[i] = h2aTranslate(in.cdmaMessage.get(i));
+ }
+ }
+ if (in.gsmMessage != null) {
+ out.gsmMessage = new android.hardware.radio.GsmSmsMessage[in.gsmMessage.size()];
+ for (int i = 0; i < in.gsmMessage.size(); i++) {
+ out.gsmMessage[i] = h2aTranslate(in.gsmMessage.get(i));
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.SimApdu h2aTranslate(
+ android.hardware.radio.V1_0.SimApdu in) {
+ android.hardware.radio.SimApdu out = new android.hardware.radio.SimApdu();
+ out.sessionId = in.sessionId;
+ out.cla = in.cla;
+ out.instruction = in.instruction;
+ out.p1 = in.p1;
+ out.p2 = in.p2;
+ out.p3 = in.p3;
+ out.data = in.data;
+ return out;
+ }
+
+ static public android.hardware.radio.NvWriteItem h2aTranslate(
+ android.hardware.radio.V1_0.NvWriteItem in) {
+ android.hardware.radio.NvWriteItem out = new android.hardware.radio.NvWriteItem();
+ out.itemId = in.itemId;
+ out.value = in.value;
+ return out;
+ }
+
+ static public android.hardware.radio.SelectUiccSub h2aTranslate(
+ android.hardware.radio.V1_0.SelectUiccSub in) {
+ android.hardware.radio.SelectUiccSub out = new android.hardware.radio.SelectUiccSub();
+ out.slot = in.slot;
+ out.appIndex = in.appIndex;
+ out.subType = in.subType;
+ out.actStatus = in.actStatus;
+ return out;
+ }
+
+ static public android.hardware.radio.HardwareConfigModem h2aTranslate(
+ android.hardware.radio.V1_0.HardwareConfigModem in) {
+ android.hardware.radio.HardwareConfigModem out =
+ new android.hardware.radio.HardwareConfigModem();
+ out.rilModel = in.rilModel;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.rat > 2147483647 || in.rat < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.rat");
+ }
+ out.rat = in.rat;
+ out.maxVoice = in.maxVoice;
+ out.maxData = in.maxData;
+ out.maxStandby = in.maxStandby;
+ return out;
+ }
+
+ static public android.hardware.radio.HardwareConfigSim h2aTranslate(
+ android.hardware.radio.V1_0.HardwareConfigSim in) {
+ android.hardware.radio.HardwareConfigSim out =
+ new android.hardware.radio.HardwareConfigSim();
+ out.modemUuid = in.modemUuid;
+ return out;
+ }
+
+ static public android.hardware.radio.HardwareConfig h2aTranslate(
+ android.hardware.radio.V1_0.HardwareConfig in) {
+ android.hardware.radio.HardwareConfig out = new android.hardware.radio.HardwareConfig();
+ out.type = in.type;
+ out.uuid = in.uuid;
+ out.state = in.state;
+ if (in.modem != null) {
+ out.modem = new android.hardware.radio.HardwareConfigModem[in.modem.size()];
+ for (int i = 0; i < in.modem.size(); i++) {
+ out.modem[i] = h2aTranslate(in.modem.get(i));
+ }
+ }
+ if (in.sim != null) {
+ out.sim = new android.hardware.radio.HardwareConfigSim[in.sim.size()];
+ for (int i = 0; i < in.sim.size(); i++) {
+ out.sim[i] = h2aTranslate(in.sim.get(i));
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.LceStatusInfo h2aTranslate(
+ android.hardware.radio.V1_0.LceStatusInfo in) {
+ android.hardware.radio.LceStatusInfo out = new android.hardware.radio.LceStatusInfo();
+ out.lceStatus = in.lceStatus;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.actualIntervalMs > 127 || in.actualIntervalMs < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.actualIntervalMs");
+ }
+ out.actualIntervalMs = in.actualIntervalMs;
+ return out;
+ }
+
+ static public android.hardware.radio.LceDataInfo h2aTranslate(
+ android.hardware.radio.V1_0.LceDataInfo in) {
+ android.hardware.radio.LceDataInfo out = new android.hardware.radio.LceDataInfo();
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.lastHopCapacityKbps > 2147483647 || in.lastHopCapacityKbps < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.lastHopCapacityKbps");
+ }
+ out.lastHopCapacityKbps = in.lastHopCapacityKbps;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.confidenceLevel > 127 || in.confidenceLevel < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.confidenceLevel");
+ }
+ out.confidenceLevel = in.confidenceLevel;
+ out.lceSuspended = in.lceSuspended;
+ return out;
+ }
+
+ static public android.hardware.radio.ActivityStatsInfo h2aTranslate(
+ android.hardware.radio.V1_0.ActivityStatsInfo in) {
+ android.hardware.radio.ActivityStatsInfo out =
+ new android.hardware.radio.ActivityStatsInfo();
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.sleepModeTimeMs > 2147483647 || in.sleepModeTimeMs < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.sleepModeTimeMs");
+ }
+ out.sleepModeTimeMs = in.sleepModeTimeMs;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.idleModeTimeMs > 2147483647 || in.idleModeTimeMs < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.idleModeTimeMs");
+ }
+ out.idleModeTimeMs = in.idleModeTimeMs;
+ if (in.txmModetimeMs != null) {
+ out.txmModetimeMs = new int[in.txmModetimeMs.length];
+ for (int i = 0; i < in.txmModetimeMs.length; i++) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it
+ // doesn't suit your needs.
+ if (in.txmModetimeMs[i] > 2147483647 || in.txmModetimeMs[i] < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.txmModetimeMs[i]");
+ }
+ out.txmModetimeMs[i] = in.txmModetimeMs[i];
+ }
+ }
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.rxModeTimeMs > 2147483647 || in.rxModeTimeMs < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.rxModeTimeMs");
+ }
+ out.rxModeTimeMs = in.rxModeTimeMs;
+ return out;
+ }
+
+ static public android.hardware.radio.Carrier h2aTranslate(
+ android.hardware.radio.V1_0.Carrier in) {
+ android.hardware.radio.Carrier out = new android.hardware.radio.Carrier();
+ out.mcc = in.mcc;
+ out.mnc = in.mnc;
+ out.matchType = in.matchType;
+ out.matchData = in.matchData;
+ return out;
+ }
+
+ static public android.hardware.radio.CarrierRestrictions h2aTranslate(
+ android.hardware.radio.V1_0.CarrierRestrictions in) {
+ android.hardware.radio.CarrierRestrictions out =
+ new android.hardware.radio.CarrierRestrictions();
+ if (in.allowedCarriers != null) {
+ out.allowedCarriers = new android.hardware.radio.Carrier[in.allowedCarriers.size()];
+ for (int i = 0; i < in.allowedCarriers.size(); i++) {
+ out.allowedCarriers[i] = h2aTranslate(in.allowedCarriers.get(i));
+ }
+ }
+ if (in.excludedCarriers != null) {
+ out.excludedCarriers = new android.hardware.radio.Carrier[in.excludedCarriers.size()];
+ for (int i = 0; i < in.excludedCarriers.size(); i++) {
+ out.excludedCarriers[i] = h2aTranslate(in.excludedCarriers.get(i));
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.SuppSvcNotification h2aTranslate(
+ android.hardware.radio.V1_0.SuppSvcNotification in) {
+ android.hardware.radio.SuppSvcNotification out =
+ new android.hardware.radio.SuppSvcNotification();
+ out.isMT = in.isMT;
+ out.code = in.code;
+ out.index = in.index;
+ out.type = in.type;
+ out.number = in.number;
+ return out;
+ }
+
+ static public android.hardware.radio.SimRefreshResult h2aTranslate(
+ android.hardware.radio.V1_0.SimRefreshResult in) {
+ android.hardware.radio.SimRefreshResult out = new android.hardware.radio.SimRefreshResult();
+ out.type = in.type;
+ out.efId = in.efId;
+ out.aid = in.aid;
+ return out;
+ }
+
+ static public android.hardware.radio.CdmaSignalInfoRecord h2aTranslate(
+ android.hardware.radio.V1_0.CdmaSignalInfoRecord in) {
+ android.hardware.radio.CdmaSignalInfoRecord out =
+ new android.hardware.radio.CdmaSignalInfoRecord();
+ out.isPresent = in.isPresent;
+ out.signalType = in.signalType;
+ out.alertPitch = in.alertPitch;
+ out.signal = in.signal;
+ return out;
+ }
+
+ static public android.hardware.radio.CdmaCallWaiting h2aTranslate(
+ android.hardware.radio.V1_0.CdmaCallWaiting in) {
+ android.hardware.radio.CdmaCallWaiting out = new android.hardware.radio.CdmaCallWaiting();
+ out.number = in.number;
+ out.numberPresentation = in.numberPresentation;
+ out.name = in.name;
+ out.signalInfoRecord = h2aTranslate(in.signalInfoRecord);
+ out.numberType = in.numberType;
+ out.numberPlan = in.numberPlan;
+ return out;
+ }
+
+ static public android.hardware.radio.CdmaDisplayInfoRecord h2aTranslate(
+ android.hardware.radio.V1_0.CdmaDisplayInfoRecord in) {
+ android.hardware.radio.CdmaDisplayInfoRecord out =
+ new android.hardware.radio.CdmaDisplayInfoRecord();
+ out.alphaBuf = in.alphaBuf;
+ return out;
+ }
+
+ static public android.hardware.radio.CdmaNumberInfoRecord h2aTranslate(
+ android.hardware.radio.V1_0.CdmaNumberInfoRecord in) {
+ android.hardware.radio.CdmaNumberInfoRecord out =
+ new android.hardware.radio.CdmaNumberInfoRecord();
+ out.number = in.number;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.numberType > 127 || in.numberType < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.numberType");
+ }
+ out.numberType = in.numberType;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.numberPlan > 127 || in.numberPlan < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.numberPlan");
+ }
+ out.numberPlan = in.numberPlan;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.pi > 127 || in.pi < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.pi");
+ }
+ out.pi = in.pi;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.si > 127 || in.si < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.si");
+ }
+ out.si = in.si;
+ return out;
+ }
+
+ static public android.hardware.radio.CdmaRedirectingNumberInfoRecord h2aTranslate(
+ android.hardware.radio.V1_0.CdmaRedirectingNumberInfoRecord in) {
+ android.hardware.radio.CdmaRedirectingNumberInfoRecord out =
+ new android.hardware.radio.CdmaRedirectingNumberInfoRecord();
+ out.redirectingNumber = h2aTranslate(in.redirectingNumber);
+ out.redirectingReason = in.redirectingReason;
+ return out;
+ }
+
+ static public android.hardware.radio.CdmaLineControlInfoRecord h2aTranslate(
+ android.hardware.radio.V1_0.CdmaLineControlInfoRecord in) {
+ android.hardware.radio.CdmaLineControlInfoRecord out =
+ new android.hardware.radio.CdmaLineControlInfoRecord();
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.lineCtrlPolarityIncluded > 127 || in.lineCtrlPolarityIncluded < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.lineCtrlPolarityIncluded");
+ }
+ out.lineCtrlPolarityIncluded = in.lineCtrlPolarityIncluded;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.lineCtrlToggle > 127 || in.lineCtrlToggle < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.lineCtrlToggle");
+ }
+ out.lineCtrlToggle = in.lineCtrlToggle;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.lineCtrlReverse > 127 || in.lineCtrlReverse < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.lineCtrlReverse");
+ }
+ out.lineCtrlReverse = in.lineCtrlReverse;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.lineCtrlPowerDenial > 127 || in.lineCtrlPowerDenial < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.lineCtrlPowerDenial");
+ }
+ out.lineCtrlPowerDenial = in.lineCtrlPowerDenial;
+ return out;
+ }
+
+ static public android.hardware.radio.CdmaT53ClirInfoRecord h2aTranslate(
+ android.hardware.radio.V1_0.CdmaT53ClirInfoRecord in) {
+ android.hardware.radio.CdmaT53ClirInfoRecord out =
+ new android.hardware.radio.CdmaT53ClirInfoRecord();
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.cause > 127 || in.cause < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.cause");
+ }
+ out.cause = in.cause;
+ return out;
+ }
+
+ static public android.hardware.radio.CdmaT53AudioControlInfoRecord h2aTranslate(
+ android.hardware.radio.V1_0.CdmaT53AudioControlInfoRecord in) {
+ android.hardware.radio.CdmaT53AudioControlInfoRecord out =
+ new android.hardware.radio.CdmaT53AudioControlInfoRecord();
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.upLink > 127 || in.upLink < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.upLink");
+ }
+ out.upLink = in.upLink;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.downLink > 127 || in.downLink < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.downLink");
+ }
+ out.downLink = in.downLink;
+ return out;
+ }
+
+ static public android.hardware.radio.CdmaInformationRecord h2aTranslate(
+ android.hardware.radio.V1_0.CdmaInformationRecord in) {
+ android.hardware.radio.CdmaInformationRecord out =
+ new android.hardware.radio.CdmaInformationRecord();
+ out.name = in.name;
+ if (in.display != null) {
+ out.display = new android.hardware.radio.CdmaDisplayInfoRecord[in.display.size()];
+ for (int i = 0; i < in.display.size(); i++) {
+ out.display[i] = h2aTranslate(in.display.get(i));
+ }
+ }
+ if (in.number != null) {
+ out.number = new android.hardware.radio.CdmaNumberInfoRecord[in.number.size()];
+ for (int i = 0; i < in.number.size(); i++) {
+ out.number[i] = h2aTranslate(in.number.get(i));
+ }
+ }
+ if (in.signal != null) {
+ out.signal = new android.hardware.radio.CdmaSignalInfoRecord[in.signal.size()];
+ for (int i = 0; i < in.signal.size(); i++) {
+ out.signal[i] = h2aTranslate(in.signal.get(i));
+ }
+ }
+ if (in.redir != null) {
+ out.redir = new android.hardware.radio.CdmaRedirectingNumberInfoRecord[in.redir.size()];
+ for (int i = 0; i < in.redir.size(); i++) {
+ out.redir[i] = h2aTranslate(in.redir.get(i));
+ }
+ }
+ if (in.lineCtrl != null) {
+ out.lineCtrl = new android.hardware.radio.CdmaLineControlInfoRecord[in.lineCtrl.size()];
+ for (int i = 0; i < in.lineCtrl.size(); i++) {
+ out.lineCtrl[i] = h2aTranslate(in.lineCtrl.get(i));
+ }
+ }
+ if (in.clir != null) {
+ out.clir = new android.hardware.radio.CdmaT53ClirInfoRecord[in.clir.size()];
+ for (int i = 0; i < in.clir.size(); i++) {
+ out.clir[i] = h2aTranslate(in.clir.get(i));
+ }
+ }
+ if (in.audioCtrl != null) {
+ out.audioCtrl =
+ new android.hardware.radio.CdmaT53AudioControlInfoRecord[in.audioCtrl.size()];
+ for (int i = 0; i < in.audioCtrl.size(); i++) {
+ out.audioCtrl[i] = h2aTranslate(in.audioCtrl.get(i));
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.CdmaInformationRecords h2aTranslate(
+ android.hardware.radio.V1_0.CdmaInformationRecords in) {
+ android.hardware.radio.CdmaInformationRecords out =
+ new android.hardware.radio.CdmaInformationRecords();
+ if (in.infoRec != null) {
+ out.infoRec = new android.hardware.radio.CdmaInformationRecord[in.infoRec.size()];
+ for (int i = 0; i < in.infoRec.size(); i++) {
+ out.infoRec[i] = h2aTranslate(in.infoRec.get(i));
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.CfData h2aTranslate(
+ android.hardware.radio.V1_0.CfData in) {
+ android.hardware.radio.CfData out = new android.hardware.radio.CfData();
+ if (in.cfInfo != null) {
+ out.cfInfo = new android.hardware.radio.CallForwardInfo[in.cfInfo.size()];
+ for (int i = 0; i < in.cfInfo.size(); i++) {
+ out.cfInfo[i] = h2aTranslate(in.cfInfo.get(i));
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.SsInfoData h2aTranslate(
+ android.hardware.radio.V1_0.SsInfoData in) {
+ android.hardware.radio.SsInfoData out = new android.hardware.radio.SsInfoData();
+ if (in.ssInfo != null) {
+ out.ssInfo = new int[in.ssInfo.size()];
+ for (int i = 0; i < in.ssInfo.size(); i++) {
+ out.ssInfo[i] = in.ssInfo.get(i);
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.StkCcUnsolSsResult h2aTranslate(
+ android.hardware.radio.V1_0.StkCcUnsolSsResult in) {
+ android.hardware.radio.StkCcUnsolSsResult out =
+ new android.hardware.radio.StkCcUnsolSsResult();
+ out.serviceType = in.serviceType;
+ out.requestType = in.requestType;
+ out.teleserviceType = in.teleserviceType;
+ out.serviceClass = in.serviceClass;
+ out.result = in.result;
+ if (in.ssInfo != null) {
+ out.ssInfo = new android.hardware.radio.SsInfoData[in.ssInfo.size()];
+ for (int i = 0; i < in.ssInfo.size(); i++) {
+ out.ssInfo[i] = h2aTranslate(in.ssInfo.get(i));
+ }
+ }
+ if (in.cfData != null) {
+ out.cfData = new android.hardware.radio.CfData[in.cfData.size()];
+ for (int i = 0; i < in.cfData.size(); i++) {
+ out.cfData[i] = h2aTranslate(in.cfData.get(i));
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.PcoDataInfo h2aTranslate(
+ android.hardware.radio.V1_0.PcoDataInfo in) {
+ android.hardware.radio.PcoDataInfo out = new android.hardware.radio.PcoDataInfo();
+ out.cid = in.cid;
+ out.bearerProto = in.bearerProto;
+ out.pcoId = in.pcoId;
+ if (in.contents != null) {
+ out.contents = new byte[in.contents.size()];
+ for (int i = 0; i < in.contents.size(); i++) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it
+ // doesn't suit your needs.
+ if (in.contents.get(i) > 127 || in.contents.get(i) < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.contents.get(i)");
+ }
+ out.contents[i] = in.contents.get(i);
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.KeepaliveRequest h2aTranslate(
+ android.hardware.radio.V1_1.KeepaliveRequest in) {
+ android.hardware.radio.KeepaliveRequest out = new android.hardware.radio.KeepaliveRequest();
+ out.type = in.type;
+ if (in.sourceAddress != null) {
+ out.sourceAddress = new byte[in.sourceAddress.size()];
+ for (int i = 0; i < in.sourceAddress.size(); i++) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it
+ // doesn't suit your needs.
+ if (in.sourceAddress.get(i) > 127 || in.sourceAddress.get(i) < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.sourceAddress.get(i)");
+ }
+ out.sourceAddress[i] = in.sourceAddress.get(i);
+ }
+ }
+ out.sourcePort = in.sourcePort;
+ if (in.destinationAddress != null) {
+ out.destinationAddress = new byte[in.destinationAddress.size()];
+ for (int i = 0; i < in.destinationAddress.size(); i++) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it
+ // doesn't suit your needs.
+ if (in.destinationAddress.get(i) > 127 || in.destinationAddress.get(i) < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.destinationAddress.get(i)");
+ }
+ out.destinationAddress[i] = in.destinationAddress.get(i);
+ }
+ }
+ out.destinationPort = in.destinationPort;
+ out.maxKeepaliveIntervalMillis = in.maxKeepaliveIntervalMillis;
+ out.cid = in.cid;
+ return out;
+ }
+
+ static public android.hardware.radio.KeepaliveStatus h2aTranslate(
+ android.hardware.radio.V1_1.KeepaliveStatus in) {
+ android.hardware.radio.KeepaliveStatus out = new android.hardware.radio.KeepaliveStatus();
+ out.sessionHandle = in.sessionHandle;
+ out.code = in.code;
+ return out;
+ }
+
+ static public android.hardware.radio.CellIdentityOperatorNames h2aTranslate(
+ android.hardware.radio.V1_2.CellIdentityOperatorNames in) {
+ android.hardware.radio.CellIdentityOperatorNames out =
+ new android.hardware.radio.CellIdentityOperatorNames();
+ out.alphaLong = in.alphaLong;
+ out.alphaShort = in.alphaShort;
+ return out;
+ }
+
+ static public android.hardware.radio.CellIdentityCdma h2aTranslate(
+ android.hardware.radio.V1_2.CellIdentityCdma in) {
+ android.hardware.radio.CellIdentityCdma out = new android.hardware.radio.CellIdentityCdma();
+ out.networkId = in.base.networkId;
+ out.systemId = in.base.systemId;
+ out.baseStationId = in.base.baseStationId;
+ out.longitude = in.base.longitude;
+ out.latitude = in.base.latitude;
+ out.operatorNames = h2aTranslate(in.operatorNames);
+ return out;
+ }
+
+ static public android.hardware.radio.CellInfoCdma h2aTranslate(
+ android.hardware.radio.V1_2.CellInfoCdma in) {
+ android.hardware.radio.CellInfoCdma out = new android.hardware.radio.CellInfoCdma();
+ out.cellIdentityCdma = h2aTranslate(in.cellIdentityCdma);
+ out.signalStrengthCdma = h2aTranslate(in.signalStrengthCdma);
+ out.signalStrengthEvdo = h2aTranslate(in.signalStrengthEvdo);
+ return out;
+ }
+
+ static public android.hardware.radio.WcdmaSignalStrength h2aTranslate(
+ android.hardware.radio.V1_2.WcdmaSignalStrength in) {
+ android.hardware.radio.WcdmaSignalStrength out =
+ new android.hardware.radio.WcdmaSignalStrength();
+ out.signalStrength = in.base.signalStrength;
+ out.bitErrorRate = in.base.bitErrorRate;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.rscp > 2147483647 || in.rscp < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.rscp");
+ }
+ out.rscp = in.rscp;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.ecno > 2147483647 || in.ecno < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.ecno");
+ }
+ out.ecno = in.ecno;
+ return out;
+ }
+
+ static public android.hardware.radio.TdscdmaSignalStrength h2aTranslate(
+ android.hardware.radio.V1_2.TdscdmaSignalStrength in) {
+ android.hardware.radio.TdscdmaSignalStrength out =
+ new android.hardware.radio.TdscdmaSignalStrength();
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.signalStrength > 2147483647 || in.signalStrength < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.signalStrength");
+ }
+ out.signalStrength = in.signalStrength;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.bitErrorRate > 2147483647 || in.bitErrorRate < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.bitErrorRate");
+ }
+ out.bitErrorRate = in.bitErrorRate;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.rscp > 2147483647 || in.rscp < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.rscp");
+ }
+ out.rscp = in.rscp;
+ return out;
+ }
+
+ static public android.hardware.radio.VoiceRegStateResult h2aTranslate(
+ android.hardware.radio.V1_2.VoiceRegStateResult in) {
+ android.hardware.radio.VoiceRegStateResult out =
+ new android.hardware.radio.VoiceRegStateResult();
+ out.regState = in.regState;
+ out.rat = in.rat;
+ out.cssSupported = in.cssSupported;
+ out.roamingIndicator = in.roamingIndicator;
+ out.systemIsInPrl = in.systemIsInPrl;
+ out.defaultRoamingIndicator = in.defaultRoamingIndicator;
+ out.reasonForDenial = in.reasonForDenial;
+ // FIXME Unknown type: android.hardware.radio@1.2::CellIdentity
+ // That type's package needs to be converted separately and the corresponding translate
+ // function should be added here.
+ return out;
+ }
+
+ static public android.hardware.radio.RadioResponseInfoModem h2aTranslate(
+ android.hardware.radio.V1_3.RadioResponseInfoModem in) {
+ android.hardware.radio.RadioResponseInfoModem out =
+ new android.hardware.radio.RadioResponseInfoModem();
+ out.type = in.type;
+ out.serial = in.serial;
+ out.error = in.error;
+ out.isEnabled = in.isEnabled;
+ return out;
+ }
+
+ static public android.hardware.radio.EmergencyNumber h2aTranslate(
+ android.hardware.radio.V1_4.EmergencyNumber in) {
+ android.hardware.radio.EmergencyNumber out = new android.hardware.radio.EmergencyNumber();
+ out.number = in.number;
+ out.mcc = in.mcc;
+ out.mnc = in.mnc;
+ out.categories = in.categories;
+ if (in.urns != null) {
+ out.urns = new String[in.urns.size()];
+ for (int i = 0; i < in.urns.size(); i++) {
+ out.urns[i] = in.urns.get(i);
+ }
+ }
+ out.sources = in.sources;
+ return out;
+ }
+
+ static public android.hardware.radio.RadioFrequencyInfo h2aTranslate(
+ android.hardware.radio.V1_4.RadioFrequencyInfo in) {
+ android.hardware.radio.RadioFrequencyInfo out =
+ new android.hardware.radio.RadioFrequencyInfo();
+ switch (in.getDiscriminator()) {
+ case android.hardware.radio.V1_4.RadioFrequencyInfo.hidl_discriminator.range:
+ out.setRange(in.range());
+ break;
+ case android.hardware.radio.V1_4.RadioFrequencyInfo.hidl_discriminator.channelNumber:
+ out.setChannelNumber(in.channelNumber());
+ break;
+ default:
+ throw new RuntimeException(
+ "Unknown discriminator value: " + Integer.toString(in.getDiscriminator()));
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.LteVopsInfo h2aTranslate(
+ android.hardware.radio.V1_4.LteVopsInfo in) {
+ android.hardware.radio.LteVopsInfo out = new android.hardware.radio.LteVopsInfo();
+ out.isVopsSupported = in.isVopsSupported;
+ out.isEmcBearerSupported = in.isEmcBearerSupported;
+ return out;
+ }
+
+ static public android.hardware.radio.NrIndicators h2aTranslate(
+ android.hardware.radio.V1_4.NrIndicators in) {
+ android.hardware.radio.NrIndicators out = new android.hardware.radio.NrIndicators();
+ out.isEndcAvailable = in.isEndcAvailable;
+ out.isDcNrRestricted = in.isDcNrRestricted;
+ out.isNrAvailable = in.isNrAvailable;
+ return out;
+ }
+
+ static public android.hardware.radio.DataRegStateResult h2aTranslate(
+ android.hardware.radio.V1_4.DataRegStateResult in) {
+ android.hardware.radio.DataRegStateResult out =
+ new android.hardware.radio.DataRegStateResult();
+ out.regState = in.base.regState;
+ out.rat = in.base.rat;
+ out.reasonDataDenied = in.base.reasonDataDenied;
+ out.maxDataCalls = in.base.maxDataCalls;
+ // FIXME Unknown type: android.hardware.radio@1.2::CellIdentity
+ // That type's package needs to be converted separately and the corresponding translate
+ // function should be added here.
+ out.vopsInfo = h2aTranslate(in.vopsInfo);
+ out.nrIndicators = h2aTranslate(in.nrIndicators);
+ return out;
+ }
+
+ static public android.hardware.radio.DataRegStateResultVopsInfo h2aTranslate(
+ android.hardware.radio.V1_4.DataRegStateResult.VopsInfo in) {
+ android.hardware.radio.DataRegStateResultVopsInfo out =
+ new android.hardware.radio.DataRegStateResultVopsInfo();
+ switch (in.getDiscriminator()) {
+ case android.hardware.radio.V1_4.DataRegStateResult.VopsInfo.hidl_discriminator.noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case android.hardware.radio.V1_4.DataRegStateResult.VopsInfo.hidl_discriminator
+ .lteVopsInfo:
+ out.setLteVopsInfo(h2aTranslate(in.lteVopsInfo()));
+ break;
+ default:
+ throw new RuntimeException(
+ "Unknown discriminator value: " + Integer.toString(in.getDiscriminator()));
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.CellConfigLte h2aTranslate(
+ android.hardware.radio.V1_4.CellConfigLte in) {
+ android.hardware.radio.CellConfigLte out = new android.hardware.radio.CellConfigLte();
+ out.isEndcAvailable = in.isEndcAvailable;
+ return out;
+ }
+
+ static public android.hardware.radio.CellInfoInfo h2aTranslate(
+ android.hardware.radio.V1_4.CellInfo.Info in) {
+ android.hardware.radio.CellInfoInfo out = new android.hardware.radio.CellInfoInfo();
+ switch (in.getDiscriminator()) {
+ case android.hardware.radio.V1_4.CellInfo.Info.hidl_discriminator.gsm:
+ // FIXME Unknown type: android.hardware.radio@1.2::CellInfoGsm
+ // That type's package needs to be converted separately and the corresponding
+ // translate function should be added here.
+ break;
+ case android.hardware.radio.V1_4.CellInfo.Info.hidl_discriminator.cdma:
+ out.setCdma(h2aTranslate(in.cdma()));
+ break;
+ case android.hardware.radio.V1_4.CellInfo.Info.hidl_discriminator.wcdma:
+ // FIXME Unknown type: android.hardware.radio@1.2::CellInfoWcdma
+ // That type's package needs to be converted separately and the corresponding
+ // translate function should be added here.
+ break;
+ case android.hardware.radio.V1_4.CellInfo.Info.hidl_discriminator.tdscdma:
+ // FIXME Unknown type: android.hardware.radio@1.2::CellInfoTdscdma
+ // That type's package needs to be converted separately and the corresponding
+ // translate function should be added here.
+ break;
+ case android.hardware.radio.V1_4.CellInfo.Info.hidl_discriminator.lte:
+ // FIXME Unknown type: android.hardware.radio@1.4::CellInfoLte
+ // That type's package needs to be converted separately and the corresponding
+ // translate function should be added here.
+ break;
+ case android.hardware.radio.V1_4.CellInfo.Info.hidl_discriminator.nr:
+ // FIXME Unknown type: android.hardware.radio@1.4::CellInfoNr
+ // That type's package needs to be converted separately and the corresponding
+ // translate function should be added here.
+ break;
+ default:
+ throw new RuntimeException(
+ "Unknown discriminator value: " + Integer.toString(in.getDiscriminator()));
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.RadioCapability h2aTranslate(
+ android.hardware.radio.V1_4.RadioCapability in) {
+ android.hardware.radio.RadioCapability out = new android.hardware.radio.RadioCapability();
+ out.session = in.session;
+ out.phase = in.phase;
+ out.raf = in.raf;
+ out.logicalModemUuid = in.logicalModemUuid;
+ out.status = in.status;
+ return out;
+ }
+
+ static public android.hardware.radio.CarrierRestrictionsWithPriority h2aTranslate(
+ android.hardware.radio.V1_4.CarrierRestrictionsWithPriority in) {
+ android.hardware.radio.CarrierRestrictionsWithPriority out =
+ new android.hardware.radio.CarrierRestrictionsWithPriority();
+ if (in.allowedCarriers != null) {
+ out.allowedCarriers = new android.hardware.radio.Carrier[in.allowedCarriers.size()];
+ for (int i = 0; i < in.allowedCarriers.size(); i++) {
+ out.allowedCarriers[i] = h2aTranslate(in.allowedCarriers.get(i));
+ }
+ }
+ if (in.excludedCarriers != null) {
+ out.excludedCarriers = new android.hardware.radio.Carrier[in.excludedCarriers.size()];
+ for (int i = 0; i < in.excludedCarriers.size(); i++) {
+ out.excludedCarriers[i] = h2aTranslate(in.excludedCarriers.get(i));
+ }
+ }
+ out.allowedCarriersPrioritized = in.allowedCarriersPrioritized;
+ return out;
+ }
+
+ static public android.hardware.radio.RadioAccessSpecifier h2aTranslate(
+ android.hardware.radio.V1_5.RadioAccessSpecifier in) {
+ android.hardware.radio.RadioAccessSpecifier out =
+ new android.hardware.radio.RadioAccessSpecifier();
+ out.radioAccessNetwork = in.radioAccessNetwork;
+ out.bands = h2aTranslate(in.bands);
+ if (in.channels != null) {
+ out.channels = new int[in.channels.size()];
+ for (int i = 0; i < in.channels.size(); i++) {
+ out.channels[i] = in.channels.get(i);
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.RadioAccessSpecifierBands h2aTranslate(
+ android.hardware.radio.V1_5.RadioAccessSpecifier.Bands in) {
+ android.hardware.radio.RadioAccessSpecifierBands out =
+ new android.hardware.radio.RadioAccessSpecifierBands();
+ List<Integer> bands;
+ switch (in.getDiscriminator()) {
+ case android.hardware.radio.V1_5.RadioAccessSpecifier.Bands.hidl_discriminator
+ .geranBands:
+ bands = in.geranBands();
+ if (bands != null) {
+ int[] geranBands = new int[bands.size()];
+ for (int i = 0; i < bands.size(); i++) {
+ geranBands[i] = bands.get(i);
+ }
+ out.geranBands(geranBands);
+ }
+ break;
+ case android.hardware.radio.V1_5.RadioAccessSpecifier.Bands.hidl_discriminator
+ .utranBands:
+ bands = in.utranBands();
+ if (bands != null) {
+ int[] utranBands = new int[bands.size()];
+ for (int i = 0; i < bands.size(); i++) {
+ utranBands[i] = bands.get(i);
+ }
+ out.utranBands(utranBands);
+ }
+ break;
+ case android.hardware.radio.V1_5.RadioAccessSpecifier.Bands.hidl_discriminator
+ .eutranBands:
+ bands = in.eutranBands();
+ if (bands != null) {
+ int[] eutranBands = new int[bands.size()];
+ for (int i = 0; i < bands.size(); i++) {
+ eutranBands[i] = bands.get(i);
+ }
+ out.eutranBands(eutranBands);
+ }
+ break;
+ case android.hardware.radio.V1_5.RadioAccessSpecifier.Bands.hidl_discriminator
+ .ngranBands:
+ bands = in.ngranBands();
+ if (bands != null) {
+ int[] ngranBands = new int[bands.size()];
+ for (int i = 0; i < bands.size(); i++) {
+ ngranBands[i] = bands.get(i);
+ }
+ out.ngranBands(ngranBands);
+ }
+ break;
+ default:
+ throw new RuntimeException(
+ "Unknown discriminator value: " + Integer.toString(in.getDiscriminator()));
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.SignalThresholdInfo h2aTranslate(
+ android.hardware.radio.V1_5.SignalThresholdInfo in) {
+ android.hardware.radio.SignalThresholdInfo out =
+ new android.hardware.radio.SignalThresholdInfo();
+ out.signalMeasurement = in.signalMeasurement;
+ out.hysteresisMs = in.hysteresisMs;
+ out.hysteresisDb = in.hysteresisDb;
+ if (in.thresholds != null) {
+ out.thresholds = new int[in.thresholds.size()];
+ for (int i = 0; i < in.thresholds.size(); i++) {
+ out.thresholds[i] = in.thresholds.get(i);
+ }
+ }
+ out.isEnabled = in.isEnabled;
+ return out;
+ }
+
+ static public android.hardware.radio.NetworkScanRequest h2aTranslate(
+ android.hardware.radio.V1_5.NetworkScanRequest in) {
+ android.hardware.radio.NetworkScanRequest out =
+ new android.hardware.radio.NetworkScanRequest();
+ out.type = in.type;
+ out.interval = in.interval;
+ if (in.specifiers != null) {
+ out.specifiers = new android.hardware.radio.RadioAccessSpecifier[in.specifiers.size()];
+ for (int i = 0; i < in.specifiers.size(); i++) {
+ out.specifiers[i] = h2aTranslate(in.specifiers.get(i));
+ }
+ }
+ out.maxSearchTime = in.maxSearchTime;
+ out.incrementalResults = in.incrementalResults;
+ out.incrementalResultsPeriodicity = in.incrementalResultsPeriodicity;
+ if (in.mccMncs != null) {
+ out.mccMncs = new String[in.mccMncs.size()];
+ for (int i = 0; i < in.mccMncs.size(); i++) {
+ out.mccMncs[i] = in.mccMncs.get(i);
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.DataProfileInfo h2aTranslate(
+ android.hardware.radio.V1_5.DataProfileInfo in) {
+ android.hardware.radio.DataProfileInfo out = new android.hardware.radio.DataProfileInfo();
+ out.profileId = in.profileId;
+ out.apn = in.apn;
+ out.protocol = in.protocol;
+ out.roamingProtocol = in.roamingProtocol;
+ out.authType = in.authType;
+ out.user = in.user;
+ out.password = in.password;
+ out.type = in.type;
+ out.maxConnsTime = in.maxConnsTime;
+ out.maxConns = in.maxConns;
+ out.waitTime = in.waitTime;
+ out.enabled = in.enabled;
+ out.supportedApnTypesBitmap = in.supportedApnTypesBitmap;
+ out.bearerBitmap = in.bearerBitmap;
+ out.mtuV4 = in.mtuV4;
+ out.mtuV6 = in.mtuV6;
+ out.preferred = in.preferred;
+ out.persistent = in.persistent;
+ return out;
+ }
+
+ static public android.hardware.radio.LinkAddress h2aTranslate(
+ android.hardware.radio.V1_5.LinkAddress in) {
+ android.hardware.radio.LinkAddress out = new android.hardware.radio.LinkAddress();
+ out.address = in.address;
+ out.properties = in.properties;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.deprecationTime > 9223372036854775807L || in.deprecationTime < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.deprecationTime");
+ }
+ out.deprecationTime = in.deprecationTime;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.expirationTime > 9223372036854775807L || in.expirationTime < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.expirationTime");
+ }
+ out.expirationTime = in.expirationTime;
+ return out;
+ }
+
+ static public android.hardware.radio.ClosedSubscriberGroupInfo h2aTranslate(
+ android.hardware.radio.V1_5.ClosedSubscriberGroupInfo in) {
+ android.hardware.radio.ClosedSubscriberGroupInfo out =
+ new android.hardware.radio.ClosedSubscriberGroupInfo();
+ out.csgIndication = in.csgIndication;
+ out.homeNodebName = in.homeNodebName;
+ out.csgIdentity = in.csgIdentity;
+ return out;
+ }
+
+ static public android.hardware.radio.OptionalCsgInfo h2aTranslate(
+ android.hardware.radio.V1_5.OptionalCsgInfo in) {
+ android.hardware.radio.OptionalCsgInfo out = new android.hardware.radio.OptionalCsgInfo();
+ switch (in.getDiscriminator()) {
+ case android.hardware.radio.V1_5.OptionalCsgInfo.hidl_discriminator.noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case android.hardware.radio.V1_5.OptionalCsgInfo.hidl_discriminator.csgInfo:
+ out.setCsgInfo(h2aTranslate(in.csgInfo()));
+ break;
+ default:
+ throw new RuntimeException(
+ "Unknown discriminator value: " + Integer.toString(in.getDiscriminator()));
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.CellIdentityGsm h2aTranslate(
+ android.hardware.radio.V1_5.CellIdentityGsm in) {
+ android.hardware.radio.CellIdentityGsm out = new android.hardware.radio.CellIdentityGsm();
+ out.mcc = in.base.base.mcc;
+ out.mnc = in.base.base.mnc;
+ out.lac = in.base.base.lac;
+ out.cid = in.base.base.cid;
+ out.arfcn = in.base.base.arfcn;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.base.base.bsic > 127 || in.base.base.bsic < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.base.base.bsic");
+ }
+ out.bsic = in.base.base.bsic;
+ out.operatorNames = h2aTranslate(in.base.operatorNames);
+ if (in.additionalPlmns != null) {
+ out.additionalPlmns = new String[in.additionalPlmns.size()];
+ for (int i = 0; i < in.additionalPlmns.size(); i++) {
+ out.additionalPlmns[i] = in.additionalPlmns.get(i);
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.CellIdentityWcdma h2aTranslate(
+ android.hardware.radio.V1_5.CellIdentityWcdma in) {
+ android.hardware.radio.CellIdentityWcdma out =
+ new android.hardware.radio.CellIdentityWcdma();
+ out.mcc = in.base.base.mcc;
+ out.mnc = in.base.base.mnc;
+ out.lac = in.base.base.lac;
+ out.cid = in.base.base.cid;
+ out.psc = in.base.base.psc;
+ out.uarfcn = in.base.base.uarfcn;
+ out.operatorNames = h2aTranslate(in.base.operatorNames);
+ if (in.additionalPlmns != null) {
+ out.additionalPlmns = new String[in.additionalPlmns.size()];
+ for (int i = 0; i < in.additionalPlmns.size(); i++) {
+ out.additionalPlmns[i] = in.additionalPlmns.get(i);
+ }
+ }
+ out.optionalCsgInfo = h2aTranslate(in.optionalCsgInfo);
+ return out;
+ }
+
+ static public android.hardware.radio.CellIdentityTdscdma h2aTranslate(
+ android.hardware.radio.V1_5.CellIdentityTdscdma in) {
+ android.hardware.radio.CellIdentityTdscdma out =
+ new android.hardware.radio.CellIdentityTdscdma();
+ out.mcc = in.base.base.mcc;
+ out.mnc = in.base.base.mnc;
+ out.lac = in.base.base.lac;
+ out.cid = in.base.base.cid;
+ out.cpid = in.base.base.cpid;
+ out.uarfcn = in.base.uarfcn;
+ out.operatorNames = h2aTranslate(in.base.operatorNames);
+ if (in.additionalPlmns != null) {
+ out.additionalPlmns = new String[in.additionalPlmns.size()];
+ for (int i = 0; i < in.additionalPlmns.size(); i++) {
+ out.additionalPlmns[i] = in.additionalPlmns.get(i);
+ }
+ }
+ out.optionalCsgInfo = h2aTranslate(in.optionalCsgInfo);
+ return out;
+ }
+
+ static public android.hardware.radio.CellIdentityLte h2aTranslate(
+ android.hardware.radio.V1_5.CellIdentityLte in) {
+ android.hardware.radio.CellIdentityLte out = new android.hardware.radio.CellIdentityLte();
+ out.mcc = in.base.base.mcc;
+ out.mnc = in.base.base.mnc;
+ out.ci = in.base.base.ci;
+ out.pci = in.base.base.pci;
+ out.tac = in.base.base.tac;
+ out.earfcn = in.base.base.earfcn;
+ out.operatorNames = h2aTranslate(in.base.operatorNames);
+ out.bandwidth = in.base.bandwidth;
+ if (in.additionalPlmns != null) {
+ out.additionalPlmns = new String[in.additionalPlmns.size()];
+ for (int i = 0; i < in.additionalPlmns.size(); i++) {
+ out.additionalPlmns[i] = in.additionalPlmns.get(i);
+ }
+ }
+ out.optionalCsgInfo = h2aTranslate(in.optionalCsgInfo);
+ if (in.bands != null) {
+ out.bands = new int[in.bands.size()];
+ for (int i = 0; i < in.bands.size(); i++) {
+ out.bands[i] = in.bands.get(i);
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.CellIdentityNr h2aTranslate(
+ android.hardware.radio.V1_5.CellIdentityNr in) {
+ android.hardware.radio.CellIdentityNr out = new android.hardware.radio.CellIdentityNr();
+ out.mcc = in.base.mcc;
+ out.mnc = in.base.mnc;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.base.nci > 9223372036854775807L || in.base.nci < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.base.nci");
+ }
+ out.nci = in.base.nci;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.base.pci > 2147483647 || in.base.pci < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.base.pci");
+ }
+ out.pci = in.base.pci;
+ out.tac = in.base.tac;
+ out.nrarfcn = in.base.nrarfcn;
+ out.operatorNames = h2aTranslate(in.base.operatorNames);
+ if (in.additionalPlmns != null) {
+ out.additionalPlmns = new String[in.additionalPlmns.size()];
+ for (int i = 0; i < in.additionalPlmns.size(); i++) {
+ out.additionalPlmns[i] = in.additionalPlmns.get(i);
+ }
+ }
+ if (in.bands != null) {
+ out.bands = new int[in.bands.size()];
+ for (int i = 0; i < in.bands.size(); i++) {
+ out.bands[i] = in.bands.get(i);
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.CellInfoGsm h2aTranslate(
+ android.hardware.radio.V1_5.CellInfoGsm in) {
+ android.hardware.radio.CellInfoGsm out = new android.hardware.radio.CellInfoGsm();
+ out.cellIdentityGsm = h2aTranslate(in.cellIdentityGsm);
+ out.signalStrengthGsm = h2aTranslate(in.signalStrengthGsm);
+ return out;
+ }
+
+ static public android.hardware.radio.CellInfoWcdma h2aTranslate(
+ android.hardware.radio.V1_5.CellInfoWcdma in) {
+ android.hardware.radio.CellInfoWcdma out = new android.hardware.radio.CellInfoWcdma();
+ out.cellIdentityWcdma = h2aTranslate(in.cellIdentityWcdma);
+ out.signalStrengthWcdma = h2aTranslate(in.signalStrengthWcdma);
+ return out;
+ }
+
+ static public android.hardware.radio.CellInfoTdscdma h2aTranslate(
+ android.hardware.radio.V1_5.CellInfoTdscdma in) {
+ android.hardware.radio.CellInfoTdscdma out = new android.hardware.radio.CellInfoTdscdma();
+ out.cellIdentityTdscdma = h2aTranslate(in.cellIdentityTdscdma);
+ out.signalStrengthTdscdma = h2aTranslate(in.signalStrengthTdscdma);
+ return out;
+ }
+
+ static public android.hardware.radio.CellIdentity h2aTranslate(
+ android.hardware.radio.V1_5.CellIdentity in) {
+ android.hardware.radio.CellIdentity out = new android.hardware.radio.CellIdentity();
+ switch (in.getDiscriminator()) {
+ case android.hardware.radio.V1_5.CellIdentity.hidl_discriminator.noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case android.hardware.radio.V1_5.CellIdentity.hidl_discriminator.gsm:
+ out.setGsm(h2aTranslate(in.gsm()));
+ break;
+ case android.hardware.radio.V1_5.CellIdentity.hidl_discriminator.wcdma:
+ out.setWcdma(h2aTranslate(in.wcdma()));
+ break;
+ case android.hardware.radio.V1_5.CellIdentity.hidl_discriminator.tdscdma:
+ out.setTdscdma(h2aTranslate(in.tdscdma()));
+ break;
+ case android.hardware.radio.V1_5.CellIdentity.hidl_discriminator.cdma:
+ out.setCdma(h2aTranslate(in.cdma()));
+ break;
+ case android.hardware.radio.V1_5.CellIdentity.hidl_discriminator.lte:
+ out.setLte(h2aTranslate(in.lte()));
+ break;
+ case android.hardware.radio.V1_5.CellIdentity.hidl_discriminator.nr:
+ out.setNr(h2aTranslate(in.nr()));
+ break;
+ default:
+ throw new RuntimeException(
+ "Unknown discriminator value: " + Integer.toString(in.getDiscriminator()));
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.BarringInfo h2aTranslate(
+ android.hardware.radio.V1_5.BarringInfo in) {
+ android.hardware.radio.BarringInfo out = new android.hardware.radio.BarringInfo();
+ out.serviceType = in.serviceType;
+ out.barringType = in.barringType;
+ out.barringTypeSpecificInfo = h2aTranslate(in.barringTypeSpecificInfo);
+ return out;
+ }
+
+ static public android.hardware.radio.BarringInfoBarringTypeSpecificInfoConditional h2aTranslate(
+ android.hardware.radio.V1_5.BarringInfo.BarringTypeSpecificInfo.Conditional in) {
+ android.hardware.radio.BarringInfoBarringTypeSpecificInfoConditional out =
+ new android.hardware.radio.BarringInfoBarringTypeSpecificInfoConditional();
+ out.factor = in.factor;
+ out.timeSeconds = in.timeSeconds;
+ out.isBarred = in.isBarred;
+ return out;
+ }
+
+ static public android.hardware.radio.BarringInfoBarringTypeSpecificInfo h2aTranslate(
+ android.hardware.radio.V1_5.BarringInfo.BarringTypeSpecificInfo in) {
+ android.hardware.radio.BarringInfoBarringTypeSpecificInfo out =
+ new android.hardware.radio.BarringInfoBarringTypeSpecificInfo();
+ switch (in.getDiscriminator()) {
+ case android.hardware.radio.V1_5.BarringInfo.BarringTypeSpecificInfo.hidl_discriminator
+ .noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case android.hardware.radio.V1_5.BarringInfo.BarringTypeSpecificInfo.hidl_discriminator
+ .conditional:
+ out.setConditional(h2aTranslate(in.conditional()));
+ break;
+ default:
+ throw new RuntimeException(
+ "Unknown discriminator value: " + Integer.toString(in.getDiscriminator()));
+ }
+ return out;
+ }
+
+ static public android.hardware.radio
+ .RegStateResultAccessTechnologySpecificInfoCdma2000RegistrationInfo
+ h2aTranslate(android.hardware.radio.V1_5.RegStateResult.AccessTechnologySpecificInfo
+ .Cdma2000RegistrationInfo in) {
+ android.hardware.radio
+ .RegStateResultAccessTechnologySpecificInfoCdma2000RegistrationInfo out =
+ new android.hardware.radio
+ .RegStateResultAccessTechnologySpecificInfoCdma2000RegistrationInfo();
+ out.cssSupported = in.cssSupported;
+ out.roamingIndicator = in.roamingIndicator;
+ out.systemIsInPrl = in.systemIsInPrl;
+ out.defaultRoamingIndicator = in.defaultRoamingIndicator;
+ return out;
+ }
+
+ static public android.hardware.radio
+ .RegStateResultAccessTechnologySpecificInfoEutranRegistrationInfo
+ h2aTranslate(android.hardware.radio.V1_5.RegStateResult.AccessTechnologySpecificInfo
+ .EutranRegistrationInfo in) {
+ android.hardware.radio
+ .RegStateResultAccessTechnologySpecificInfoEutranRegistrationInfo out =
+ new android.hardware.radio
+ .RegStateResultAccessTechnologySpecificInfoEutranRegistrationInfo();
+ out.lteVopsInfo = h2aTranslate(in.lteVopsInfo);
+ out.nrIndicators = h2aTranslate(in.nrIndicators);
+ return out;
+ }
+
+ static public android.hardware.radio.AppStatus h2aTranslate(
+ android.hardware.radio.V1_5.AppStatus in) {
+ android.hardware.radio.AppStatus out = new android.hardware.radio.AppStatus();
+ out.appType = in.base.appType;
+ out.appState = in.base.appState;
+ out.persoSubstate = in.persoSubstate;
+ out.aidPtr = in.base.aidPtr;
+ out.appLabelPtr = in.base.appLabelPtr;
+ out.pin1Replaced = in.base.pin1Replaced;
+ out.pin1 = in.base.pin1;
+ out.pin2 = in.base.pin2;
+ return out;
+ }
+
+ static public android.hardware.radio.CardStatus h2aTranslate(
+ android.hardware.radio.V1_5.CardStatus in) {
+ android.hardware.radio.CardStatus out = new android.hardware.radio.CardStatus();
+ out.cardState = in.base.base.base.cardState;
+ out.universalPinState = in.base.base.base.universalPinState;
+ out.gsmUmtsSubscriptionAppIndex = in.base.base.base.gsmUmtsSubscriptionAppIndex;
+ out.cdmaSubscriptionAppIndex = in.base.base.base.cdmaSubscriptionAppIndex;
+ out.imsSubscriptionAppIndex = in.base.base.base.imsSubscriptionAppIndex;
+ if (in.applications != null) {
+ out.applications = new android.hardware.radio.AppStatus[in.applications.size()];
+ for (int i = 0; i < in.applications.size(); i++) {
+ out.applications[i] = h2aTranslate(in.applications.get(i));
+ }
+ }
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.base.base.physicalSlotId > 2147483647 || in.base.base.physicalSlotId < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.base.base.physicalSlotId");
+ }
+ out.physicalSlotId = in.base.base.physicalSlotId;
+ out.atr = in.base.base.atr;
+ out.iccid = in.base.base.iccid;
+ out.eid = in.base.eid;
+ return out;
+ }
+
+ static public android.hardware.radio.QosBandwidth h2aTranslate(
+ android.hardware.radio.V1_6.QosBandwidth in) {
+ android.hardware.radio.QosBandwidth out = new android.hardware.radio.QosBandwidth();
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.maxBitrateKbps > 2147483647 || in.maxBitrateKbps < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.maxBitrateKbps");
+ }
+ out.maxBitrateKbps = in.maxBitrateKbps;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.guaranteedBitrateKbps > 2147483647 || in.guaranteedBitrateKbps < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.guaranteedBitrateKbps");
+ }
+ out.guaranteedBitrateKbps = in.guaranteedBitrateKbps;
+ return out;
+ }
+
+ static public android.hardware.radio.EpsQos h2aTranslate(
+ android.hardware.radio.V1_6.EpsQos in) {
+ android.hardware.radio.EpsQos out = new android.hardware.radio.EpsQos();
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.qci < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.qci");
+ }
+ out.qci = (char) in.qci;
+ out.downlink = h2aTranslate(in.downlink);
+ out.uplink = h2aTranslate(in.uplink);
+ return out;
+ }
+
+ static public android.hardware.radio.NrQos h2aTranslate(android.hardware.radio.V1_6.NrQos in) {
+ android.hardware.radio.NrQos out = new android.hardware.radio.NrQos();
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.fiveQi < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.fiveQi");
+ }
+ out.fiveQi = (char) in.fiveQi;
+ out.downlink = h2aTranslate(in.downlink);
+ out.uplink = h2aTranslate(in.uplink);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.qfi > 127 || in.qfi < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.qfi");
+ }
+ out.qfi = in.qfi;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.averagingWindowMs < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.averagingWindowMs");
+ }
+ out.averagingWindowMs = (char) in.averagingWindowMs;
+ return out;
+ }
+
+ static public android.hardware.radio.Qos h2aTranslate(android.hardware.radio.V1_6.Qos in) {
+ android.hardware.radio.Qos out = new android.hardware.radio.Qos();
+ switch (in.getDiscriminator()) {
+ case android.hardware.radio.V1_6.Qos.hidl_discriminator.noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case android.hardware.radio.V1_6.Qos.hidl_discriminator.eps:
+ out.setEps(h2aTranslate(in.eps()));
+ break;
+ case android.hardware.radio.V1_6.Qos.hidl_discriminator.nr:
+ out.setNr(h2aTranslate(in.nr()));
+ break;
+ default:
+ throw new RuntimeException(
+ "Unknown discriminator value: " + Integer.toString(in.getDiscriminator()));
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.RadioResponseInfo h2aTranslate(
+ android.hardware.radio.V1_6.RadioResponseInfo in) {
+ android.hardware.radio.RadioResponseInfo out =
+ new android.hardware.radio.RadioResponseInfo();
+ out.type = in.type;
+ out.serial = in.serial;
+ out.error = in.error;
+ return out;
+ }
+
+ static public android.hardware.radio.PortRange h2aTranslate(
+ android.hardware.radio.V1_6.PortRange in) {
+ android.hardware.radio.PortRange out = new android.hardware.radio.PortRange();
+ out.start = in.start;
+ out.end = in.end;
+ return out;
+ }
+
+ static public android.hardware.radio.MaybePort h2aTranslate(
+ android.hardware.radio.V1_6.MaybePort in) {
+ android.hardware.radio.MaybePort out = new android.hardware.radio.MaybePort();
+ switch (in.getDiscriminator()) {
+ case android.hardware.radio.V1_6.MaybePort.hidl_discriminator.noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case android.hardware.radio.V1_6.MaybePort.hidl_discriminator.range:
+ out.setRange(h2aTranslate(in.range()));
+ break;
+ default:
+ throw new RuntimeException(
+ "Unknown discriminator value: " + Integer.toString(in.getDiscriminator()));
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.QosFilter h2aTranslate(
+ android.hardware.radio.V1_6.QosFilter in) {
+ android.hardware.radio.QosFilter out = new android.hardware.radio.QosFilter();
+ if (in.localAddresses != null) {
+ out.localAddresses = new String[in.localAddresses.size()];
+ for (int i = 0; i < in.localAddresses.size(); i++) {
+ out.localAddresses[i] = in.localAddresses.get(i);
+ }
+ }
+ if (in.remoteAddresses != null) {
+ out.remoteAddresses = new String[in.remoteAddresses.size()];
+ for (int i = 0; i < in.remoteAddresses.size(); i++) {
+ out.remoteAddresses[i] = in.remoteAddresses.get(i);
+ }
+ }
+ out.localPort = h2aTranslate(in.localPort);
+ out.remotePort = h2aTranslate(in.remotePort);
+ out.protocol = in.protocol;
+ out.tos = h2aTranslate(in.tos);
+ out.flowLabel = h2aTranslate(in.flowLabel);
+ out.spi = h2aTranslate(in.spi);
+ out.direction = in.direction;
+ out.precedence = in.precedence;
+ return out;
+ }
+
+ static public android.hardware.radio.QosFilterTypeOfService h2aTranslate(
+ android.hardware.radio.V1_6.QosFilter.TypeOfService in) {
+ android.hardware.radio.QosFilterTypeOfService out =
+ new android.hardware.radio.QosFilterTypeOfService();
+ switch (in.getDiscriminator()) {
+ case android.hardware.radio.V1_6.QosFilter.TypeOfService.hidl_discriminator.noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case android.hardware.radio.V1_6.QosFilter.TypeOfService.hidl_discriminator.value:
+ // FIXME This requires conversion between signed and unsigned. Change this if it
+ // doesn't suit your needs.
+ if (in.value() > 127 || in.value() < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.value()");
+ }
+ out.setValue(in.value());
+ break;
+ default:
+ throw new RuntimeException(
+ "Unknown discriminator value: " + Integer.toString(in.getDiscriminator()));
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.QosFilterIpv6FlowLabel h2aTranslate(
+ android.hardware.radio.V1_6.QosFilter.Ipv6FlowLabel in) {
+ android.hardware.radio.QosFilterIpv6FlowLabel out =
+ new android.hardware.radio.QosFilterIpv6FlowLabel();
+ switch (in.getDiscriminator()) {
+ case android.hardware.radio.V1_6.QosFilter.Ipv6FlowLabel.hidl_discriminator.noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case android.hardware.radio.V1_6.QosFilter.Ipv6FlowLabel.hidl_discriminator.value:
+ // FIXME This requires conversion between signed and unsigned. Change this if it
+ // doesn't suit your needs.
+ if (in.value() > 2147483647 || in.value() < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.value()");
+ }
+ out.setValue(in.value());
+ break;
+ default:
+ throw new RuntimeException(
+ "Unknown discriminator value: " + Integer.toString(in.getDiscriminator()));
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.QosFilterIpsecSpi h2aTranslate(
+ android.hardware.radio.V1_6.QosFilter.IpsecSpi in) {
+ android.hardware.radio.QosFilterIpsecSpi out =
+ new android.hardware.radio.QosFilterIpsecSpi();
+ switch (in.getDiscriminator()) {
+ case android.hardware.radio.V1_6.QosFilter.IpsecSpi.hidl_discriminator.noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case android.hardware.radio.V1_6.QosFilter.IpsecSpi.hidl_discriminator.value:
+ // FIXME This requires conversion between signed and unsigned. Change this if it
+ // doesn't suit your needs.
+ if (in.value() > 2147483647 || in.value() < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.value()");
+ }
+ out.setValue(in.value());
+ break;
+ default:
+ throw new RuntimeException(
+ "Unknown discriminator value: " + Integer.toString(in.getDiscriminator()));
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.QosSession h2aTranslate(
+ android.hardware.radio.V1_6.QosSession in) {
+ android.hardware.radio.QosSession out = new android.hardware.radio.QosSession();
+ out.qosSessionId = in.qosSessionId;
+ out.qos = h2aTranslate(in.qos);
+ if (in.qosFilters != null) {
+ out.qosFilters = new android.hardware.radio.QosFilter[in.qosFilters.size()];
+ for (int i = 0; i < in.qosFilters.size(); i++) {
+ out.qosFilters[i] = h2aTranslate(in.qosFilters.get(i));
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.SetupDataCallResult h2aTranslate(
+ android.hardware.radio.V1_6.SetupDataCallResult in) {
+ android.hardware.radio.SetupDataCallResult out =
+ new android.hardware.radio.SetupDataCallResult();
+ out.cause = in.cause;
+ out.suggestedRetryTime = in.suggestedRetryTime;
+ out.cid = in.cid;
+ out.active = in.active;
+ out.type = in.type;
+ out.ifname = in.ifname;
+ if (in.addresses != null) {
+ out.addresses = new android.hardware.radio.LinkAddress[in.addresses.size()];
+ for (int i = 0; i < in.addresses.size(); i++) {
+ out.addresses[i] = h2aTranslate(in.addresses.get(i));
+ }
+ }
+ if (in.dnses != null) {
+ out.dnses = new String[in.dnses.size()];
+ for (int i = 0; i < in.dnses.size(); i++) {
+ out.dnses[i] = in.dnses.get(i);
+ }
+ }
+ if (in.gateways != null) {
+ out.gateways = new String[in.gateways.size()];
+ for (int i = 0; i < in.gateways.size(); i++) {
+ out.gateways[i] = in.gateways.get(i);
+ }
+ }
+ if (in.pcscf != null) {
+ out.pcscf = new String[in.pcscf.size()];
+ for (int i = 0; i < in.pcscf.size(); i++) {
+ out.pcscf[i] = in.pcscf.get(i);
+ }
+ }
+ out.mtuV4 = in.mtuV4;
+ out.mtuV6 = in.mtuV6;
+ out.defaultQos = h2aTranslate(in.defaultQos);
+ if (in.qosSessions != null) {
+ out.qosSessions = new android.hardware.radio.QosSession[in.qosSessions.size()];
+ for (int i = 0; i < in.qosSessions.size(); i++) {
+ out.qosSessions[i] = h2aTranslate(in.qosSessions.get(i));
+ }
+ }
+ out.handoverFailureMode = in.handoverFailureMode;
+ out.pduSessionId = in.pduSessionId;
+ out.sliceInfo = h2aTranslate(in.sliceInfo);
+ if (in.trafficDescriptors != null) {
+ out.trafficDescriptors =
+ new android.hardware.radio.TrafficDescriptor[in.trafficDescriptors.size()];
+ for (int i = 0; i < in.trafficDescriptors.size(); i++) {
+ out.trafficDescriptors[i] = h2aTranslate(in.trafficDescriptors.get(i));
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.LinkCapacityEstimate h2aTranslate(
+ android.hardware.radio.V1_6.LinkCapacityEstimate in) {
+ android.hardware.radio.LinkCapacityEstimate out =
+ new android.hardware.radio.LinkCapacityEstimate();
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.downlinkCapacityKbps > 2147483647 || in.downlinkCapacityKbps < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.downlinkCapacityKbps");
+ }
+ out.downlinkCapacityKbps = in.downlinkCapacityKbps;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.uplinkCapacityKbps > 2147483647 || in.uplinkCapacityKbps < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.uplinkCapacityKbps");
+ }
+ out.uplinkCapacityKbps = in.uplinkCapacityKbps;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.secondaryDownlinkCapacityKbps > 2147483647 || in.secondaryDownlinkCapacityKbps < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.secondaryDownlinkCapacityKbps");
+ }
+ out.secondaryDownlinkCapacityKbps = in.secondaryDownlinkCapacityKbps;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.secondaryUplinkCapacityKbps > 2147483647 || in.secondaryUplinkCapacityKbps < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.secondaryUplinkCapacityKbps");
+ }
+ out.secondaryUplinkCapacityKbps = in.secondaryUplinkCapacityKbps;
+ return out;
+ }
+
+ static public android.hardware.radio.NrVopsInfo h2aTranslate(
+ android.hardware.radio.V1_6.NrVopsInfo in) {
+ android.hardware.radio.NrVopsInfo out = new android.hardware.radio.NrVopsInfo();
+ out.vopsSupported = in.vopsSupported;
+ out.emcSupported = in.emcSupported;
+ out.emfSupported = in.emfSupported;
+ return out;
+ }
+
+ static public android.hardware.radio.LteSignalStrength h2aTranslate(
+ android.hardware.radio.V1_6.LteSignalStrength in) {
+ android.hardware.radio.LteSignalStrength out =
+ new android.hardware.radio.LteSignalStrength();
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.base.signalStrength > 2147483647 || in.base.signalStrength < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.base.signalStrength");
+ }
+ out.signalStrength = in.base.signalStrength;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.base.rsrp > 2147483647 || in.base.rsrp < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.base.rsrp");
+ }
+ out.rsrp = in.base.rsrp;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.base.rsrq > 2147483647 || in.base.rsrq < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.base.rsrq");
+ }
+ out.rsrq = in.base.rsrq;
+ out.rssnr = in.base.rssnr;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.base.cqi > 2147483647 || in.base.cqi < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.base.cqi");
+ }
+ out.cqi = in.base.cqi;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.base.timingAdvance > 2147483647 || in.base.timingAdvance < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.base.timingAdvance");
+ }
+ out.timingAdvance = in.base.timingAdvance;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.cqiTableIndex > 2147483647 || in.cqiTableIndex < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.cqiTableIndex");
+ }
+ out.cqiTableIndex = in.cqiTableIndex;
+ return out;
+ }
+
+ static public android.hardware.radio.NrSignalStrength h2aTranslate(
+ android.hardware.radio.V1_6.NrSignalStrength in) {
+ android.hardware.radio.NrSignalStrength out = new android.hardware.radio.NrSignalStrength();
+ out.ssRsrp = in.base.ssRsrp;
+ out.ssRsrq = in.base.ssRsrq;
+ out.ssSinr = in.base.ssSinr;
+ out.csiRsrp = in.base.csiRsrp;
+ out.csiRsrq = in.base.csiRsrq;
+ out.csiSinr = in.base.csiSinr;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.csiCqiTableIndex > 2147483647 || in.csiCqiTableIndex < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.csiCqiTableIndex");
+ }
+ out.csiCqiTableIndex = in.csiCqiTableIndex;
+ if (in.csiCqiReport != null) {
+ out.csiCqiReport = new byte[in.csiCqiReport.size()];
+ for (int i = 0; i < in.csiCqiReport.size(); i++) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it
+ // doesn't suit your needs.
+ if (in.csiCqiReport.get(i) > 127 || in.csiCqiReport.get(i) < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.csiCqiReport.get(i)");
+ }
+ out.csiCqiReport[i] = in.csiCqiReport.get(i);
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.SignalStrength h2aTranslate(
+ android.hardware.radio.V1_6.SignalStrength in) {
+ android.hardware.radio.SignalStrength out = new android.hardware.radio.SignalStrength();
+ out.gsm = h2aTranslate(in.gsm);
+ out.cdma = h2aTranslate(in.cdma);
+ out.evdo = h2aTranslate(in.evdo);
+ out.lte = h2aTranslate(in.lte);
+ out.tdscdma = h2aTranslate(in.tdscdma);
+ out.wcdma = h2aTranslate(in.wcdma);
+ out.nr = h2aTranslate(in.nr);
+ return out;
+ }
+
+ static public android.hardware.radio.CellInfoLte h2aTranslate(
+ android.hardware.radio.V1_6.CellInfoLte in) {
+ android.hardware.radio.CellInfoLte out = new android.hardware.radio.CellInfoLte();
+ out.cellIdentityLte = h2aTranslate(in.cellIdentityLte);
+ out.signalStrengthLte = h2aTranslate(in.signalStrengthLte);
+ return out;
+ }
+
+ static public android.hardware.radio.CellInfoNr h2aTranslate(
+ android.hardware.radio.V1_6.CellInfoNr in) {
+ android.hardware.radio.CellInfoNr out = new android.hardware.radio.CellInfoNr();
+ out.cellIdentityNr = h2aTranslate(in.cellIdentityNr);
+ out.signalStrengthNr = h2aTranslate(in.signalStrengthNr);
+ return out;
+ }
+
+ static public android.hardware.radio.CellInfo h2aTranslate(
+ android.hardware.radio.V1_6.CellInfo in) {
+ android.hardware.radio.CellInfo out = new android.hardware.radio.CellInfo();
+ out.registered = in.registered;
+ out.connectionStatus = in.connectionStatus;
+ out.ratSpecificInfo = h2aTranslate(in.ratSpecificInfo);
+ return out;
+ }
+
+ static public android.hardware.radio.CellInfoCellInfoRatSpecificInfo h2aTranslate(
+ android.hardware.radio.V1_6.CellInfo.CellInfoRatSpecificInfo in) {
+ android.hardware.radio.CellInfoCellInfoRatSpecificInfo out =
+ new android.hardware.radio.CellInfoCellInfoRatSpecificInfo();
+ switch (in.getDiscriminator()) {
+ case android.hardware.radio.V1_6.CellInfo.CellInfoRatSpecificInfo.hidl_discriminator
+ .gsm:
+ out.setGsm(h2aTranslate(in.gsm()));
+ break;
+ case android.hardware.radio.V1_6.CellInfo.CellInfoRatSpecificInfo.hidl_discriminator
+ .wcdma:
+ out.setWcdma(h2aTranslate(in.wcdma()));
+ break;
+ case android.hardware.radio.V1_6.CellInfo.CellInfoRatSpecificInfo.hidl_discriminator
+ .tdscdma:
+ out.setTdscdma(h2aTranslate(in.tdscdma()));
+ break;
+ case android.hardware.radio.V1_6.CellInfo.CellInfoRatSpecificInfo.hidl_discriminator
+ .lte:
+ out.setLte(h2aTranslate(in.lte()));
+ break;
+ case android.hardware.radio.V1_6.CellInfo.CellInfoRatSpecificInfo.hidl_discriminator.nr:
+ out.setNr(h2aTranslate(in.nr()));
+ break;
+ case android.hardware.radio.V1_6.CellInfo.CellInfoRatSpecificInfo.hidl_discriminator
+ .cdma:
+ out.setCdma(h2aTranslate(in.cdma()));
+ break;
+ default:
+ throw new RuntimeException(
+ "Unknown discriminator value: " + Integer.toString(in.getDiscriminator()));
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.NetworkScanResult h2aTranslate(
+ android.hardware.radio.V1_6.NetworkScanResult in) {
+ android.hardware.radio.NetworkScanResult out =
+ new android.hardware.radio.NetworkScanResult();
+ out.status = in.status;
+ out.error = in.error;
+ if (in.networkInfos != null) {
+ out.networkInfos = new android.hardware.radio.CellInfo[in.networkInfos.size()];
+ for (int i = 0; i < in.networkInfos.size(); i++) {
+ out.networkInfos[i] = h2aTranslate(in.networkInfos.get(i));
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.RegStateResult h2aTranslate(
+ android.hardware.radio.V1_6.RegStateResult in) {
+ android.hardware.radio.RegStateResult out = new android.hardware.radio.RegStateResult();
+ out.regState = in.regState;
+ out.rat = in.rat;
+ out.reasonForDenial = in.reasonForDenial;
+ out.cellIdentity = h2aTranslate(in.cellIdentity);
+ out.registeredPlmn = in.registeredPlmn;
+ out.accessTechnologySpecificInfo = h2aTranslate(in.accessTechnologySpecificInfo);
+ return out;
+ }
+
+ static public android.hardware.radio.RegStateResultAccessTechnologySpecificInfo h2aTranslate(
+ android.hardware.radio.V1_6.RegStateResult.AccessTechnologySpecificInfo in) {
+ android.hardware.radio.RegStateResultAccessTechnologySpecificInfo out =
+ new android.hardware.radio.RegStateResultAccessTechnologySpecificInfo();
+ switch (in.getDiscriminator()) {
+ case android.hardware.radio.V1_6.RegStateResult.AccessTechnologySpecificInfo
+ .hidl_discriminator.noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case android.hardware.radio.V1_6.RegStateResult.AccessTechnologySpecificInfo
+ .hidl_discriminator.cdmaInfo:
+ out.setCdmaInfo(h2aTranslate(in.cdmaInfo()));
+ break;
+ case android.hardware.radio.V1_6.RegStateResult.AccessTechnologySpecificInfo
+ .hidl_discriminator.eutranInfo:
+ out.setEutranInfo(h2aTranslate(in.eutranInfo()));
+ break;
+ case android.hardware.radio.V1_6.RegStateResult.AccessTechnologySpecificInfo
+ .hidl_discriminator.ngranNrVopsInfo:
+ out.setNgranNrVopsInfo(h2aTranslate(in.ngranNrVopsInfo()));
+ break;
+ case android.hardware.radio.V1_6.RegStateResult.AccessTechnologySpecificInfo
+ .hidl_discriminator.geranDtmSupported:
+ out.setGeranDtmSupported(in.geranDtmSupported());
+ break;
+ default:
+ throw new RuntimeException(
+ "Unknown discriminator value: " + Integer.toString(in.getDiscriminator()));
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.Call h2aTranslate(android.hardware.radio.V1_6.Call in) {
+ android.hardware.radio.Call out = new android.hardware.radio.Call();
+ out.state = in.base.base.state;
+ out.index = in.base.base.index;
+ out.toa = in.base.base.toa;
+ out.isMpty = in.base.base.isMpty;
+ out.isMT = in.base.base.isMT;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.base.base.als > 127 || in.base.base.als < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.base.base.als");
+ }
+ out.als = in.base.base.als;
+ out.isVoice = in.base.base.isVoice;
+ out.isVoicePrivacy = in.base.base.isVoicePrivacy;
+ out.number = in.base.base.number;
+ out.numberPresentation = in.base.base.numberPresentation;
+ out.name = in.base.base.name;
+ out.namePresentation = in.base.base.namePresentation;
+ if (in.base.base.uusInfo != null) {
+ out.uusInfo = new android.hardware.radio.UusInfo[in.base.base.uusInfo.size()];
+ for (int i = 0; i < in.base.base.uusInfo.size(); i++) {
+ out.uusInfo[i] = h2aTranslate(in.base.base.uusInfo.get(i));
+ }
+ }
+ out.audioQuality = in.base.audioQuality;
+ out.forwardedNumber = in.forwardedNumber;
+ return out;
+ }
+
+ static public android.hardware.radio.PhysicalChannelConfig h2aTranslate(
+ android.hardware.radio.V1_6.PhysicalChannelConfig in) {
+ android.hardware.radio.PhysicalChannelConfig out =
+ new android.hardware.radio.PhysicalChannelConfig();
+ out.status = in.status;
+ out.rat = in.rat;
+ out.downlinkChannelNumber = in.downlinkChannelNumber;
+ out.uplinkChannelNumber = in.uplinkChannelNumber;
+ out.cellBandwidthDownlinkKhz = in.cellBandwidthDownlinkKhz;
+ out.cellBandwidthUplinkKhz = in.cellBandwidthUplinkKhz;
+ if (in.contextIds != null) {
+ out.contextIds = new int[in.contextIds.size()];
+ for (int i = 0; i < in.contextIds.size(); i++) {
+ out.contextIds[i] = in.contextIds.get(i);
+ }
+ }
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.physicalCellId > 2147483647 || in.physicalCellId < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.physicalCellId");
+ }
+ out.physicalCellId = in.physicalCellId;
+ out.band = h2aTranslate(in.band);
+ return out;
+ }
+
+ static public android.hardware.radio.PhysicalChannelConfigBand h2aTranslate(
+ android.hardware.radio.V1_6.PhysicalChannelConfig.Band in) {
+ android.hardware.radio.PhysicalChannelConfigBand out =
+ new android.hardware.radio.PhysicalChannelConfigBand();
+ switch (in.getDiscriminator()) {
+ case android.hardware.radio.V1_6.PhysicalChannelConfig.Band.hidl_discriminator
+ .geranBand:
+ out.setGeranBand(in.geranBand());
+ break;
+ case android.hardware.radio.V1_6.PhysicalChannelConfig.Band.hidl_discriminator
+ .utranBand:
+ out.setUtranBand(in.utranBand());
+ break;
+ case android.hardware.radio.V1_6.PhysicalChannelConfig.Band.hidl_discriminator
+ .eutranBand:
+ out.setEutranBand(in.eutranBand());
+ break;
+ case android.hardware.radio.V1_6.PhysicalChannelConfig.Band.hidl_discriminator
+ .ngranBand:
+ out.setNgranBand(in.ngranBand());
+ break;
+ default:
+ throw new RuntimeException(
+ "Unknown discriminator value: " + Integer.toString(in.getDiscriminator()));
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.OptionalSliceInfo h2aTranslate(
+ android.hardware.radio.V1_6.OptionalSliceInfo in) {
+ android.hardware.radio.OptionalSliceInfo out =
+ new android.hardware.radio.OptionalSliceInfo();
+ switch (in.getDiscriminator()) {
+ case android.hardware.radio.V1_6.OptionalSliceInfo.hidl_discriminator.noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case android.hardware.radio.V1_6.OptionalSliceInfo.hidl_discriminator.value:
+ out.setValue(h2aTranslate(in.value()));
+ break;
+ default:
+ throw new RuntimeException(
+ "Unknown discriminator value: " + Integer.toString(in.getDiscriminator()));
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.SliceInfo h2aTranslate(
+ android.hardware.radio.V1_6.SliceInfo in) {
+ android.hardware.radio.SliceInfo out = new android.hardware.radio.SliceInfo();
+ out.sst = in.sst;
+ out.sliceDifferentiator = in.sliceDifferentiator;
+ out.mappedHplmnSst = in.mappedHplmnSst;
+ out.mappedHplmnSD = in.mappedHplmnSD;
+ out.status = in.status;
+ return out;
+ }
+
+ static public android.hardware.radio.OptionalDnn h2aTranslate(
+ android.hardware.radio.V1_6.OptionalDnn in) {
+ android.hardware.radio.OptionalDnn out = new android.hardware.radio.OptionalDnn();
+ switch (in.getDiscriminator()) {
+ case android.hardware.radio.V1_6.OptionalDnn.hidl_discriminator.noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case android.hardware.radio.V1_6.OptionalDnn.hidl_discriminator.value:
+ out.setValue(in.value());
+ break;
+ default:
+ throw new RuntimeException(
+ "Unknown discriminator value: " + Integer.toString(in.getDiscriminator()));
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.OptionalOsAppId h2aTranslate(
+ android.hardware.radio.V1_6.OptionalOsAppId in) {
+ android.hardware.radio.OptionalOsAppId out = new android.hardware.radio.OptionalOsAppId();
+ switch (in.getDiscriminator()) {
+ case android.hardware.radio.V1_6.OptionalOsAppId.hidl_discriminator.noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case android.hardware.radio.V1_6.OptionalOsAppId.hidl_discriminator.value:
+ out.setValue(h2aTranslate(in.value()));
+ break;
+ default:
+ throw new RuntimeException(
+ "Unknown discriminator value: " + Integer.toString(in.getDiscriminator()));
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.OptionalTrafficDescriptor h2aTranslate(
+ android.hardware.radio.V1_6.OptionalTrafficDescriptor in) {
+ android.hardware.radio.OptionalTrafficDescriptor out =
+ new android.hardware.radio.OptionalTrafficDescriptor();
+ switch (in.getDiscriminator()) {
+ case android.hardware.radio.V1_6.OptionalTrafficDescriptor.hidl_discriminator.noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case android.hardware.radio.V1_6.OptionalTrafficDescriptor.hidl_discriminator.value:
+ out.setValue(h2aTranslate(in.value()));
+ break;
+ default:
+ throw new RuntimeException(
+ "Unknown discriminator value: " + Integer.toString(in.getDiscriminator()));
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.TrafficDescriptor h2aTranslate(
+ android.hardware.radio.V1_6.TrafficDescriptor in) {
+ android.hardware.radio.TrafficDescriptor out =
+ new android.hardware.radio.TrafficDescriptor();
+ out.dnn = h2aTranslate(in.dnn);
+ out.osAppId = h2aTranslate(in.osAppId);
+ return out;
+ }
+
+ static public android.hardware.radio.OsAppId h2aTranslate(
+ android.hardware.radio.V1_6.OsAppId in) {
+ android.hardware.radio.OsAppId out = new android.hardware.radio.OsAppId();
+ if (in.osAppId != null) {
+ out.osAppId = new byte[in.osAppId.size()];
+ for (int i = 0; i < in.osAppId.size(); i++) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it
+ // doesn't suit your needs.
+ if (in.osAppId.get(i) > 127 || in.osAppId.get(i) < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.osAppId.get(i)");
+ }
+ out.osAppId[i] = in.osAppId.get(i);
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.SlicingConfig h2aTranslate(
+ android.hardware.radio.V1_6.SlicingConfig in) {
+ android.hardware.radio.SlicingConfig out = new android.hardware.radio.SlicingConfig();
+ if (in.urspRules != null) {
+ out.urspRules = new android.hardware.radio.UrspRule[in.urspRules.size()];
+ for (int i = 0; i < in.urspRules.size(); i++) {
+ out.urspRules[i] = h2aTranslate(in.urspRules.get(i));
+ }
+ }
+ if (in.sliceInfo != null) {
+ out.sliceInfo = new android.hardware.radio.SliceInfo[in.sliceInfo.size()];
+ for (int i = 0; i < in.sliceInfo.size(); i++) {
+ out.sliceInfo[i] = h2aTranslate(in.sliceInfo.get(i));
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.UrspRule h2aTranslate(
+ android.hardware.radio.V1_6.UrspRule in) {
+ android.hardware.radio.UrspRule out = new android.hardware.radio.UrspRule();
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.precedence > 127 || in.precedence < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.precedence");
+ }
+ out.precedence = in.precedence;
+ if (in.trafficDescriptors != null) {
+ out.trafficDescriptors =
+ new android.hardware.radio.TrafficDescriptor[in.trafficDescriptors.size()];
+ for (int i = 0; i < in.trafficDescriptors.size(); i++) {
+ out.trafficDescriptors[i] = h2aTranslate(in.trafficDescriptors.get(i));
+ }
+ }
+ if (in.routeSelectionDescriptor != null) {
+ out.routeSelectionDescriptor =
+ new android.hardware.radio
+ .RouteSelectionDescriptor[in.routeSelectionDescriptor.size()];
+ for (int i = 0; i < in.routeSelectionDescriptor.size(); i++) {
+ out.routeSelectionDescriptor[i] = h2aTranslate(in.routeSelectionDescriptor.get(i));
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.RouteSelectionDescriptor h2aTranslate(
+ android.hardware.radio.V1_6.RouteSelectionDescriptor in) {
+ android.hardware.radio.RouteSelectionDescriptor out =
+ new android.hardware.radio.RouteSelectionDescriptor();
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.precedence > 127 || in.precedence < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.precedence");
+ }
+ out.precedence = in.precedence;
+ out.sessionType = h2aTranslate(in.sessionType);
+ out.sscMode = h2aTranslate(in.sscMode);
+ if (in.sliceInfo != null) {
+ out.sliceInfo = new android.hardware.radio.SliceInfo[in.sliceInfo.size()];
+ for (int i = 0; i < in.sliceInfo.size(); i++) {
+ out.sliceInfo[i] = h2aTranslate(in.sliceInfo.get(i));
+ }
+ }
+ if (in.dnn != null) {
+ out.dnn = new String[in.dnn.size()];
+ for (int i = 0; i < in.dnn.size(); i++) {
+ out.dnn[i] = in.dnn.get(i);
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.OptionalPdpProtocolType h2aTranslate(
+ android.hardware.radio.V1_6.OptionalPdpProtocolType in) {
+ android.hardware.radio.OptionalPdpProtocolType out =
+ new android.hardware.radio.OptionalPdpProtocolType();
+ switch (in.getDiscriminator()) {
+ case android.hardware.radio.V1_6.OptionalPdpProtocolType.hidl_discriminator.noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case android.hardware.radio.V1_6.OptionalPdpProtocolType.hidl_discriminator.value:
+ out.setValue(in.value());
+ break;
+ default:
+ throw new RuntimeException(
+ "Unknown discriminator value: " + Integer.toString(in.getDiscriminator()));
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.OptionalSscMode h2aTranslate(
+ android.hardware.radio.V1_6.OptionalSscMode in) {
+ android.hardware.radio.OptionalSscMode out = new android.hardware.radio.OptionalSscMode();
+ switch (in.getDiscriminator()) {
+ case android.hardware.radio.V1_6.OptionalSscMode.hidl_discriminator.noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case android.hardware.radio.V1_6.OptionalSscMode.hidl_discriminator.value:
+ out.setValue(in.value());
+ break;
+ default:
+ throw new RuntimeException(
+ "Unknown discriminator value: " + Integer.toString(in.getDiscriminator()));
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.ImsiEncryptionInfo h2aTranslate(
+ android.hardware.radio.V1_6.ImsiEncryptionInfo in) {
+ android.hardware.radio.ImsiEncryptionInfo out =
+ new android.hardware.radio.ImsiEncryptionInfo();
+ out.mcc = in.base.mcc;
+ out.mnc = in.base.mnc;
+ if (in.base.carrierKey != null) {
+ out.carrierKey = new byte[in.base.carrierKey.size()];
+ for (int i = 0; i < in.base.carrierKey.size(); i++) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it
+ // doesn't suit your needs.
+ if (in.base.carrierKey.get(i) > 127 || in.base.carrierKey.get(i) < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.base.carrierKey.get(i)");
+ }
+ out.carrierKey[i] = in.base.carrierKey.get(i);
+ }
+ }
+ out.keyIdentifier = in.base.keyIdentifier;
+ out.expirationTime = in.base.expirationTime;
+ out.keyType = in.keyType;
+ return out;
+ }
+
+ static public android.hardware.radio.PhonebookRecordInfo h2aTranslate(
+ android.hardware.radio.V1_6.PhonebookRecordInfo in) {
+ android.hardware.radio.PhonebookRecordInfo out =
+ new android.hardware.radio.PhonebookRecordInfo();
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.recordId > 2147483647 || in.recordId < 0) {
+ throw new RuntimeException(
+ "Unsafe conversion between signed and unsigned scalars for field: in.recordId");
+ }
+ out.recordId = in.recordId;
+ out.name = in.name;
+ out.number = in.number;
+ if (in.emails != null) {
+ out.emails = new String[in.emails.size()];
+ for (int i = 0; i < in.emails.size(); i++) {
+ out.emails[i] = in.emails.get(i);
+ }
+ }
+ if (in.additionalNumbers != null) {
+ out.additionalNumbers = new String[in.additionalNumbers.size()];
+ for (int i = 0; i < in.additionalNumbers.size(); i++) {
+ out.additionalNumbers[i] = in.additionalNumbers.get(i);
+ }
+ }
+ return out;
+ }
+
+ static public android.hardware.radio.PhonebookCapacity h2aTranslate(
+ android.hardware.radio.V1_6.PhonebookCapacity in) {
+ android.hardware.radio.PhonebookCapacity out =
+ new android.hardware.radio.PhonebookCapacity();
+ out.maxAdnRecords = in.maxAdnRecords;
+ out.usedAdnRecords = in.usedAdnRecords;
+ out.maxEmailRecords = in.maxEmailRecords;
+ out.usedEmailRecords = in.usedEmailRecords;
+ out.maxAdditionalNumberRecords = in.maxAdditionalNumberRecords;
+ out.usedAdditionalNumberRecords = in.usedAdditionalNumberRecords;
+ out.maxNameLen = in.maxNameLen;
+ out.maxNumberLen = in.maxNumberLen;
+ out.maxEmailLen = in.maxEmailLen;
+ out.maxAdditionalNumberLen = in.maxAdditionalNumberLen;
+ return out;
+ }
+}
diff --git a/radio/aidl/android/hardware/radio/TtyMode.aidl b/radio/aidl/android/hardware/radio/TtyMode.aidl
new file mode 100644
index 0000000..344ba67
--- /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/UiccSubActStatus.aidl b/radio/aidl/android/hardware/radio/UiccSubActStatus.aidl
new file mode 100644
index 0000000..b2bb03e
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/UiccSubActStatus.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 UiccSubActStatus {
+ DEACTIVATE,
+ ACTIVATE,
+}
diff --git a/radio/aidl/android/hardware/radio/UrspRule.aidl b/radio/aidl/android/hardware/radio/UrspRule.aidl
new file mode 100644
index 0000000..244bcb1
--- /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.
+ */
+ byte 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 0000000..187130c
--- /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 0000000..8a22ed7
--- /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/UusDcs.aidl b/radio/aidl/android/hardware/radio/UusDcs.aidl
new file mode 100644
index 0000000..b157e47
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/UusDcs.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;
+
+/**
+ * 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
+ */
+@VintfStability
+@Backing(type="int")
+enum UusDcs {
+ /**
+ * User specified protocol
+ */
+ USP,
+ /**
+ * OSI higher layer protocol
+ */
+ OSIHLP,
+ /**
+ * X.244
+ */
+ X244,
+ /**
+ * Reserved for system management
+ */
+ RMCF,
+ /**
+ * IA5 characters
+ */
+ IA5C,
+}
diff --git a/radio/aidl/android/hardware/radio/UusInfo.aidl b/radio/aidl/android/hardware/radio/UusInfo.aidl
new file mode 100644
index 0000000..b766b0d
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/UusInfo.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.UusDcs;
+import android.hardware.radio.UusType;
+
+/**
+ * User-to-User Signaling Information defined in 3GPP 23.087 v8.0
+ */
+@VintfStability
+parcelable UusInfo {
+ /**
+ * UUS type
+ */
+ UusType uusType;
+ /**
+ * UUS data coding scheme
+ */
+ UusDcs uusDcs;
+ /**
+ * UUS data
+ */
+ String uusData;
+}
diff --git a/radio/aidl/android/hardware/radio/UusType.aidl b/radio/aidl/android/hardware/radio/UusType.aidl
new file mode 100644
index 0000000..af86c97
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/UusType.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;
+
+/**
+ * User-to-User signaling Info activation types derived from 3GPP 23.087 v8.0
+ */
+@VintfStability
+@Backing(type="int")
+enum UusType {
+ TYPE1_IMPLICIT,
+ TYPE1_REQUIRED,
+ TYPE1_NOT_REQUIRED,
+ TYPE2_REQUIRED,
+ TYPE2_NOT_REQUIRED,
+ TYPE3_REQUIRED,
+ TYPE3_NOT_REQUIRED,
+}
diff --git a/radio/aidl/android/hardware/radio/VoiceRegStateResult.aidl b/radio/aidl/android/hardware/radio/VoiceRegStateResult.aidl
new file mode 100644
index 0000000..897c663
--- /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/VopsIndicator.aidl b/radio/aidl/android/hardware/radio/VopsIndicator.aidl
new file mode 100644
index 0000000..0533be9
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/VopsIndicator.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;
+
+/**
+ * Defines the values for VoPS indicator of NR as per 3gpp spec 24.501 sec 9.10.3.5
+ */
+@VintfStability
+@Backing(type="byte")
+enum VopsIndicator {
+ /**
+ * IMS voice over PS session not supported
+ */
+ VOPS_NOT_SUPPORTED,
+ /**
+ * IMS voice over PS session supported over 3GPP access
+ */
+ VOPS_OVER_3GPP,
+ /**
+ * IMS voice over PS session supported over non-3GPP access
+ */
+ VOPS_OVER_NON_3GPP,
+}
diff --git a/radio/aidl/android/hardware/radio/WcdmaSignalStrength.aidl b/radio/aidl/android/hardware/radio/WcdmaSignalStrength.aidl
new file mode 100644
index 0000000..95a3455
--- /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/radio/aidl/android/hardware/radio/translate-ndk.cpp b/radio/aidl/android/hardware/radio/translate-ndk.cpp
new file mode 100644
index 0000000..0492ade
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/translate-ndk.cpp
@@ -0,0 +1,7404 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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/radio/translate-ndk.h"
+
+namespace android::h2a {
+
+static_assert(aidl::android::hardware::radio::RadioCdmaSmsConst::ADDRESS_MAX ==
+ static_cast<aidl::android::hardware::radio::RadioCdmaSmsConst>(
+ ::android::hardware::radio::V1_0::RadioCdmaSmsConst::ADDRESS_MAX));
+static_assert(aidl::android::hardware::radio::RadioCdmaSmsConst::SUBADDRESS_MAX ==
+ static_cast<aidl::android::hardware::radio::RadioCdmaSmsConst>(
+ ::android::hardware::radio::V1_0::RadioCdmaSmsConst::SUBADDRESS_MAX));
+static_assert(aidl::android::hardware::radio::RadioCdmaSmsConst::BEARER_DATA_MAX ==
+ static_cast<aidl::android::hardware::radio::RadioCdmaSmsConst>(
+ ::android::hardware::radio::V1_0::RadioCdmaSmsConst::BEARER_DATA_MAX));
+static_assert(aidl::android::hardware::radio::RadioCdmaSmsConst::UDH_MAX_SND_SIZE ==
+ static_cast<aidl::android::hardware::radio::RadioCdmaSmsConst>(
+ ::android::hardware::radio::V1_0::RadioCdmaSmsConst::UDH_MAX_SND_SIZE));
+static_assert(
+ aidl::android::hardware::radio::RadioCdmaSmsConst::UDH_EO_DATA_SEGMENT_MAX ==
+ static_cast<aidl::android::hardware::radio::RadioCdmaSmsConst>(
+ ::android::hardware::radio::V1_0::RadioCdmaSmsConst::UDH_EO_DATA_SEGMENT_MAX));
+static_assert(aidl::android::hardware::radio::RadioCdmaSmsConst::MAX_UD_HEADERS ==
+ static_cast<aidl::android::hardware::radio::RadioCdmaSmsConst>(
+ ::android::hardware::radio::V1_0::RadioCdmaSmsConst::MAX_UD_HEADERS));
+static_assert(aidl::android::hardware::radio::RadioCdmaSmsConst::USER_DATA_MAX ==
+ static_cast<aidl::android::hardware::radio::RadioCdmaSmsConst>(
+ ::android::hardware::radio::V1_0::RadioCdmaSmsConst::USER_DATA_MAX));
+static_assert(aidl::android::hardware::radio::RadioCdmaSmsConst::UDH_LARGE_PIC_SIZE ==
+ static_cast<aidl::android::hardware::radio::RadioCdmaSmsConst>(
+ ::android::hardware::radio::V1_0::RadioCdmaSmsConst::UDH_LARGE_PIC_SIZE));
+static_assert(aidl::android::hardware::radio::RadioCdmaSmsConst::UDH_SMALL_PIC_SIZE ==
+ static_cast<aidl::android::hardware::radio::RadioCdmaSmsConst>(
+ ::android::hardware::radio::V1_0::RadioCdmaSmsConst::UDH_SMALL_PIC_SIZE));
+static_assert(aidl::android::hardware::radio::RadioCdmaSmsConst::UDH_VAR_PIC_SIZE ==
+ static_cast<aidl::android::hardware::radio::RadioCdmaSmsConst>(
+ ::android::hardware::radio::V1_0::RadioCdmaSmsConst::UDH_VAR_PIC_SIZE));
+static_assert(aidl::android::hardware::radio::RadioCdmaSmsConst::UDH_ANIM_NUM_BITMAPS ==
+ static_cast<aidl::android::hardware::radio::RadioCdmaSmsConst>(
+ ::android::hardware::radio::V1_0::RadioCdmaSmsConst::UDH_ANIM_NUM_BITMAPS));
+static_assert(aidl::android::hardware::radio::RadioCdmaSmsConst::UDH_LARGE_BITMAP_SIZE ==
+ static_cast<aidl::android::hardware::radio::RadioCdmaSmsConst>(
+ ::android::hardware::radio::V1_0::RadioCdmaSmsConst::UDH_LARGE_BITMAP_SIZE));
+static_assert(aidl::android::hardware::radio::RadioCdmaSmsConst::UDH_SMALL_BITMAP_SIZE ==
+ static_cast<aidl::android::hardware::radio::RadioCdmaSmsConst>(
+ ::android::hardware::radio::V1_0::RadioCdmaSmsConst::UDH_SMALL_BITMAP_SIZE));
+static_assert(aidl::android::hardware::radio::RadioCdmaSmsConst::UDH_OTHER_SIZE ==
+ static_cast<aidl::android::hardware::radio::RadioCdmaSmsConst>(
+ ::android::hardware::radio::V1_0::RadioCdmaSmsConst::UDH_OTHER_SIZE));
+static_assert(aidl::android::hardware::radio::RadioCdmaSmsConst::IP_ADDRESS_SIZE ==
+ static_cast<aidl::android::hardware::radio::RadioCdmaSmsConst>(
+ ::android::hardware::radio::V1_0::RadioCdmaSmsConst::IP_ADDRESS_SIZE));
+
+static_assert(aidl::android::hardware::radio::RadioResponseType::SOLICITED ==
+ static_cast<aidl::android::hardware::radio::RadioResponseType>(
+ ::android::hardware::radio::V1_0::RadioResponseType::SOLICITED));
+static_assert(aidl::android::hardware::radio::RadioResponseType::SOLICITED_ACK ==
+ static_cast<aidl::android::hardware::radio::RadioResponseType>(
+ ::android::hardware::radio::V1_0::RadioResponseType::SOLICITED_ACK));
+static_assert(aidl::android::hardware::radio::RadioResponseType::SOLICITED_ACK_EXP ==
+ static_cast<aidl::android::hardware::radio::RadioResponseType>(
+ ::android::hardware::radio::V1_0::RadioResponseType::SOLICITED_ACK_EXP));
+
+static_assert(aidl::android::hardware::radio::RadioIndicationType::UNSOLICITED ==
+ static_cast<aidl::android::hardware::radio::RadioIndicationType>(
+ ::android::hardware::radio::V1_0::RadioIndicationType::UNSOLICITED));
+static_assert(aidl::android::hardware::radio::RadioIndicationType::UNSOLICITED_ACK_EXP ==
+ static_cast<aidl::android::hardware::radio::RadioIndicationType>(
+ ::android::hardware::radio::V1_0::RadioIndicationType::UNSOLICITED_ACK_EXP));
+
+static_assert(aidl::android::hardware::radio::RestrictedState::NONE ==
+ static_cast<aidl::android::hardware::radio::RestrictedState>(
+ ::android::hardware::radio::V1_0::RestrictedState::NONE));
+static_assert(aidl::android::hardware::radio::RestrictedState::CS_EMERGENCY ==
+ static_cast<aidl::android::hardware::radio::RestrictedState>(
+ ::android::hardware::radio::V1_0::RestrictedState::CS_EMERGENCY));
+static_assert(aidl::android::hardware::radio::RestrictedState::CS_NORMAL ==
+ static_cast<aidl::android::hardware::radio::RestrictedState>(
+ ::android::hardware::radio::V1_0::RestrictedState::CS_NORMAL));
+static_assert(aidl::android::hardware::radio::RestrictedState::CS_ALL ==
+ static_cast<aidl::android::hardware::radio::RestrictedState>(
+ ::android::hardware::radio::V1_0::RestrictedState::CS_ALL));
+static_assert(aidl::android::hardware::radio::RestrictedState::PS_ALL ==
+ static_cast<aidl::android::hardware::radio::RestrictedState>(
+ ::android::hardware::radio::V1_0::RestrictedState::PS_ALL));
+
+static_assert(aidl::android::hardware::radio::CardState::ABSENT ==
+ static_cast<aidl::android::hardware::radio::CardState>(
+ ::android::hardware::radio::V1_0::CardState::ABSENT));
+static_assert(aidl::android::hardware::radio::CardState::PRESENT ==
+ static_cast<aidl::android::hardware::radio::CardState>(
+ ::android::hardware::radio::V1_0::CardState::PRESENT));
+static_assert(aidl::android::hardware::radio::CardState::ERROR ==
+ static_cast<aidl::android::hardware::radio::CardState>(
+ ::android::hardware::radio::V1_0::CardState::ERROR));
+static_assert(aidl::android::hardware::radio::CardState::RESTRICTED ==
+ static_cast<aidl::android::hardware::radio::CardState>(
+ ::android::hardware::radio::V1_0::CardState::RESTRICTED));
+
+static_assert(aidl::android::hardware::radio::PinState::UNKNOWN ==
+ static_cast<aidl::android::hardware::radio::PinState>(
+ ::android::hardware::radio::V1_0::PinState::UNKNOWN));
+static_assert(aidl::android::hardware::radio::PinState::ENABLED_NOT_VERIFIED ==
+ static_cast<aidl::android::hardware::radio::PinState>(
+ ::android::hardware::radio::V1_0::PinState::ENABLED_NOT_VERIFIED));
+static_assert(aidl::android::hardware::radio::PinState::ENABLED_VERIFIED ==
+ static_cast<aidl::android::hardware::radio::PinState>(
+ ::android::hardware::radio::V1_0::PinState::ENABLED_VERIFIED));
+static_assert(aidl::android::hardware::radio::PinState::DISABLED ==
+ static_cast<aidl::android::hardware::radio::PinState>(
+ ::android::hardware::radio::V1_0::PinState::DISABLED));
+static_assert(aidl::android::hardware::radio::PinState::ENABLED_BLOCKED ==
+ static_cast<aidl::android::hardware::radio::PinState>(
+ ::android::hardware::radio::V1_0::PinState::ENABLED_BLOCKED));
+static_assert(aidl::android::hardware::radio::PinState::ENABLED_PERM_BLOCKED ==
+ static_cast<aidl::android::hardware::radio::PinState>(
+ ::android::hardware::radio::V1_0::PinState::ENABLED_PERM_BLOCKED));
+
+static_assert(aidl::android::hardware::radio::AppType::UNKNOWN ==
+ static_cast<aidl::android::hardware::radio::AppType>(
+ ::android::hardware::radio::V1_0::AppType::UNKNOWN));
+static_assert(aidl::android::hardware::radio::AppType::SIM ==
+ static_cast<aidl::android::hardware::radio::AppType>(
+ ::android::hardware::radio::V1_0::AppType::SIM));
+static_assert(aidl::android::hardware::radio::AppType::USIM ==
+ static_cast<aidl::android::hardware::radio::AppType>(
+ ::android::hardware::radio::V1_0::AppType::USIM));
+static_assert(aidl::android::hardware::radio::AppType::RUIM ==
+ static_cast<aidl::android::hardware::radio::AppType>(
+ ::android::hardware::radio::V1_0::AppType::RUIM));
+static_assert(aidl::android::hardware::radio::AppType::CSIM ==
+ static_cast<aidl::android::hardware::radio::AppType>(
+ ::android::hardware::radio::V1_0::AppType::CSIM));
+static_assert(aidl::android::hardware::radio::AppType::ISIM ==
+ static_cast<aidl::android::hardware::radio::AppType>(
+ ::android::hardware::radio::V1_0::AppType::ISIM));
+
+static_assert(aidl::android::hardware::radio::AppState::UNKNOWN ==
+ static_cast<aidl::android::hardware::radio::AppState>(
+ ::android::hardware::radio::V1_0::AppState::UNKNOWN));
+static_assert(aidl::android::hardware::radio::AppState::DETECTED ==
+ static_cast<aidl::android::hardware::radio::AppState>(
+ ::android::hardware::radio::V1_0::AppState::DETECTED));
+static_assert(aidl::android::hardware::radio::AppState::PIN ==
+ static_cast<aidl::android::hardware::radio::AppState>(
+ ::android::hardware::radio::V1_0::AppState::PIN));
+static_assert(aidl::android::hardware::radio::AppState::PUK ==
+ static_cast<aidl::android::hardware::radio::AppState>(
+ ::android::hardware::radio::V1_0::AppState::PUK));
+static_assert(aidl::android::hardware::radio::AppState::SUBSCRIPTION_PERSO ==
+ static_cast<aidl::android::hardware::radio::AppState>(
+ ::android::hardware::radio::V1_0::AppState::SUBSCRIPTION_PERSO));
+static_assert(aidl::android::hardware::radio::AppState::READY ==
+ static_cast<aidl::android::hardware::radio::AppState>(
+ ::android::hardware::radio::V1_0::AppState::READY));
+
+static_assert(aidl::android::hardware::radio::RadioState::OFF ==
+ static_cast<aidl::android::hardware::radio::RadioState>(
+ ::android::hardware::radio::V1_0::RadioState::OFF));
+static_assert(aidl::android::hardware::radio::RadioState::UNAVAILABLE ==
+ static_cast<aidl::android::hardware::radio::RadioState>(
+ ::android::hardware::radio::V1_0::RadioState::UNAVAILABLE));
+static_assert(aidl::android::hardware::radio::RadioState::ON ==
+ static_cast<aidl::android::hardware::radio::RadioState>(
+ ::android::hardware::radio::V1_0::RadioState::ON));
+
+static_assert(aidl::android::hardware::radio::SapConnectRsp::SUCCESS ==
+ static_cast<aidl::android::hardware::radio::SapConnectRsp>(
+ ::android::hardware::radio::V1_0::SapConnectRsp::SUCCESS));
+static_assert(aidl::android::hardware::radio::SapConnectRsp::CONNECT_FAILURE ==
+ static_cast<aidl::android::hardware::radio::SapConnectRsp>(
+ ::android::hardware::radio::V1_0::SapConnectRsp::CONNECT_FAILURE));
+static_assert(aidl::android::hardware::radio::SapConnectRsp::MSG_SIZE_TOO_LARGE ==
+ static_cast<aidl::android::hardware::radio::SapConnectRsp>(
+ ::android::hardware::radio::V1_0::SapConnectRsp::MSG_SIZE_TOO_LARGE));
+static_assert(aidl::android::hardware::radio::SapConnectRsp::MSG_SIZE_TOO_SMALL ==
+ static_cast<aidl::android::hardware::radio::SapConnectRsp>(
+ ::android::hardware::radio::V1_0::SapConnectRsp::MSG_SIZE_TOO_SMALL));
+static_assert(aidl::android::hardware::radio::SapConnectRsp::CONNECT_OK_CALL_ONGOING ==
+ static_cast<aidl::android::hardware::radio::SapConnectRsp>(
+ ::android::hardware::radio::V1_0::SapConnectRsp::CONNECT_OK_CALL_ONGOING));
+
+static_assert(aidl::android::hardware::radio::SapDisconnectType::GRACEFUL ==
+ static_cast<aidl::android::hardware::radio::SapDisconnectType>(
+ ::android::hardware::radio::V1_0::SapDisconnectType::GRACEFUL));
+static_assert(aidl::android::hardware::radio::SapDisconnectType::IMMEDIATE ==
+ static_cast<aidl::android::hardware::radio::SapDisconnectType>(
+ ::android::hardware::radio::V1_0::SapDisconnectType::IMMEDIATE));
+
+static_assert(aidl::android::hardware::radio::SapApduType::APDU ==
+ static_cast<aidl::android::hardware::radio::SapApduType>(
+ ::android::hardware::radio::V1_0::SapApduType::APDU));
+static_assert(aidl::android::hardware::radio::SapApduType::APDU7816 ==
+ static_cast<aidl::android::hardware::radio::SapApduType>(
+ ::android::hardware::radio::V1_0::SapApduType::APDU7816));
+
+static_assert(aidl::android::hardware::radio::SapResultCode::SUCCESS ==
+ static_cast<aidl::android::hardware::radio::SapResultCode>(
+ ::android::hardware::radio::V1_0::SapResultCode::SUCCESS));
+static_assert(aidl::android::hardware::radio::SapResultCode::GENERIC_FAILURE ==
+ static_cast<aidl::android::hardware::radio::SapResultCode>(
+ ::android::hardware::radio::V1_0::SapResultCode::GENERIC_FAILURE));
+static_assert(aidl::android::hardware::radio::SapResultCode::CARD_NOT_ACCESSSIBLE ==
+ static_cast<aidl::android::hardware::radio::SapResultCode>(
+ ::android::hardware::radio::V1_0::SapResultCode::CARD_NOT_ACCESSSIBLE));
+static_assert(aidl::android::hardware::radio::SapResultCode::CARD_ALREADY_POWERED_OFF ==
+ static_cast<aidl::android::hardware::radio::SapResultCode>(
+ ::android::hardware::radio::V1_0::SapResultCode::CARD_ALREADY_POWERED_OFF));
+static_assert(aidl::android::hardware::radio::SapResultCode::CARD_REMOVED ==
+ static_cast<aidl::android::hardware::radio::SapResultCode>(
+ ::android::hardware::radio::V1_0::SapResultCode::CARD_REMOVED));
+static_assert(aidl::android::hardware::radio::SapResultCode::CARD_ALREADY_POWERED_ON ==
+ static_cast<aidl::android::hardware::radio::SapResultCode>(
+ ::android::hardware::radio::V1_0::SapResultCode::CARD_ALREADY_POWERED_ON));
+static_assert(aidl::android::hardware::radio::SapResultCode::DATA_NOT_AVAILABLE ==
+ static_cast<aidl::android::hardware::radio::SapResultCode>(
+ ::android::hardware::radio::V1_0::SapResultCode::DATA_NOT_AVAILABLE));
+static_assert(aidl::android::hardware::radio::SapResultCode::NOT_SUPPORTED ==
+ static_cast<aidl::android::hardware::radio::SapResultCode>(
+ ::android::hardware::radio::V1_0::SapResultCode::NOT_SUPPORTED));
+
+static_assert(aidl::android::hardware::radio::SapStatus::UNKNOWN_ERROR ==
+ static_cast<aidl::android::hardware::radio::SapStatus>(
+ ::android::hardware::radio::V1_0::SapStatus::UNKNOWN_ERROR));
+static_assert(aidl::android::hardware::radio::SapStatus::CARD_RESET ==
+ static_cast<aidl::android::hardware::radio::SapStatus>(
+ ::android::hardware::radio::V1_0::SapStatus::CARD_RESET));
+static_assert(aidl::android::hardware::radio::SapStatus::CARD_NOT_ACCESSIBLE ==
+ static_cast<aidl::android::hardware::radio::SapStatus>(
+ ::android::hardware::radio::V1_0::SapStatus::CARD_NOT_ACCESSIBLE));
+static_assert(aidl::android::hardware::radio::SapStatus::CARD_REMOVED ==
+ static_cast<aidl::android::hardware::radio::SapStatus>(
+ ::android::hardware::radio::V1_0::SapStatus::CARD_REMOVED));
+static_assert(aidl::android::hardware::radio::SapStatus::CARD_INSERTED ==
+ static_cast<aidl::android::hardware::radio::SapStatus>(
+ ::android::hardware::radio::V1_0::SapStatus::CARD_INSERTED));
+static_assert(aidl::android::hardware::radio::SapStatus::RECOVERED ==
+ static_cast<aidl::android::hardware::radio::SapStatus>(
+ ::android::hardware::radio::V1_0::SapStatus::RECOVERED));
+
+static_assert(aidl::android::hardware::radio::SapTransferProtocol::T0 ==
+ static_cast<aidl::android::hardware::radio::SapTransferProtocol>(
+ ::android::hardware::radio::V1_0::SapTransferProtocol::T0));
+static_assert(aidl::android::hardware::radio::SapTransferProtocol::T1 ==
+ static_cast<aidl::android::hardware::radio::SapTransferProtocol>(
+ ::android::hardware::radio::V1_0::SapTransferProtocol::T1));
+
+static_assert(aidl::android::hardware::radio::CallState::ACTIVE ==
+ static_cast<aidl::android::hardware::radio::CallState>(
+ ::android::hardware::radio::V1_0::CallState::ACTIVE));
+static_assert(aidl::android::hardware::radio::CallState::HOLDING ==
+ static_cast<aidl::android::hardware::radio::CallState>(
+ ::android::hardware::radio::V1_0::CallState::HOLDING));
+static_assert(aidl::android::hardware::radio::CallState::DIALING ==
+ static_cast<aidl::android::hardware::radio::CallState>(
+ ::android::hardware::radio::V1_0::CallState::DIALING));
+static_assert(aidl::android::hardware::radio::CallState::ALERTING ==
+ static_cast<aidl::android::hardware::radio::CallState>(
+ ::android::hardware::radio::V1_0::CallState::ALERTING));
+static_assert(aidl::android::hardware::radio::CallState::INCOMING ==
+ static_cast<aidl::android::hardware::radio::CallState>(
+ ::android::hardware::radio::V1_0::CallState::INCOMING));
+static_assert(aidl::android::hardware::radio::CallState::WAITING ==
+ static_cast<aidl::android::hardware::radio::CallState>(
+ ::android::hardware::radio::V1_0::CallState::WAITING));
+
+static_assert(aidl::android::hardware::radio::UusType::TYPE1_IMPLICIT ==
+ static_cast<aidl::android::hardware::radio::UusType>(
+ ::android::hardware::radio::V1_0::UusType::TYPE1_IMPLICIT));
+static_assert(aidl::android::hardware::radio::UusType::TYPE1_REQUIRED ==
+ static_cast<aidl::android::hardware::radio::UusType>(
+ ::android::hardware::radio::V1_0::UusType::TYPE1_REQUIRED));
+static_assert(aidl::android::hardware::radio::UusType::TYPE1_NOT_REQUIRED ==
+ static_cast<aidl::android::hardware::radio::UusType>(
+ ::android::hardware::radio::V1_0::UusType::TYPE1_NOT_REQUIRED));
+static_assert(aidl::android::hardware::radio::UusType::TYPE2_REQUIRED ==
+ static_cast<aidl::android::hardware::radio::UusType>(
+ ::android::hardware::radio::V1_0::UusType::TYPE2_REQUIRED));
+static_assert(aidl::android::hardware::radio::UusType::TYPE2_NOT_REQUIRED ==
+ static_cast<aidl::android::hardware::radio::UusType>(
+ ::android::hardware::radio::V1_0::UusType::TYPE2_NOT_REQUIRED));
+static_assert(aidl::android::hardware::radio::UusType::TYPE3_REQUIRED ==
+ static_cast<aidl::android::hardware::radio::UusType>(
+ ::android::hardware::radio::V1_0::UusType::TYPE3_REQUIRED));
+static_assert(aidl::android::hardware::radio::UusType::TYPE3_NOT_REQUIRED ==
+ static_cast<aidl::android::hardware::radio::UusType>(
+ ::android::hardware::radio::V1_0::UusType::TYPE3_NOT_REQUIRED));
+
+static_assert(aidl::android::hardware::radio::UusDcs::USP ==
+ static_cast<aidl::android::hardware::radio::UusDcs>(
+ ::android::hardware::radio::V1_0::UusDcs::USP));
+static_assert(aidl::android::hardware::radio::UusDcs::OSIHLP ==
+ static_cast<aidl::android::hardware::radio::UusDcs>(
+ ::android::hardware::radio::V1_0::UusDcs::OSIHLP));
+static_assert(aidl::android::hardware::radio::UusDcs::X244 ==
+ static_cast<aidl::android::hardware::radio::UusDcs>(
+ ::android::hardware::radio::V1_0::UusDcs::X244));
+static_assert(aidl::android::hardware::radio::UusDcs::RMCF ==
+ static_cast<aidl::android::hardware::radio::UusDcs>(
+ ::android::hardware::radio::V1_0::UusDcs::RMCF));
+static_assert(aidl::android::hardware::radio::UusDcs::IA5C ==
+ static_cast<aidl::android::hardware::radio::UusDcs>(
+ ::android::hardware::radio::V1_0::UusDcs::IA5C));
+
+static_assert(aidl::android::hardware::radio::CallPresentation::ALLOWED ==
+ static_cast<aidl::android::hardware::radio::CallPresentation>(
+ ::android::hardware::radio::V1_0::CallPresentation::ALLOWED));
+static_assert(aidl::android::hardware::radio::CallPresentation::RESTRICTED ==
+ static_cast<aidl::android::hardware::radio::CallPresentation>(
+ ::android::hardware::radio::V1_0::CallPresentation::RESTRICTED));
+static_assert(aidl::android::hardware::radio::CallPresentation::UNKNOWN ==
+ static_cast<aidl::android::hardware::radio::CallPresentation>(
+ ::android::hardware::radio::V1_0::CallPresentation::UNKNOWN));
+static_assert(aidl::android::hardware::radio::CallPresentation::PAYPHONE ==
+ static_cast<aidl::android::hardware::radio::CallPresentation>(
+ ::android::hardware::radio::V1_0::CallPresentation::PAYPHONE));
+
+static_assert(aidl::android::hardware::radio::Clir::DEFAULT ==
+ static_cast<aidl::android::hardware::radio::Clir>(
+ ::android::hardware::radio::V1_0::Clir::DEFAULT));
+static_assert(aidl::android::hardware::radio::Clir::INVOCATION ==
+ static_cast<aidl::android::hardware::radio::Clir>(
+ ::android::hardware::radio::V1_0::Clir::INVOCATION));
+static_assert(aidl::android::hardware::radio::Clir::SUPPRESSION ==
+ static_cast<aidl::android::hardware::radio::Clir>(
+ ::android::hardware::radio::V1_0::Clir::SUPPRESSION));
+
+static_assert(aidl::android::hardware::radio::LastCallFailCause::UNOBTAINABLE_NUMBER ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::UNOBTAINABLE_NUMBER));
+static_assert(
+ aidl::android::hardware::radio::LastCallFailCause::NO_ROUTE_TO_DESTINATION ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::NO_ROUTE_TO_DESTINATION));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::CHANNEL_UNACCEPTABLE ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::CHANNEL_UNACCEPTABLE));
+static_assert(
+ aidl::android::hardware::radio::LastCallFailCause::OPERATOR_DETERMINED_BARRING ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::OPERATOR_DETERMINED_BARRING));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::NORMAL ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::NORMAL));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::BUSY ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::BUSY));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::NO_USER_RESPONDING ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::NO_USER_RESPONDING));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::NO_ANSWER_FROM_USER ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::NO_ANSWER_FROM_USER));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::CALL_REJECTED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::CALL_REJECTED));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::NUMBER_CHANGED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::NUMBER_CHANGED));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::PREEMPTION ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::PREEMPTION));
+static_assert(
+ aidl::android::hardware::radio::LastCallFailCause::DESTINATION_OUT_OF_ORDER ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::DESTINATION_OUT_OF_ORDER));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::INVALID_NUMBER_FORMAT ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::INVALID_NUMBER_FORMAT));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::FACILITY_REJECTED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::FACILITY_REJECTED));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::RESP_TO_STATUS_ENQUIRY ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::RESP_TO_STATUS_ENQUIRY));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::NORMAL_UNSPECIFIED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::NORMAL_UNSPECIFIED));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::CONGESTION ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::CONGESTION));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::NETWORK_OUT_OF_ORDER ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::NETWORK_OUT_OF_ORDER));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::TEMPORARY_FAILURE ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::TEMPORARY_FAILURE));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::SWITCHING_EQUIPMENT_CONGESTION ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::
+ SWITCHING_EQUIPMENT_CONGESTION));
+static_assert(
+ aidl::android::hardware::radio::LastCallFailCause::ACCESS_INFORMATION_DISCARDED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::ACCESS_INFORMATION_DISCARDED));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::
+ REQUESTED_CIRCUIT_OR_CHANNEL_NOT_AVAILABLE ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::
+ REQUESTED_CIRCUIT_OR_CHANNEL_NOT_AVAILABLE));
+static_assert(
+ aidl::android::hardware::radio::LastCallFailCause::RESOURCES_UNAVAILABLE_OR_UNSPECIFIED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::
+ RESOURCES_UNAVAILABLE_OR_UNSPECIFIED));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::QOS_UNAVAILABLE ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::QOS_UNAVAILABLE));
+static_assert(
+ aidl::android::hardware::radio::LastCallFailCause::REQUESTED_FACILITY_NOT_SUBSCRIBED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::
+ REQUESTED_FACILITY_NOT_SUBSCRIBED));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::INCOMING_CALLS_BARRED_WITHIN_CUG ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::
+ INCOMING_CALLS_BARRED_WITHIN_CUG));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::BEARER_CAPABILITY_NOT_AUTHORIZED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::
+ BEARER_CAPABILITY_NOT_AUTHORIZED));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::BEARER_CAPABILITY_UNAVAILABLE ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::
+ BEARER_CAPABILITY_UNAVAILABLE));
+static_assert(
+ aidl::android::hardware::radio::LastCallFailCause::SERVICE_OPTION_NOT_AVAILABLE ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::SERVICE_OPTION_NOT_AVAILABLE));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::BEARER_SERVICE_NOT_IMPLEMENTED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::
+ BEARER_SERVICE_NOT_IMPLEMENTED));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::ACM_LIMIT_EXCEEDED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::ACM_LIMIT_EXCEEDED));
+static_assert(
+ aidl::android::hardware::radio::LastCallFailCause::REQUESTED_FACILITY_NOT_IMPLEMENTED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::
+ REQUESTED_FACILITY_NOT_IMPLEMENTED));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::
+ ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::
+ ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE));
+static_assert(
+ aidl::android::hardware::radio::LastCallFailCause::SERVICE_OR_OPTION_NOT_IMPLEMENTED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::
+ SERVICE_OR_OPTION_NOT_IMPLEMENTED));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::INVALID_TRANSACTION_IDENTIFIER ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::
+ INVALID_TRANSACTION_IDENTIFIER));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::USER_NOT_MEMBER_OF_CUG ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::USER_NOT_MEMBER_OF_CUG));
+static_assert(
+ aidl::android::hardware::radio::LastCallFailCause::INCOMPATIBLE_DESTINATION ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::INCOMPATIBLE_DESTINATION));
+static_assert(
+ aidl::android::hardware::radio::LastCallFailCause::INVALID_TRANSIT_NW_SELECTION ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::INVALID_TRANSIT_NW_SELECTION));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::SEMANTICALLY_INCORRECT_MESSAGE ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::
+ SEMANTICALLY_INCORRECT_MESSAGE));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::INVALID_MANDATORY_INFORMATION ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::
+ INVALID_MANDATORY_INFORMATION));
+static_assert(
+ aidl::android::hardware::radio::LastCallFailCause::MESSAGE_TYPE_NON_IMPLEMENTED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::MESSAGE_TYPE_NON_IMPLEMENTED));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::
+ MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::
+ MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::INFORMATION_ELEMENT_NON_EXISTENT ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::
+ INFORMATION_ELEMENT_NON_EXISTENT));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::CONDITIONAL_IE_ERROR ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::CONDITIONAL_IE_ERROR));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::
+ MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::
+ MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE));
+static_assert(
+ aidl::android::hardware::radio::LastCallFailCause::RECOVERY_ON_TIMER_EXPIRED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::RECOVERY_ON_TIMER_EXPIRED));
+static_assert(
+ aidl::android::hardware::radio::LastCallFailCause::PROTOCOL_ERROR_UNSPECIFIED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::PROTOCOL_ERROR_UNSPECIFIED));
+static_assert(
+ aidl::android::hardware::radio::LastCallFailCause::INTERWORKING_UNSPECIFIED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::INTERWORKING_UNSPECIFIED));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::CALL_BARRED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::CALL_BARRED));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::FDN_BLOCKED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::FDN_BLOCKED));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::IMSI_UNKNOWN_IN_VLR ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::IMSI_UNKNOWN_IN_VLR));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::IMEI_NOT_ACCEPTED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::IMEI_NOT_ACCEPTED));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::DIAL_MODIFIED_TO_USSD ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::DIAL_MODIFIED_TO_USSD));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::DIAL_MODIFIED_TO_SS ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::DIAL_MODIFIED_TO_SS));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::DIAL_MODIFIED_TO_DIAL ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::DIAL_MODIFIED_TO_DIAL));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::RADIO_OFF ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::RADIO_OFF));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::OUT_OF_SERVICE ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::OUT_OF_SERVICE));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::NO_VALID_SIM ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::NO_VALID_SIM));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::RADIO_INTERNAL_ERROR ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::RADIO_INTERNAL_ERROR));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::NETWORK_RESP_TIMEOUT ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::NETWORK_RESP_TIMEOUT));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::NETWORK_REJECT ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::NETWORK_REJECT));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::RADIO_ACCESS_FAILURE ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::RADIO_ACCESS_FAILURE));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::RADIO_LINK_FAILURE ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::RADIO_LINK_FAILURE));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::RADIO_LINK_LOST ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::RADIO_LINK_LOST));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::RADIO_UPLINK_FAILURE ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::RADIO_UPLINK_FAILURE));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::RADIO_SETUP_FAILURE ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::RADIO_SETUP_FAILURE));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::RADIO_RELEASE_NORMAL ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::RADIO_RELEASE_NORMAL));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::RADIO_RELEASE_ABNORMAL ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::RADIO_RELEASE_ABNORMAL));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::ACCESS_CLASS_BLOCKED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::ACCESS_CLASS_BLOCKED));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::NETWORK_DETACH ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::NETWORK_DETACH));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::CDMA_LOCKED_UNTIL_POWER_CYCLE ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::
+ CDMA_LOCKED_UNTIL_POWER_CYCLE));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::CDMA_DROP ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::CDMA_DROP));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::CDMA_INTERCEPT ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::CDMA_INTERCEPT));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::CDMA_REORDER ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::CDMA_REORDER));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::CDMA_SO_REJECT ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::CDMA_SO_REJECT));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::CDMA_RETRY_ORDER ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::CDMA_RETRY_ORDER));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::CDMA_ACCESS_FAILURE ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::CDMA_ACCESS_FAILURE));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::CDMA_PREEMPTED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::CDMA_PREEMPTED));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::CDMA_NOT_EMERGENCY ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::CDMA_NOT_EMERGENCY));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::CDMA_ACCESS_BLOCKED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::CDMA_ACCESS_BLOCKED));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::OEM_CAUSE_1 ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::OEM_CAUSE_1));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::OEM_CAUSE_2 ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::OEM_CAUSE_2));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::OEM_CAUSE_3 ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::OEM_CAUSE_3));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::OEM_CAUSE_4 ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::OEM_CAUSE_4));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::OEM_CAUSE_5 ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::OEM_CAUSE_5));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::OEM_CAUSE_6 ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::OEM_CAUSE_6));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::OEM_CAUSE_7 ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::OEM_CAUSE_7));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::OEM_CAUSE_8 ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::OEM_CAUSE_8));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::OEM_CAUSE_9 ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::OEM_CAUSE_9));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::OEM_CAUSE_10 ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::OEM_CAUSE_10));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::OEM_CAUSE_11 ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::OEM_CAUSE_11));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::OEM_CAUSE_12 ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::OEM_CAUSE_12));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::OEM_CAUSE_13 ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::OEM_CAUSE_13));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::OEM_CAUSE_14 ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::OEM_CAUSE_14));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::OEM_CAUSE_15 ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::OEM_CAUSE_15));
+static_assert(aidl::android::hardware::radio::LastCallFailCause::ERROR_UNSPECIFIED ==
+ static_cast<aidl::android::hardware::radio::LastCallFailCause>(
+ ::android::hardware::radio::V1_0::LastCallFailCause::ERROR_UNSPECIFIED));
+
+static_assert(aidl::android::hardware::radio::HardwareConfigType::MODEM ==
+ static_cast<aidl::android::hardware::radio::HardwareConfigType>(
+ ::android::hardware::radio::V1_0::HardwareConfigType::MODEM));
+static_assert(aidl::android::hardware::radio::HardwareConfigType::SIM ==
+ static_cast<aidl::android::hardware::radio::HardwareConfigType>(
+ ::android::hardware::radio::V1_0::HardwareConfigType::SIM));
+
+static_assert(aidl::android::hardware::radio::RegState::NOT_REG_MT_NOT_SEARCHING_OP ==
+ static_cast<aidl::android::hardware::radio::RegState>(
+ ::android::hardware::radio::V1_0::RegState::NOT_REG_MT_NOT_SEARCHING_OP));
+static_assert(aidl::android::hardware::radio::RegState::REG_HOME ==
+ static_cast<aidl::android::hardware::radio::RegState>(
+ ::android::hardware::radio::V1_0::RegState::REG_HOME));
+static_assert(aidl::android::hardware::radio::RegState::NOT_REG_MT_SEARCHING_OP ==
+ static_cast<aidl::android::hardware::radio::RegState>(
+ ::android::hardware::radio::V1_0::RegState::NOT_REG_MT_SEARCHING_OP));
+static_assert(aidl::android::hardware::radio::RegState::REG_DENIED ==
+ static_cast<aidl::android::hardware::radio::RegState>(
+ ::android::hardware::radio::V1_0::RegState::REG_DENIED));
+static_assert(aidl::android::hardware::radio::RegState::UNKNOWN ==
+ static_cast<aidl::android::hardware::radio::RegState>(
+ ::android::hardware::radio::V1_0::RegState::UNKNOWN));
+static_assert(aidl::android::hardware::radio::RegState::REG_ROAMING ==
+ static_cast<aidl::android::hardware::radio::RegState>(
+ ::android::hardware::radio::V1_0::RegState::REG_ROAMING));
+static_assert(aidl::android::hardware::radio::RegState::NOT_REG_MT_NOT_SEARCHING_OP_EM ==
+ static_cast<aidl::android::hardware::radio::RegState>(
+ ::android::hardware::radio::V1_0::RegState::NOT_REG_MT_NOT_SEARCHING_OP_EM));
+static_assert(aidl::android::hardware::radio::RegState::NOT_REG_MT_SEARCHING_OP_EM ==
+ static_cast<aidl::android::hardware::radio::RegState>(
+ ::android::hardware::radio::V1_0::RegState::NOT_REG_MT_SEARCHING_OP_EM));
+static_assert(aidl::android::hardware::radio::RegState::REG_DENIED_EM ==
+ static_cast<aidl::android::hardware::radio::RegState>(
+ ::android::hardware::radio::V1_0::RegState::REG_DENIED_EM));
+static_assert(aidl::android::hardware::radio::RegState::UNKNOWN_EM ==
+ static_cast<aidl::android::hardware::radio::RegState>(
+ ::android::hardware::radio::V1_0::RegState::UNKNOWN_EM));
+
+static_assert(aidl::android::hardware::radio::DataProfileId::DEFAULT ==
+ static_cast<aidl::android::hardware::radio::DataProfileId>(
+ ::android::hardware::radio::V1_0::DataProfileId::DEFAULT));
+static_assert(aidl::android::hardware::radio::DataProfileId::TETHERED ==
+ static_cast<aidl::android::hardware::radio::DataProfileId>(
+ ::android::hardware::radio::V1_0::DataProfileId::TETHERED));
+static_assert(aidl::android::hardware::radio::DataProfileId::IMS ==
+ static_cast<aidl::android::hardware::radio::DataProfileId>(
+ ::android::hardware::radio::V1_0::DataProfileId::IMS));
+static_assert(aidl::android::hardware::radio::DataProfileId::FOTA ==
+ static_cast<aidl::android::hardware::radio::DataProfileId>(
+ ::android::hardware::radio::V1_0::DataProfileId::FOTA));
+static_assert(aidl::android::hardware::radio::DataProfileId::CBS ==
+ static_cast<aidl::android::hardware::radio::DataProfileId>(
+ ::android::hardware::radio::V1_0::DataProfileId::CBS));
+static_assert(aidl::android::hardware::radio::DataProfileId::OEM_BASE ==
+ static_cast<aidl::android::hardware::radio::DataProfileId>(
+ ::android::hardware::radio::V1_0::DataProfileId::OEM_BASE));
+static_assert(aidl::android::hardware::radio::DataProfileId::INVALID ==
+ static_cast<aidl::android::hardware::radio::DataProfileId>(
+ ::android::hardware::radio::V1_0::DataProfileId::INVALID));
+
+static_assert(aidl::android::hardware::radio::SmsAcknowledgeFailCause::MEMORY_CAPACITY_EXCEEDED ==
+ static_cast<aidl::android::hardware::radio::SmsAcknowledgeFailCause>(
+ ::android::hardware::radio::V1_0::SmsAcknowledgeFailCause::
+ MEMORY_CAPACITY_EXCEEDED));
+static_assert(
+ aidl::android::hardware::radio::SmsAcknowledgeFailCause::UNSPECIFIED_ERROR ==
+ static_cast<aidl::android::hardware::radio::SmsAcknowledgeFailCause>(
+ ::android::hardware::radio::V1_0::SmsAcknowledgeFailCause::UNSPECIFIED_ERROR));
+
+static_assert(aidl::android::hardware::radio::CallForwardInfoStatus::DISABLE ==
+ static_cast<aidl::android::hardware::radio::CallForwardInfoStatus>(
+ ::android::hardware::radio::V1_0::CallForwardInfoStatus::DISABLE));
+static_assert(aidl::android::hardware::radio::CallForwardInfoStatus::ENABLE ==
+ static_cast<aidl::android::hardware::radio::CallForwardInfoStatus>(
+ ::android::hardware::radio::V1_0::CallForwardInfoStatus::ENABLE));
+static_assert(aidl::android::hardware::radio::CallForwardInfoStatus::INTERROGATE ==
+ static_cast<aidl::android::hardware::radio::CallForwardInfoStatus>(
+ ::android::hardware::radio::V1_0::CallForwardInfoStatus::INTERROGATE));
+static_assert(aidl::android::hardware::radio::CallForwardInfoStatus::REGISTRATION ==
+ static_cast<aidl::android::hardware::radio::CallForwardInfoStatus>(
+ ::android::hardware::radio::V1_0::CallForwardInfoStatus::REGISTRATION));
+static_assert(aidl::android::hardware::radio::CallForwardInfoStatus::ERASURE ==
+ static_cast<aidl::android::hardware::radio::CallForwardInfoStatus>(
+ ::android::hardware::radio::V1_0::CallForwardInfoStatus::ERASURE));
+
+static_assert(aidl::android::hardware::radio::ClipStatus::CLIP_PROVISIONED ==
+ static_cast<aidl::android::hardware::radio::ClipStatus>(
+ ::android::hardware::radio::V1_0::ClipStatus::CLIP_PROVISIONED));
+static_assert(aidl::android::hardware::radio::ClipStatus::CLIP_UNPROVISIONED ==
+ static_cast<aidl::android::hardware::radio::ClipStatus>(
+ ::android::hardware::radio::V1_0::ClipStatus::CLIP_UNPROVISIONED));
+static_assert(aidl::android::hardware::radio::ClipStatus::UNKNOWN ==
+ static_cast<aidl::android::hardware::radio::ClipStatus>(
+ ::android::hardware::radio::V1_0::ClipStatus::UNKNOWN));
+
+static_assert(aidl::android::hardware::radio::SmsWriteArgsStatus::REC_UNREAD ==
+ static_cast<aidl::android::hardware::radio::SmsWriteArgsStatus>(
+ ::android::hardware::radio::V1_0::SmsWriteArgsStatus::REC_UNREAD));
+static_assert(aidl::android::hardware::radio::SmsWriteArgsStatus::REC_READ ==
+ static_cast<aidl::android::hardware::radio::SmsWriteArgsStatus>(
+ ::android::hardware::radio::V1_0::SmsWriteArgsStatus::REC_READ));
+static_assert(aidl::android::hardware::radio::SmsWriteArgsStatus::STO_UNSENT ==
+ static_cast<aidl::android::hardware::radio::SmsWriteArgsStatus>(
+ ::android::hardware::radio::V1_0::SmsWriteArgsStatus::STO_UNSENT));
+static_assert(aidl::android::hardware::radio::SmsWriteArgsStatus::STO_SENT ==
+ static_cast<aidl::android::hardware::radio::SmsWriteArgsStatus>(
+ ::android::hardware::radio::V1_0::SmsWriteArgsStatus::STO_SENT));
+
+static_assert(aidl::android::hardware::radio::RadioBandMode::BAND_MODE_UNSPECIFIED ==
+ static_cast<aidl::android::hardware::radio::RadioBandMode>(
+ ::android::hardware::radio::V1_0::RadioBandMode::BAND_MODE_UNSPECIFIED));
+static_assert(aidl::android::hardware::radio::RadioBandMode::BAND_MODE_EURO ==
+ static_cast<aidl::android::hardware::radio::RadioBandMode>(
+ ::android::hardware::radio::V1_0::RadioBandMode::BAND_MODE_EURO));
+static_assert(aidl::android::hardware::radio::RadioBandMode::BAND_MODE_USA ==
+ static_cast<aidl::android::hardware::radio::RadioBandMode>(
+ ::android::hardware::radio::V1_0::RadioBandMode::BAND_MODE_USA));
+static_assert(aidl::android::hardware::radio::RadioBandMode::BAND_MODE_JPN ==
+ static_cast<aidl::android::hardware::radio::RadioBandMode>(
+ ::android::hardware::radio::V1_0::RadioBandMode::BAND_MODE_JPN));
+static_assert(aidl::android::hardware::radio::RadioBandMode::BAND_MODE_AUS ==
+ static_cast<aidl::android::hardware::radio::RadioBandMode>(
+ ::android::hardware::radio::V1_0::RadioBandMode::BAND_MODE_AUS));
+static_assert(aidl::android::hardware::radio::RadioBandMode::BAND_MODE_AUS_2 ==
+ static_cast<aidl::android::hardware::radio::RadioBandMode>(
+ ::android::hardware::radio::V1_0::RadioBandMode::BAND_MODE_AUS_2));
+static_assert(aidl::android::hardware::radio::RadioBandMode::BAND_MODE_CELL_800 ==
+ static_cast<aidl::android::hardware::radio::RadioBandMode>(
+ ::android::hardware::radio::V1_0::RadioBandMode::BAND_MODE_CELL_800));
+static_assert(aidl::android::hardware::radio::RadioBandMode::BAND_MODE_PCS ==
+ static_cast<aidl::android::hardware::radio::RadioBandMode>(
+ ::android::hardware::radio::V1_0::RadioBandMode::BAND_MODE_PCS));
+static_assert(aidl::android::hardware::radio::RadioBandMode::BAND_MODE_JTACS ==
+ static_cast<aidl::android::hardware::radio::RadioBandMode>(
+ ::android::hardware::radio::V1_0::RadioBandMode::BAND_MODE_JTACS));
+static_assert(aidl::android::hardware::radio::RadioBandMode::BAND_MODE_KOREA_PCS ==
+ static_cast<aidl::android::hardware::radio::RadioBandMode>(
+ ::android::hardware::radio::V1_0::RadioBandMode::BAND_MODE_KOREA_PCS));
+static_assert(aidl::android::hardware::radio::RadioBandMode::BAND_MODE_5_450M ==
+ static_cast<aidl::android::hardware::radio::RadioBandMode>(
+ ::android::hardware::radio::V1_0::RadioBandMode::BAND_MODE_5_450M));
+static_assert(aidl::android::hardware::radio::RadioBandMode::BAND_MODE_IMT2000 ==
+ static_cast<aidl::android::hardware::radio::RadioBandMode>(
+ ::android::hardware::radio::V1_0::RadioBandMode::BAND_MODE_IMT2000));
+static_assert(aidl::android::hardware::radio::RadioBandMode::BAND_MODE_7_700M_2 ==
+ static_cast<aidl::android::hardware::radio::RadioBandMode>(
+ ::android::hardware::radio::V1_0::RadioBandMode::BAND_MODE_7_700M_2));
+static_assert(aidl::android::hardware::radio::RadioBandMode::BAND_MODE_8_1800M ==
+ static_cast<aidl::android::hardware::radio::RadioBandMode>(
+ ::android::hardware::radio::V1_0::RadioBandMode::BAND_MODE_8_1800M));
+static_assert(aidl::android::hardware::radio::RadioBandMode::BAND_MODE_9_900M ==
+ static_cast<aidl::android::hardware::radio::RadioBandMode>(
+ ::android::hardware::radio::V1_0::RadioBandMode::BAND_MODE_9_900M));
+static_assert(aidl::android::hardware::radio::RadioBandMode::BAND_MODE_10_800M_2 ==
+ static_cast<aidl::android::hardware::radio::RadioBandMode>(
+ ::android::hardware::radio::V1_0::RadioBandMode::BAND_MODE_10_800M_2));
+static_assert(aidl::android::hardware::radio::RadioBandMode::BAND_MODE_EURO_PAMR_400M ==
+ static_cast<aidl::android::hardware::radio::RadioBandMode>(
+ ::android::hardware::radio::V1_0::RadioBandMode::BAND_MODE_EURO_PAMR_400M));
+static_assert(aidl::android::hardware::radio::RadioBandMode::BAND_MODE_AWS ==
+ static_cast<aidl::android::hardware::radio::RadioBandMode>(
+ ::android::hardware::radio::V1_0::RadioBandMode::BAND_MODE_AWS));
+static_assert(aidl::android::hardware::radio::RadioBandMode::BAND_MODE_USA_2500M ==
+ static_cast<aidl::android::hardware::radio::RadioBandMode>(
+ ::android::hardware::radio::V1_0::RadioBandMode::BAND_MODE_USA_2500M));
+
+static_assert(aidl::android::hardware::radio::OperatorStatus::UNKNOWN ==
+ static_cast<aidl::android::hardware::radio::OperatorStatus>(
+ ::android::hardware::radio::V1_0::OperatorStatus::UNKNOWN));
+static_assert(aidl::android::hardware::radio::OperatorStatus::AVAILABLE ==
+ static_cast<aidl::android::hardware::radio::OperatorStatus>(
+ ::android::hardware::radio::V1_0::OperatorStatus::AVAILABLE));
+static_assert(aidl::android::hardware::radio::OperatorStatus::CURRENT ==
+ static_cast<aidl::android::hardware::radio::OperatorStatus>(
+ ::android::hardware::radio::V1_0::OperatorStatus::CURRENT));
+static_assert(aidl::android::hardware::radio::OperatorStatus::FORBIDDEN ==
+ static_cast<aidl::android::hardware::radio::OperatorStatus>(
+ ::android::hardware::radio::V1_0::OperatorStatus::FORBIDDEN));
+
+static_assert(aidl::android::hardware::radio::PreferredNetworkType::GSM_WCDMA ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::GSM_WCDMA));
+static_assert(aidl::android::hardware::radio::PreferredNetworkType::GSM_ONLY ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::GSM_ONLY));
+static_assert(aidl::android::hardware::radio::PreferredNetworkType::WCDMA ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::WCDMA));
+static_assert(aidl::android::hardware::radio::PreferredNetworkType::GSM_WCDMA_AUTO ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::GSM_WCDMA_AUTO));
+static_assert(aidl::android::hardware::radio::PreferredNetworkType::CDMA_EVDO_AUTO ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::CDMA_EVDO_AUTO));
+static_assert(aidl::android::hardware::radio::PreferredNetworkType::CDMA_ONLY ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::CDMA_ONLY));
+static_assert(aidl::android::hardware::radio::PreferredNetworkType::EVDO_ONLY ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::EVDO_ONLY));
+static_assert(
+ aidl::android::hardware::radio::PreferredNetworkType::GSM_WCDMA_CDMA_EVDO_AUTO ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::GSM_WCDMA_CDMA_EVDO_AUTO));
+static_assert(aidl::android::hardware::radio::PreferredNetworkType::LTE_CDMA_EVDO ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::LTE_CDMA_EVDO));
+static_assert(aidl::android::hardware::radio::PreferredNetworkType::LTE_GSM_WCDMA ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::LTE_GSM_WCDMA));
+static_assert(
+ aidl::android::hardware::radio::PreferredNetworkType::LTE_CMDA_EVDO_GSM_WCDMA ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::LTE_CMDA_EVDO_GSM_WCDMA));
+static_assert(aidl::android::hardware::radio::PreferredNetworkType::LTE_ONLY ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::LTE_ONLY));
+static_assert(aidl::android::hardware::radio::PreferredNetworkType::LTE_WCDMA ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::LTE_WCDMA));
+static_assert(aidl::android::hardware::radio::PreferredNetworkType::TD_SCDMA_ONLY ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::TD_SCDMA_ONLY));
+static_assert(aidl::android::hardware::radio::PreferredNetworkType::TD_SCDMA_WCDMA ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::TD_SCDMA_WCDMA));
+static_assert(aidl::android::hardware::radio::PreferredNetworkType::TD_SCDMA_LTE ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::TD_SCDMA_LTE));
+static_assert(aidl::android::hardware::radio::PreferredNetworkType::TD_SCDMA_GSM ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::TD_SCDMA_GSM));
+static_assert(aidl::android::hardware::radio::PreferredNetworkType::TD_SCDMA_GSM_LTE ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::TD_SCDMA_GSM_LTE));
+static_assert(aidl::android::hardware::radio::PreferredNetworkType::TD_SCDMA_GSM_WCDMA ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::TD_SCDMA_GSM_WCDMA));
+static_assert(aidl::android::hardware::radio::PreferredNetworkType::TD_SCDMA_WCDMA_LTE ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::TD_SCDMA_WCDMA_LTE));
+static_assert(
+ aidl::android::hardware::radio::PreferredNetworkType::TD_SCDMA_GSM_WCDMA_LTE ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::TD_SCDMA_GSM_WCDMA_LTE));
+static_assert(
+ aidl::android::hardware::radio::PreferredNetworkType::TD_SCDMA_GSM_WCDMA_CDMA_EVDO_AUTO ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::
+ TD_SCDMA_GSM_WCDMA_CDMA_EVDO_AUTO));
+static_assert(
+ aidl::android::hardware::radio::PreferredNetworkType::TD_SCDMA_LTE_CDMA_EVDO_GSM_WCDMA ==
+ static_cast<aidl::android::hardware::radio::PreferredNetworkType>(
+ ::android::hardware::radio::V1_0::PreferredNetworkType::
+ TD_SCDMA_LTE_CDMA_EVDO_GSM_WCDMA));
+
+static_assert(aidl::android::hardware::radio::CdmaSubscriptionSource::RUIM_SIM ==
+ static_cast<aidl::android::hardware::radio::CdmaSubscriptionSource>(
+ ::android::hardware::radio::V1_0::CdmaSubscriptionSource::RUIM_SIM));
+static_assert(aidl::android::hardware::radio::CdmaSubscriptionSource::NV ==
+ static_cast<aidl::android::hardware::radio::CdmaSubscriptionSource>(
+ ::android::hardware::radio::V1_0::CdmaSubscriptionSource::NV));
+
+static_assert(aidl::android::hardware::radio::CdmaRoamingType::HOME_NETWORK ==
+ static_cast<aidl::android::hardware::radio::CdmaRoamingType>(
+ ::android::hardware::radio::V1_0::CdmaRoamingType::HOME_NETWORK));
+static_assert(aidl::android::hardware::radio::CdmaRoamingType::AFFILIATED_ROAM ==
+ static_cast<aidl::android::hardware::radio::CdmaRoamingType>(
+ ::android::hardware::radio::V1_0::CdmaRoamingType::AFFILIATED_ROAM));
+static_assert(aidl::android::hardware::radio::CdmaRoamingType::ANY_ROAM ==
+ static_cast<aidl::android::hardware::radio::CdmaRoamingType>(
+ ::android::hardware::radio::V1_0::CdmaRoamingType::ANY_ROAM));
+
+static_assert(aidl::android::hardware::radio::TtyMode::OFF ==
+ static_cast<aidl::android::hardware::radio::TtyMode>(
+ ::android::hardware::radio::V1_0::TtyMode::OFF));
+static_assert(aidl::android::hardware::radio::TtyMode::FULL ==
+ static_cast<aidl::android::hardware::radio::TtyMode>(
+ ::android::hardware::radio::V1_0::TtyMode::FULL));
+static_assert(aidl::android::hardware::radio::TtyMode::HCO ==
+ static_cast<aidl::android::hardware::radio::TtyMode>(
+ ::android::hardware::radio::V1_0::TtyMode::HCO));
+static_assert(aidl::android::hardware::radio::TtyMode::VCO ==
+ static_cast<aidl::android::hardware::radio::TtyMode>(
+ ::android::hardware::radio::V1_0::TtyMode::VCO));
+
+static_assert(aidl::android::hardware::radio::NvItem::CDMA_MEID ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::CDMA_MEID));
+static_assert(aidl::android::hardware::radio::NvItem::CDMA_MIN ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::CDMA_MIN));
+static_assert(aidl::android::hardware::radio::NvItem::CDMA_MDN ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::CDMA_MDN));
+static_assert(aidl::android::hardware::radio::NvItem::CDMA_ACCOLC ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::CDMA_ACCOLC));
+static_assert(aidl::android::hardware::radio::NvItem::DEVICE_MSL ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::DEVICE_MSL));
+static_assert(aidl::android::hardware::radio::NvItem::RTN_RECONDITIONED_STATUS ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::RTN_RECONDITIONED_STATUS));
+static_assert(aidl::android::hardware::radio::NvItem::RTN_ACTIVATION_DATE ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::RTN_ACTIVATION_DATE));
+static_assert(aidl::android::hardware::radio::NvItem::RTN_LIFE_TIMER ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::RTN_LIFE_TIMER));
+static_assert(aidl::android::hardware::radio::NvItem::RTN_LIFE_CALLS ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::RTN_LIFE_CALLS));
+static_assert(aidl::android::hardware::radio::NvItem::RTN_LIFE_DATA_TX ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::RTN_LIFE_DATA_TX));
+static_assert(aidl::android::hardware::radio::NvItem::RTN_LIFE_DATA_RX ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::RTN_LIFE_DATA_RX));
+static_assert(aidl::android::hardware::radio::NvItem::OMADM_HFA_LEVEL ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::OMADM_HFA_LEVEL));
+static_assert(aidl::android::hardware::radio::NvItem::MIP_PROFILE_NAI ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::MIP_PROFILE_NAI));
+static_assert(aidl::android::hardware::radio::NvItem::MIP_PROFILE_HOME_ADDRESS ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::MIP_PROFILE_HOME_ADDRESS));
+static_assert(aidl::android::hardware::radio::NvItem::MIP_PROFILE_AAA_AUTH ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::MIP_PROFILE_AAA_AUTH));
+static_assert(aidl::android::hardware::radio::NvItem::MIP_PROFILE_HA_AUTH ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::MIP_PROFILE_HA_AUTH));
+static_assert(aidl::android::hardware::radio::NvItem::MIP_PROFILE_PRI_HA_ADDR ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::MIP_PROFILE_PRI_HA_ADDR));
+static_assert(aidl::android::hardware::radio::NvItem::MIP_PROFILE_SEC_HA_ADDR ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::MIP_PROFILE_SEC_HA_ADDR));
+static_assert(aidl::android::hardware::radio::NvItem::MIP_PROFILE_REV_TUN_PREF ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::MIP_PROFILE_REV_TUN_PREF));
+static_assert(aidl::android::hardware::radio::NvItem::MIP_PROFILE_HA_SPI ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::MIP_PROFILE_HA_SPI));
+static_assert(aidl::android::hardware::radio::NvItem::MIP_PROFILE_AAA_SPI ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::MIP_PROFILE_AAA_SPI));
+static_assert(aidl::android::hardware::radio::NvItem::MIP_PROFILE_MN_HA_SS ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::MIP_PROFILE_MN_HA_SS));
+static_assert(aidl::android::hardware::radio::NvItem::MIP_PROFILE_MN_AAA_SS ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::MIP_PROFILE_MN_AAA_SS));
+static_assert(aidl::android::hardware::radio::NvItem::CDMA_PRL_VERSION ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::CDMA_PRL_VERSION));
+static_assert(aidl::android::hardware::radio::NvItem::CDMA_BC10 ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::CDMA_BC10));
+static_assert(aidl::android::hardware::radio::NvItem::CDMA_BC14 ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::CDMA_BC14));
+static_assert(aidl::android::hardware::radio::NvItem::CDMA_SO68 ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::CDMA_SO68));
+static_assert(aidl::android::hardware::radio::NvItem::CDMA_SO73_COP0 ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::CDMA_SO73_COP0));
+static_assert(aidl::android::hardware::radio::NvItem::CDMA_SO73_COP1TO7 ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::CDMA_SO73_COP1TO7));
+static_assert(aidl::android::hardware::radio::NvItem::CDMA_1X_ADVANCED_ENABLED ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::CDMA_1X_ADVANCED_ENABLED));
+static_assert(aidl::android::hardware::radio::NvItem::CDMA_EHRPD_ENABLED ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::CDMA_EHRPD_ENABLED));
+static_assert(aidl::android::hardware::radio::NvItem::CDMA_EHRPD_FORCED ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::CDMA_EHRPD_FORCED));
+static_assert(aidl::android::hardware::radio::NvItem::LTE_BAND_ENABLE_25 ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::LTE_BAND_ENABLE_25));
+static_assert(aidl::android::hardware::radio::NvItem::LTE_BAND_ENABLE_26 ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::LTE_BAND_ENABLE_26));
+static_assert(aidl::android::hardware::radio::NvItem::LTE_BAND_ENABLE_41 ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::LTE_BAND_ENABLE_41));
+static_assert(aidl::android::hardware::radio::NvItem::LTE_SCAN_PRIORITY_25 ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::LTE_SCAN_PRIORITY_25));
+static_assert(aidl::android::hardware::radio::NvItem::LTE_SCAN_PRIORITY_26 ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::LTE_SCAN_PRIORITY_26));
+static_assert(aidl::android::hardware::radio::NvItem::LTE_SCAN_PRIORITY_41 ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::LTE_SCAN_PRIORITY_41));
+static_assert(aidl::android::hardware::radio::NvItem::LTE_HIDDEN_BAND_PRIORITY_25 ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::LTE_HIDDEN_BAND_PRIORITY_25));
+static_assert(aidl::android::hardware::radio::NvItem::LTE_HIDDEN_BAND_PRIORITY_26 ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::LTE_HIDDEN_BAND_PRIORITY_26));
+static_assert(aidl::android::hardware::radio::NvItem::LTE_HIDDEN_BAND_PRIORITY_41 ==
+ static_cast<aidl::android::hardware::radio::NvItem>(
+ ::android::hardware::radio::V1_0::NvItem::LTE_HIDDEN_BAND_PRIORITY_41));
+
+static_assert(aidl::android::hardware::radio::ResetNvType::RELOAD ==
+ static_cast<aidl::android::hardware::radio::ResetNvType>(
+ ::android::hardware::radio::V1_0::ResetNvType::RELOAD));
+static_assert(aidl::android::hardware::radio::ResetNvType::ERASE ==
+ static_cast<aidl::android::hardware::radio::ResetNvType>(
+ ::android::hardware::radio::V1_0::ResetNvType::ERASE));
+static_assert(aidl::android::hardware::radio::ResetNvType::FACTORY_RESET ==
+ static_cast<aidl::android::hardware::radio::ResetNvType>(
+ ::android::hardware::radio::V1_0::ResetNvType::FACTORY_RESET));
+
+static_assert(aidl::android::hardware::radio::HardwareConfigState::ENABLED ==
+ static_cast<aidl::android::hardware::radio::HardwareConfigState>(
+ ::android::hardware::radio::V1_0::HardwareConfigState::ENABLED));
+static_assert(aidl::android::hardware::radio::HardwareConfigState::STANDBY ==
+ static_cast<aidl::android::hardware::radio::HardwareConfigState>(
+ ::android::hardware::radio::V1_0::HardwareConfigState::STANDBY));
+static_assert(aidl::android::hardware::radio::HardwareConfigState::DISABLED ==
+ static_cast<aidl::android::hardware::radio::HardwareConfigState>(
+ ::android::hardware::radio::V1_0::HardwareConfigState::DISABLED));
+
+static_assert(aidl::android::hardware::radio::LceStatus::NOT_SUPPORTED ==
+ static_cast<aidl::android::hardware::radio::LceStatus>(
+ ::android::hardware::radio::V1_0::LceStatus::NOT_SUPPORTED));
+static_assert(aidl::android::hardware::radio::LceStatus::STOPPED ==
+ static_cast<aidl::android::hardware::radio::LceStatus>(
+ ::android::hardware::radio::V1_0::LceStatus::STOPPED));
+static_assert(aidl::android::hardware::radio::LceStatus::ACTIVE ==
+ static_cast<aidl::android::hardware::radio::LceStatus>(
+ ::android::hardware::radio::V1_0::LceStatus::ACTIVE));
+
+static_assert(aidl::android::hardware::radio::CarrierMatchType::ALL ==
+ static_cast<aidl::android::hardware::radio::CarrierMatchType>(
+ ::android::hardware::radio::V1_0::CarrierMatchType::ALL));
+static_assert(aidl::android::hardware::radio::CarrierMatchType::SPN ==
+ static_cast<aidl::android::hardware::radio::CarrierMatchType>(
+ ::android::hardware::radio::V1_0::CarrierMatchType::SPN));
+static_assert(aidl::android::hardware::radio::CarrierMatchType::IMSI_PREFIX ==
+ static_cast<aidl::android::hardware::radio::CarrierMatchType>(
+ ::android::hardware::radio::V1_0::CarrierMatchType::IMSI_PREFIX));
+static_assert(aidl::android::hardware::radio::CarrierMatchType::GID1 ==
+ static_cast<aidl::android::hardware::radio::CarrierMatchType>(
+ ::android::hardware::radio::V1_0::CarrierMatchType::GID1));
+static_assert(aidl::android::hardware::radio::CarrierMatchType::GID2 ==
+ static_cast<aidl::android::hardware::radio::CarrierMatchType>(
+ ::android::hardware::radio::V1_0::CarrierMatchType::GID2));
+
+static_assert(aidl::android::hardware::radio::CdmaSmsDigitMode::FOUR_BIT ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsDigitMode>(
+ ::android::hardware::radio::V1_0::CdmaSmsDigitMode::FOUR_BIT));
+static_assert(aidl::android::hardware::radio::CdmaSmsDigitMode::EIGHT_BIT ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsDigitMode>(
+ ::android::hardware::radio::V1_0::CdmaSmsDigitMode::EIGHT_BIT));
+
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberMode::NOT_DATA_NETWORK ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberMode>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberMode::NOT_DATA_NETWORK));
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberMode::DATA_NETWORK ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberMode>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberMode::DATA_NETWORK));
+
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberType::UNKNOWN ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberType>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberType::UNKNOWN));
+static_assert(
+ aidl::android::hardware::radio::CdmaSmsNumberType::INTERNATIONAL_OR_DATA_IP ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberType>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberType::INTERNATIONAL_OR_DATA_IP));
+static_assert(
+ aidl::android::hardware::radio::CdmaSmsNumberType::NATIONAL_OR_INTERNET_MAIL ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberType>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberType::NATIONAL_OR_INTERNET_MAIL));
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberType::NETWORK ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberType>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberType::NETWORK));
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberType::SUBSCRIBER ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberType>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberType::SUBSCRIBER));
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberType::ALPHANUMERIC ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberType>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberType::ALPHANUMERIC));
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberType::ABBREVIATED ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberType>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberType::ABBREVIATED));
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberType::RESERVED_7 ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberType>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberType::RESERVED_7));
+
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberPlan::UNKNOWN ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberPlan>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberPlan::UNKNOWN));
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberPlan::TELEPHONY ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberPlan>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberPlan::TELEPHONY));
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberPlan::RESERVED_2 ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberPlan>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberPlan::RESERVED_2));
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberPlan::DATA ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberPlan>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberPlan::DATA));
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberPlan::TELEX ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberPlan>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberPlan::TELEX));
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberPlan::RESERVED_5 ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberPlan>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberPlan::RESERVED_5));
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberPlan::RESERVED_6 ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberPlan>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberPlan::RESERVED_6));
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberPlan::RESERVED_7 ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberPlan>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberPlan::RESERVED_7));
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberPlan::RESERVED_8 ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberPlan>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberPlan::RESERVED_8));
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberPlan::PRIVATE ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberPlan>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberPlan::PRIVATE));
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberPlan::RESERVED_10 ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberPlan>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberPlan::RESERVED_10));
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberPlan::RESERVED_11 ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberPlan>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberPlan::RESERVED_11));
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberPlan::RESERVED_12 ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberPlan>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberPlan::RESERVED_12));
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberPlan::RESERVED_13 ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberPlan>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberPlan::RESERVED_13));
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberPlan::RESERVED_14 ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberPlan>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberPlan::RESERVED_14));
+static_assert(aidl::android::hardware::radio::CdmaSmsNumberPlan::RESERVED_15 ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsNumberPlan>(
+ ::android::hardware::radio::V1_0::CdmaSmsNumberPlan::RESERVED_15));
+
+static_assert(aidl::android::hardware::radio::CdmaSmsSubaddressType::NSAP ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsSubaddressType>(
+ ::android::hardware::radio::V1_0::CdmaSmsSubaddressType::NSAP));
+static_assert(aidl::android::hardware::radio::CdmaSmsSubaddressType::USER_SPECIFIED ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsSubaddressType>(
+ ::android::hardware::radio::V1_0::CdmaSmsSubaddressType::USER_SPECIFIED));
+
+static_assert(aidl::android::hardware::radio::CdmaSmsErrorClass::NO_ERROR ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsErrorClass>(
+ ::android::hardware::radio::V1_0::CdmaSmsErrorClass::NO_ERROR));
+static_assert(aidl::android::hardware::radio::CdmaSmsErrorClass::ERROR ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsErrorClass>(
+ ::android::hardware::radio::V1_0::CdmaSmsErrorClass::ERROR));
+
+static_assert(aidl::android::hardware::radio::CdmaSmsWriteArgsStatus::REC_UNREAD ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsWriteArgsStatus>(
+ ::android::hardware::radio::V1_0::CdmaSmsWriteArgsStatus::REC_UNREAD));
+static_assert(aidl::android::hardware::radio::CdmaSmsWriteArgsStatus::REC_READ ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsWriteArgsStatus>(
+ ::android::hardware::radio::V1_0::CdmaSmsWriteArgsStatus::REC_READ));
+static_assert(aidl::android::hardware::radio::CdmaSmsWriteArgsStatus::STO_UNSENT ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsWriteArgsStatus>(
+ ::android::hardware::radio::V1_0::CdmaSmsWriteArgsStatus::STO_UNSENT));
+static_assert(aidl::android::hardware::radio::CdmaSmsWriteArgsStatus::STO_SENT ==
+ static_cast<aidl::android::hardware::radio::CdmaSmsWriteArgsStatus>(
+ ::android::hardware::radio::V1_0::CdmaSmsWriteArgsStatus::STO_SENT));
+
+static_assert(aidl::android::hardware::radio::CellInfoType::NONE ==
+ static_cast<aidl::android::hardware::radio::CellInfoType>(
+ ::android::hardware::radio::V1_0::CellInfoType::NONE));
+static_assert(aidl::android::hardware::radio::CellInfoType::GSM ==
+ static_cast<aidl::android::hardware::radio::CellInfoType>(
+ ::android::hardware::radio::V1_0::CellInfoType::GSM));
+static_assert(aidl::android::hardware::radio::CellInfoType::CDMA ==
+ static_cast<aidl::android::hardware::radio::CellInfoType>(
+ ::android::hardware::radio::V1_0::CellInfoType::CDMA));
+static_assert(aidl::android::hardware::radio::CellInfoType::LTE ==
+ static_cast<aidl::android::hardware::radio::CellInfoType>(
+ ::android::hardware::radio::V1_0::CellInfoType::LTE));
+static_assert(aidl::android::hardware::radio::CellInfoType::WCDMA ==
+ static_cast<aidl::android::hardware::radio::CellInfoType>(
+ ::android::hardware::radio::V1_0::CellInfoType::WCDMA));
+static_assert(aidl::android::hardware::radio::CellInfoType::TD_SCDMA ==
+ static_cast<aidl::android::hardware::radio::CellInfoType>(
+ ::android::hardware::radio::V1_0::CellInfoType::TD_SCDMA));
+
+static_assert(aidl::android::hardware::radio::TimeStampType::UNKNOWN ==
+ static_cast<aidl::android::hardware::radio::TimeStampType>(
+ ::android::hardware::radio::V1_0::TimeStampType::UNKNOWN));
+static_assert(aidl::android::hardware::radio::TimeStampType::ANTENNA ==
+ static_cast<aidl::android::hardware::radio::TimeStampType>(
+ ::android::hardware::radio::V1_0::TimeStampType::ANTENNA));
+static_assert(aidl::android::hardware::radio::TimeStampType::MODEM ==
+ static_cast<aidl::android::hardware::radio::TimeStampType>(
+ ::android::hardware::radio::V1_0::TimeStampType::MODEM));
+static_assert(aidl::android::hardware::radio::TimeStampType::OEM_RIL ==
+ static_cast<aidl::android::hardware::radio::TimeStampType>(
+ ::android::hardware::radio::V1_0::TimeStampType::OEM_RIL));
+static_assert(aidl::android::hardware::radio::TimeStampType::JAVA_RIL ==
+ static_cast<aidl::android::hardware::radio::TimeStampType>(
+ ::android::hardware::radio::V1_0::TimeStampType::JAVA_RIL));
+
+static_assert(aidl::android::hardware::radio::ApnAuthType::NO_PAP_NO_CHAP ==
+ static_cast<aidl::android::hardware::radio::ApnAuthType>(
+ ::android::hardware::radio::V1_0::ApnAuthType::NO_PAP_NO_CHAP));
+static_assert(aidl::android::hardware::radio::ApnAuthType::PAP_NO_CHAP ==
+ static_cast<aidl::android::hardware::radio::ApnAuthType>(
+ ::android::hardware::radio::V1_0::ApnAuthType::PAP_NO_CHAP));
+static_assert(aidl::android::hardware::radio::ApnAuthType::NO_PAP_CHAP ==
+ static_cast<aidl::android::hardware::radio::ApnAuthType>(
+ ::android::hardware::radio::V1_0::ApnAuthType::NO_PAP_CHAP));
+static_assert(aidl::android::hardware::radio::ApnAuthType::PAP_CHAP ==
+ static_cast<aidl::android::hardware::radio::ApnAuthType>(
+ ::android::hardware::radio::V1_0::ApnAuthType::PAP_CHAP));
+
+static_assert(aidl::android::hardware::radio::RadioTechnologyFamily::THREE_GPP ==
+ static_cast<aidl::android::hardware::radio::RadioTechnologyFamily>(
+ ::android::hardware::radio::V1_0::RadioTechnologyFamily::THREE_GPP));
+static_assert(aidl::android::hardware::radio::RadioTechnologyFamily::THREE_GPP2 ==
+ static_cast<aidl::android::hardware::radio::RadioTechnologyFamily>(
+ ::android::hardware::radio::V1_0::RadioTechnologyFamily::THREE_GPP2));
+
+static_assert(aidl::android::hardware::radio::RadioCapabilityPhase::CONFIGURED ==
+ static_cast<aidl::android::hardware::radio::RadioCapabilityPhase>(
+ ::android::hardware::radio::V1_0::RadioCapabilityPhase::CONFIGURED));
+static_assert(aidl::android::hardware::radio::RadioCapabilityPhase::START ==
+ static_cast<aidl::android::hardware::radio::RadioCapabilityPhase>(
+ ::android::hardware::radio::V1_0::RadioCapabilityPhase::START));
+static_assert(aidl::android::hardware::radio::RadioCapabilityPhase::APPLY ==
+ static_cast<aidl::android::hardware::radio::RadioCapabilityPhase>(
+ ::android::hardware::radio::V1_0::RadioCapabilityPhase::APPLY));
+static_assert(aidl::android::hardware::radio::RadioCapabilityPhase::UNSOL_RSP ==
+ static_cast<aidl::android::hardware::radio::RadioCapabilityPhase>(
+ ::android::hardware::radio::V1_0::RadioCapabilityPhase::UNSOL_RSP));
+static_assert(aidl::android::hardware::radio::RadioCapabilityPhase::FINISH ==
+ static_cast<aidl::android::hardware::radio::RadioCapabilityPhase>(
+ ::android::hardware::radio::V1_0::RadioCapabilityPhase::FINISH));
+
+static_assert(aidl::android::hardware::radio::RadioCapabilityStatus::NONE ==
+ static_cast<aidl::android::hardware::radio::RadioCapabilityStatus>(
+ ::android::hardware::radio::V1_0::RadioCapabilityStatus::NONE));
+static_assert(aidl::android::hardware::radio::RadioCapabilityStatus::SUCCESS ==
+ static_cast<aidl::android::hardware::radio::RadioCapabilityStatus>(
+ ::android::hardware::radio::V1_0::RadioCapabilityStatus::SUCCESS));
+static_assert(aidl::android::hardware::radio::RadioCapabilityStatus::FAIL ==
+ static_cast<aidl::android::hardware::radio::RadioCapabilityStatus>(
+ ::android::hardware::radio::V1_0::RadioCapabilityStatus::FAIL));
+
+static_assert(aidl::android::hardware::radio::UssdModeType::NOTIFY ==
+ static_cast<aidl::android::hardware::radio::UssdModeType>(
+ ::android::hardware::radio::V1_0::UssdModeType::NOTIFY));
+static_assert(aidl::android::hardware::radio::UssdModeType::REQUEST ==
+ static_cast<aidl::android::hardware::radio::UssdModeType>(
+ ::android::hardware::radio::V1_0::UssdModeType::REQUEST));
+static_assert(aidl::android::hardware::radio::UssdModeType::NW_RELEASE ==
+ static_cast<aidl::android::hardware::radio::UssdModeType>(
+ ::android::hardware::radio::V1_0::UssdModeType::NW_RELEASE));
+static_assert(aidl::android::hardware::radio::UssdModeType::LOCAL_CLIENT ==
+ static_cast<aidl::android::hardware::radio::UssdModeType>(
+ ::android::hardware::radio::V1_0::UssdModeType::LOCAL_CLIENT));
+static_assert(aidl::android::hardware::radio::UssdModeType::NOT_SUPPORTED ==
+ static_cast<aidl::android::hardware::radio::UssdModeType>(
+ ::android::hardware::radio::V1_0::UssdModeType::NOT_SUPPORTED));
+static_assert(aidl::android::hardware::radio::UssdModeType::NW_TIMEOUT ==
+ static_cast<aidl::android::hardware::radio::UssdModeType>(
+ ::android::hardware::radio::V1_0::UssdModeType::NW_TIMEOUT));
+
+static_assert(aidl::android::hardware::radio::SimRefreshType::SIM_FILE_UPDATE ==
+ static_cast<aidl::android::hardware::radio::SimRefreshType>(
+ ::android::hardware::radio::V1_0::SimRefreshType::SIM_FILE_UPDATE));
+static_assert(aidl::android::hardware::radio::SimRefreshType::SIM_INIT ==
+ static_cast<aidl::android::hardware::radio::SimRefreshType>(
+ ::android::hardware::radio::V1_0::SimRefreshType::SIM_INIT));
+static_assert(aidl::android::hardware::radio::SimRefreshType::SIM_RESET ==
+ static_cast<aidl::android::hardware::radio::SimRefreshType>(
+ ::android::hardware::radio::V1_0::SimRefreshType::SIM_RESET));
+
+static_assert(aidl::android::hardware::radio::SrvccState::HANDOVER_STARTED ==
+ static_cast<aidl::android::hardware::radio::SrvccState>(
+ ::android::hardware::radio::V1_0::SrvccState::HANDOVER_STARTED));
+static_assert(aidl::android::hardware::radio::SrvccState::HANDOVER_COMPLETED ==
+ static_cast<aidl::android::hardware::radio::SrvccState>(
+ ::android::hardware::radio::V1_0::SrvccState::HANDOVER_COMPLETED));
+static_assert(aidl::android::hardware::radio::SrvccState::HANDOVER_FAILED ==
+ static_cast<aidl::android::hardware::radio::SrvccState>(
+ ::android::hardware::radio::V1_0::SrvccState::HANDOVER_FAILED));
+static_assert(aidl::android::hardware::radio::SrvccState::HANDOVER_CANCELED ==
+ static_cast<aidl::android::hardware::radio::SrvccState>(
+ ::android::hardware::radio::V1_0::SrvccState::HANDOVER_CANCELED));
+
+static_assert(aidl::android::hardware::radio::UiccSubActStatus::DEACTIVATE ==
+ static_cast<aidl::android::hardware::radio::UiccSubActStatus>(
+ ::android::hardware::radio::V1_0::UiccSubActStatus::DEACTIVATE));
+static_assert(aidl::android::hardware::radio::UiccSubActStatus::ACTIVATE ==
+ static_cast<aidl::android::hardware::radio::UiccSubActStatus>(
+ ::android::hardware::radio::V1_0::UiccSubActStatus::ACTIVATE));
+
+static_assert(aidl::android::hardware::radio::SubscriptionType::SUBSCRIPTION_1 ==
+ static_cast<aidl::android::hardware::radio::SubscriptionType>(
+ ::android::hardware::radio::V1_0::SubscriptionType::SUBSCRIPTION_1));
+static_assert(aidl::android::hardware::radio::SubscriptionType::SUBSCRIPTION_2 ==
+ static_cast<aidl::android::hardware::radio::SubscriptionType>(
+ ::android::hardware::radio::V1_0::SubscriptionType::SUBSCRIPTION_2));
+static_assert(aidl::android::hardware::radio::SubscriptionType::SUBSCRIPTION_3 ==
+ static_cast<aidl::android::hardware::radio::SubscriptionType>(
+ ::android::hardware::radio::V1_0::SubscriptionType::SUBSCRIPTION_3));
+
+static_assert(aidl::android::hardware::radio::DataProfileInfoType::COMMON ==
+ static_cast<aidl::android::hardware::radio::DataProfileInfoType>(
+ ::android::hardware::radio::V1_0::DataProfileInfoType::COMMON));
+static_assert(aidl::android::hardware::radio::DataProfileInfoType::THREE_GPP ==
+ static_cast<aidl::android::hardware::radio::DataProfileInfoType>(
+ ::android::hardware::radio::V1_0::DataProfileInfoType::THREE_GPP));
+static_assert(aidl::android::hardware::radio::DataProfileInfoType::THREE_GPP2 ==
+ static_cast<aidl::android::hardware::radio::DataProfileInfoType>(
+ ::android::hardware::radio::V1_0::DataProfileInfoType::THREE_GPP2));
+
+static_assert(aidl::android::hardware::radio::PhoneRestrictedState::NONE ==
+ static_cast<aidl::android::hardware::radio::PhoneRestrictedState>(
+ ::android::hardware::radio::V1_0::PhoneRestrictedState::NONE));
+static_assert(aidl::android::hardware::radio::PhoneRestrictedState::CS_EMERGENCY ==
+ static_cast<aidl::android::hardware::radio::PhoneRestrictedState>(
+ ::android::hardware::radio::V1_0::PhoneRestrictedState::CS_EMERGENCY));
+static_assert(aidl::android::hardware::radio::PhoneRestrictedState::CS_NORMAL ==
+ static_cast<aidl::android::hardware::radio::PhoneRestrictedState>(
+ ::android::hardware::radio::V1_0::PhoneRestrictedState::CS_NORMAL));
+static_assert(aidl::android::hardware::radio::PhoneRestrictedState::CS_ALL ==
+ static_cast<aidl::android::hardware::radio::PhoneRestrictedState>(
+ ::android::hardware::radio::V1_0::PhoneRestrictedState::CS_ALL));
+static_assert(aidl::android::hardware::radio::PhoneRestrictedState::PS_ALL ==
+ static_cast<aidl::android::hardware::radio::PhoneRestrictedState>(
+ ::android::hardware::radio::V1_0::PhoneRestrictedState::PS_ALL));
+
+static_assert(
+ aidl::android::hardware::radio::CdmaCallWaitingNumberPresentation::ALLOWED ==
+ static_cast<aidl::android::hardware::radio::CdmaCallWaitingNumberPresentation>(
+ ::android::hardware::radio::V1_0::CdmaCallWaitingNumberPresentation::ALLOWED));
+static_assert(
+ aidl::android::hardware::radio::CdmaCallWaitingNumberPresentation::RESTRICTED ==
+ static_cast<aidl::android::hardware::radio::CdmaCallWaitingNumberPresentation>(
+ ::android::hardware::radio::V1_0::CdmaCallWaitingNumberPresentation::RESTRICTED));
+static_assert(
+ aidl::android::hardware::radio::CdmaCallWaitingNumberPresentation::UNKNOWN ==
+ static_cast<aidl::android::hardware::radio::CdmaCallWaitingNumberPresentation>(
+ ::android::hardware::radio::V1_0::CdmaCallWaitingNumberPresentation::UNKNOWN));
+
+static_assert(aidl::android::hardware::radio::CdmaCallWaitingNumberType::UNKNOWN ==
+ static_cast<aidl::android::hardware::radio::CdmaCallWaitingNumberType>(
+ ::android::hardware::radio::V1_0::CdmaCallWaitingNumberType::UNKNOWN));
+static_assert(aidl::android::hardware::radio::CdmaCallWaitingNumberType::INTERNATIONAL ==
+ static_cast<aidl::android::hardware::radio::CdmaCallWaitingNumberType>(
+ ::android::hardware::radio::V1_0::CdmaCallWaitingNumberType::INTERNATIONAL));
+static_assert(aidl::android::hardware::radio::CdmaCallWaitingNumberType::NATIONAL ==
+ static_cast<aidl::android::hardware::radio::CdmaCallWaitingNumberType>(
+ ::android::hardware::radio::V1_0::CdmaCallWaitingNumberType::NATIONAL));
+static_assert(
+ aidl::android::hardware::radio::CdmaCallWaitingNumberType::NETWORK_SPECIFIC ==
+ static_cast<aidl::android::hardware::radio::CdmaCallWaitingNumberType>(
+ ::android::hardware::radio::V1_0::CdmaCallWaitingNumberType::NETWORK_SPECIFIC));
+static_assert(aidl::android::hardware::radio::CdmaCallWaitingNumberType::SUBSCRIBER ==
+ static_cast<aidl::android::hardware::radio::CdmaCallWaitingNumberType>(
+ ::android::hardware::radio::V1_0::CdmaCallWaitingNumberType::SUBSCRIBER));
+
+static_assert(aidl::android::hardware::radio::CdmaCallWaitingNumberPlan::UNKNOWN ==
+ static_cast<aidl::android::hardware::radio::CdmaCallWaitingNumberPlan>(
+ ::android::hardware::radio::V1_0::CdmaCallWaitingNumberPlan::UNKNOWN));
+static_assert(aidl::android::hardware::radio::CdmaCallWaitingNumberPlan::ISDN ==
+ static_cast<aidl::android::hardware::radio::CdmaCallWaitingNumberPlan>(
+ ::android::hardware::radio::V1_0::CdmaCallWaitingNumberPlan::ISDN));
+static_assert(aidl::android::hardware::radio::CdmaCallWaitingNumberPlan::DATA ==
+ static_cast<aidl::android::hardware::radio::CdmaCallWaitingNumberPlan>(
+ ::android::hardware::radio::V1_0::CdmaCallWaitingNumberPlan::DATA));
+static_assert(aidl::android::hardware::radio::CdmaCallWaitingNumberPlan::TELEX ==
+ static_cast<aidl::android::hardware::radio::CdmaCallWaitingNumberPlan>(
+ ::android::hardware::radio::V1_0::CdmaCallWaitingNumberPlan::TELEX));
+static_assert(aidl::android::hardware::radio::CdmaCallWaitingNumberPlan::NATIONAL ==
+ static_cast<aidl::android::hardware::radio::CdmaCallWaitingNumberPlan>(
+ ::android::hardware::radio::V1_0::CdmaCallWaitingNumberPlan::NATIONAL));
+static_assert(aidl::android::hardware::radio::CdmaCallWaitingNumberPlan::PRIVATE ==
+ static_cast<aidl::android::hardware::radio::CdmaCallWaitingNumberPlan>(
+ ::android::hardware::radio::V1_0::CdmaCallWaitingNumberPlan::PRIVATE));
+
+static_assert(aidl::android::hardware::radio::CdmaOtaProvisionStatus::SPL_UNLOCKED ==
+ static_cast<aidl::android::hardware::radio::CdmaOtaProvisionStatus>(
+ ::android::hardware::radio::V1_0::CdmaOtaProvisionStatus::SPL_UNLOCKED));
+static_assert(
+ aidl::android::hardware::radio::CdmaOtaProvisionStatus::SPC_RETRIES_EXCEEDED ==
+ static_cast<aidl::android::hardware::radio::CdmaOtaProvisionStatus>(
+ ::android::hardware::radio::V1_0::CdmaOtaProvisionStatus::SPC_RETRIES_EXCEEDED));
+static_assert(aidl::android::hardware::radio::CdmaOtaProvisionStatus::A_KEY_EXCHANGED ==
+ static_cast<aidl::android::hardware::radio::CdmaOtaProvisionStatus>(
+ ::android::hardware::radio::V1_0::CdmaOtaProvisionStatus::A_KEY_EXCHANGED));
+static_assert(aidl::android::hardware::radio::CdmaOtaProvisionStatus::SSD_UPDATED ==
+ static_cast<aidl::android::hardware::radio::CdmaOtaProvisionStatus>(
+ ::android::hardware::radio::V1_0::CdmaOtaProvisionStatus::SSD_UPDATED));
+static_assert(aidl::android::hardware::radio::CdmaOtaProvisionStatus::NAM_DOWNLOADED ==
+ static_cast<aidl::android::hardware::radio::CdmaOtaProvisionStatus>(
+ ::android::hardware::radio::V1_0::CdmaOtaProvisionStatus::NAM_DOWNLOADED));
+static_assert(aidl::android::hardware::radio::CdmaOtaProvisionStatus::MDN_DOWNLOADED ==
+ static_cast<aidl::android::hardware::radio::CdmaOtaProvisionStatus>(
+ ::android::hardware::radio::V1_0::CdmaOtaProvisionStatus::MDN_DOWNLOADED));
+static_assert(aidl::android::hardware::radio::CdmaOtaProvisionStatus::IMSI_DOWNLOADED ==
+ static_cast<aidl::android::hardware::radio::CdmaOtaProvisionStatus>(
+ ::android::hardware::radio::V1_0::CdmaOtaProvisionStatus::IMSI_DOWNLOADED));
+static_assert(aidl::android::hardware::radio::CdmaOtaProvisionStatus::PRL_DOWNLOADED ==
+ static_cast<aidl::android::hardware::radio::CdmaOtaProvisionStatus>(
+ ::android::hardware::radio::V1_0::CdmaOtaProvisionStatus::PRL_DOWNLOADED));
+static_assert(aidl::android::hardware::radio::CdmaOtaProvisionStatus::COMMITTED ==
+ static_cast<aidl::android::hardware::radio::CdmaOtaProvisionStatus>(
+ ::android::hardware::radio::V1_0::CdmaOtaProvisionStatus::COMMITTED));
+static_assert(aidl::android::hardware::radio::CdmaOtaProvisionStatus::OTAPA_STARTED ==
+ static_cast<aidl::android::hardware::radio::CdmaOtaProvisionStatus>(
+ ::android::hardware::radio::V1_0::CdmaOtaProvisionStatus::OTAPA_STARTED));
+static_assert(aidl::android::hardware::radio::CdmaOtaProvisionStatus::OTAPA_STOPPED ==
+ static_cast<aidl::android::hardware::radio::CdmaOtaProvisionStatus>(
+ ::android::hardware::radio::V1_0::CdmaOtaProvisionStatus::OTAPA_STOPPED));
+static_assert(aidl::android::hardware::radio::CdmaOtaProvisionStatus::OTAPA_ABORTED ==
+ static_cast<aidl::android::hardware::radio::CdmaOtaProvisionStatus>(
+ ::android::hardware::radio::V1_0::CdmaOtaProvisionStatus::OTAPA_ABORTED));
+
+static_assert(aidl::android::hardware::radio::CdmaInfoRecName::DISPLAY ==
+ static_cast<aidl::android::hardware::radio::CdmaInfoRecName>(
+ ::android::hardware::radio::V1_0::CdmaInfoRecName::DISPLAY));
+static_assert(aidl::android::hardware::radio::CdmaInfoRecName::CALLED_PARTY_NUMBER ==
+ static_cast<aidl::android::hardware::radio::CdmaInfoRecName>(
+ ::android::hardware::radio::V1_0::CdmaInfoRecName::CALLED_PARTY_NUMBER));
+static_assert(aidl::android::hardware::radio::CdmaInfoRecName::CALLING_PARTY_NUMBER ==
+ static_cast<aidl::android::hardware::radio::CdmaInfoRecName>(
+ ::android::hardware::radio::V1_0::CdmaInfoRecName::CALLING_PARTY_NUMBER));
+static_assert(aidl::android::hardware::radio::CdmaInfoRecName::CONNECTED_NUMBER ==
+ static_cast<aidl::android::hardware::radio::CdmaInfoRecName>(
+ ::android::hardware::radio::V1_0::CdmaInfoRecName::CONNECTED_NUMBER));
+static_assert(aidl::android::hardware::radio::CdmaInfoRecName::SIGNAL ==
+ static_cast<aidl::android::hardware::radio::CdmaInfoRecName>(
+ ::android::hardware::radio::V1_0::CdmaInfoRecName::SIGNAL));
+static_assert(aidl::android::hardware::radio::CdmaInfoRecName::REDIRECTING_NUMBER ==
+ static_cast<aidl::android::hardware::radio::CdmaInfoRecName>(
+ ::android::hardware::radio::V1_0::CdmaInfoRecName::REDIRECTING_NUMBER));
+static_assert(aidl::android::hardware::radio::CdmaInfoRecName::LINE_CONTROL ==
+ static_cast<aidl::android::hardware::radio::CdmaInfoRecName>(
+ ::android::hardware::radio::V1_0::CdmaInfoRecName::LINE_CONTROL));
+static_assert(aidl::android::hardware::radio::CdmaInfoRecName::EXTENDED_DISPLAY ==
+ static_cast<aidl::android::hardware::radio::CdmaInfoRecName>(
+ ::android::hardware::radio::V1_0::CdmaInfoRecName::EXTENDED_DISPLAY));
+static_assert(aidl::android::hardware::radio::CdmaInfoRecName::T53_CLIR ==
+ static_cast<aidl::android::hardware::radio::CdmaInfoRecName>(
+ ::android::hardware::radio::V1_0::CdmaInfoRecName::T53_CLIR));
+static_assert(aidl::android::hardware::radio::CdmaInfoRecName::T53_RELEASE ==
+ static_cast<aidl::android::hardware::radio::CdmaInfoRecName>(
+ ::android::hardware::radio::V1_0::CdmaInfoRecName::T53_RELEASE));
+static_assert(aidl::android::hardware::radio::CdmaInfoRecName::T53_AUDIO_CONTROL ==
+ static_cast<aidl::android::hardware::radio::CdmaInfoRecName>(
+ ::android::hardware::radio::V1_0::CdmaInfoRecName::T53_AUDIO_CONTROL));
+
+static_assert(aidl::android::hardware::radio::CdmaRedirectingReason::UNKNOWN ==
+ static_cast<aidl::android::hardware::radio::CdmaRedirectingReason>(
+ ::android::hardware::radio::V1_0::CdmaRedirectingReason::UNKNOWN));
+static_assert(
+ aidl::android::hardware::radio::CdmaRedirectingReason::CALL_FORWARDING_BUSY ==
+ static_cast<aidl::android::hardware::radio::CdmaRedirectingReason>(
+ ::android::hardware::radio::V1_0::CdmaRedirectingReason::CALL_FORWARDING_BUSY));
+static_assert(
+ aidl::android::hardware::radio::CdmaRedirectingReason::CALL_FORWARDING_NO_REPLY ==
+ static_cast<aidl::android::hardware::radio::CdmaRedirectingReason>(
+ ::android::hardware::radio::V1_0::CdmaRedirectingReason::CALL_FORWARDING_NO_REPLY));
+static_assert(
+ aidl::android::hardware::radio::CdmaRedirectingReason::CALLED_DTE_OUT_OF_ORDER ==
+ static_cast<aidl::android::hardware::radio::CdmaRedirectingReason>(
+ ::android::hardware::radio::V1_0::CdmaRedirectingReason::CALLED_DTE_OUT_OF_ORDER));
+static_assert(
+ aidl::android::hardware::radio::CdmaRedirectingReason::CALL_FORWARDING_BY_THE_CALLED_DTE ==
+ static_cast<aidl::android::hardware::radio::CdmaRedirectingReason>(
+ ::android::hardware::radio::V1_0::CdmaRedirectingReason::
+ CALL_FORWARDING_BY_THE_CALLED_DTE));
+static_assert(
+ aidl::android::hardware::radio::CdmaRedirectingReason::CALL_FORWARDING_UNCONDITIONAL ==
+ static_cast<aidl::android::hardware::radio::CdmaRedirectingReason>(
+ ::android::hardware::radio::V1_0::CdmaRedirectingReason::
+ CALL_FORWARDING_UNCONDITIONAL));
+static_assert(aidl::android::hardware::radio::CdmaRedirectingReason::RESERVED ==
+ static_cast<aidl::android::hardware::radio::CdmaRedirectingReason>(
+ ::android::hardware::radio::V1_0::CdmaRedirectingReason::RESERVED));
+
+static_assert(aidl::android::hardware::radio::SsServiceType::CFU ==
+ static_cast<aidl::android::hardware::radio::SsServiceType>(
+ ::android::hardware::radio::V1_0::SsServiceType::CFU));
+static_assert(aidl::android::hardware::radio::SsServiceType::CF_BUSY ==
+ static_cast<aidl::android::hardware::radio::SsServiceType>(
+ ::android::hardware::radio::V1_0::SsServiceType::CF_BUSY));
+static_assert(aidl::android::hardware::radio::SsServiceType::CF_NO_REPLY ==
+ static_cast<aidl::android::hardware::radio::SsServiceType>(
+ ::android::hardware::radio::V1_0::SsServiceType::CF_NO_REPLY));
+static_assert(aidl::android::hardware::radio::SsServiceType::CF_NOT_REACHABLE ==
+ static_cast<aidl::android::hardware::radio::SsServiceType>(
+ ::android::hardware::radio::V1_0::SsServiceType::CF_NOT_REACHABLE));
+static_assert(aidl::android::hardware::radio::SsServiceType::CF_ALL ==
+ static_cast<aidl::android::hardware::radio::SsServiceType>(
+ ::android::hardware::radio::V1_0::SsServiceType::CF_ALL));
+static_assert(aidl::android::hardware::radio::SsServiceType::CF_ALL_CONDITIONAL ==
+ static_cast<aidl::android::hardware::radio::SsServiceType>(
+ ::android::hardware::radio::V1_0::SsServiceType::CF_ALL_CONDITIONAL));
+static_assert(aidl::android::hardware::radio::SsServiceType::CLIP ==
+ static_cast<aidl::android::hardware::radio::SsServiceType>(
+ ::android::hardware::radio::V1_0::SsServiceType::CLIP));
+static_assert(aidl::android::hardware::radio::SsServiceType::CLIR ==
+ static_cast<aidl::android::hardware::radio::SsServiceType>(
+ ::android::hardware::radio::V1_0::SsServiceType::CLIR));
+static_assert(aidl::android::hardware::radio::SsServiceType::COLP ==
+ static_cast<aidl::android::hardware::radio::SsServiceType>(
+ ::android::hardware::radio::V1_0::SsServiceType::COLP));
+static_assert(aidl::android::hardware::radio::SsServiceType::COLR ==
+ static_cast<aidl::android::hardware::radio::SsServiceType>(
+ ::android::hardware::radio::V1_0::SsServiceType::COLR));
+static_assert(aidl::android::hardware::radio::SsServiceType::WAIT ==
+ static_cast<aidl::android::hardware::radio::SsServiceType>(
+ ::android::hardware::radio::V1_0::SsServiceType::WAIT));
+static_assert(aidl::android::hardware::radio::SsServiceType::BAOC ==
+ static_cast<aidl::android::hardware::radio::SsServiceType>(
+ ::android::hardware::radio::V1_0::SsServiceType::BAOC));
+static_assert(aidl::android::hardware::radio::SsServiceType::BAOIC ==
+ static_cast<aidl::android::hardware::radio::SsServiceType>(
+ ::android::hardware::radio::V1_0::SsServiceType::BAOIC));
+static_assert(aidl::android::hardware::radio::SsServiceType::BAOIC_EXC_HOME ==
+ static_cast<aidl::android::hardware::radio::SsServiceType>(
+ ::android::hardware::radio::V1_0::SsServiceType::BAOIC_EXC_HOME));
+static_assert(aidl::android::hardware::radio::SsServiceType::BAIC ==
+ static_cast<aidl::android::hardware::radio::SsServiceType>(
+ ::android::hardware::radio::V1_0::SsServiceType::BAIC));
+static_assert(aidl::android::hardware::radio::SsServiceType::BAIC_ROAMING ==
+ static_cast<aidl::android::hardware::radio::SsServiceType>(
+ ::android::hardware::radio::V1_0::SsServiceType::BAIC_ROAMING));
+static_assert(aidl::android::hardware::radio::SsServiceType::ALL_BARRING ==
+ static_cast<aidl::android::hardware::radio::SsServiceType>(
+ ::android::hardware::radio::V1_0::SsServiceType::ALL_BARRING));
+static_assert(aidl::android::hardware::radio::SsServiceType::OUTGOING_BARRING ==
+ static_cast<aidl::android::hardware::radio::SsServiceType>(
+ ::android::hardware::radio::V1_0::SsServiceType::OUTGOING_BARRING));
+static_assert(aidl::android::hardware::radio::SsServiceType::INCOMING_BARRING ==
+ static_cast<aidl::android::hardware::radio::SsServiceType>(
+ ::android::hardware::radio::V1_0::SsServiceType::INCOMING_BARRING));
+
+static_assert(aidl::android::hardware::radio::SsRequestType::ACTIVATION ==
+ static_cast<aidl::android::hardware::radio::SsRequestType>(
+ ::android::hardware::radio::V1_0::SsRequestType::ACTIVATION));
+static_assert(aidl::android::hardware::radio::SsRequestType::DEACTIVATION ==
+ static_cast<aidl::android::hardware::radio::SsRequestType>(
+ ::android::hardware::radio::V1_0::SsRequestType::DEACTIVATION));
+static_assert(aidl::android::hardware::radio::SsRequestType::INTERROGATION ==
+ static_cast<aidl::android::hardware::radio::SsRequestType>(
+ ::android::hardware::radio::V1_0::SsRequestType::INTERROGATION));
+static_assert(aidl::android::hardware::radio::SsRequestType::REGISTRATION ==
+ static_cast<aidl::android::hardware::radio::SsRequestType>(
+ ::android::hardware::radio::V1_0::SsRequestType::REGISTRATION));
+static_assert(aidl::android::hardware::radio::SsRequestType::ERASURE ==
+ static_cast<aidl::android::hardware::radio::SsRequestType>(
+ ::android::hardware::radio::V1_0::SsRequestType::ERASURE));
+
+static_assert(
+ aidl::android::hardware::radio::SsTeleserviceType::ALL_TELE_AND_BEARER_SERVICES ==
+ static_cast<aidl::android::hardware::radio::SsTeleserviceType>(
+ ::android::hardware::radio::V1_0::SsTeleserviceType::ALL_TELE_AND_BEARER_SERVICES));
+static_assert(aidl::android::hardware::radio::SsTeleserviceType::ALL_TELESEVICES ==
+ static_cast<aidl::android::hardware::radio::SsTeleserviceType>(
+ ::android::hardware::radio::V1_0::SsTeleserviceType::ALL_TELESEVICES));
+static_assert(aidl::android::hardware::radio::SsTeleserviceType::TELEPHONY ==
+ static_cast<aidl::android::hardware::radio::SsTeleserviceType>(
+ ::android::hardware::radio::V1_0::SsTeleserviceType::TELEPHONY));
+static_assert(aidl::android::hardware::radio::SsTeleserviceType::ALL_DATA_TELESERVICES ==
+ static_cast<aidl::android::hardware::radio::SsTeleserviceType>(
+ ::android::hardware::radio::V1_0::SsTeleserviceType::ALL_DATA_TELESERVICES));
+static_assert(aidl::android::hardware::radio::SsTeleserviceType::SMS_SERVICES ==
+ static_cast<aidl::android::hardware::radio::SsTeleserviceType>(
+ ::android::hardware::radio::V1_0::SsTeleserviceType::SMS_SERVICES));
+static_assert(
+ aidl::android::hardware::radio::SsTeleserviceType::ALL_TELESERVICES_EXCEPT_SMS ==
+ static_cast<aidl::android::hardware::radio::SsTeleserviceType>(
+ ::android::hardware::radio::V1_0::SsTeleserviceType::ALL_TELESERVICES_EXCEPT_SMS));
+
+static_assert(aidl::android::hardware::radio::SuppServiceClass::NONE ==
+ static_cast<aidl::android::hardware::radio::SuppServiceClass>(
+ ::android::hardware::radio::V1_0::SuppServiceClass::NONE));
+static_assert(aidl::android::hardware::radio::SuppServiceClass::VOICE ==
+ static_cast<aidl::android::hardware::radio::SuppServiceClass>(
+ ::android::hardware::radio::V1_0::SuppServiceClass::VOICE));
+static_assert(aidl::android::hardware::radio::SuppServiceClass::DATA ==
+ static_cast<aidl::android::hardware::radio::SuppServiceClass>(
+ ::android::hardware::radio::V1_0::SuppServiceClass::DATA));
+static_assert(aidl::android::hardware::radio::SuppServiceClass::FAX ==
+ static_cast<aidl::android::hardware::radio::SuppServiceClass>(
+ ::android::hardware::radio::V1_0::SuppServiceClass::FAX));
+static_assert(aidl::android::hardware::radio::SuppServiceClass::SMS ==
+ static_cast<aidl::android::hardware::radio::SuppServiceClass>(
+ ::android::hardware::radio::V1_0::SuppServiceClass::SMS));
+static_assert(aidl::android::hardware::radio::SuppServiceClass::DATA_SYNC ==
+ static_cast<aidl::android::hardware::radio::SuppServiceClass>(
+ ::android::hardware::radio::V1_0::SuppServiceClass::DATA_SYNC));
+static_assert(aidl::android::hardware::radio::SuppServiceClass::DATA_ASYNC ==
+ static_cast<aidl::android::hardware::radio::SuppServiceClass>(
+ ::android::hardware::radio::V1_0::SuppServiceClass::DATA_ASYNC));
+static_assert(aidl::android::hardware::radio::SuppServiceClass::PACKET ==
+ static_cast<aidl::android::hardware::radio::SuppServiceClass>(
+ ::android::hardware::radio::V1_0::SuppServiceClass::PACKET));
+static_assert(aidl::android::hardware::radio::SuppServiceClass::PAD ==
+ static_cast<aidl::android::hardware::radio::SuppServiceClass>(
+ ::android::hardware::radio::V1_0::SuppServiceClass::PAD));
+static_assert(aidl::android::hardware::radio::SuppServiceClass::MAX ==
+ static_cast<aidl::android::hardware::radio::SuppServiceClass>(
+ ::android::hardware::radio::V1_0::SuppServiceClass::MAX));
+
+static_assert(aidl::android::hardware::radio::MvnoType::NONE ==
+ static_cast<aidl::android::hardware::radio::MvnoType>(
+ ::android::hardware::radio::V1_0::MvnoType::NONE));
+static_assert(aidl::android::hardware::radio::MvnoType::IMSI ==
+ static_cast<aidl::android::hardware::radio::MvnoType>(
+ ::android::hardware::radio::V1_0::MvnoType::IMSI));
+static_assert(aidl::android::hardware::radio::MvnoType::GID ==
+ static_cast<aidl::android::hardware::radio::MvnoType>(
+ ::android::hardware::radio::V1_0::MvnoType::GID));
+static_assert(aidl::android::hardware::radio::MvnoType::SPN ==
+ static_cast<aidl::android::hardware::radio::MvnoType>(
+ ::android::hardware::radio::V1_0::MvnoType::SPN));
+
+static_assert(aidl::android::hardware::radio::DeviceStateType::POWER_SAVE_MODE ==
+ static_cast<aidl::android::hardware::radio::DeviceStateType>(
+ ::android::hardware::radio::V1_0::DeviceStateType::POWER_SAVE_MODE));
+static_assert(aidl::android::hardware::radio::DeviceStateType::CHARGING_STATE ==
+ static_cast<aidl::android::hardware::radio::DeviceStateType>(
+ ::android::hardware::radio::V1_0::DeviceStateType::CHARGING_STATE));
+static_assert(aidl::android::hardware::radio::DeviceStateType::LOW_DATA_EXPECTED ==
+ static_cast<aidl::android::hardware::radio::DeviceStateType>(
+ ::android::hardware::radio::V1_0::DeviceStateType::LOW_DATA_EXPECTED));
+
+static_assert(aidl::android::hardware::radio::P2Constant::NO_P2 ==
+ static_cast<aidl::android::hardware::radio::P2Constant>(
+ ::android::hardware::radio::V1_0::P2Constant::NO_P2));
+
+static_assert(aidl::android::hardware::radio::CardPowerState::POWER_DOWN ==
+ static_cast<aidl::android::hardware::radio::CardPowerState>(
+ ::android::hardware::radio::V1_1::CardPowerState::POWER_DOWN));
+static_assert(aidl::android::hardware::radio::CardPowerState::POWER_UP ==
+ static_cast<aidl::android::hardware::radio::CardPowerState>(
+ ::android::hardware::radio::V1_1::CardPowerState::POWER_UP));
+static_assert(aidl::android::hardware::radio::CardPowerState::POWER_UP_PASS_THROUGH ==
+ static_cast<aidl::android::hardware::radio::CardPowerState>(
+ ::android::hardware::radio::V1_1::CardPowerState::POWER_UP_PASS_THROUGH));
+
+static_assert(aidl::android::hardware::radio::GeranBands::BAND_T380 ==
+ static_cast<aidl::android::hardware::radio::GeranBands>(
+ ::android::hardware::radio::V1_1::GeranBands::BAND_T380));
+static_assert(aidl::android::hardware::radio::GeranBands::BAND_T410 ==
+ static_cast<aidl::android::hardware::radio::GeranBands>(
+ ::android::hardware::radio::V1_1::GeranBands::BAND_T410));
+static_assert(aidl::android::hardware::radio::GeranBands::BAND_450 ==
+ static_cast<aidl::android::hardware::radio::GeranBands>(
+ ::android::hardware::radio::V1_1::GeranBands::BAND_450));
+static_assert(aidl::android::hardware::radio::GeranBands::BAND_480 ==
+ static_cast<aidl::android::hardware::radio::GeranBands>(
+ ::android::hardware::radio::V1_1::GeranBands::BAND_480));
+static_assert(aidl::android::hardware::radio::GeranBands::BAND_710 ==
+ static_cast<aidl::android::hardware::radio::GeranBands>(
+ ::android::hardware::radio::V1_1::GeranBands::BAND_710));
+static_assert(aidl::android::hardware::radio::GeranBands::BAND_750 ==
+ static_cast<aidl::android::hardware::radio::GeranBands>(
+ ::android::hardware::radio::V1_1::GeranBands::BAND_750));
+static_assert(aidl::android::hardware::radio::GeranBands::BAND_T810 ==
+ static_cast<aidl::android::hardware::radio::GeranBands>(
+ ::android::hardware::radio::V1_1::GeranBands::BAND_T810));
+static_assert(aidl::android::hardware::radio::GeranBands::BAND_850 ==
+ static_cast<aidl::android::hardware::radio::GeranBands>(
+ ::android::hardware::radio::V1_1::GeranBands::BAND_850));
+static_assert(aidl::android::hardware::radio::GeranBands::BAND_P900 ==
+ static_cast<aidl::android::hardware::radio::GeranBands>(
+ ::android::hardware::radio::V1_1::GeranBands::BAND_P900));
+static_assert(aidl::android::hardware::radio::GeranBands::BAND_E900 ==
+ static_cast<aidl::android::hardware::radio::GeranBands>(
+ ::android::hardware::radio::V1_1::GeranBands::BAND_E900));
+static_assert(aidl::android::hardware::radio::GeranBands::BAND_R900 ==
+ static_cast<aidl::android::hardware::radio::GeranBands>(
+ ::android::hardware::radio::V1_1::GeranBands::BAND_R900));
+static_assert(aidl::android::hardware::radio::GeranBands::BAND_DCS1800 ==
+ static_cast<aidl::android::hardware::radio::GeranBands>(
+ ::android::hardware::radio::V1_1::GeranBands::BAND_DCS1800));
+static_assert(aidl::android::hardware::radio::GeranBands::BAND_PCS1900 ==
+ static_cast<aidl::android::hardware::radio::GeranBands>(
+ ::android::hardware::radio::V1_1::GeranBands::BAND_PCS1900));
+static_assert(aidl::android::hardware::radio::GeranBands::BAND_ER900 ==
+ static_cast<aidl::android::hardware::radio::GeranBands>(
+ ::android::hardware::radio::V1_1::GeranBands::BAND_ER900));
+
+static_assert(aidl::android::hardware::radio::ScanType::ONE_SHOT ==
+ static_cast<aidl::android::hardware::radio::ScanType>(
+ ::android::hardware::radio::V1_1::ScanType::ONE_SHOT));
+static_assert(aidl::android::hardware::radio::ScanType::PERIODIC ==
+ static_cast<aidl::android::hardware::radio::ScanType>(
+ ::android::hardware::radio::V1_1::ScanType::PERIODIC));
+
+static_assert(aidl::android::hardware::radio::ScanStatus::PARTIAL ==
+ static_cast<aidl::android::hardware::radio::ScanStatus>(
+ ::android::hardware::radio::V1_1::ScanStatus::PARTIAL));
+static_assert(aidl::android::hardware::radio::ScanStatus::COMPLETE ==
+ static_cast<aidl::android::hardware::radio::ScanStatus>(
+ ::android::hardware::radio::V1_1::ScanStatus::COMPLETE));
+
+static_assert(aidl::android::hardware::radio::KeepaliveType::NATT_IPV4 ==
+ static_cast<aidl::android::hardware::radio::KeepaliveType>(
+ ::android::hardware::radio::V1_1::KeepaliveType::NATT_IPV4));
+static_assert(aidl::android::hardware::radio::KeepaliveType::NATT_IPV6 ==
+ static_cast<aidl::android::hardware::radio::KeepaliveType>(
+ ::android::hardware::radio::V1_1::KeepaliveType::NATT_IPV6));
+
+static_assert(aidl::android::hardware::radio::KeepaliveStatusCode::ACTIVE ==
+ static_cast<aidl::android::hardware::radio::KeepaliveStatusCode>(
+ ::android::hardware::radio::V1_1::KeepaliveStatusCode::ACTIVE));
+static_assert(aidl::android::hardware::radio::KeepaliveStatusCode::INACTIVE ==
+ static_cast<aidl::android::hardware::radio::KeepaliveStatusCode>(
+ ::android::hardware::radio::V1_1::KeepaliveStatusCode::INACTIVE));
+static_assert(aidl::android::hardware::radio::KeepaliveStatusCode::PENDING ==
+ static_cast<aidl::android::hardware::radio::KeepaliveStatusCode>(
+ ::android::hardware::radio::V1_1::KeepaliveStatusCode::PENDING));
+
+static_assert(aidl::android::hardware::radio::RadioConst::CDMA_ALPHA_INFO_BUFFER_LENGTH ==
+ static_cast<aidl::android::hardware::radio::RadioConst>(
+ ::android::hardware::radio::V1_2::RadioConst::CDMA_ALPHA_INFO_BUFFER_LENGTH));
+static_assert(
+ aidl::android::hardware::radio::RadioConst::CDMA_NUMBER_INFO_BUFFER_LENGTH ==
+ static_cast<aidl::android::hardware::radio::RadioConst>(
+ ::android::hardware::radio::V1_2::RadioConst::CDMA_NUMBER_INFO_BUFFER_LENGTH));
+static_assert(aidl::android::hardware::radio::RadioConst::MAX_RILDS ==
+ static_cast<aidl::android::hardware::radio::RadioConst>(
+ ::android::hardware::radio::V1_2::RadioConst::MAX_RILDS));
+static_assert(aidl::android::hardware::radio::RadioConst::MAX_SOCKET_NAME_LENGTH ==
+ static_cast<aidl::android::hardware::radio::RadioConst>(
+ ::android::hardware::radio::V1_2::RadioConst::MAX_SOCKET_NAME_LENGTH));
+static_assert(aidl::android::hardware::radio::RadioConst::MAX_CLIENT_ID_LENGTH ==
+ static_cast<aidl::android::hardware::radio::RadioConst>(
+ ::android::hardware::radio::V1_2::RadioConst::MAX_CLIENT_ID_LENGTH));
+static_assert(aidl::android::hardware::radio::RadioConst::MAX_DEBUG_SOCKET_NAME_LENGTH ==
+ static_cast<aidl::android::hardware::radio::RadioConst>(
+ ::android::hardware::radio::V1_2::RadioConst::MAX_DEBUG_SOCKET_NAME_LENGTH));
+static_assert(aidl::android::hardware::radio::RadioConst::MAX_QEMU_PIPE_NAME_LENGTH ==
+ static_cast<aidl::android::hardware::radio::RadioConst>(
+ ::android::hardware::radio::V1_2::RadioConst::MAX_QEMU_PIPE_NAME_LENGTH));
+static_assert(aidl::android::hardware::radio::RadioConst::MAX_UUID_LENGTH ==
+ static_cast<aidl::android::hardware::radio::RadioConst>(
+ ::android::hardware::radio::V1_2::RadioConst::MAX_UUID_LENGTH));
+static_assert(aidl::android::hardware::radio::RadioConst::CARD_MAX_APPS ==
+ static_cast<aidl::android::hardware::radio::RadioConst>(
+ ::android::hardware::radio::V1_2::RadioConst::CARD_MAX_APPS));
+static_assert(aidl::android::hardware::radio::RadioConst::CDMA_MAX_NUMBER_OF_INFO_RECS ==
+ static_cast<aidl::android::hardware::radio::RadioConst>(
+ ::android::hardware::radio::V1_2::RadioConst::CDMA_MAX_NUMBER_OF_INFO_RECS));
+static_assert(aidl::android::hardware::radio::RadioConst::SS_INFO_MAX ==
+ static_cast<aidl::android::hardware::radio::RadioConst>(
+ ::android::hardware::radio::V1_2::RadioConst::SS_INFO_MAX));
+static_assert(aidl::android::hardware::radio::RadioConst::NUM_SERVICE_CLASSES ==
+ static_cast<aidl::android::hardware::radio::RadioConst>(
+ ::android::hardware::radio::V1_2::RadioConst::NUM_SERVICE_CLASSES));
+static_assert(aidl::android::hardware::radio::RadioConst::NUM_TX_POWER_LEVELS ==
+ static_cast<aidl::android::hardware::radio::RadioConst>(
+ ::android::hardware::radio::V1_2::RadioConst::NUM_TX_POWER_LEVELS));
+static_assert(
+ aidl::android::hardware::radio::RadioConst::RADIO_ACCESS_SPECIFIER_MAX_SIZE ==
+ static_cast<aidl::android::hardware::radio::RadioConst>(
+ ::android::hardware::radio::V1_2::RadioConst::RADIO_ACCESS_SPECIFIER_MAX_SIZE));
+
+static_assert(aidl::android::hardware::radio::ScanIntervalRange::MIN ==
+ static_cast<aidl::android::hardware::radio::ScanIntervalRange>(
+ ::android::hardware::radio::V1_2::ScanIntervalRange::MIN));
+static_assert(aidl::android::hardware::radio::ScanIntervalRange::MAX ==
+ static_cast<aidl::android::hardware::radio::ScanIntervalRange>(
+ ::android::hardware::radio::V1_2::ScanIntervalRange::MAX));
+
+static_assert(aidl::android::hardware::radio::MaxSearchTimeRange::MIN ==
+ static_cast<aidl::android::hardware::radio::MaxSearchTimeRange>(
+ ::android::hardware::radio::V1_2::MaxSearchTimeRange::MIN));
+static_assert(aidl::android::hardware::radio::MaxSearchTimeRange::MAX ==
+ static_cast<aidl::android::hardware::radio::MaxSearchTimeRange>(
+ ::android::hardware::radio::V1_2::MaxSearchTimeRange::MAX));
+
+static_assert(aidl::android::hardware::radio::IncrementalResultsPeriodicityRange::MIN ==
+ static_cast<aidl::android::hardware::radio::IncrementalResultsPeriodicityRange>(
+ ::android::hardware::radio::V1_2::IncrementalResultsPeriodicityRange::MIN));
+static_assert(aidl::android::hardware::radio::IncrementalResultsPeriodicityRange::MAX ==
+ static_cast<aidl::android::hardware::radio::IncrementalResultsPeriodicityRange>(
+ ::android::hardware::radio::V1_2::IncrementalResultsPeriodicityRange::MAX));
+
+static_assert(aidl::android::hardware::radio::CellConnectionStatus::NONE ==
+ static_cast<aidl::android::hardware::radio::CellConnectionStatus>(
+ ::android::hardware::radio::V1_2::CellConnectionStatus::NONE));
+static_assert(aidl::android::hardware::radio::CellConnectionStatus::PRIMARY_SERVING ==
+ static_cast<aidl::android::hardware::radio::CellConnectionStatus>(
+ ::android::hardware::radio::V1_2::CellConnectionStatus::PRIMARY_SERVING));
+static_assert(aidl::android::hardware::radio::CellConnectionStatus::SECONDARY_SERVING ==
+ static_cast<aidl::android::hardware::radio::CellConnectionStatus>(
+ ::android::hardware::radio::V1_2::CellConnectionStatus::SECONDARY_SERVING));
+
+static_assert(aidl::android::hardware::radio::AudioQuality::UNSPECIFIED ==
+ static_cast<aidl::android::hardware::radio::AudioQuality>(
+ ::android::hardware::radio::V1_2::AudioQuality::UNSPECIFIED));
+static_assert(aidl::android::hardware::radio::AudioQuality::AMR ==
+ static_cast<aidl::android::hardware::radio::AudioQuality>(
+ ::android::hardware::radio::V1_2::AudioQuality::AMR));
+static_assert(aidl::android::hardware::radio::AudioQuality::AMR_WB ==
+ static_cast<aidl::android::hardware::radio::AudioQuality>(
+ ::android::hardware::radio::V1_2::AudioQuality::AMR_WB));
+static_assert(aidl::android::hardware::radio::AudioQuality::GSM_EFR ==
+ static_cast<aidl::android::hardware::radio::AudioQuality>(
+ ::android::hardware::radio::V1_2::AudioQuality::GSM_EFR));
+static_assert(aidl::android::hardware::radio::AudioQuality::GSM_FR ==
+ static_cast<aidl::android::hardware::radio::AudioQuality>(
+ ::android::hardware::radio::V1_2::AudioQuality::GSM_FR));
+static_assert(aidl::android::hardware::radio::AudioQuality::GSM_HR ==
+ static_cast<aidl::android::hardware::radio::AudioQuality>(
+ ::android::hardware::radio::V1_2::AudioQuality::GSM_HR));
+static_assert(aidl::android::hardware::radio::AudioQuality::EVRC ==
+ static_cast<aidl::android::hardware::radio::AudioQuality>(
+ ::android::hardware::radio::V1_2::AudioQuality::EVRC));
+static_assert(aidl::android::hardware::radio::AudioQuality::EVRC_B ==
+ static_cast<aidl::android::hardware::radio::AudioQuality>(
+ ::android::hardware::radio::V1_2::AudioQuality::EVRC_B));
+static_assert(aidl::android::hardware::radio::AudioQuality::EVRC_WB ==
+ static_cast<aidl::android::hardware::radio::AudioQuality>(
+ ::android::hardware::radio::V1_2::AudioQuality::EVRC_WB));
+static_assert(aidl::android::hardware::radio::AudioQuality::EVRC_NW ==
+ static_cast<aidl::android::hardware::radio::AudioQuality>(
+ ::android::hardware::radio::V1_2::AudioQuality::EVRC_NW));
+
+static_assert(aidl::android::hardware::radio::DataRequestReason::NORMAL ==
+ static_cast<aidl::android::hardware::radio::DataRequestReason>(
+ ::android::hardware::radio::V1_2::DataRequestReason::NORMAL));
+static_assert(aidl::android::hardware::radio::DataRequestReason::SHUTDOWN ==
+ static_cast<aidl::android::hardware::radio::DataRequestReason>(
+ ::android::hardware::radio::V1_2::DataRequestReason::SHUTDOWN));
+static_assert(aidl::android::hardware::radio::DataRequestReason::HANDOVER ==
+ static_cast<aidl::android::hardware::radio::DataRequestReason>(
+ ::android::hardware::radio::V1_2::DataRequestReason::HANDOVER));
+
+static_assert(aidl::android::hardware::radio::EmergencyServiceCategory::UNSPECIFIED ==
+ static_cast<aidl::android::hardware::radio::EmergencyServiceCategory>(
+ ::android::hardware::radio::V1_4::EmergencyServiceCategory::UNSPECIFIED));
+static_assert(aidl::android::hardware::radio::EmergencyServiceCategory::POLICE ==
+ static_cast<aidl::android::hardware::radio::EmergencyServiceCategory>(
+ ::android::hardware::radio::V1_4::EmergencyServiceCategory::POLICE));
+static_assert(aidl::android::hardware::radio::EmergencyServiceCategory::AMBULANCE ==
+ static_cast<aidl::android::hardware::radio::EmergencyServiceCategory>(
+ ::android::hardware::radio::V1_4::EmergencyServiceCategory::AMBULANCE));
+static_assert(aidl::android::hardware::radio::EmergencyServiceCategory::FIRE_BRIGADE ==
+ static_cast<aidl::android::hardware::radio::EmergencyServiceCategory>(
+ ::android::hardware::radio::V1_4::EmergencyServiceCategory::FIRE_BRIGADE));
+static_assert(aidl::android::hardware::radio::EmergencyServiceCategory::MARINE_GUARD ==
+ static_cast<aidl::android::hardware::radio::EmergencyServiceCategory>(
+ ::android::hardware::radio::V1_4::EmergencyServiceCategory::MARINE_GUARD));
+static_assert(aidl::android::hardware::radio::EmergencyServiceCategory::MOUNTAIN_RESCUE ==
+ static_cast<aidl::android::hardware::radio::EmergencyServiceCategory>(
+ ::android::hardware::radio::V1_4::EmergencyServiceCategory::MOUNTAIN_RESCUE));
+static_assert(aidl::android::hardware::radio::EmergencyServiceCategory::MIEC ==
+ static_cast<aidl::android::hardware::radio::EmergencyServiceCategory>(
+ ::android::hardware::radio::V1_4::EmergencyServiceCategory::MIEC));
+static_assert(aidl::android::hardware::radio::EmergencyServiceCategory::AIEC ==
+ static_cast<aidl::android::hardware::radio::EmergencyServiceCategory>(
+ ::android::hardware::radio::V1_4::EmergencyServiceCategory::AIEC));
+
+static_assert(aidl::android::hardware::radio::EmergencyNumberSource::NETWORK_SIGNALING ==
+ static_cast<aidl::android::hardware::radio::EmergencyNumberSource>(
+ ::android::hardware::radio::V1_4::EmergencyNumberSource::NETWORK_SIGNALING));
+static_assert(aidl::android::hardware::radio::EmergencyNumberSource::SIM ==
+ static_cast<aidl::android::hardware::radio::EmergencyNumberSource>(
+ ::android::hardware::radio::V1_4::EmergencyNumberSource::SIM));
+static_assert(aidl::android::hardware::radio::EmergencyNumberSource::MODEM_CONFIG ==
+ static_cast<aidl::android::hardware::radio::EmergencyNumberSource>(
+ ::android::hardware::radio::V1_4::EmergencyNumberSource::MODEM_CONFIG));
+static_assert(aidl::android::hardware::radio::EmergencyNumberSource::DEFAULT ==
+ static_cast<aidl::android::hardware::radio::EmergencyNumberSource>(
+ ::android::hardware::radio::V1_4::EmergencyNumberSource::DEFAULT));
+
+static_assert(aidl::android::hardware::radio::EmergencyCallRouting::UNKNOWN ==
+ static_cast<aidl::android::hardware::radio::EmergencyCallRouting>(
+ ::android::hardware::radio::V1_4::EmergencyCallRouting::UNKNOWN));
+static_assert(aidl::android::hardware::radio::EmergencyCallRouting::EMERGENCY ==
+ static_cast<aidl::android::hardware::radio::EmergencyCallRouting>(
+ ::android::hardware::radio::V1_4::EmergencyCallRouting::EMERGENCY));
+static_assert(aidl::android::hardware::radio::EmergencyCallRouting::NORMAL ==
+ static_cast<aidl::android::hardware::radio::EmergencyCallRouting>(
+ ::android::hardware::radio::V1_4::EmergencyCallRouting::NORMAL));
+
+static_assert(aidl::android::hardware::radio::RadioTechnology::UNKNOWN ==
+ static_cast<aidl::android::hardware::radio::RadioTechnology>(
+ ::android::hardware::radio::V1_4::RadioTechnology::UNKNOWN));
+static_assert(aidl::android::hardware::radio::RadioTechnology::GPRS ==
+ static_cast<aidl::android::hardware::radio::RadioTechnology>(
+ ::android::hardware::radio::V1_4::RadioTechnology::GPRS));
+static_assert(aidl::android::hardware::radio::RadioTechnology::EDGE ==
+ static_cast<aidl::android::hardware::radio::RadioTechnology>(
+ ::android::hardware::radio::V1_4::RadioTechnology::EDGE));
+static_assert(aidl::android::hardware::radio::RadioTechnology::UMTS ==
+ static_cast<aidl::android::hardware::radio::RadioTechnology>(
+ ::android::hardware::radio::V1_4::RadioTechnology::UMTS));
+static_assert(aidl::android::hardware::radio::RadioTechnology::IS95A ==
+ static_cast<aidl::android::hardware::radio::RadioTechnology>(
+ ::android::hardware::radio::V1_4::RadioTechnology::IS95A));
+static_assert(aidl::android::hardware::radio::RadioTechnology::IS95B ==
+ static_cast<aidl::android::hardware::radio::RadioTechnology>(
+ ::android::hardware::radio::V1_4::RadioTechnology::IS95B));
+static_assert(aidl::android::hardware::radio::RadioTechnology::ONE_X_RTT ==
+ static_cast<aidl::android::hardware::radio::RadioTechnology>(
+ ::android::hardware::radio::V1_4::RadioTechnology::ONE_X_RTT));
+static_assert(aidl::android::hardware::radio::RadioTechnology::EVDO_0 ==
+ static_cast<aidl::android::hardware::radio::RadioTechnology>(
+ ::android::hardware::radio::V1_4::RadioTechnology::EVDO_0));
+static_assert(aidl::android::hardware::radio::RadioTechnology::EVDO_A ==
+ static_cast<aidl::android::hardware::radio::RadioTechnology>(
+ ::android::hardware::radio::V1_4::RadioTechnology::EVDO_A));
+static_assert(aidl::android::hardware::radio::RadioTechnology::HSDPA ==
+ static_cast<aidl::android::hardware::radio::RadioTechnology>(
+ ::android::hardware::radio::V1_4::RadioTechnology::HSDPA));
+static_assert(aidl::android::hardware::radio::RadioTechnology::HSUPA ==
+ static_cast<aidl::android::hardware::radio::RadioTechnology>(
+ ::android::hardware::radio::V1_4::RadioTechnology::HSUPA));
+static_assert(aidl::android::hardware::radio::RadioTechnology::HSPA ==
+ static_cast<aidl::android::hardware::radio::RadioTechnology>(
+ ::android::hardware::radio::V1_4::RadioTechnology::HSPA));
+static_assert(aidl::android::hardware::radio::RadioTechnology::EVDO_B ==
+ static_cast<aidl::android::hardware::radio::RadioTechnology>(
+ ::android::hardware::radio::V1_4::RadioTechnology::EVDO_B));
+static_assert(aidl::android::hardware::radio::RadioTechnology::EHRPD ==
+ static_cast<aidl::android::hardware::radio::RadioTechnology>(
+ ::android::hardware::radio::V1_4::RadioTechnology::EHRPD));
+static_assert(aidl::android::hardware::radio::RadioTechnology::LTE ==
+ static_cast<aidl::android::hardware::radio::RadioTechnology>(
+ ::android::hardware::radio::V1_4::RadioTechnology::LTE));
+static_assert(aidl::android::hardware::radio::RadioTechnology::HSPAP ==
+ static_cast<aidl::android::hardware::radio::RadioTechnology>(
+ ::android::hardware::radio::V1_4::RadioTechnology::HSPAP));
+static_assert(aidl::android::hardware::radio::RadioTechnology::GSM ==
+ static_cast<aidl::android::hardware::radio::RadioTechnology>(
+ ::android::hardware::radio::V1_4::RadioTechnology::GSM));
+static_assert(aidl::android::hardware::radio::RadioTechnology::TD_SCDMA ==
+ static_cast<aidl::android::hardware::radio::RadioTechnology>(
+ ::android::hardware::radio::V1_4::RadioTechnology::TD_SCDMA));
+static_assert(aidl::android::hardware::radio::RadioTechnology::IWLAN ==
+ static_cast<aidl::android::hardware::radio::RadioTechnology>(
+ ::android::hardware::radio::V1_4::RadioTechnology::IWLAN));
+static_assert(aidl::android::hardware::radio::RadioTechnology::LTE_CA ==
+ static_cast<aidl::android::hardware::radio::RadioTechnology>(
+ ::android::hardware::radio::V1_4::RadioTechnology::LTE_CA));
+static_assert(aidl::android::hardware::radio::RadioTechnology::NR ==
+ static_cast<aidl::android::hardware::radio::RadioTechnology>(
+ ::android::hardware::radio::V1_4::RadioTechnology::NR));
+
+static_assert(aidl::android::hardware::radio::RadioAccessFamily::UNKNOWN ==
+ static_cast<aidl::android::hardware::radio::RadioAccessFamily>(
+ ::android::hardware::radio::V1_4::RadioAccessFamily::UNKNOWN));
+static_assert(aidl::android::hardware::radio::RadioAccessFamily::GPRS ==
+ static_cast<aidl::android::hardware::radio::RadioAccessFamily>(
+ ::android::hardware::radio::V1_4::RadioAccessFamily::GPRS));
+static_assert(aidl::android::hardware::radio::RadioAccessFamily::EDGE ==
+ static_cast<aidl::android::hardware::radio::RadioAccessFamily>(
+ ::android::hardware::radio::V1_4::RadioAccessFamily::EDGE));
+static_assert(aidl::android::hardware::radio::RadioAccessFamily::UMTS ==
+ static_cast<aidl::android::hardware::radio::RadioAccessFamily>(
+ ::android::hardware::radio::V1_4::RadioAccessFamily::UMTS));
+static_assert(aidl::android::hardware::radio::RadioAccessFamily::IS95A ==
+ static_cast<aidl::android::hardware::radio::RadioAccessFamily>(
+ ::android::hardware::radio::V1_4::RadioAccessFamily::IS95A));
+static_assert(aidl::android::hardware::radio::RadioAccessFamily::IS95B ==
+ static_cast<aidl::android::hardware::radio::RadioAccessFamily>(
+ ::android::hardware::radio::V1_4::RadioAccessFamily::IS95B));
+static_assert(aidl::android::hardware::radio::RadioAccessFamily::ONE_X_RTT ==
+ static_cast<aidl::android::hardware::radio::RadioAccessFamily>(
+ ::android::hardware::radio::V1_4::RadioAccessFamily::ONE_X_RTT));
+static_assert(aidl::android::hardware::radio::RadioAccessFamily::EVDO_0 ==
+ static_cast<aidl::android::hardware::radio::RadioAccessFamily>(
+ ::android::hardware::radio::V1_4::RadioAccessFamily::EVDO_0));
+static_assert(aidl::android::hardware::radio::RadioAccessFamily::EVDO_A ==
+ static_cast<aidl::android::hardware::radio::RadioAccessFamily>(
+ ::android::hardware::radio::V1_4::RadioAccessFamily::EVDO_A));
+static_assert(aidl::android::hardware::radio::RadioAccessFamily::HSDPA ==
+ static_cast<aidl::android::hardware::radio::RadioAccessFamily>(
+ ::android::hardware::radio::V1_4::RadioAccessFamily::HSDPA));
+static_assert(aidl::android::hardware::radio::RadioAccessFamily::HSUPA ==
+ static_cast<aidl::android::hardware::radio::RadioAccessFamily>(
+ ::android::hardware::radio::V1_4::RadioAccessFamily::HSUPA));
+static_assert(aidl::android::hardware::radio::RadioAccessFamily::HSPA ==
+ static_cast<aidl::android::hardware::radio::RadioAccessFamily>(
+ ::android::hardware::radio::V1_4::RadioAccessFamily::HSPA));
+static_assert(aidl::android::hardware::radio::RadioAccessFamily::EVDO_B ==
+ static_cast<aidl::android::hardware::radio::RadioAccessFamily>(
+ ::android::hardware::radio::V1_4::RadioAccessFamily::EVDO_B));
+static_assert(aidl::android::hardware::radio::RadioAccessFamily::EHRPD ==
+ static_cast<aidl::android::hardware::radio::RadioAccessFamily>(
+ ::android::hardware::radio::V1_4::RadioAccessFamily::EHRPD));
+static_assert(aidl::android::hardware::radio::RadioAccessFamily::LTE ==
+ static_cast<aidl::android::hardware::radio::RadioAccessFamily>(
+ ::android::hardware::radio::V1_4::RadioAccessFamily::LTE));
+static_assert(aidl::android::hardware::radio::RadioAccessFamily::HSPAP ==
+ static_cast<aidl::android::hardware::radio::RadioAccessFamily>(
+ ::android::hardware::radio::V1_4::RadioAccessFamily::HSPAP));
+static_assert(aidl::android::hardware::radio::RadioAccessFamily::GSM ==
+ static_cast<aidl::android::hardware::radio::RadioAccessFamily>(
+ ::android::hardware::radio::V1_4::RadioAccessFamily::GSM));
+static_assert(aidl::android::hardware::radio::RadioAccessFamily::TD_SCDMA ==
+ static_cast<aidl::android::hardware::radio::RadioAccessFamily>(
+ ::android::hardware::radio::V1_4::RadioAccessFamily::TD_SCDMA));
+static_assert(aidl::android::hardware::radio::RadioAccessFamily::LTE_CA ==
+ static_cast<aidl::android::hardware::radio::RadioAccessFamily>(
+ ::android::hardware::radio::V1_4::RadioAccessFamily::LTE_CA));
+static_assert(aidl::android::hardware::radio::RadioAccessFamily::NR ==
+ static_cast<aidl::android::hardware::radio::RadioAccessFamily>(
+ ::android::hardware::radio::V1_4::RadioAccessFamily::NR));
+
+static_assert(aidl::android::hardware::radio::FrequencyRange::LOW ==
+ static_cast<aidl::android::hardware::radio::FrequencyRange>(
+ ::android::hardware::radio::V1_4::FrequencyRange::LOW));
+static_assert(aidl::android::hardware::radio::FrequencyRange::MID ==
+ static_cast<aidl::android::hardware::radio::FrequencyRange>(
+ ::android::hardware::radio::V1_4::FrequencyRange::MID));
+static_assert(aidl::android::hardware::radio::FrequencyRange::HIGH ==
+ static_cast<aidl::android::hardware::radio::FrequencyRange>(
+ ::android::hardware::radio::V1_4::FrequencyRange::HIGH));
+static_assert(aidl::android::hardware::radio::FrequencyRange::MMWAVE ==
+ static_cast<aidl::android::hardware::radio::FrequencyRange>(
+ ::android::hardware::radio::V1_4::FrequencyRange::MMWAVE));
+
+static_assert(aidl::android::hardware::radio::DataConnActiveStatus::INACTIVE ==
+ static_cast<aidl::android::hardware::radio::DataConnActiveStatus>(
+ ::android::hardware::radio::V1_4::DataConnActiveStatus::INACTIVE));
+static_assert(aidl::android::hardware::radio::DataConnActiveStatus::DORMANT ==
+ static_cast<aidl::android::hardware::radio::DataConnActiveStatus>(
+ ::android::hardware::radio::V1_4::DataConnActiveStatus::DORMANT));
+static_assert(aidl::android::hardware::radio::DataConnActiveStatus::ACTIVE ==
+ static_cast<aidl::android::hardware::radio::DataConnActiveStatus>(
+ ::android::hardware::radio::V1_4::DataConnActiveStatus::ACTIVE));
+
+static_assert(aidl::android::hardware::radio::PdpProtocolType::UNKNOWN ==
+ static_cast<aidl::android::hardware::radio::PdpProtocolType>(
+ ::android::hardware::radio::V1_4::PdpProtocolType::UNKNOWN));
+static_assert(aidl::android::hardware::radio::PdpProtocolType::IP ==
+ static_cast<aidl::android::hardware::radio::PdpProtocolType>(
+ ::android::hardware::radio::V1_4::PdpProtocolType::IP));
+static_assert(aidl::android::hardware::radio::PdpProtocolType::IPV6 ==
+ static_cast<aidl::android::hardware::radio::PdpProtocolType>(
+ ::android::hardware::radio::V1_4::PdpProtocolType::IPV6));
+static_assert(aidl::android::hardware::radio::PdpProtocolType::IPV4V6 ==
+ static_cast<aidl::android::hardware::radio::PdpProtocolType>(
+ ::android::hardware::radio::V1_4::PdpProtocolType::IPV4V6));
+static_assert(aidl::android::hardware::radio::PdpProtocolType::PPP ==
+ static_cast<aidl::android::hardware::radio::PdpProtocolType>(
+ ::android::hardware::radio::V1_4::PdpProtocolType::PPP));
+static_assert(aidl::android::hardware::radio::PdpProtocolType::NON_IP ==
+ static_cast<aidl::android::hardware::radio::PdpProtocolType>(
+ ::android::hardware::radio::V1_4::PdpProtocolType::NON_IP));
+static_assert(aidl::android::hardware::radio::PdpProtocolType::UNSTRUCTURED ==
+ static_cast<aidl::android::hardware::radio::PdpProtocolType>(
+ ::android::hardware::radio::V1_4::PdpProtocolType::UNSTRUCTURED));
+
+static_assert(aidl::android::hardware::radio::AccessNetwork::GERAN ==
+ static_cast<aidl::android::hardware::radio::AccessNetwork>(
+ ::android::hardware::radio::V1_5::AccessNetwork::GERAN));
+static_assert(aidl::android::hardware::radio::AccessNetwork::UTRAN ==
+ static_cast<aidl::android::hardware::radio::AccessNetwork>(
+ ::android::hardware::radio::V1_5::AccessNetwork::UTRAN));
+static_assert(aidl::android::hardware::radio::AccessNetwork::EUTRAN ==
+ static_cast<aidl::android::hardware::radio::AccessNetwork>(
+ ::android::hardware::radio::V1_5::AccessNetwork::EUTRAN));
+static_assert(aidl::android::hardware::radio::AccessNetwork::CDMA2000 ==
+ static_cast<aidl::android::hardware::radio::AccessNetwork>(
+ ::android::hardware::radio::V1_5::AccessNetwork::CDMA2000));
+static_assert(aidl::android::hardware::radio::AccessNetwork::IWLAN ==
+ static_cast<aidl::android::hardware::radio::AccessNetwork>(
+ ::android::hardware::radio::V1_5::AccessNetwork::IWLAN));
+static_assert(aidl::android::hardware::radio::AccessNetwork::UNKNOWN ==
+ static_cast<aidl::android::hardware::radio::AccessNetwork>(
+ ::android::hardware::radio::V1_5::AccessNetwork::UNKNOWN));
+static_assert(aidl::android::hardware::radio::AccessNetwork::NGRAN ==
+ static_cast<aidl::android::hardware::radio::AccessNetwork>(
+ ::android::hardware::radio::V1_5::AccessNetwork::NGRAN));
+
+static_assert(aidl::android::hardware::radio::SignalMeasurementType::RSSI ==
+ static_cast<aidl::android::hardware::radio::SignalMeasurementType>(
+ ::android::hardware::radio::V1_5::SignalMeasurementType::RSSI));
+static_assert(aidl::android::hardware::radio::SignalMeasurementType::RSCP ==
+ static_cast<aidl::android::hardware::radio::SignalMeasurementType>(
+ ::android::hardware::radio::V1_5::SignalMeasurementType::RSCP));
+static_assert(aidl::android::hardware::radio::SignalMeasurementType::RSRP ==
+ static_cast<aidl::android::hardware::radio::SignalMeasurementType>(
+ ::android::hardware::radio::V1_5::SignalMeasurementType::RSRP));
+static_assert(aidl::android::hardware::radio::SignalMeasurementType::RSRQ ==
+ static_cast<aidl::android::hardware::radio::SignalMeasurementType>(
+ ::android::hardware::radio::V1_5::SignalMeasurementType::RSRQ));
+static_assert(aidl::android::hardware::radio::SignalMeasurementType::RSSNR ==
+ static_cast<aidl::android::hardware::radio::SignalMeasurementType>(
+ ::android::hardware::radio::V1_5::SignalMeasurementType::RSSNR));
+static_assert(aidl::android::hardware::radio::SignalMeasurementType::SSRSRP ==
+ static_cast<aidl::android::hardware::radio::SignalMeasurementType>(
+ ::android::hardware::radio::V1_5::SignalMeasurementType::SSRSRP));
+static_assert(aidl::android::hardware::radio::SignalMeasurementType::SSRSRQ ==
+ static_cast<aidl::android::hardware::radio::SignalMeasurementType>(
+ ::android::hardware::radio::V1_5::SignalMeasurementType::SSRSRQ));
+static_assert(aidl::android::hardware::radio::SignalMeasurementType::SSSINR ==
+ static_cast<aidl::android::hardware::radio::SignalMeasurementType>(
+ ::android::hardware::radio::V1_5::SignalMeasurementType::SSSINR));
+
+static_assert(aidl::android::hardware::radio::SimLockMultiSimPolicy::NO_MULTISIM_POLICY ==
+ static_cast<aidl::android::hardware::radio::SimLockMultiSimPolicy>(
+ ::android::hardware::radio::V1_4::SimLockMultiSimPolicy::NO_MULTISIM_POLICY));
+static_assert(
+ aidl::android::hardware::radio::SimLockMultiSimPolicy::ONE_VALID_SIM_MUST_BE_PRESENT ==
+ static_cast<aidl::android::hardware::radio::SimLockMultiSimPolicy>(
+ ::android::hardware::radio::V1_4::SimLockMultiSimPolicy::
+ ONE_VALID_SIM_MUST_BE_PRESENT));
+
+static_assert(aidl::android::hardware::radio::RadioAccessNetworks::GERAN ==
+ static_cast<aidl::android::hardware::radio::RadioAccessNetworks>(
+ ::android::hardware::radio::V1_5::RadioAccessNetworks::GERAN));
+static_assert(aidl::android::hardware::radio::RadioAccessNetworks::UTRAN ==
+ static_cast<aidl::android::hardware::radio::RadioAccessNetworks>(
+ ::android::hardware::radio::V1_5::RadioAccessNetworks::UTRAN));
+static_assert(aidl::android::hardware::radio::RadioAccessNetworks::EUTRAN ==
+ static_cast<aidl::android::hardware::radio::RadioAccessNetworks>(
+ ::android::hardware::radio::V1_5::RadioAccessNetworks::EUTRAN));
+static_assert(aidl::android::hardware::radio::RadioAccessNetworks::UNKNOWN ==
+ static_cast<aidl::android::hardware::radio::RadioAccessNetworks>(
+ ::android::hardware::radio::V1_5::RadioAccessNetworks::UNKNOWN));
+static_assert(aidl::android::hardware::radio::RadioAccessNetworks::NGRAN ==
+ static_cast<aidl::android::hardware::radio::RadioAccessNetworks>(
+ ::android::hardware::radio::V1_5::RadioAccessNetworks::NGRAN));
+static_assert(aidl::android::hardware::radio::RadioAccessNetworks::CDMA2000 ==
+ static_cast<aidl::android::hardware::radio::RadioAccessNetworks>(
+ ::android::hardware::radio::V1_5::RadioAccessNetworks::CDMA2000));
+
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_1 ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_1));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_2 ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_2));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_3 ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_3));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_4 ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_4));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_5 ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_5));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_6 ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_6));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_7 ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_7));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_8 ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_8));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_9 ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_9));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_10 ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_10));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_11 ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_11));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_12 ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_12));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_13 ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_13));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_14 ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_14));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_19 ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_19));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_20 ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_20));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_21 ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_21));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_22 ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_22));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_25 ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_25));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_26 ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_26));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_A ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_A));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_B ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_B));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_C ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_C));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_D ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_D));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_E ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_E));
+static_assert(aidl::android::hardware::radio::UtranBands::BAND_F ==
+ static_cast<aidl::android::hardware::radio::UtranBands>(
+ ::android::hardware::radio::V1_5::UtranBands::BAND_F));
+
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_1 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_1));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_2 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_2));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_3 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_3));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_4 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_4));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_5 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_5));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_6 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_6));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_7 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_7));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_8 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_8));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_9 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_9));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_10 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_10));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_11 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_11));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_12 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_12));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_13 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_13));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_14 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_14));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_17 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_17));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_18 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_18));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_19 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_19));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_20 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_20));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_21 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_21));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_22 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_22));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_23 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_23));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_24 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_24));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_25 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_25));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_26 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_26));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_27 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_27));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_28 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_28));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_30 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_30));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_31 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_31));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_33 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_33));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_34 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_34));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_35 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_35));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_36 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_36));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_37 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_37));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_38 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_38));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_39 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_39));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_40 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_40));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_41 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_41));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_42 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_42));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_43 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_43));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_44 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_44));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_45 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_45));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_46 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_46));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_47 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_47));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_48 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_48));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_65 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_65));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_66 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_66));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_68 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_68));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_70 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_70));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_49 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_49));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_50 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_50));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_51 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_51));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_52 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_52));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_53 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_53));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_71 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_71));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_72 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_72));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_73 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_73));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_74 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_74));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_85 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_85));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_87 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_87));
+static_assert(aidl::android::hardware::radio::EutranBands::BAND_88 ==
+ static_cast<aidl::android::hardware::radio::EutranBands>(
+ ::android::hardware::radio::V1_5::EutranBands::BAND_88));
+
+static_assert(aidl::android::hardware::radio::ApnTypes::NONE ==
+ static_cast<aidl::android::hardware::radio::ApnTypes>(
+ ::android::hardware::radio::V1_5::ApnTypes::NONE));
+static_assert(aidl::android::hardware::radio::ApnTypes::DEFAULT ==
+ static_cast<aidl::android::hardware::radio::ApnTypes>(
+ ::android::hardware::radio::V1_5::ApnTypes::DEFAULT));
+static_assert(aidl::android::hardware::radio::ApnTypes::MMS ==
+ static_cast<aidl::android::hardware::radio::ApnTypes>(
+ ::android::hardware::radio::V1_5::ApnTypes::MMS));
+static_assert(aidl::android::hardware::radio::ApnTypes::SUPL ==
+ static_cast<aidl::android::hardware::radio::ApnTypes>(
+ ::android::hardware::radio::V1_5::ApnTypes::SUPL));
+static_assert(aidl::android::hardware::radio::ApnTypes::DUN ==
+ static_cast<aidl::android::hardware::radio::ApnTypes>(
+ ::android::hardware::radio::V1_5::ApnTypes::DUN));
+static_assert(aidl::android::hardware::radio::ApnTypes::HIPRI ==
+ static_cast<aidl::android::hardware::radio::ApnTypes>(
+ ::android::hardware::radio::V1_5::ApnTypes::HIPRI));
+static_assert(aidl::android::hardware::radio::ApnTypes::FOTA ==
+ static_cast<aidl::android::hardware::radio::ApnTypes>(
+ ::android::hardware::radio::V1_5::ApnTypes::FOTA));
+static_assert(aidl::android::hardware::radio::ApnTypes::IMS ==
+ static_cast<aidl::android::hardware::radio::ApnTypes>(
+ ::android::hardware::radio::V1_5::ApnTypes::IMS));
+static_assert(aidl::android::hardware::radio::ApnTypes::CBS ==
+ static_cast<aidl::android::hardware::radio::ApnTypes>(
+ ::android::hardware::radio::V1_5::ApnTypes::CBS));
+static_assert(aidl::android::hardware::radio::ApnTypes::IA ==
+ static_cast<aidl::android::hardware::radio::ApnTypes>(
+ ::android::hardware::radio::V1_5::ApnTypes::IA));
+static_assert(aidl::android::hardware::radio::ApnTypes::EMERGENCY ==
+ static_cast<aidl::android::hardware::radio::ApnTypes>(
+ ::android::hardware::radio::V1_5::ApnTypes::EMERGENCY));
+static_assert(aidl::android::hardware::radio::ApnTypes::ALL ==
+ static_cast<aidl::android::hardware::radio::ApnTypes>(
+ ::android::hardware::radio::V1_5::ApnTypes::ALL));
+static_assert(aidl::android::hardware::radio::ApnTypes::MCX ==
+ static_cast<aidl::android::hardware::radio::ApnTypes>(
+ ::android::hardware::radio::V1_5::ApnTypes::MCX));
+static_assert(aidl::android::hardware::radio::ApnTypes::XCAP ==
+ static_cast<aidl::android::hardware::radio::ApnTypes>(
+ ::android::hardware::radio::V1_5::ApnTypes::XCAP));
+
+static_assert(aidl::android::hardware::radio::AddressProperty::NONE ==
+ static_cast<aidl::android::hardware::radio::AddressProperty>(
+ ::android::hardware::radio::V1_5::AddressProperty::NONE));
+static_assert(aidl::android::hardware::radio::AddressProperty::DEPRECATED ==
+ static_cast<aidl::android::hardware::radio::AddressProperty>(
+ ::android::hardware::radio::V1_5::AddressProperty::DEPRECATED));
+
+static_assert(aidl::android::hardware::radio::Domain::CS ==
+ static_cast<aidl::android::hardware::radio::Domain>(
+ ::android::hardware::radio::V1_5::Domain::CS));
+static_assert(aidl::android::hardware::radio::Domain::PS ==
+ static_cast<aidl::android::hardware::radio::Domain>(
+ ::android::hardware::radio::V1_5::Domain::PS));
+
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::CS_SERVICE ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::CS_SERVICE));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::PS_SERVICE ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::PS_SERVICE));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::CS_VOICE ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::CS_VOICE));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::MO_SIGNALLING ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::MO_SIGNALLING));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::MO_DATA ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::MO_DATA));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::CS_FALLBACK ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::CS_FALLBACK));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::MMTEL_VOICE ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::MMTEL_VOICE));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::MMTEL_VIDEO ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::MMTEL_VIDEO));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::EMERGENCY ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::EMERGENCY));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::SMS ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::SMS));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_1 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_1));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_2 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_2));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_3 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_3));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_4 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_4));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_5 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_5));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_6 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_6));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_7 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_7));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_8 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_8));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_9 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_9));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_10 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_10));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_11 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_11));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_12 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_12));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_13 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_13));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_14 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_14));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_15 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_15));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_16 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_16));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_17 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_17));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_18 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_18));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_19 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_19));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_20 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_20));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_21 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_21));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_22 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_22));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_23 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_23));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_24 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_24));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_25 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_25));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_26 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_26));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_27 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_27));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_28 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_28));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_29 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_29));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_30 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_30));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_31 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_31));
+static_assert(aidl::android::hardware::radio::BarringInfoServiceType::OPERATOR_32 ==
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(
+ ::android::hardware::radio::V1_5::BarringInfo::ServiceType::OPERATOR_32));
+
+static_assert(aidl::android::hardware::radio::BarringInfoBarringType::NONE ==
+ static_cast<aidl::android::hardware::radio::BarringInfoBarringType>(
+ ::android::hardware::radio::V1_5::BarringInfo::BarringType::NONE));
+static_assert(aidl::android::hardware::radio::BarringInfoBarringType::CONDITIONAL ==
+ static_cast<aidl::android::hardware::radio::BarringInfoBarringType>(
+ ::android::hardware::radio::V1_5::BarringInfo::BarringType::CONDITIONAL));
+static_assert(aidl::android::hardware::radio::BarringInfoBarringType::UNCONDITIONAL ==
+ static_cast<aidl::android::hardware::radio::BarringInfoBarringType>(
+ ::android::hardware::radio::V1_5::BarringInfo::BarringType::UNCONDITIONAL));
+
+static_assert(aidl::android::hardware::radio::IndicationFilter::NONE ==
+ static_cast<aidl::android::hardware::radio::IndicationFilter>(
+ ::android::hardware::radio::V1_5::IndicationFilter::NONE));
+static_assert(aidl::android::hardware::radio::IndicationFilter::ALL ==
+ static_cast<aidl::android::hardware::radio::IndicationFilter>(
+ ::android::hardware::radio::V1_5::IndicationFilter::ALL));
+static_assert(aidl::android::hardware::radio::IndicationFilter::SIGNAL_STRENGTH ==
+ static_cast<aidl::android::hardware::radio::IndicationFilter>(
+ ::android::hardware::radio::V1_5::IndicationFilter::SIGNAL_STRENGTH));
+static_assert(aidl::android::hardware::radio::IndicationFilter::FULL_NETWORK_STATE ==
+ static_cast<aidl::android::hardware::radio::IndicationFilter>(
+ ::android::hardware::radio::V1_5::IndicationFilter::FULL_NETWORK_STATE));
+static_assert(
+ aidl::android::hardware::radio::IndicationFilter::DATA_CALL_DORMANCY_CHANGED ==
+ static_cast<aidl::android::hardware::radio::IndicationFilter>(
+ ::android::hardware::radio::V1_5::IndicationFilter::DATA_CALL_DORMANCY_CHANGED));
+static_assert(aidl::android::hardware::radio::IndicationFilter::LINK_CAPACITY_ESTIMATE ==
+ static_cast<aidl::android::hardware::radio::IndicationFilter>(
+ ::android::hardware::radio::V1_5::IndicationFilter::LINK_CAPACITY_ESTIMATE));
+static_assert(aidl::android::hardware::radio::IndicationFilter::PHYSICAL_CHANNEL_CONFIG ==
+ static_cast<aidl::android::hardware::radio::IndicationFilter>(
+ ::android::hardware::radio::V1_5::IndicationFilter::PHYSICAL_CHANNEL_CONFIG));
+static_assert(aidl::android::hardware::radio::IndicationFilter::REGISTRATION_FAILURE ==
+ static_cast<aidl::android::hardware::radio::IndicationFilter>(
+ ::android::hardware::radio::V1_5::IndicationFilter::REGISTRATION_FAILURE));
+static_assert(aidl::android::hardware::radio::IndicationFilter::BARRING_INFO ==
+ static_cast<aidl::android::hardware::radio::IndicationFilter>(
+ ::android::hardware::radio::V1_5::IndicationFilter::BARRING_INFO));
+
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::NONE ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::NONE));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::IMSI_UNKNOWN_IN_HLR ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::IMSI_UNKNOWN_IN_HLR));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::ILLEGAL_MS ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::ILLEGAL_MS));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::IMSI_UNKNOWN_IN_VLR ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::IMSI_UNKNOWN_IN_VLR));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::IMEI_NOT_ACCEPTED ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::IMEI_NOT_ACCEPTED));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::ILLEGAL_ME ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::ILLEGAL_ME));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::GPRS_SERVICES_NOT_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ GPRS_SERVICES_NOT_ALLOWED));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::
+ GPRS_AND_NON_GPRS_SERVICES_NOT_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ GPRS_AND_NON_GPRS_SERVICES_NOT_ALLOWED));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::
+ MS_IDENTITY_CANNOT_BE_DERIVED_BY_NETWORK ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ MS_IDENTITY_CANNOT_BE_DERIVED_BY_NETWORK));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::IMPLICITLY_DETACHED ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::IMPLICITLY_DETACHED));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::PLMN_NOT_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::PLMN_NOT_ALLOWED));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::LOCATION_AREA_NOT_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ LOCATION_AREA_NOT_ALLOWED));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::ROAMING_NOT_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::ROAMING_NOT_ALLOWED));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::GPRS_SERVICES_NOT_ALLOWED_IN_PLMN ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ GPRS_SERVICES_NOT_ALLOWED_IN_PLMN));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::NO_SUITABLE_CELLS ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::NO_SUITABLE_CELLS));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::MSC_TEMPORARILY_NOT_REACHABLE ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ MSC_TEMPORARILY_NOT_REACHABLE));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::NETWORK_FAILURE ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::NETWORK_FAILURE));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::MAC_FAILURE ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::MAC_FAILURE));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::SYNC_FAILURE ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::SYNC_FAILURE));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::CONGESTION ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::CONGESTION));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::GSM_AUTHENTICATION_UNACCEPTABLE ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ GSM_AUTHENTICATION_UNACCEPTABLE));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::NOT_AUTHORIZED_FOR_THIS_CSG ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ NOT_AUTHORIZED_FOR_THIS_CSG));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::
+ SMS_PROVIDED_BY_GPRS_IN_ROUTING_AREA ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ SMS_PROVIDED_BY_GPRS_IN_ROUTING_AREA));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::SERVICE_OPTION_NOT_SUPPORTED ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ SERVICE_OPTION_NOT_SUPPORTED));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::SERVICE_OPTION_NOT_SUBSCRIBED ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ SERVICE_OPTION_NOT_SUBSCRIBED));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::
+ SERVICE_OPTION_TEMPORARILY_OUT_OF_ORDER ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ SERVICE_OPTION_TEMPORARILY_OUT_OF_ORDER));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::CALL_CANNOT_BE_IDENTIFIED ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ CALL_CANNOT_BE_IDENTIFIED));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::NO_PDP_CONTEXT_ACTIVATED ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::NO_PDP_CONTEXT_ACTIVATED));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::RETRY_UPON_ENTRY_INTO_NEW_CELL_1 ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ RETRY_UPON_ENTRY_INTO_NEW_CELL_1));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::RETRY_UPON_ENTRY_INTO_NEW_CELL_2 ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ RETRY_UPON_ENTRY_INTO_NEW_CELL_2));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::RETRY_UPON_ENTRY_INTO_NEW_CELL_3 ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ RETRY_UPON_ENTRY_INTO_NEW_CELL_3));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::RETRY_UPON_ENTRY_INTO_NEW_CELL_4 ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ RETRY_UPON_ENTRY_INTO_NEW_CELL_4));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::RETRY_UPON_ENTRY_INTO_NEW_CELL_5 ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ RETRY_UPON_ENTRY_INTO_NEW_CELL_5));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::RETRY_UPON_ENTRY_INTO_NEW_CELL_6 ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ RETRY_UPON_ENTRY_INTO_NEW_CELL_6));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::RETRY_UPON_ENTRY_INTO_NEW_CELL_7 ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ RETRY_UPON_ENTRY_INTO_NEW_CELL_7));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::RETRY_UPON_ENTRY_INTO_NEW_CELL_8 ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ RETRY_UPON_ENTRY_INTO_NEW_CELL_8));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::RETRY_UPON_ENTRY_INTO_NEW_CELL_9 ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ RETRY_UPON_ENTRY_INTO_NEW_CELL_9));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::RETRY_UPON_ENTRY_INTO_NEW_CELL_10 ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ RETRY_UPON_ENTRY_INTO_NEW_CELL_10));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::RETRY_UPON_ENTRY_INTO_NEW_CELL_11 ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ RETRY_UPON_ENTRY_INTO_NEW_CELL_11));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::RETRY_UPON_ENTRY_INTO_NEW_CELL_12 ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ RETRY_UPON_ENTRY_INTO_NEW_CELL_12));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::RETRY_UPON_ENTRY_INTO_NEW_CELL_13 ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ RETRY_UPON_ENTRY_INTO_NEW_CELL_13));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::RETRY_UPON_ENTRY_INTO_NEW_CELL_14 ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ RETRY_UPON_ENTRY_INTO_NEW_CELL_14));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::RETRY_UPON_ENTRY_INTO_NEW_CELL_15 ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ RETRY_UPON_ENTRY_INTO_NEW_CELL_15));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::RETRY_UPON_ENTRY_INTO_NEW_CELL_16 ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ RETRY_UPON_ENTRY_INTO_NEW_CELL_16));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::SEMANTICALLY_INCORRECT_MESSAGE ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ SEMANTICALLY_INCORRECT_MESSAGE));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::INVALID_MANDATORY_INFORMATION ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ INVALID_MANDATORY_INFORMATION));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::
+ MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::
+ MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::
+ INFORMATION_ELEMENT_NON_EXISTENT_OR_NOT_IMPLEMENTED ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ INFORMATION_ELEMENT_NON_EXISTENT_OR_NOT_IMPLEMENTED));
+static_assert(
+ aidl::android::hardware::radio::RegistrationFailCause::CONDITIONAL_IE_ERROR ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::CONDITIONAL_IE_ERROR));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::
+ MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE));
+static_assert(aidl::android::hardware::radio::RegistrationFailCause::PROTOCOL_ERROR_UNSPECIFIED ==
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(
+ ::android::hardware::radio::V1_5::RegistrationFailCause::
+ PROTOCOL_ERROR_UNSPECIFIED));
+
+static_assert(aidl::android::hardware::radio::PrlIndicator::NOT_REGISTERED ==
+ static_cast<aidl::android::hardware::radio::PrlIndicator>(
+ ::android::hardware::radio::V1_5::PrlIndicator::NOT_REGISTERED));
+static_assert(aidl::android::hardware::radio::PrlIndicator::NOT_IN_PRL ==
+ static_cast<aidl::android::hardware::radio::PrlIndicator>(
+ ::android::hardware::radio::V1_5::PrlIndicator::NOT_IN_PRL));
+static_assert(aidl::android::hardware::radio::PrlIndicator::IN_PRL ==
+ static_cast<aidl::android::hardware::radio::PrlIndicator>(
+ ::android::hardware::radio::V1_5::PrlIndicator::IN_PRL));
+
+static_assert(aidl::android::hardware::radio::PersoSubstate::UNKNOWN ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::UNKNOWN));
+static_assert(aidl::android::hardware::radio::PersoSubstate::IN_PROGRESS ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::IN_PROGRESS));
+static_assert(aidl::android::hardware::radio::PersoSubstate::READY ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::READY));
+static_assert(aidl::android::hardware::radio::PersoSubstate::SIM_NETWORK ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::SIM_NETWORK));
+static_assert(aidl::android::hardware::radio::PersoSubstate::SIM_NETWORK_SUBSET ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::SIM_NETWORK_SUBSET));
+static_assert(aidl::android::hardware::radio::PersoSubstate::SIM_CORPORATE ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::SIM_CORPORATE));
+static_assert(aidl::android::hardware::radio::PersoSubstate::SIM_SERVICE_PROVIDER ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::SIM_SERVICE_PROVIDER));
+static_assert(aidl::android::hardware::radio::PersoSubstate::SIM_SIM ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::SIM_SIM));
+static_assert(aidl::android::hardware::radio::PersoSubstate::SIM_NETWORK_PUK ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::SIM_NETWORK_PUK));
+static_assert(aidl::android::hardware::radio::PersoSubstate::SIM_NETWORK_SUBSET_PUK ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::SIM_NETWORK_SUBSET_PUK));
+static_assert(aidl::android::hardware::radio::PersoSubstate::SIM_CORPORATE_PUK ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::SIM_CORPORATE_PUK));
+static_assert(aidl::android::hardware::radio::PersoSubstate::SIM_SERVICE_PROVIDER_PUK ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::SIM_SERVICE_PROVIDER_PUK));
+static_assert(aidl::android::hardware::radio::PersoSubstate::SIM_SIM_PUK ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::SIM_SIM_PUK));
+static_assert(aidl::android::hardware::radio::PersoSubstate::RUIM_NETWORK1 ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::RUIM_NETWORK1));
+static_assert(aidl::android::hardware::radio::PersoSubstate::RUIM_NETWORK2 ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::RUIM_NETWORK2));
+static_assert(aidl::android::hardware::radio::PersoSubstate::RUIM_HRPD ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::RUIM_HRPD));
+static_assert(aidl::android::hardware::radio::PersoSubstate::RUIM_CORPORATE ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::RUIM_CORPORATE));
+static_assert(aidl::android::hardware::radio::PersoSubstate::RUIM_SERVICE_PROVIDER ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::RUIM_SERVICE_PROVIDER));
+static_assert(aidl::android::hardware::radio::PersoSubstate::RUIM_RUIM ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::RUIM_RUIM));
+static_assert(aidl::android::hardware::radio::PersoSubstate::RUIM_NETWORK1_PUK ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::RUIM_NETWORK1_PUK));
+static_assert(aidl::android::hardware::radio::PersoSubstate::RUIM_NETWORK2_PUK ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::RUIM_NETWORK2_PUK));
+static_assert(aidl::android::hardware::radio::PersoSubstate::RUIM_HRPD_PUK ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::RUIM_HRPD_PUK));
+static_assert(aidl::android::hardware::radio::PersoSubstate::RUIM_CORPORATE_PUK ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::RUIM_CORPORATE_PUK));
+static_assert(aidl::android::hardware::radio::PersoSubstate::RUIM_SERVICE_PROVIDER_PUK ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::RUIM_SERVICE_PROVIDER_PUK));
+static_assert(aidl::android::hardware::radio::PersoSubstate::RUIM_RUIM_PUK ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::RUIM_RUIM_PUK));
+static_assert(aidl::android::hardware::radio::PersoSubstate::SIM_SPN ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::SIM_SPN));
+static_assert(aidl::android::hardware::radio::PersoSubstate::SIM_SPN_PUK ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::SIM_SPN_PUK));
+static_assert(aidl::android::hardware::radio::PersoSubstate::SIM_SP_EHPLMN ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::SIM_SP_EHPLMN));
+static_assert(aidl::android::hardware::radio::PersoSubstate::SIM_SP_EHPLMN_PUK ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::SIM_SP_EHPLMN_PUK));
+static_assert(aidl::android::hardware::radio::PersoSubstate::SIM_ICCID ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::SIM_ICCID));
+static_assert(aidl::android::hardware::radio::PersoSubstate::SIM_ICCID_PUK ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::SIM_ICCID_PUK));
+static_assert(aidl::android::hardware::radio::PersoSubstate::SIM_IMPI ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::SIM_IMPI));
+static_assert(aidl::android::hardware::radio::PersoSubstate::SIM_IMPI_PUK ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::SIM_IMPI_PUK));
+static_assert(aidl::android::hardware::radio::PersoSubstate::SIM_NS_SP ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::SIM_NS_SP));
+static_assert(aidl::android::hardware::radio::PersoSubstate::SIM_NS_SP_PUK ==
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(
+ ::android::hardware::radio::V1_5::PersoSubstate::SIM_NS_SP_PUK));
+
+static_assert(aidl::android::hardware::radio::QosFlowIdRange::MIN ==
+ static_cast<aidl::android::hardware::radio::QosFlowIdRange>(
+ ::android::hardware::radio::V1_6::QosFlowIdRange::MIN));
+static_assert(aidl::android::hardware::radio::QosFlowIdRange::MAX ==
+ static_cast<aidl::android::hardware::radio::QosFlowIdRange>(
+ ::android::hardware::radio::V1_6::QosFlowIdRange::MAX));
+
+static_assert(aidl::android::hardware::radio::QosProtocol::UNSPECIFIED ==
+ static_cast<aidl::android::hardware::radio::QosProtocol>(
+ ::android::hardware::radio::V1_6::QosProtocol::UNSPECIFIED));
+static_assert(aidl::android::hardware::radio::QosProtocol::TCP ==
+ static_cast<aidl::android::hardware::radio::QosProtocol>(
+ ::android::hardware::radio::V1_6::QosProtocol::TCP));
+static_assert(aidl::android::hardware::radio::QosProtocol::UDP ==
+ static_cast<aidl::android::hardware::radio::QosProtocol>(
+ ::android::hardware::radio::V1_6::QosProtocol::UDP));
+static_assert(aidl::android::hardware::radio::QosProtocol::ESP ==
+ static_cast<aidl::android::hardware::radio::QosProtocol>(
+ ::android::hardware::radio::V1_6::QosProtocol::ESP));
+static_assert(aidl::android::hardware::radio::QosProtocol::AH ==
+ static_cast<aidl::android::hardware::radio::QosProtocol>(
+ ::android::hardware::radio::V1_6::QosProtocol::AH));
+
+static_assert(aidl::android::hardware::radio::QosFilterDirection::DOWNLINK ==
+ static_cast<aidl::android::hardware::radio::QosFilterDirection>(
+ ::android::hardware::radio::V1_6::QosFilterDirection::DOWNLINK));
+static_assert(aidl::android::hardware::radio::QosFilterDirection::UPLINK ==
+ static_cast<aidl::android::hardware::radio::QosFilterDirection>(
+ ::android::hardware::radio::V1_6::QosFilterDirection::UPLINK));
+static_assert(aidl::android::hardware::radio::QosFilterDirection::BIDIRECTIONAL ==
+ static_cast<aidl::android::hardware::radio::QosFilterDirection>(
+ ::android::hardware::radio::V1_6::QosFilterDirection::BIDIRECTIONAL));
+
+static_assert(aidl::android::hardware::radio::QosPortRange::MIN ==
+ static_cast<aidl::android::hardware::radio::QosPortRange>(
+ ::android::hardware::radio::V1_6::QosPortRange::MIN));
+static_assert(aidl::android::hardware::radio::QosPortRange::MAX ==
+ static_cast<aidl::android::hardware::radio::QosPortRange>(
+ ::android::hardware::radio::V1_6::QosPortRange::MAX));
+
+static_assert(aidl::android::hardware::radio::RadioError::NONE ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::NONE));
+static_assert(aidl::android::hardware::radio::RadioError::RADIO_NOT_AVAILABLE ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::RADIO_NOT_AVAILABLE));
+static_assert(aidl::android::hardware::radio::RadioError::GENERIC_FAILURE ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::GENERIC_FAILURE));
+static_assert(aidl::android::hardware::radio::RadioError::PASSWORD_INCORRECT ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::PASSWORD_INCORRECT));
+static_assert(aidl::android::hardware::radio::RadioError::SIM_PIN2 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::SIM_PIN2));
+static_assert(aidl::android::hardware::radio::RadioError::SIM_PUK2 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::SIM_PUK2));
+static_assert(aidl::android::hardware::radio::RadioError::REQUEST_NOT_SUPPORTED ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::REQUEST_NOT_SUPPORTED));
+static_assert(aidl::android::hardware::radio::RadioError::CANCELLED ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::CANCELLED));
+static_assert(
+ aidl::android::hardware::radio::RadioError::OP_NOT_ALLOWED_DURING_VOICE_CALL ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OP_NOT_ALLOWED_DURING_VOICE_CALL));
+static_assert(
+ aidl::android::hardware::radio::RadioError::OP_NOT_ALLOWED_BEFORE_REG_TO_NW ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OP_NOT_ALLOWED_BEFORE_REG_TO_NW));
+static_assert(aidl::android::hardware::radio::RadioError::SMS_SEND_FAIL_RETRY ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::SMS_SEND_FAIL_RETRY));
+static_assert(aidl::android::hardware::radio::RadioError::SIM_ABSENT ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::SIM_ABSENT));
+static_assert(aidl::android::hardware::radio::RadioError::SUBSCRIPTION_NOT_AVAILABLE ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::SUBSCRIPTION_NOT_AVAILABLE));
+static_assert(aidl::android::hardware::radio::RadioError::MODE_NOT_SUPPORTED ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::MODE_NOT_SUPPORTED));
+static_assert(aidl::android::hardware::radio::RadioError::FDN_CHECK_FAILURE ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::FDN_CHECK_FAILURE));
+static_assert(aidl::android::hardware::radio::RadioError::ILLEGAL_SIM_OR_ME ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::ILLEGAL_SIM_OR_ME));
+static_assert(aidl::android::hardware::radio::RadioError::MISSING_RESOURCE ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::MISSING_RESOURCE));
+static_assert(aidl::android::hardware::radio::RadioError::NO_SUCH_ELEMENT ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::NO_SUCH_ELEMENT));
+static_assert(aidl::android::hardware::radio::RadioError::DIAL_MODIFIED_TO_USSD ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::DIAL_MODIFIED_TO_USSD));
+static_assert(aidl::android::hardware::radio::RadioError::DIAL_MODIFIED_TO_SS ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::DIAL_MODIFIED_TO_SS));
+static_assert(aidl::android::hardware::radio::RadioError::DIAL_MODIFIED_TO_DIAL ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::DIAL_MODIFIED_TO_DIAL));
+static_assert(aidl::android::hardware::radio::RadioError::USSD_MODIFIED_TO_DIAL ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::USSD_MODIFIED_TO_DIAL));
+static_assert(aidl::android::hardware::radio::RadioError::USSD_MODIFIED_TO_SS ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::USSD_MODIFIED_TO_SS));
+static_assert(aidl::android::hardware::radio::RadioError::USSD_MODIFIED_TO_USSD ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::USSD_MODIFIED_TO_USSD));
+static_assert(aidl::android::hardware::radio::RadioError::SS_MODIFIED_TO_DIAL ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::SS_MODIFIED_TO_DIAL));
+static_assert(aidl::android::hardware::radio::RadioError::SS_MODIFIED_TO_USSD ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::SS_MODIFIED_TO_USSD));
+static_assert(aidl::android::hardware::radio::RadioError::SUBSCRIPTION_NOT_SUPPORTED ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::SUBSCRIPTION_NOT_SUPPORTED));
+static_assert(aidl::android::hardware::radio::RadioError::SS_MODIFIED_TO_SS ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::SS_MODIFIED_TO_SS));
+static_assert(aidl::android::hardware::radio::RadioError::LCE_NOT_SUPPORTED ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::LCE_NOT_SUPPORTED));
+static_assert(aidl::android::hardware::radio::RadioError::NO_MEMORY ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::NO_MEMORY));
+static_assert(aidl::android::hardware::radio::RadioError::INTERNAL_ERR ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::INTERNAL_ERR));
+static_assert(aidl::android::hardware::radio::RadioError::SYSTEM_ERR ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::SYSTEM_ERR));
+static_assert(aidl::android::hardware::radio::RadioError::MODEM_ERR ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::MODEM_ERR));
+static_assert(aidl::android::hardware::radio::RadioError::INVALID_STATE ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::INVALID_STATE));
+static_assert(aidl::android::hardware::radio::RadioError::NO_RESOURCES ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::NO_RESOURCES));
+static_assert(aidl::android::hardware::radio::RadioError::SIM_ERR ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::SIM_ERR));
+static_assert(aidl::android::hardware::radio::RadioError::INVALID_ARGUMENTS ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::INVALID_ARGUMENTS));
+static_assert(aidl::android::hardware::radio::RadioError::INVALID_SIM_STATE ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::INVALID_SIM_STATE));
+static_assert(aidl::android::hardware::radio::RadioError::INVALID_MODEM_STATE ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::INVALID_MODEM_STATE));
+static_assert(aidl::android::hardware::radio::RadioError::INVALID_CALL_ID ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::INVALID_CALL_ID));
+static_assert(aidl::android::hardware::radio::RadioError::NO_SMS_TO_ACK ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::NO_SMS_TO_ACK));
+static_assert(aidl::android::hardware::radio::RadioError::NETWORK_ERR ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::NETWORK_ERR));
+static_assert(aidl::android::hardware::radio::RadioError::REQUEST_RATE_LIMITED ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::REQUEST_RATE_LIMITED));
+static_assert(aidl::android::hardware::radio::RadioError::SIM_BUSY ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::SIM_BUSY));
+static_assert(aidl::android::hardware::radio::RadioError::SIM_FULL ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::SIM_FULL));
+static_assert(aidl::android::hardware::radio::RadioError::NETWORK_REJECT ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::NETWORK_REJECT));
+static_assert(aidl::android::hardware::radio::RadioError::OPERATION_NOT_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OPERATION_NOT_ALLOWED));
+static_assert(aidl::android::hardware::radio::RadioError::EMPTY_RECORD ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::EMPTY_RECORD));
+static_assert(aidl::android::hardware::radio::RadioError::INVALID_SMS_FORMAT ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::INVALID_SMS_FORMAT));
+static_assert(aidl::android::hardware::radio::RadioError::ENCODING_ERR ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::ENCODING_ERR));
+static_assert(aidl::android::hardware::radio::RadioError::INVALID_SMSC_ADDRESS ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::INVALID_SMSC_ADDRESS));
+static_assert(aidl::android::hardware::radio::RadioError::NO_SUCH_ENTRY ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::NO_SUCH_ENTRY));
+static_assert(aidl::android::hardware::radio::RadioError::NETWORK_NOT_READY ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::NETWORK_NOT_READY));
+static_assert(aidl::android::hardware::radio::RadioError::NOT_PROVISIONED ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::NOT_PROVISIONED));
+static_assert(aidl::android::hardware::radio::RadioError::NO_SUBSCRIPTION ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::NO_SUBSCRIPTION));
+static_assert(aidl::android::hardware::radio::RadioError::NO_NETWORK_FOUND ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::NO_NETWORK_FOUND));
+static_assert(aidl::android::hardware::radio::RadioError::DEVICE_IN_USE ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::DEVICE_IN_USE));
+static_assert(aidl::android::hardware::radio::RadioError::ABORTED ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::ABORTED));
+static_assert(aidl::android::hardware::radio::RadioError::INVALID_RESPONSE ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::INVALID_RESPONSE));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_1 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_1));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_2 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_2));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_3 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_3));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_4 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_4));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_5 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_5));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_6 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_6));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_7 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_7));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_8 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_8));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_9 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_9));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_10 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_10));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_11 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_11));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_12 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_12));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_13 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_13));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_14 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_14));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_15 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_15));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_16 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_16));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_17 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_17));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_18 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_18));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_19 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_19));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_20 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_20));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_21 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_21));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_22 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_22));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_23 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_23));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_24 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_24));
+static_assert(aidl::android::hardware::radio::RadioError::OEM_ERROR_25 ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::OEM_ERROR_25));
+static_assert(aidl::android::hardware::radio::RadioError::SIMULTANEOUS_SMS_AND_CALL_NOT_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::
+ SIMULTANEOUS_SMS_AND_CALL_NOT_ALLOWED));
+static_assert(aidl::android::hardware::radio::RadioError::ACCESS_BARRED ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::ACCESS_BARRED));
+static_assert(aidl::android::hardware::radio::RadioError::BLOCKED_DUE_TO_CALL ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::BLOCKED_DUE_TO_CALL));
+static_assert(aidl::android::hardware::radio::RadioError::RF_HARDWARE_ISSUE ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::RF_HARDWARE_ISSUE));
+static_assert(aidl::android::hardware::radio::RadioError::NO_RF_CALIBRATION_INFO ==
+ static_cast<aidl::android::hardware::radio::RadioError>(
+ ::android::hardware::radio::V1_6::RadioError::NO_RF_CALIBRATION_INFO));
+
+static_assert(aidl::android::hardware::radio::HandoverFailureMode::LEGACY ==
+ static_cast<aidl::android::hardware::radio::HandoverFailureMode>(
+ ::android::hardware::radio::V1_6::HandoverFailureMode::LEGACY));
+static_assert(aidl::android::hardware::radio::HandoverFailureMode::DO_FALLBACK ==
+ static_cast<aidl::android::hardware::radio::HandoverFailureMode>(
+ ::android::hardware::radio::V1_6::HandoverFailureMode::DO_FALLBACK));
+static_assert(
+ aidl::android::hardware::radio::HandoverFailureMode::NO_FALLBACK_RETRY_HANDOVER ==
+ static_cast<aidl::android::hardware::radio::HandoverFailureMode>(
+ ::android::hardware::radio::V1_6::HandoverFailureMode::NO_FALLBACK_RETRY_HANDOVER));
+static_assert(aidl::android::hardware::radio::HandoverFailureMode::NO_FALLBACK_RETRY_SETUP_NORMAL ==
+ static_cast<aidl::android::hardware::radio::HandoverFailureMode>(
+ ::android::hardware::radio::V1_6::HandoverFailureMode::
+ NO_FALLBACK_RETRY_SETUP_NORMAL));
+
+static_assert(aidl::android::hardware::radio::NrDualConnectivityState::ENABLE ==
+ static_cast<aidl::android::hardware::radio::NrDualConnectivityState>(
+ ::android::hardware::radio::V1_6::NrDualConnectivityState::ENABLE));
+static_assert(aidl::android::hardware::radio::NrDualConnectivityState::DISABLE ==
+ static_cast<aidl::android::hardware::radio::NrDualConnectivityState>(
+ ::android::hardware::radio::V1_6::NrDualConnectivityState::DISABLE));
+static_assert(
+ aidl::android::hardware::radio::NrDualConnectivityState::DISABLE_IMMEDIATE ==
+ static_cast<aidl::android::hardware::radio::NrDualConnectivityState>(
+ ::android::hardware::radio::V1_6::NrDualConnectivityState::DISABLE_IMMEDIATE));
+
+static_assert(aidl::android::hardware::radio::DataThrottlingAction::NO_DATA_THROTTLING ==
+ static_cast<aidl::android::hardware::radio::DataThrottlingAction>(
+ ::android::hardware::radio::V1_6::DataThrottlingAction::NO_DATA_THROTTLING));
+static_assert(aidl::android::hardware::radio::DataThrottlingAction::THROTTLE_SECONDARY_CARRIER ==
+ static_cast<aidl::android::hardware::radio::DataThrottlingAction>(
+ ::android::hardware::radio::V1_6::DataThrottlingAction::
+ THROTTLE_SECONDARY_CARRIER));
+static_assert(
+ aidl::android::hardware::radio::DataThrottlingAction::THROTTLE_ANCHOR_CARRIER ==
+ static_cast<aidl::android::hardware::radio::DataThrottlingAction>(
+ ::android::hardware::radio::V1_6::DataThrottlingAction::THROTTLE_ANCHOR_CARRIER));
+static_assert(aidl::android::hardware::radio::DataThrottlingAction::HOLD ==
+ static_cast<aidl::android::hardware::radio::DataThrottlingAction>(
+ ::android::hardware::radio::V1_6::DataThrottlingAction::HOLD));
+
+static_assert(aidl::android::hardware::radio::VopsIndicator::VOPS_NOT_SUPPORTED ==
+ static_cast<aidl::android::hardware::radio::VopsIndicator>(
+ ::android::hardware::radio::V1_6::VopsIndicator::VOPS_NOT_SUPPORTED));
+static_assert(aidl::android::hardware::radio::VopsIndicator::VOPS_OVER_3GPP ==
+ static_cast<aidl::android::hardware::radio::VopsIndicator>(
+ ::android::hardware::radio::V1_6::VopsIndicator::VOPS_OVER_3GPP));
+static_assert(aidl::android::hardware::radio::VopsIndicator::VOPS_OVER_NON_3GPP ==
+ static_cast<aidl::android::hardware::radio::VopsIndicator>(
+ ::android::hardware::radio::V1_6::VopsIndicator::VOPS_OVER_NON_3GPP));
+
+static_assert(aidl::android::hardware::radio::EmcIndicator::EMC_NOT_SUPPORTED ==
+ static_cast<aidl::android::hardware::radio::EmcIndicator>(
+ ::android::hardware::radio::V1_6::EmcIndicator::EMC_NOT_SUPPORTED));
+static_assert(aidl::android::hardware::radio::EmcIndicator::EMC_NR_CONNECTED_TO_5GCN ==
+ static_cast<aidl::android::hardware::radio::EmcIndicator>(
+ ::android::hardware::radio::V1_6::EmcIndicator::EMC_NR_CONNECTED_TO_5GCN));
+static_assert(aidl::android::hardware::radio::EmcIndicator::EMC_EUTRA_CONNECTED_TO_5GCN ==
+ static_cast<aidl::android::hardware::radio::EmcIndicator>(
+ ::android::hardware::radio::V1_6::EmcIndicator::EMC_EUTRA_CONNECTED_TO_5GCN));
+static_assert(aidl::android::hardware::radio::EmcIndicator::EMC_BOTH_NR_EUTRA_CONNECTED_TO_5GCN ==
+ static_cast<aidl::android::hardware::radio::EmcIndicator>(
+ ::android::hardware::radio::V1_6::EmcIndicator::
+ EMC_BOTH_NR_EUTRA_CONNECTED_TO_5GCN));
+
+static_assert(aidl::android::hardware::radio::EmfIndicator::EMF_NOT_SUPPORTED ==
+ static_cast<aidl::android::hardware::radio::EmfIndicator>(
+ ::android::hardware::radio::V1_6::EmfIndicator::EMF_NOT_SUPPORTED));
+static_assert(aidl::android::hardware::radio::EmfIndicator::EMF_NR_CONNECTED_TO_5GCN ==
+ static_cast<aidl::android::hardware::radio::EmfIndicator>(
+ ::android::hardware::radio::V1_6::EmfIndicator::EMF_NR_CONNECTED_TO_5GCN));
+static_assert(aidl::android::hardware::radio::EmfIndicator::EMF_EUTRA_CONNECTED_TO_5GCN ==
+ static_cast<aidl::android::hardware::radio::EmfIndicator>(
+ ::android::hardware::radio::V1_6::EmfIndicator::EMF_EUTRA_CONNECTED_TO_5GCN));
+static_assert(aidl::android::hardware::radio::EmfIndicator::EMF_BOTH_NR_EUTRA_CONNECTED_TO_5GCN ==
+ static_cast<aidl::android::hardware::radio::EmfIndicator>(
+ ::android::hardware::radio::V1_6::EmfIndicator::
+ EMF_BOTH_NR_EUTRA_CONNECTED_TO_5GCN));
+
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_1 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_1));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_2 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_2));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_3 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_3));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_5 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_5));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_7 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_7));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_8 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_8));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_12 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_12));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_14 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_14));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_18 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_18));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_20 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_20));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_25 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_25));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_28 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_28));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_29 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_29));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_30 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_30));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_34 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_34));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_38 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_38));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_39 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_39));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_40 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_40));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_41 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_41));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_48 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_48));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_50 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_50));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_51 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_51));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_65 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_65));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_66 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_66));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_70 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_70));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_71 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_71));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_74 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_74));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_75 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_75));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_76 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_76));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_77 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_77));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_78 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_78));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_79 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_79));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_80 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_80));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_81 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_81));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_82 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_82));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_83 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_83));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_84 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_84));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_86 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_86));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_89 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_89));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_90 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_90));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_91 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_91));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_92 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_92));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_93 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_93));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_94 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_94));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_95 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_95));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_257 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_257));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_258 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_258));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_260 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_260));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_261 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_261));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_26 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_26));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_46 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_46));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_53 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_53));
+static_assert(aidl::android::hardware::radio::NgranBands::BAND_96 ==
+ static_cast<aidl::android::hardware::radio::NgranBands>(
+ ::android::hardware::radio::V1_6::NgranBands::BAND_96));
+
+static_assert(aidl::android::hardware::radio::SliceServiceType::NONE ==
+ static_cast<aidl::android::hardware::radio::SliceServiceType>(
+ ::android::hardware::radio::V1_6::SliceServiceType::NONE));
+static_assert(aidl::android::hardware::radio::SliceServiceType::EMBB ==
+ static_cast<aidl::android::hardware::radio::SliceServiceType>(
+ ::android::hardware::radio::V1_6::SliceServiceType::EMBB));
+static_assert(aidl::android::hardware::radio::SliceServiceType::URLLC ==
+ static_cast<aidl::android::hardware::radio::SliceServiceType>(
+ ::android::hardware::radio::V1_6::SliceServiceType::URLLC));
+static_assert(aidl::android::hardware::radio::SliceServiceType::MIOT ==
+ static_cast<aidl::android::hardware::radio::SliceServiceType>(
+ ::android::hardware::radio::V1_6::SliceServiceType::MIOT));
+
+static_assert(aidl::android::hardware::radio::DataCallFailCause::NONE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::NONE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::OPERATOR_BARRED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::OPERATOR_BARRED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::NAS_SIGNALLING ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::NAS_SIGNALLING));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::INSUFFICIENT_RESOURCES ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::INSUFFICIENT_RESOURCES));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::MISSING_UNKNOWN_APN ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MISSING_UKNOWN_APN));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::UNKNOWN_PDP_ADDRESS_TYPE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::UNKNOWN_PDP_ADDRESS_TYPE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::USER_AUTHENTICATION ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::USER_AUTHENTICATION));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::ACTIVATION_REJECT_GGSN ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::ACTIVATION_REJECT_GGSN));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::ACTIVATION_REJECT_UNSPECIFIED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ ACTIVATION_REJECT_UNSPECIFIED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::SERVICE_OPTION_NOT_SUPPORTED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::SERVICE_OPTION_NOT_SUPPORTED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::SERVICE_OPTION_NOT_SUBSCRIBED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ SERVICE_OPTION_NOT_SUBSCRIBED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::SERVICE_OPTION_OUT_OF_ORDER ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::SERVICE_OPTION_OUT_OF_ORDER));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::NSAPI_IN_USE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::NSAPI_IN_USE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::REGULAR_DEACTIVATION ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::REGULAR_DEACTIVATION));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::QOS_NOT_ACCEPTED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::QOS_NOT_ACCEPTED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::NETWORK_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::NETWORK_FAILURE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::UMTS_REACTIVATION_REQ ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::UMTS_REACTIVATION_REQ));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::FEATURE_NOT_SUPP ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::FEATURE_NOT_SUPP));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::TFT_SEMANTIC_ERROR ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::TFT_SEMANTIC_ERROR));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::TFT_SYTAX_ERROR ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::TFT_SYTAX_ERROR));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::UNKNOWN_PDP_CONTEXT ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::UNKNOWN_PDP_CONTEXT));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::FILTER_SEMANTIC_ERROR ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::FILTER_SEMANTIC_ERROR));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::FILTER_SYTAX_ERROR ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::FILTER_SYTAX_ERROR));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::PDP_WITHOUT_ACTIVE_TFT ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PDP_WITHOUT_ACTIVE_TFT));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::ONLY_IPV4_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::ONLY_IPV4_ALLOWED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::ONLY_IPV6_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::ONLY_IPV6_ALLOWED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::ONLY_SINGLE_BEARER_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::ONLY_SINGLE_BEARER_ALLOWED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::ESM_INFO_NOT_RECEIVED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::ESM_INFO_NOT_RECEIVED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::PDN_CONN_DOES_NOT_EXIST ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PDN_CONN_DOES_NOT_EXIST));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::MAX_ACTIVE_PDP_CONTEXT_REACHED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MAX_ACTIVE_PDP_CONTEXT_REACHED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::UNSUPPORTED_APN_IN_CURRENT_PLMN ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ UNSUPPORTED_APN_IN_CURRENT_PLMN));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::INVALID_TRANSACTION_ID ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::INVALID_TRANSACTION_ID));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MESSAGE_INCORRECT_SEMANTIC ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MESSAGE_INCORRECT_SEMANTIC));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::INVALID_MANDATORY_INFO ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::INVALID_MANDATORY_INFO));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MESSAGE_TYPE_UNSUPPORTED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MESSAGE_TYPE_UNSUPPORTED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MSG_TYPE_NONCOMPATIBLE_STATE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MSG_TYPE_NONCOMPATIBLE_STATE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::UNKNOWN_INFO_ELEMENT ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::UNKNOWN_INFO_ELEMENT));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::CONDITIONAL_IE_ERROR ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::CONDITIONAL_IE_ERROR));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::PROTOCOL_ERRORS ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PROTOCOL_ERRORS));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::APN_TYPE_CONFLICT ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::APN_TYPE_CONFLICT));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::INVALID_PCSCF_ADDR ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::INVALID_PCSCF_ADDR));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::EMM_ACCESS_BARRED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::EMM_ACCESS_BARRED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::EMERGENCY_IFACE_ONLY ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::EMERGENCY_IFACE_ONLY));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::IFACE_MISMATCH ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::IFACE_MISMATCH));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::COMPANION_IFACE_IN_USE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::COMPANION_IFACE_IN_USE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::IP_ADDRESS_MISMATCH ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::IP_ADDRESS_MISMATCH));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::IFACE_AND_POL_FAMILY_MISMATCH ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ IFACE_AND_POL_FAMILY_MISMATCH));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::EMM_ACCESS_BARRED_INFINITE_RETRY ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ EMM_ACCESS_BARRED_INFINITE_RETRY));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::AUTH_FAILURE_ON_EMERGENCY_CALL ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ AUTH_FAILURE_ON_EMERGENCY_CALL));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::OEM_DCFAILCAUSE_1 ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::OEM_DCFAILCAUSE_1));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::OEM_DCFAILCAUSE_2 ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::OEM_DCFAILCAUSE_2));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::OEM_DCFAILCAUSE_3 ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::OEM_DCFAILCAUSE_3));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::OEM_DCFAILCAUSE_4 ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::OEM_DCFAILCAUSE_4));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::OEM_DCFAILCAUSE_5 ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::OEM_DCFAILCAUSE_5));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::OEM_DCFAILCAUSE_6 ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::OEM_DCFAILCAUSE_6));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::OEM_DCFAILCAUSE_7 ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::OEM_DCFAILCAUSE_7));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::OEM_DCFAILCAUSE_8 ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::OEM_DCFAILCAUSE_8));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::OEM_DCFAILCAUSE_9 ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::OEM_DCFAILCAUSE_9));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::OEM_DCFAILCAUSE_10 ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::OEM_DCFAILCAUSE_10));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::OEM_DCFAILCAUSE_11 ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::OEM_DCFAILCAUSE_11));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::OEM_DCFAILCAUSE_12 ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::OEM_DCFAILCAUSE_12));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::OEM_DCFAILCAUSE_13 ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::OEM_DCFAILCAUSE_13));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::OEM_DCFAILCAUSE_14 ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::OEM_DCFAILCAUSE_14));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::OEM_DCFAILCAUSE_15 ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::OEM_DCFAILCAUSE_15));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::VOICE_REGISTRATION_FAIL ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::VOICE_REGISTRATION_FAIL));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::DATA_REGISTRATION_FAIL ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::DATA_REGISTRATION_FAIL));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::SIGNAL_LOST ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::SIGNAL_LOST));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::PREF_RADIO_TECH_CHANGED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PREF_RADIO_TECH_CHANGED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::RADIO_POWER_OFF ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::RADIO_POWER_OFF));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::TETHERED_CALL_ACTIVE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::TETHERED_CALL_ACTIVE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::ERROR_UNSPECIFIED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::ERROR_UNSPECIFIED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::LLC_SNDCP ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::LLC_SNDCP));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::ACTIVATION_REJECTED_BCM_VIOLATION ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ ACTIVATION_REJECTED_BCM_VIOLATION));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ COLLISION_WITH_NETWORK_INITIATED_REQUEST ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ COLLISION_WITH_NETWORK_INITIATED_REQUEST));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::ONLY_IPV4V6_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::ONLY_IPV4V6_ALLOWED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::ONLY_NON_IP_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::ONLY_NON_IP_ALLOWED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::UNSUPPORTED_QCI_VALUE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::UNSUPPORTED_QCI_VALUE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::BEARER_HANDLING_NOT_SUPPORTED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ BEARER_HANDLING_NOT_SUPPORTED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::INVALID_DNS_ADDR ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::INVALID_DNS_ADDR));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::INVALID_PCSCF_OR_DNS_ADDRESS ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::INVALID_PCSCF_OR_DNS_ADDRESS));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::CALL_PREEMPT_BY_EMERGENCY_APN ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ CALL_PREEMPT_BY_EMERGENCY_APN));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::UE_INITIATED_DETACH_OR_DISCONNECT ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ UE_INITIATED_DETACH_OR_DISCONNECT));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MIP_FA_REASON_UNSPECIFIED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MIP_FA_REASON_UNSPECIFIED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MIP_FA_ADMIN_PROHIBITED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MIP_FA_ADMIN_PROHIBITED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::MIP_FA_INSUFFICIENT_RESOURCES ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MIP_FA_INSUFFICIENT_RESOURCES));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MIP_FA_REQUESTED_LIFETIME_TOO_LONG ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MIP_FA_REQUESTED_LIFETIME_TOO_LONG));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MIP_FA_MALFORMED_REQUEST ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MIP_FA_MALFORMED_REQUEST));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::MIP_FA_MALFORMED_REPLY ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MIP_FA_MALFORMED_REPLY));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::MIP_FA_ENCAPSULATION_UNAVAILABLE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MIP_FA_ENCAPSULATION_UNAVAILABLE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MIP_FA_REVERSE_TUNNEL_UNAVAILABLE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MIP_FA_REVERSE_TUNNEL_UNAVAILABLE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MIP_FA_REVERSE_TUNNEL_IS_MANDATORY ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MIP_FA_REVERSE_TUNNEL_IS_MANDATORY));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::MIP_FA_MISSING_NAI ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MIP_FA_MISSING_NAI));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MIP_FA_MISSING_HOME_AGENT ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MIP_FA_MISSING_HOME_AGENT));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MIP_FA_MISSING_HOME_ADDRESS ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MIP_FA_MISSING_HOME_ADDRESS));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MIP_FA_UNKNOWN_CHALLENGE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MIP_FA_UNKNOWN_CHALLENGE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MIP_FA_MISSING_CHALLENGE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MIP_FA_MISSING_CHALLENGE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::MIP_FA_STALE_CHALLENGE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MIP_FA_STALE_CHALLENGE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MIP_HA_REASON_UNSPECIFIED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MIP_HA_REASON_UNSPECIFIED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MIP_HA_ADMIN_PROHIBITED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MIP_HA_ADMIN_PROHIBITED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::MIP_HA_INSUFFICIENT_RESOURCES ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MIP_HA_INSUFFICIENT_RESOURCES));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::MIP_HA_REGISTRATION_ID_MISMATCH ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MIP_HA_REGISTRATION_ID_MISMATCH));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MIP_HA_MALFORMED_REQUEST ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MIP_HA_MALFORMED_REQUEST));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MIP_HA_REVERSE_TUNNEL_UNAVAILABLE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MIP_HA_REVERSE_TUNNEL_UNAVAILABLE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MIP_HA_REVERSE_TUNNEL_IS_MANDATORY ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MIP_HA_REVERSE_TUNNEL_IS_MANDATORY));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::MIP_HA_ENCAPSULATION_UNAVAILABLE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MIP_HA_ENCAPSULATION_UNAVAILABLE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::CLOSE_IN_PROGRESS ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::CLOSE_IN_PROGRESS));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::NETWORK_INITIATED_TERMINATION ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ NETWORK_INITIATED_TERMINATION));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::MODEM_APP_PREEMPTED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MODEM_APP_PREEMPTED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::PDN_IPV4_CALL_DISALLOWED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PDN_IPV4_CALL_DISALLOWED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::PDN_IPV4_CALL_THROTTLED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PDN_IPV4_CALL_THROTTLED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::PDN_IPV6_CALL_DISALLOWED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PDN_IPV6_CALL_DISALLOWED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::PDN_IPV6_CALL_THROTTLED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PDN_IPV6_CALL_THROTTLED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::MODEM_RESTART ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MODEM_RESTART));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::PDP_PPP_NOT_SUPPORTED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PDP_PPP_NOT_SUPPORTED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::UNPREFERRED_RAT ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::UNPREFERRED_RAT));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::PHYSICAL_LINK_CLOSE_IN_PROGRESS ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ PHYSICAL_LINK_CLOSE_IN_PROGRESS));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::APN_PENDING_HANDOVER ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::APN_PENDING_HANDOVER));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::PROFILE_BEARER_INCOMPATIBLE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PROFILE_BEARER_INCOMPATIBLE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::SIM_CARD_CHANGED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::SIM_CARD_CHANGED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::LOW_POWER_MODE_OR_POWERING_DOWN ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ LOW_POWER_MODE_OR_POWERING_DOWN));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::APN_DISABLED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::APN_DISABLED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::MAX_PPP_INACTIVITY_TIMER_EXPIRED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MAX_PPP_INACTIVITY_TIMER_EXPIRED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::IPV6_ADDRESS_TRANSFER_FAILED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::IPV6_ADDRESS_TRANSFER_FAILED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::TRAT_SWAP_FAILED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::TRAT_SWAP_FAILED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::EHRPD_TO_HRPD_FALLBACK ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::EHRPD_TO_HRPD_FALLBACK));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::MIP_CONFIG_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MIP_CONFIG_FAILURE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::PDN_INACTIVITY_TIMER_EXPIRED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PDN_INACTIVITY_TIMER_EXPIRED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::MAX_IPV4_CONNECTIONS ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MAX_IPV4_CONNECTIONS));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::MAX_IPV6_CONNECTIONS ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MAX_IPV6_CONNECTIONS));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::APN_MISMATCH ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::APN_MISMATCH));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::IP_VERSION_MISMATCH ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::IP_VERSION_MISMATCH));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::DUN_CALL_DISALLOWED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::DUN_CALL_DISALLOWED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::INTERNAL_EPC_NONEPC_TRANSITION ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ INTERNAL_EPC_NONEPC_TRANSITION));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::INTERFACE_IN_USE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::INTERFACE_IN_USE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::APN_DISALLOWED_ON_ROAMING ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::APN_DISALLOWED_ON_ROAMING));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::APN_PARAMETERS_CHANGED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::APN_PARAMETERS_CHANGED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::NULL_APN_DISALLOWED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::NULL_APN_DISALLOWED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::THERMAL_MITIGATION ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::THERMAL_MITIGATION));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::DATA_SETTINGS_DISABLED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::DATA_SETTINGS_DISABLED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::DATA_ROAMING_SETTINGS_DISABLED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ DATA_ROAMING_SETTINGS_DISABLED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::DDS_SWITCHED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::DDS_SWITCHED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::FORBIDDEN_APN_NAME ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::FORBIDDEN_APN_NAME));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::DDS_SWITCH_IN_PROGRESS ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::DDS_SWITCH_IN_PROGRESS));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::CALL_DISALLOWED_IN_ROAMING ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::CALL_DISALLOWED_IN_ROAMING));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::NON_IP_NOT_SUPPORTED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::NON_IP_NOT_SUPPORTED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::PDN_NON_IP_CALL_THROTTLED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PDN_NON_IP_CALL_THROTTLED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::PDN_NON_IP_CALL_DISALLOWED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PDN_NON_IP_CALL_DISALLOWED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::CDMA_LOCK ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::CDMA_LOCK));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::CDMA_INTERCEPT ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::CDMA_INTERCEPT));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::CDMA_REORDER ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::CDMA_REORDER));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::CDMA_RELEASE_DUE_TO_SO_REJECTION ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ CDMA_RELEASE_DUE_TO_SO_REJECTION));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::CDMA_INCOMING_CALL ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::CDMA_INCOMING_CALL));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::CDMA_ALERT_STOP ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::CDMA_ALERT_STOP));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::CHANNEL_ACQUISITION_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::CHANNEL_ACQUISITION_FAILURE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::MAX_ACCESS_PROBE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MAX_ACCESS_PROBE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::NO_RESPONSE_FROM_BASE_STATION ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ NO_RESPONSE_FROM_BASE_STATION));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::REJECTED_BY_BASE_STATION ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::REJECTED_BY_BASE_STATION));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::CONCURRENT_SERVICES_INCOMPATIBLE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ CONCURRENT_SERVICES_INCOMPATIBLE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::NO_CDMA_SERVICE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::NO_CDMA_SERVICE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::RUIM_NOT_PRESENT ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::RUIM_NOT_PRESENT));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::CDMA_RETRY_ORDER ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::CDMA_RETRY_ORDER));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::ACCESS_BLOCK ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::ACCESS_BLOCK));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::ACCESS_BLOCK_ALL ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::ACCESS_BLOCK_ALL));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::IS707B_MAX_ACCESS_PROBES ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::IS707B_MAX_ACCESS_PROBES));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::THERMAL_EMERGENCY ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::THERMAL_EMERGENCY));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::CONCURRENT_SERVICES_NOT_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ CONCURRENT_SERVICES_NOT_ALLOWED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::INCOMING_CALL_REJECTED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::INCOMING_CALL_REJECTED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::NO_SERVICE_ON_GATEWAY ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::NO_SERVICE_ON_GATEWAY));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::NO_GPRS_CONTEXT ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::NO_GPRS_CONTEXT));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::ILLEGAL_MS ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::ILLEGAL_MS));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::ILLEGAL_ME ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::ILLEGAL_ME));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::GPRS_SERVICES_NOT_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::GPRS_SERVICES_NOT_ALLOWED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::IMPLICITLY_DETACHED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::IMPLICITLY_DETACHED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::PLMN_NOT_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PLMN_NOT_ALLOWED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::LOCATION_AREA_NOT_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::LOCATION_AREA_NOT_ALLOWED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::PDP_DUPLICATE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PDP_DUPLICATE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::UE_RAT_CHANGE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::UE_RAT_CHANGE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::CONGESTION ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::CONGESTION));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::NO_PDP_CONTEXT_ACTIVATED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::NO_PDP_CONTEXT_ACTIVATED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::ACCESS_CLASS_DSAC_REJECTION ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::ACCESS_CLASS_DSAC_REJECTION));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::PDP_ACTIVATE_MAX_RETRY_FAILED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ PDP_ACTIVATE_MAX_RETRY_FAILED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::RADIO_ACCESS_BEARER_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::RADIO_ACCESS_BEARER_FAILURE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::ESM_UNKNOWN_EPS_BEARER_CONTEXT ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ ESM_UNKNOWN_EPS_BEARER_CONTEXT));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::DRB_RELEASED_BY_RRC ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::DRB_RELEASED_BY_RRC));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::CONNECTION_RELEASED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::CONNECTION_RELEASED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::EMM_DETACHED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::EMM_DETACHED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::EMM_ATTACH_FAILED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::EMM_ATTACH_FAILED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::EMM_ATTACH_STARTED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::EMM_ATTACH_STARTED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::LTE_NAS_SERVICE_REQUEST_FAILED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ LTE_NAS_SERVICE_REQUEST_FAILED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::DUPLICATE_BEARER_ID ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::DUPLICATE_BEARER_ID));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::ESM_COLLISION_SCENARIOS ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::ESM_COLLISION_SCENARIOS));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::ESM_BAD_OTA_MESSAGE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::ESM_BAD_OTA_MESSAGE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::DS_EXPLICIT_DEACTIVATION ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::DS_EXPLICIT_DEACTIVATION));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::ESM_LOCAL_CAUSE_NONE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::ESM_LOCAL_CAUSE_NONE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::LTE_THROTTLING_NOT_REQUIRED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::LTE_THROTTLING_NOT_REQUIRED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::ACCESS_CONTROL_LIST_CHECK_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ ACCESS_CONTROL_LIST_CHECK_FAILURE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::SERVICE_NOT_ALLOWED_ON_PLMN ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::SERVICE_NOT_ALLOWED_ON_PLMN));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::EMM_T3417_EXPIRED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::EMM_T3417_EXPIRED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::EMM_T3417_EXT_EXPIRED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::EMM_T3417_EXT_EXPIRED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::RRC_UPLINK_DATA_TRANSMISSION_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_UPLINK_DATA_TRANSMISSION_FAILURE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::RRC_UPLINK_CONNECTION_RELEASE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_UPLINK_CONNECTION_RELEASE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::RRC_UPLINK_RADIO_LINK_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_UPLINK_RADIO_LINK_FAILURE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::RRC_UPLINK_ERROR_REQUEST_FROM_NAS ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_UPLINK_ERROR_REQUEST_FROM_NAS));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::RRC_CONNECTION_ACCESS_STRATUM_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_CONNECTION_ACCESS_STRATUM_FAILURE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::RRC_CONNECTION_ACCESS_BARRED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::RRC_CONNECTION_ACCESS_BARRED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::RRC_CONNECTION_CELL_RESELECTION ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_CONNECTION_CELL_RESELECTION));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::RRC_CONNECTION_CONFIG_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_CONNECTION_CONFIG_FAILURE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::RRC_CONNECTION_TIMER_EXPIRED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::RRC_CONNECTION_TIMER_EXPIRED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::RRC_CONNECTION_LINK_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::RRC_CONNECTION_LINK_FAILURE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::RRC_CONNECTION_CELL_NOT_CAMPED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_CONNECTION_CELL_NOT_CAMPED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::RRC_CONNECTION_REJECT_BY_NETWORK ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_CONNECTION_REJECT_BY_NETWORK));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::RRC_CONNECTION_NORMAL_RELEASE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_CONNECTION_NORMAL_RELEASE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::RRC_CONNECTION_RADIO_LINK_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_CONNECTION_RADIO_LINK_FAILURE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::RRC_CONNECTION_REESTABLISHMENT_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_CONNECTION_REESTABLISHMENT_FAILURE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::RRC_CONNECTION_ABORT_REQUEST ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::RRC_CONNECTION_ABORT_REQUEST));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::ESM_PROCEDURE_TIME_OUT ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::ESM_PROCEDURE_TIME_OUT));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::INVALID_CONNECTION_ID ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::INVALID_CONNECTION_ID));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MAXIMIUM_NSAPIS_EXCEEDED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MAXIMIUM_NSAPIS_EXCEEDED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::INVALID_PRIMARY_NSAPI ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::INVALID_PRIMARY_NSAPI));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::CANNOT_ENCODE_OTA_MESSAGE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::CANNOT_ENCODE_OTA_MESSAGE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::RADIO_ACCESS_BEARER_SETUP_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RADIO_ACCESS_BEARER_SETUP_FAILURE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::PDP_ESTABLISH_TIMEOUT_EXPIRED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ PDP_ESTABLISH_TIMEOUT_EXPIRED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::PDP_MODIFY_TIMEOUT_EXPIRED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PDP_MODIFY_TIMEOUT_EXPIRED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::PDP_INACTIVE_TIMEOUT_EXPIRED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PDP_INACTIVE_TIMEOUT_EXPIRED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::PDP_LOWERLAYER_ERROR ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PDP_LOWERLAYER_ERROR));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::PDP_MODIFY_COLLISION ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PDP_MODIFY_COLLISION));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::NAS_REQUEST_REJECTED_BY_NETWORK ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ NAS_REQUEST_REJECTED_BY_NETWORK));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::RRC_CONNECTION_INVALID_REQUEST ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_CONNECTION_INVALID_REQUEST));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ RRC_CONNECTION_TRACKING_AREA_ID_CHANGED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_CONNECTION_TRACKING_AREA_ID_CHANGED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::RRC_CONNECTION_RF_UNAVAILABLE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_CONNECTION_RF_UNAVAILABLE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::RRC_CONNECTION_ABORTED_AFTER_HANDOVER ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_CONNECTION_ABORTED_AFTER_HANDOVER));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::IMEI_NOT_ACCEPTED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::IMEI_NOT_ACCEPTED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::EPS_SERVICES_NOT_ALLOWED_IN_PLMN ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ EPS_SERVICES_NOT_ALLOWED_IN_PLMN));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::MSC_TEMPORARILY_NOT_REACHABLE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MSC_TEMPORARILY_NOT_REACHABLE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::CS_DOMAIN_NOT_AVAILABLE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::CS_DOMAIN_NOT_AVAILABLE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::ESM_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::ESM_FAILURE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::MAC_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MAC_FAILURE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::SYNCHRONIZATION_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::SYNCHRONIZATION_FAILURE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::UE_SECURITY_CAPABILITIES_MISMATCH ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ UE_SECURITY_CAPABILITIES_MISMATCH));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::SECURITY_MODE_REJECTED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::SECURITY_MODE_REJECTED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::UNACCEPTABLE_NON_EPS_AUTHENTICATION ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ UNACCEPTABLE_NON_EPS_AUTHENTICATION));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::NO_EPS_BEARER_CONTEXT_ACTIVATED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ NO_EPS_BEARER_CONTEXT_ACTIVATED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::INVALID_EMM_STATE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::INVALID_EMM_STATE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::NAS_LAYER_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::NAS_LAYER_FAILURE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::MULTIPLE_PDP_CALL_NOT_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ MULTIPLE_PDP_CALL_NOT_ALLOWED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::EMBMS_NOT_ENABLED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::EMBMS_NOT_ENABLED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::IRAT_HANDOVER_FAILED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::IRAT_HANDOVER_FAILED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::EMBMS_REGULAR_DEACTIVATION ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::EMBMS_REGULAR_DEACTIVATION));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::TEST_LOOPBACK_REGULAR_DEACTIVATION ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ TEST_LOOPBACK_REGULAR_DEACTIVATION));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::LOWER_LAYER_REGISTRATION_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ LOWER_LAYER_REGISTRATION_FAILURE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::DATA_PLAN_EXPIRED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::DATA_PLAN_EXPIRED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::UMTS_HANDOVER_TO_IWLAN ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::UMTS_HANDOVER_TO_IWLAN));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::
+ EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::EVDO_HDR_CHANGED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::EVDO_HDR_CHANGED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::EVDO_HDR_EXITED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::EVDO_HDR_EXITED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::EVDO_HDR_NO_SESSION ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::EVDO_HDR_NO_SESSION));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::EVDO_HDR_CONNECTION_SETUP_TIMEOUT ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ EVDO_HDR_CONNECTION_SETUP_TIMEOUT));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::FAILED_TO_ACQUIRE_COLOCATED_HDR ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ FAILED_TO_ACQUIRE_COLOCATED_HDR));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::OTASP_COMMIT_IN_PROGRESS ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::OTASP_COMMIT_IN_PROGRESS));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::NO_HYBRID_HDR_SERVICE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::NO_HYBRID_HDR_SERVICE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::HDR_NO_LOCK_GRANTED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::HDR_NO_LOCK_GRANTED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::DBM_OR_SMS_IN_PROGRESS ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::DBM_OR_SMS_IN_PROGRESS));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::HDR_FADE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::HDR_FADE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::HDR_ACCESS_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::HDR_ACCESS_FAILURE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::UNSUPPORTED_1X_PREV ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::UNSUPPORTED_1X_PREV));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::LOCAL_END ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::LOCAL_END));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::NO_SERVICE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::NO_SERVICE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::FADE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::FADE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::NORMAL_RELEASE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::NORMAL_RELEASE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::ACCESS_ATTEMPT_ALREADY_IN_PROGRESS ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ ACCESS_ATTEMPT_ALREADY_IN_PROGRESS));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::REDIRECTION_OR_HANDOFF_IN_PROGRESS ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ REDIRECTION_OR_HANDOFF_IN_PROGRESS));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::EMERGENCY_MODE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::EMERGENCY_MODE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::PHONE_IN_USE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PHONE_IN_USE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::INVALID_MODE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::INVALID_MODE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::INVALID_SIM_STATE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::INVALID_SIM_STATE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::NO_COLLOCATED_HDR ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::NO_COLLOCATED_HDR));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::UE_IS_ENTERING_POWERSAVE_MODE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ UE_IS_ENTERING_POWERSAVE_MODE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::DUAL_SWITCH ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::DUAL_SWITCH));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::PPP_TIMEOUT ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PPP_TIMEOUT));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::PPP_AUTH_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PPP_AUTH_FAILURE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::PPP_OPTION_MISMATCH ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PPP_OPTION_MISMATCH));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::PPP_PAP_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PPP_PAP_FAILURE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::PPP_CHAP_FAILURE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PPP_CHAP_FAILURE));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::PPP_CLOSE_IN_PROGRESS ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::PPP_CLOSE_IN_PROGRESS));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::LIMITED_TO_IPV4 ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::LIMITED_TO_IPV4));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::LIMITED_TO_IPV6 ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::LIMITED_TO_IPV6));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::VSNCP_TIMEOUT ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::VSNCP_TIMEOUT));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::VSNCP_GEN_ERROR ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::VSNCP_GEN_ERROR));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::VSNCP_APN_UNAUTHORIZED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::VSNCP_APN_UNATHORIZED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::VSNCP_PDN_LIMIT_EXCEEDED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::VSNCP_PDN_LIMIT_EXCEEDED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::VSNCP_NO_PDN_GATEWAY_ADDRESS ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::VSNCP_NO_PDN_GATEWAY_ADDRESS));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::VSNCP_PDN_GATEWAY_UNREACHABLE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ VSNCP_PDN_GATEWAY_UNREACHABLE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::VSNCP_PDN_GATEWAY_REJECT ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::VSNCP_PDN_GATEWAY_REJECT));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::VSNCP_INSUFFICIENT_PARAMETERS ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ VSNCP_INSUFFICIENT_PARAMETERS));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::VSNCP_RESOURCE_UNAVAILABLE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::VSNCP_RESOURCE_UNAVAILABLE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::VSNCP_ADMINISTRATIVELY_PROHIBITED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ VSNCP_ADMINISTRATIVELY_PROHIBITED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::VSNCP_PDN_ID_IN_USE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::VSNCP_PDN_ID_IN_USE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::VSNCP_SUBSCRIBER_LIMITATION ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::VSNCP_SUBSCRIBER_LIMITATION));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::VSNCP_PDN_EXISTS_FOR_THIS_APN ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::
+ VSNCP_PDN_EXISTS_FOR_THIS_APN));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::VSNCP_RECONNECT_NOT_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::VSNCP_RECONNECT_NOT_ALLOWED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::IPV6_PREFIX_UNAVAILABLE ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::IPV6_PREFIX_UNAVAILABLE));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::HANDOFF_PREFERENCE_CHANGED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::HANDOFF_PREFERENCE_CHANGED));
+static_assert(aidl::android::hardware::radio::DataCallFailCause::SLICE_REJECTED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::SLICE_REJECTED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::MATCH_ALL_RULE_NOT_ALLOWED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::MATCH_ALL_RULE_NOT_ALLOWED));
+static_assert(
+ aidl::android::hardware::radio::DataCallFailCause::ALL_MATCHING_RULES_FAILED ==
+ static_cast<aidl::android::hardware::radio::DataCallFailCause>(
+ ::android::hardware::radio::V1_6::DataCallFailCause::ALL_MATCHING_RULES_FAILED));
+
+static_assert(aidl::android::hardware::radio::SliceStatus::UNKNOWN ==
+ static_cast<aidl::android::hardware::radio::SliceStatus>(
+ ::android::hardware::radio::V1_6::SliceStatus::UNKNOWN));
+static_assert(aidl::android::hardware::radio::SliceStatus::CONFIGURED ==
+ static_cast<aidl::android::hardware::radio::SliceStatus>(
+ ::android::hardware::radio::V1_6::SliceStatus::CONFIGURED));
+static_assert(aidl::android::hardware::radio::SliceStatus::ALLOWED ==
+ static_cast<aidl::android::hardware::radio::SliceStatus>(
+ ::android::hardware::radio::V1_6::SliceStatus::ALLOWED));
+static_assert(
+ aidl::android::hardware::radio::SliceStatus::REJECTED_NOT_AVAILABLE_IN_PLMN ==
+ static_cast<aidl::android::hardware::radio::SliceStatus>(
+ ::android::hardware::radio::V1_6::SliceStatus::REJECTED_NOT_AVAILABLE_IN_PLMN));
+static_assert(
+ aidl::android::hardware::radio::SliceStatus::REJECTED_NOT_AVAILABLE_IN_REG_AREA ==
+ static_cast<aidl::android::hardware::radio::SliceStatus>(
+ ::android::hardware::radio::V1_6::SliceStatus::REJECTED_NOT_AVAILABLE_IN_REG_AREA));
+static_assert(aidl::android::hardware::radio::SliceStatus::DEFAULT_CONFIGURED ==
+ static_cast<aidl::android::hardware::radio::SliceStatus>(
+ ::android::hardware::radio::V1_6::SliceStatus::DEFAULT_CONFIGURED));
+
+static_assert(aidl::android::hardware::radio::SscMode::MODE_1 ==
+ static_cast<aidl::android::hardware::radio::SscMode>(
+ ::android::hardware::radio::V1_6::SscMode::MODE_1));
+static_assert(aidl::android::hardware::radio::SscMode::MODE_2 ==
+ static_cast<aidl::android::hardware::radio::SscMode>(
+ ::android::hardware::radio::V1_6::SscMode::MODE_2));
+static_assert(aidl::android::hardware::radio::SscMode::MODE_3 ==
+ static_cast<aidl::android::hardware::radio::SscMode>(
+ ::android::hardware::radio::V1_6::SscMode::MODE_3));
+
+static_assert(aidl::android::hardware::radio::PublicKeyType::EPDG ==
+ static_cast<aidl::android::hardware::radio::PublicKeyType>(
+ ::android::hardware::radio::V1_6::PublicKeyType::EPDG));
+static_assert(aidl::android::hardware::radio::PublicKeyType::WLAN ==
+ static_cast<aidl::android::hardware::radio::PublicKeyType>(
+ ::android::hardware::radio::V1_6::PublicKeyType::WLAN));
+
+static_assert(aidl::android::hardware::radio::PbReceivedStatus::PB_RECEIVED_OK ==
+ static_cast<aidl::android::hardware::radio::PbReceivedStatus>(
+ ::android::hardware::radio::V1_6::PbReceivedStatus::PB_RECEIVED_OK));
+static_assert(aidl::android::hardware::radio::PbReceivedStatus::PB_RECEIVED_ERROR ==
+ static_cast<aidl::android::hardware::radio::PbReceivedStatus>(
+ ::android::hardware::radio::V1_6::PbReceivedStatus::PB_RECEIVED_ERROR));
+static_assert(aidl::android::hardware::radio::PbReceivedStatus::PB_RECEIVED_ABORT ==
+ static_cast<aidl::android::hardware::radio::PbReceivedStatus>(
+ ::android::hardware::radio::V1_6::PbReceivedStatus::PB_RECEIVED_ABORT));
+static_assert(aidl::android::hardware::radio::PbReceivedStatus::PB_RECEIVED_FINAL ==
+ static_cast<aidl::android::hardware::radio::PbReceivedStatus>(
+ ::android::hardware::radio::V1_6::PbReceivedStatus::PB_RECEIVED_FINAL));
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::IccIo& in,
+ aidl::android::hardware::radio::IccIo* out) {
+ out->command = static_cast<int32_t>(in.command);
+ out->fileId = static_cast<int32_t>(in.fileId);
+ out->path = in.path;
+ out->p1 = static_cast<int32_t>(in.p1);
+ out->p2 = static_cast<int32_t>(in.p2);
+ out->p3 = static_cast<int32_t>(in.p3);
+ out->data = in.data;
+ out->pin2 = in.pin2;
+ out->aid = in.aid;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::NeighboringCell& in,
+ aidl::android::hardware::radio::NeighboringCell* out) {
+ out->cid = in.cid;
+ out->rssi = static_cast<int32_t>(in.rssi);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::UusInfo& in,
+ aidl::android::hardware::radio::UusInfo* out) {
+ out->uusType = static_cast<aidl::android::hardware::radio::UusType>(in.uusType);
+ out->uusDcs = static_cast<aidl::android::hardware::radio::UusDcs>(in.uusDcs);
+ out->uusData = in.uusData;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(const ::android::hardware::radio::V1_0::Dial& in,
+ aidl::android::hardware::radio::Dial* out) {
+ out->address = in.address;
+ out->clir = static_cast<aidl::android::hardware::radio::Clir>(in.clir);
+ {
+ size_t size = in.uusInfo.size();
+ aidl::android::hardware::radio::UusInfo uusInfo;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.uusInfo[i], &uusInfo)) return false;
+ out->uusInfo.push_back(uusInfo);
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::LastCallFailCauseInfo& in,
+ aidl::android::hardware::radio::LastCallFailCauseInfo* out) {
+ out->causeCode = static_cast<aidl::android::hardware::radio::LastCallFailCause>(in.causeCode);
+ out->vendorCause = in.vendorCause;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::GsmSignalStrength& in,
+ aidl::android::hardware::radio::GsmSignalStrength* out) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.signalStrength > std::numeric_limits<int32_t>::max() || in.signalStrength < 0) {
+ return false;
+ }
+ out->signalStrength = static_cast<int32_t>(in.signalStrength);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.bitErrorRate > std::numeric_limits<int32_t>::max() || in.bitErrorRate < 0) {
+ return false;
+ }
+ out->bitErrorRate = static_cast<int32_t>(in.bitErrorRate);
+ out->timingAdvance = static_cast<int32_t>(in.timingAdvance);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaSignalStrength& in,
+ aidl::android::hardware::radio::CdmaSignalStrength* out) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.dbm > std::numeric_limits<int32_t>::max() || in.dbm < 0) {
+ return false;
+ }
+ out->dbm = static_cast<int32_t>(in.dbm);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.ecio > std::numeric_limits<int32_t>::max() || in.ecio < 0) {
+ return false;
+ }
+ out->ecio = static_cast<int32_t>(in.ecio);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::EvdoSignalStrength& in,
+ aidl::android::hardware::radio::EvdoSignalStrength* out) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.dbm > std::numeric_limits<int32_t>::max() || in.dbm < 0) {
+ return false;
+ }
+ out->dbm = static_cast<int32_t>(in.dbm);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.ecio > std::numeric_limits<int32_t>::max() || in.ecio < 0) {
+ return false;
+ }
+ out->ecio = static_cast<int32_t>(in.ecio);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.signalNoiseRatio > std::numeric_limits<int32_t>::max() || in.signalNoiseRatio < 0) {
+ return false;
+ }
+ out->signalNoiseRatio = static_cast<int32_t>(in.signalNoiseRatio);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::SendSmsResult& in,
+ aidl::android::hardware::radio::SendSmsResult* out) {
+ out->messageRef = static_cast<int32_t>(in.messageRef);
+ out->ackPDU = in.ackPDU;
+ out->errorCode = static_cast<int32_t>(in.errorCode);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::IccIoResult& in,
+ aidl::android::hardware::radio::IccIoResult* out) {
+ out->sw1 = static_cast<int32_t>(in.sw1);
+ out->sw2 = static_cast<int32_t>(in.sw2);
+ out->simResponse = in.simResponse;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CallForwardInfo& in,
+ aidl::android::hardware::radio::CallForwardInfo* out) {
+ out->status = static_cast<aidl::android::hardware::radio::CallForwardInfoStatus>(in.status);
+ out->reason = static_cast<int32_t>(in.reason);
+ out->serviceClass = static_cast<int32_t>(in.serviceClass);
+ out->toa = static_cast<int32_t>(in.toa);
+ out->number = in.number;
+ out->timeSeconds = static_cast<int32_t>(in.timeSeconds);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::OperatorInfo& in,
+ aidl::android::hardware::radio::OperatorInfo* out) {
+ out->alphaLong = in.alphaLong;
+ out->alphaShort = in.alphaShort;
+ out->operatorNumeric = in.operatorNumeric;
+ out->status = static_cast<aidl::android::hardware::radio::OperatorStatus>(in.status);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::SmsWriteArgs& in,
+ aidl::android::hardware::radio::SmsWriteArgs* out) {
+ out->status = static_cast<aidl::android::hardware::radio::SmsWriteArgsStatus>(in.status);
+ out->pdu = in.pdu;
+ out->smsc = in.smsc;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaSmsAddress& in,
+ aidl::android::hardware::radio::CdmaSmsAddress* out) {
+ out->digitMode = static_cast<aidl::android::hardware::radio::CdmaSmsDigitMode>(in.digitMode);
+ out->numberMode = static_cast<aidl::android::hardware::radio::CdmaSmsNumberMode>(in.numberMode);
+ out->numberType = static_cast<aidl::android::hardware::radio::CdmaSmsNumberType>(in.numberType);
+ out->numberPlan = static_cast<aidl::android::hardware::radio::CdmaSmsNumberPlan>(in.numberPlan);
+ {
+ size_t size = in.digits.size();
+ for (size_t i = 0; i < size; i++) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.digits[i] > std::numeric_limits<int8_t>::max() || in.digits[i] < 0) {
+ return false;
+ }
+ out->digits.push_back(static_cast<int8_t>(in.digits[i]));
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaSmsSubaddress& in,
+ aidl::android::hardware::radio::CdmaSmsSubaddress* out) {
+ out->subaddressType =
+ static_cast<aidl::android::hardware::radio::CdmaSmsSubaddressType>(in.subaddressType);
+ out->odd = static_cast<bool>(in.odd);
+ {
+ size_t size = in.digits.size();
+ for (size_t i = 0; i < size; i++) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.digits[i] > std::numeric_limits<int8_t>::max() || in.digits[i] < 0) {
+ return false;
+ }
+ out->digits.push_back(static_cast<int8_t>(in.digits[i]));
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaSmsMessage& in,
+ aidl::android::hardware::radio::CdmaSmsMessage* out) {
+ out->teleserviceId = static_cast<int32_t>(in.teleserviceId);
+ out->isServicePresent = static_cast<bool>(in.isServicePresent);
+ out->serviceCategory = static_cast<int32_t>(in.serviceCategory);
+ if (!translate(in.address, &out->address)) return false;
+ if (!translate(in.subAddress, &out->subAddress)) return false;
+ {
+ size_t size = in.bearerData.size();
+ for (size_t i = 0; i < size; i++) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.bearerData[i] > std::numeric_limits<int8_t>::max() || in.bearerData[i] < 0) {
+ return false;
+ }
+ out->bearerData.push_back(static_cast<int8_t>(in.bearerData[i]));
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaSmsAck& in,
+ aidl::android::hardware::radio::CdmaSmsAck* out) {
+ out->errorClass = static_cast<aidl::android::hardware::radio::CdmaSmsErrorClass>(in.errorClass);
+ out->smsCauseCode = static_cast<int32_t>(in.smsCauseCode);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaBroadcastSmsConfigInfo& in,
+ aidl::android::hardware::radio::CdmaBroadcastSmsConfigInfo* out) {
+ out->serviceCategory = static_cast<int32_t>(in.serviceCategory);
+ out->language = static_cast<int32_t>(in.language);
+ out->selected = static_cast<bool>(in.selected);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaSmsWriteArgs& in,
+ aidl::android::hardware::radio::CdmaSmsWriteArgs* out) {
+ out->status = static_cast<aidl::android::hardware::radio::CdmaSmsWriteArgsStatus>(in.status);
+ if (!translate(in.message, &out->message)) return false;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::GsmBroadcastSmsConfigInfo& in,
+ aidl::android::hardware::radio::GsmBroadcastSmsConfigInfo* out) {
+ out->fromServiceId = static_cast<int32_t>(in.fromServiceId);
+ out->toServiceId = static_cast<int32_t>(in.toServiceId);
+ out->fromCodeScheme = static_cast<int32_t>(in.fromCodeScheme);
+ out->toCodeScheme = static_cast<int32_t>(in.toCodeScheme);
+ out->selected = static_cast<bool>(in.selected);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::GsmSmsMessage& in,
+ aidl::android::hardware::radio::GsmSmsMessage* out) {
+ out->smscPdu = in.smscPdu;
+ out->pdu = in.pdu;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::ImsSmsMessage& in,
+ aidl::android::hardware::radio::ImsSmsMessage* out) {
+ out->tech = static_cast<aidl::android::hardware::radio::RadioTechnologyFamily>(in.tech);
+ out->retry = static_cast<bool>(in.retry);
+ out->messageRef = static_cast<int32_t>(in.messageRef);
+ {
+ size_t size = in.cdmaMessage.size();
+ aidl::android::hardware::radio::CdmaSmsMessage cdmaMessage;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.cdmaMessage[i], &cdmaMessage)) return false;
+ out->cdmaMessage.push_back(cdmaMessage);
+ }
+ }
+ {
+ size_t size = in.gsmMessage.size();
+ aidl::android::hardware::radio::GsmSmsMessage gsmMessage;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.gsmMessage[i], &gsmMessage)) return false;
+ out->gsmMessage.push_back(gsmMessage);
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::SimApdu& in,
+ aidl::android::hardware::radio::SimApdu* out) {
+ out->sessionId = static_cast<int32_t>(in.sessionId);
+ out->cla = static_cast<int32_t>(in.cla);
+ out->instruction = static_cast<int32_t>(in.instruction);
+ out->p1 = static_cast<int32_t>(in.p1);
+ out->p2 = static_cast<int32_t>(in.p2);
+ out->p3 = static_cast<int32_t>(in.p3);
+ out->data = in.data;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::NvWriteItem& in,
+ aidl::android::hardware::radio::NvWriteItem* out) {
+ out->itemId = static_cast<aidl::android::hardware::radio::NvItem>(in.itemId);
+ out->value = in.value;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::SelectUiccSub& in,
+ aidl::android::hardware::radio::SelectUiccSub* out) {
+ out->slot = static_cast<int32_t>(in.slot);
+ out->appIndex = static_cast<int32_t>(in.appIndex);
+ out->subType = static_cast<aidl::android::hardware::radio::SubscriptionType>(in.subType);
+ out->actStatus = static_cast<aidl::android::hardware::radio::UiccSubActStatus>(in.actStatus);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::HardwareConfigModem& in,
+ aidl::android::hardware::radio::HardwareConfigModem* out) {
+ out->rilModel = static_cast<int32_t>(in.rilModel);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.rat > std::numeric_limits<int32_t>::max() || in.rat < 0) {
+ return false;
+ }
+ out->rat = static_cast<int32_t>(in.rat);
+ out->maxVoice = static_cast<int32_t>(in.maxVoice);
+ out->maxData = static_cast<int32_t>(in.maxData);
+ out->maxStandby = static_cast<int32_t>(in.maxStandby);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::HardwareConfigSim& in,
+ aidl::android::hardware::radio::HardwareConfigSim* out) {
+ out->modemUuid = in.modemUuid;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::HardwareConfig& in,
+ aidl::android::hardware::radio::HardwareConfig* out) {
+ out->type = static_cast<aidl::android::hardware::radio::HardwareConfigType>(in.type);
+ out->uuid = in.uuid;
+ out->state = static_cast<aidl::android::hardware::radio::HardwareConfigState>(in.state);
+ {
+ size_t size = in.modem.size();
+ aidl::android::hardware::radio::HardwareConfigModem modem;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.modem[i], &modem)) return false;
+ out->modem.push_back(modem);
+ }
+ }
+ {
+ size_t size = in.sim.size();
+ aidl::android::hardware::radio::HardwareConfigSim sim;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.sim[i], &sim)) return false;
+ out->sim.push_back(sim);
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::LceStatusInfo& in,
+ aidl::android::hardware::radio::LceStatusInfo* out) {
+ out->lceStatus = static_cast<aidl::android::hardware::radio::LceStatus>(in.lceStatus);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.actualIntervalMs > std::numeric_limits<int8_t>::max() || in.actualIntervalMs < 0) {
+ return false;
+ }
+ out->actualIntervalMs = static_cast<int8_t>(in.actualIntervalMs);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::LceDataInfo& in,
+ aidl::android::hardware::radio::LceDataInfo* out) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.lastHopCapacityKbps > std::numeric_limits<int32_t>::max() ||
+ in.lastHopCapacityKbps < 0) {
+ return false;
+ }
+ out->lastHopCapacityKbps = static_cast<int32_t>(in.lastHopCapacityKbps);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.confidenceLevel > std::numeric_limits<int8_t>::max() || in.confidenceLevel < 0) {
+ return false;
+ }
+ out->confidenceLevel = static_cast<int8_t>(in.confidenceLevel);
+ out->lceSuspended = static_cast<bool>(in.lceSuspended);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::ActivityStatsInfo& in,
+ aidl::android::hardware::radio::ActivityStatsInfo* out) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.sleepModeTimeMs > std::numeric_limits<int32_t>::max() || in.sleepModeTimeMs < 0) {
+ return false;
+ }
+ out->sleepModeTimeMs = static_cast<int32_t>(in.sleepModeTimeMs);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.idleModeTimeMs > std::numeric_limits<int32_t>::max() || in.idleModeTimeMs < 0) {
+ return false;
+ }
+ out->idleModeTimeMs = static_cast<int32_t>(in.idleModeTimeMs);
+ {
+ size_t size = sizeof(in.txmModetimeMs) / sizeof(in.txmModetimeMs[0]);
+ for (size_t i = 0; i < size; i++) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.txmModetimeMs[i] > std::numeric_limits<int32_t>::max() ||
+ in.txmModetimeMs[i] < 0) {
+ return false;
+ }
+ out->txmModetimeMs.push_back(static_cast<int32_t>(in.txmModetimeMs[i]));
+ }
+ }
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.rxModeTimeMs > std::numeric_limits<int32_t>::max() || in.rxModeTimeMs < 0) {
+ return false;
+ }
+ out->rxModeTimeMs = static_cast<int32_t>(in.rxModeTimeMs);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::Carrier& in,
+ aidl::android::hardware::radio::Carrier* out) {
+ out->mcc = in.mcc;
+ out->mnc = in.mnc;
+ out->matchType = static_cast<aidl::android::hardware::radio::CarrierMatchType>(in.matchType);
+ out->matchData = in.matchData;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CarrierRestrictions& in,
+ aidl::android::hardware::radio::CarrierRestrictions* out) {
+ {
+ size_t size = in.allowedCarriers.size();
+ aidl::android::hardware::radio::Carrier allowedCarriers;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.allowedCarriers[i], &allowedCarriers)) return false;
+ out->allowedCarriers.push_back(allowedCarriers);
+ }
+ }
+ {
+ size_t size = in.excludedCarriers.size();
+ aidl::android::hardware::radio::Carrier excludedCarriers;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.excludedCarriers[i], &excludedCarriers)) return false;
+ out->excludedCarriers.push_back(excludedCarriers);
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::SuppSvcNotification& in,
+ aidl::android::hardware::radio::SuppSvcNotification* out) {
+ out->isMT = static_cast<bool>(in.isMT);
+ out->code = static_cast<int32_t>(in.code);
+ out->index = static_cast<int32_t>(in.index);
+ out->type = static_cast<int32_t>(in.type);
+ out->number = in.number;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::SimRefreshResult& in,
+ aidl::android::hardware::radio::SimRefreshResult* out) {
+ out->type = static_cast<aidl::android::hardware::radio::SimRefreshType>(in.type);
+ out->efId = static_cast<int32_t>(in.efId);
+ out->aid = in.aid;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaSignalInfoRecord& in,
+ aidl::android::hardware::radio::CdmaSignalInfoRecord* out) {
+ out->isPresent = static_cast<bool>(in.isPresent);
+ out->signalType = static_cast<int8_t>(in.signalType);
+ out->alertPitch = static_cast<int8_t>(in.alertPitch);
+ out->signal = static_cast<int8_t>(in.signal);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaCallWaiting& in,
+ aidl::android::hardware::radio::CdmaCallWaiting* out) {
+ out->number = in.number;
+ out->numberPresentation =
+ static_cast<aidl::android::hardware::radio::CdmaCallWaitingNumberPresentation>(
+ in.numberPresentation);
+ out->name = in.name;
+ if (!translate(in.signalInfoRecord, &out->signalInfoRecord)) return false;
+ out->numberType =
+ static_cast<aidl::android::hardware::radio::CdmaCallWaitingNumberType>(in.numberType);
+ out->numberPlan =
+ static_cast<aidl::android::hardware::radio::CdmaCallWaitingNumberPlan>(in.numberPlan);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaDisplayInfoRecord& in,
+ aidl::android::hardware::radio::CdmaDisplayInfoRecord* out) {
+ out->alphaBuf = in.alphaBuf;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaNumberInfoRecord& in,
+ aidl::android::hardware::radio::CdmaNumberInfoRecord* out) {
+ out->number = in.number;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.numberType > std::numeric_limits<int8_t>::max() || in.numberType < 0) {
+ return false;
+ }
+ out->numberType = static_cast<int8_t>(in.numberType);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.numberPlan > std::numeric_limits<int8_t>::max() || in.numberPlan < 0) {
+ return false;
+ }
+ out->numberPlan = static_cast<int8_t>(in.numberPlan);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.pi > std::numeric_limits<int8_t>::max() || in.pi < 0) {
+ return false;
+ }
+ out->pi = static_cast<int8_t>(in.pi);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.si > std::numeric_limits<int8_t>::max() || in.si < 0) {
+ return false;
+ }
+ out->si = static_cast<int8_t>(in.si);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaRedirectingNumberInfoRecord& in,
+ aidl::android::hardware::radio::CdmaRedirectingNumberInfoRecord* out) {
+ if (!translate(in.redirectingNumber, &out->redirectingNumber)) return false;
+ out->redirectingReason = static_cast<aidl::android::hardware::radio::CdmaRedirectingReason>(
+ in.redirectingReason);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaLineControlInfoRecord& in,
+ aidl::android::hardware::radio::CdmaLineControlInfoRecord* out) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.lineCtrlPolarityIncluded > std::numeric_limits<int8_t>::max() ||
+ in.lineCtrlPolarityIncluded < 0) {
+ return false;
+ }
+ out->lineCtrlPolarityIncluded = static_cast<int8_t>(in.lineCtrlPolarityIncluded);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.lineCtrlToggle > std::numeric_limits<int8_t>::max() || in.lineCtrlToggle < 0) {
+ return false;
+ }
+ out->lineCtrlToggle = static_cast<int8_t>(in.lineCtrlToggle);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.lineCtrlReverse > std::numeric_limits<int8_t>::max() || in.lineCtrlReverse < 0) {
+ return false;
+ }
+ out->lineCtrlReverse = static_cast<int8_t>(in.lineCtrlReverse);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.lineCtrlPowerDenial > std::numeric_limits<int8_t>::max() || in.lineCtrlPowerDenial < 0) {
+ return false;
+ }
+ out->lineCtrlPowerDenial = static_cast<int8_t>(in.lineCtrlPowerDenial);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaT53ClirInfoRecord& in,
+ aidl::android::hardware::radio::CdmaT53ClirInfoRecord* out) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.cause > std::numeric_limits<int8_t>::max() || in.cause < 0) {
+ return false;
+ }
+ out->cause = static_cast<int8_t>(in.cause);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaT53AudioControlInfoRecord& in,
+ aidl::android::hardware::radio::CdmaT53AudioControlInfoRecord* out) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.upLink > std::numeric_limits<int8_t>::max() || in.upLink < 0) {
+ return false;
+ }
+ out->upLink = static_cast<int8_t>(in.upLink);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.downLink > std::numeric_limits<int8_t>::max() || in.downLink < 0) {
+ return false;
+ }
+ out->downLink = static_cast<int8_t>(in.downLink);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaInformationRecord& in,
+ aidl::android::hardware::radio::CdmaInformationRecord* out) {
+ out->name = static_cast<aidl::android::hardware::radio::CdmaInfoRecName>(in.name);
+ {
+ size_t size = in.display.size();
+ aidl::android::hardware::radio::CdmaDisplayInfoRecord display;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.display[i], &display)) return false;
+ out->display.push_back(display);
+ }
+ }
+ {
+ size_t size = in.number.size();
+ aidl::android::hardware::radio::CdmaNumberInfoRecord number;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.number[i], &number)) return false;
+ out->number.push_back(number);
+ }
+ }
+ {
+ size_t size = in.signal.size();
+ aidl::android::hardware::radio::CdmaSignalInfoRecord signal;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.signal[i], &signal)) return false;
+ out->signal.push_back(signal);
+ }
+ }
+ {
+ size_t size = in.redir.size();
+ aidl::android::hardware::radio::CdmaRedirectingNumberInfoRecord redir;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.redir[i], &redir)) return false;
+ out->redir.push_back(redir);
+ }
+ }
+ {
+ size_t size = in.lineCtrl.size();
+ aidl::android::hardware::radio::CdmaLineControlInfoRecord lineCtrl;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.lineCtrl[i], &lineCtrl)) return false;
+ out->lineCtrl.push_back(lineCtrl);
+ }
+ }
+ {
+ size_t size = in.clir.size();
+ aidl::android::hardware::radio::CdmaT53ClirInfoRecord clir;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.clir[i], &clir)) return false;
+ out->clir.push_back(clir);
+ }
+ }
+ {
+ size_t size = in.audioCtrl.size();
+ aidl::android::hardware::radio::CdmaT53AudioControlInfoRecord audioCtrl;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.audioCtrl[i], &audioCtrl)) return false;
+ out->audioCtrl.push_back(audioCtrl);
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaInformationRecords& in,
+ aidl::android::hardware::radio::CdmaInformationRecords* out) {
+ {
+ size_t size = in.infoRec.size();
+ aidl::android::hardware::radio::CdmaInformationRecord infoRec;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.infoRec[i], &infoRec)) return false;
+ out->infoRec.push_back(infoRec);
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CfData& in,
+ aidl::android::hardware::radio::CfData* out) {
+ {
+ size_t size = in.cfInfo.size();
+ aidl::android::hardware::radio::CallForwardInfo cfInfo;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.cfInfo[i], &cfInfo)) return false;
+ out->cfInfo.push_back(cfInfo);
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::SsInfoData& in,
+ aidl::android::hardware::radio::SsInfoData* out) {
+ {
+ size_t size = in.ssInfo.size();
+ for (size_t i = 0; i < size; i++) {
+ out->ssInfo.push_back(static_cast<int32_t>(in.ssInfo[i]));
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::StkCcUnsolSsResult& in,
+ aidl::android::hardware::radio::StkCcUnsolSsResult* out) {
+ out->serviceType = static_cast<aidl::android::hardware::radio::SsServiceType>(in.serviceType);
+ out->requestType = static_cast<aidl::android::hardware::radio::SsRequestType>(in.requestType);
+ out->teleserviceType =
+ static_cast<aidl::android::hardware::radio::SsTeleserviceType>(in.teleserviceType);
+ out->serviceClass =
+ static_cast<aidl::android::hardware::radio::SuppServiceClass>(in.serviceClass);
+ out->result = static_cast<aidl::android::hardware::radio::RadioError>(in.result);
+ {
+ size_t size = in.ssInfo.size();
+ aidl::android::hardware::radio::SsInfoData ssInfo;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.ssInfo[i], &ssInfo)) return false;
+ out->ssInfo.push_back(ssInfo);
+ }
+ }
+ {
+ size_t size = in.cfData.size();
+ aidl::android::hardware::radio::CfData cfData;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.cfData[i], &cfData)) return false;
+ out->cfData.push_back(cfData);
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::PcoDataInfo& in,
+ aidl::android::hardware::radio::PcoDataInfo* out) {
+ out->cid = static_cast<int32_t>(in.cid);
+ out->bearerProto = in.bearerProto;
+ out->pcoId = static_cast<int32_t>(in.pcoId);
+ {
+ size_t size = in.contents.size();
+ for (size_t i = 0; i < size; i++) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.contents[i] > std::numeric_limits<int8_t>::max() || in.contents[i] < 0) {
+ return false;
+ }
+ out->contents.push_back(static_cast<int8_t>(in.contents[i]));
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_1::KeepaliveRequest& in,
+ aidl::android::hardware::radio::KeepaliveRequest* out) {
+ out->type = static_cast<aidl::android::hardware::radio::KeepaliveType>(in.type);
+ {
+ size_t size = in.sourceAddress.size();
+ for (size_t i = 0; i < size; i++) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.sourceAddress[i] > std::numeric_limits<int8_t>::max() ||
+ in.sourceAddress[i] < 0) {
+ return false;
+ }
+ out->sourceAddress.push_back(static_cast<int8_t>(in.sourceAddress[i]));
+ }
+ }
+ out->sourcePort = static_cast<int32_t>(in.sourcePort);
+ {
+ size_t size = in.destinationAddress.size();
+ for (size_t i = 0; i < size; i++) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.destinationAddress[i] > std::numeric_limits<int8_t>::max() ||
+ in.destinationAddress[i] < 0) {
+ return false;
+ }
+ out->destinationAddress.push_back(static_cast<int8_t>(in.destinationAddress[i]));
+ }
+ }
+ out->destinationPort = static_cast<int32_t>(in.destinationPort);
+ out->maxKeepaliveIntervalMillis = static_cast<int32_t>(in.maxKeepaliveIntervalMillis);
+ out->cid = static_cast<int32_t>(in.cid);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_1::KeepaliveStatus& in,
+ aidl::android::hardware::radio::KeepaliveStatus* out) {
+ out->sessionHandle = static_cast<int32_t>(in.sessionHandle);
+ out->code = static_cast<aidl::android::hardware::radio::KeepaliveStatusCode>(in.code);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_2::CellIdentityOperatorNames& in,
+ aidl::android::hardware::radio::CellIdentityOperatorNames* out) {
+ out->alphaLong = in.alphaLong;
+ out->alphaShort = in.alphaShort;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_2::CellIdentityCdma& in,
+ aidl::android::hardware::radio::CellIdentityCdma* out) {
+ out->networkId = static_cast<int32_t>(in.base.networkId);
+ out->systemId = static_cast<int32_t>(in.base.systemId);
+ out->baseStationId = static_cast<int32_t>(in.base.baseStationId);
+ out->longitude = static_cast<int32_t>(in.base.longitude);
+ out->latitude = static_cast<int32_t>(in.base.latitude);
+ if (!translate(in.operatorNames, &out->operatorNames)) return false;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_2::CellInfoCdma& in,
+ aidl::android::hardware::radio::CellInfoCdma* out) {
+ if (!translate(in.cellIdentityCdma, &out->cellIdentityCdma)) return false;
+ if (!translate(in.signalStrengthCdma, &out->signalStrengthCdma)) return false;
+ if (!translate(in.signalStrengthEvdo, &out->signalStrengthEvdo)) return false;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_2::WcdmaSignalStrength& in,
+ aidl::android::hardware::radio::WcdmaSignalStrength* out) {
+ out->signalStrength = static_cast<int32_t>(in.base.signalStrength);
+ out->bitErrorRate = static_cast<int32_t>(in.base.bitErrorRate);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.rscp > std::numeric_limits<int32_t>::max() || in.rscp < 0) {
+ return false;
+ }
+ out->rscp = static_cast<int32_t>(in.rscp);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.ecno > std::numeric_limits<int32_t>::max() || in.ecno < 0) {
+ return false;
+ }
+ out->ecno = static_cast<int32_t>(in.ecno);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_2::TdscdmaSignalStrength& in,
+ aidl::android::hardware::radio::TdscdmaSignalStrength* out) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.signalStrength > std::numeric_limits<int32_t>::max() || in.signalStrength < 0) {
+ return false;
+ }
+ out->signalStrength = static_cast<int32_t>(in.signalStrength);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.bitErrorRate > std::numeric_limits<int32_t>::max() || in.bitErrorRate < 0) {
+ return false;
+ }
+ out->bitErrorRate = static_cast<int32_t>(in.bitErrorRate);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.rscp > std::numeric_limits<int32_t>::max() || in.rscp < 0) {
+ return false;
+ }
+ out->rscp = static_cast<int32_t>(in.rscp);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_2::VoiceRegStateResult& in,
+ aidl::android::hardware::radio::VoiceRegStateResult* out) {
+ out->regState = static_cast<aidl::android::hardware::radio::RegState>(in.regState);
+ out->rat = static_cast<int32_t>(in.rat);
+ out->cssSupported = static_cast<bool>(in.cssSupported);
+ out->roamingIndicator = static_cast<int32_t>(in.roamingIndicator);
+ out->systemIsInPrl = static_cast<int32_t>(in.systemIsInPrl);
+ out->defaultRoamingIndicator = static_cast<int32_t>(in.defaultRoamingIndicator);
+ out->reasonForDenial = static_cast<int32_t>(in.reasonForDenial);
+ // FIXME Unknown type: android.hardware.radio@1.2::CellIdentity
+ // That type's package needs to be converted separately and the corresponding translate function
+ // should be added here.
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_3::RadioResponseInfoModem& in,
+ aidl::android::hardware::radio::RadioResponseInfoModem* out) {
+ out->type = static_cast<aidl::android::hardware::radio::RadioResponseType>(in.type);
+ out->serial = static_cast<int32_t>(in.serial);
+ out->error = static_cast<aidl::android::hardware::radio::RadioError>(in.error);
+ out->isEnabled = static_cast<bool>(in.isEnabled);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_4::EmergencyNumber& in,
+ aidl::android::hardware::radio::EmergencyNumber* out) {
+ out->number = in.number;
+ out->mcc = in.mcc;
+ out->mnc = in.mnc;
+ out->categories =
+ static_cast<aidl::android::hardware::radio::EmergencyServiceCategory>(in.categories);
+ {
+ size_t size = in.urns.size();
+ for (size_t i = 0; i < size; i++) {
+ out->urns.push_back(in.urns[i]);
+ }
+ }
+ out->sources = static_cast<aidl::android::hardware::radio::EmergencyNumberSource>(in.sources);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_4::RadioFrequencyInfo& in,
+ aidl::android::hardware::radio::RadioFrequencyInfo* out) {
+ switch (in.getDiscriminator()) {
+ case ::android::hardware::radio::V1_4::RadioFrequencyInfo::hidl_discriminator::range:
+ *out = static_cast<aidl::android::hardware::radio::FrequencyRange>(in.range());
+ break;
+ case ::android::hardware::radio::V1_4::RadioFrequencyInfo::hidl_discriminator::
+ channelNumber:
+ *out = static_cast<int32_t>(in.channelNumber());
+ break;
+ default:
+ return false;
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_4::LteVopsInfo& in,
+ aidl::android::hardware::radio::LteVopsInfo* out) {
+ out->isVopsSupported = static_cast<bool>(in.isVopsSupported);
+ out->isEmcBearerSupported = static_cast<bool>(in.isEmcBearerSupported);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_4::NrIndicators& in,
+ aidl::android::hardware::radio::NrIndicators* out) {
+ out->isEndcAvailable = static_cast<bool>(in.isEndcAvailable);
+ out->isDcNrRestricted = static_cast<bool>(in.isDcNrRestricted);
+ out->isNrAvailable = static_cast<bool>(in.isNrAvailable);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_4::DataRegStateResult& in,
+ aidl::android::hardware::radio::DataRegStateResult* out) {
+ out->regState = static_cast<aidl::android::hardware::radio::RegState>(in.base.regState);
+ out->rat = static_cast<int32_t>(in.base.rat);
+ out->reasonDataDenied = static_cast<int32_t>(in.base.reasonDataDenied);
+ out->maxDataCalls = static_cast<int32_t>(in.base.maxDataCalls);
+ // FIXME Unknown type: android.hardware.radio@1.2::CellIdentity
+ // That type's package needs to be converted separately and the corresponding translate function
+ // should be added here.
+ if (!translate(in.vopsInfo, &out->vopsInfo)) return false;
+ if (!translate(in.nrIndicators, &out->nrIndicators)) return false;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_4::DataRegStateResult::VopsInfo& in,
+ aidl::android::hardware::radio::DataRegStateResultVopsInfo* out) {
+ switch (in.getDiscriminator()) {
+ case ::android::hardware::radio::V1_4::DataRegStateResult::VopsInfo::hidl_discriminator::
+ noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case ::android::hardware::radio::V1_4::DataRegStateResult::VopsInfo::hidl_discriminator::
+ lteVopsInfo: {
+ aidl::android::hardware::radio::LteVopsInfo lteVopsInfo;
+ if (!translate(in.lteVopsInfo(), <eVopsInfo)) return false;
+ out->set<aidl::android::hardware::radio::DataRegStateResultVopsInfo::lteVopsInfo>(
+ lteVopsInfo);
+ } break;
+ default:
+ return false;
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_4::CellConfigLte& in,
+ aidl::android::hardware::radio::CellConfigLte* out) {
+ out->isEndcAvailable = static_cast<bool>(in.isEndcAvailable);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_4::CellInfo::Info& in,
+ aidl::android::hardware::radio::CellInfoInfo* out) {
+ switch (in.getDiscriminator()) {
+ case ::android::hardware::radio::V1_4::CellInfo::Info::hidl_discriminator::gsm:
+ // FIXME Unknown type: android.hardware.radio@1.2::CellInfoGsm
+ // That type's package needs to be converted separately and the corresponding translate
+ // function should be added here.
+ break;
+ case ::android::hardware::radio::V1_4::CellInfo::Info::hidl_discriminator::cdma: {
+ aidl::android::hardware::radio::CellInfoCdma cdma;
+ if (!translate(in.cdma(), &cdma)) return false;
+ out->set<aidl::android::hardware::radio::CellInfoInfo::cdma>(cdma);
+ } break;
+ case ::android::hardware::radio::V1_4::CellInfo::Info::hidl_discriminator::wcdma:
+ // FIXME Unknown type: android.hardware.radio@1.2::CellInfoWcdma
+ // That type's package needs to be converted separately and the corresponding translate
+ // function should be added here.
+ break;
+ case ::android::hardware::radio::V1_4::CellInfo::Info::hidl_discriminator::tdscdma:
+ // FIXME Unknown type: android.hardware.radio@1.2::CellInfoTdscdma
+ // That type's package needs to be converted separately and the corresponding translate
+ // function should be added here.
+ break;
+ case ::android::hardware::radio::V1_4::CellInfo::Info::hidl_discriminator::lte:
+ // FIXME Unknown type: android.hardware.radio@1.4::CellInfoLte
+ // That type's package needs to be converted separately and the corresponding translate
+ // function should be added here.
+ break;
+ case ::android::hardware::radio::V1_4::CellInfo::Info::hidl_discriminator::nr:
+ // FIXME Unknown type: android.hardware.radio@1.4::CellInfoNr
+ // That type's package needs to be converted separately and the corresponding translate
+ // function should be added here.
+ break;
+ default:
+ return false;
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_4::RadioCapability& in,
+ aidl::android::hardware::radio::RadioCapability* out) {
+ out->session = static_cast<int32_t>(in.session);
+ out->phase = static_cast<aidl::android::hardware::radio::RadioCapabilityPhase>(in.phase);
+ out->raf = static_cast<aidl::android::hardware::radio::RadioAccessFamily>(in.raf);
+ out->logicalModemUuid = in.logicalModemUuid;
+ out->status = static_cast<aidl::android::hardware::radio::RadioCapabilityStatus>(in.status);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_4::CarrierRestrictionsWithPriority& in,
+ aidl::android::hardware::radio::CarrierRestrictionsWithPriority* out) {
+ {
+ size_t size = in.allowedCarriers.size();
+ aidl::android::hardware::radio::Carrier allowedCarriers;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.allowedCarriers[i], &allowedCarriers)) return false;
+ out->allowedCarriers.push_back(allowedCarriers);
+ }
+ }
+ {
+ size_t size = in.excludedCarriers.size();
+ aidl::android::hardware::radio::Carrier excludedCarriers;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.excludedCarriers[i], &excludedCarriers)) return false;
+ out->excludedCarriers.push_back(excludedCarriers);
+ }
+ }
+ out->allowedCarriersPrioritized = static_cast<bool>(in.allowedCarriersPrioritized);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::RadioAccessSpecifier& in,
+ aidl::android::hardware::radio::RadioAccessSpecifier* out) {
+ out->radioAccessNetwork =
+ static_cast<aidl::android::hardware::radio::RadioAccessNetworks>(in.radioAccessNetwork);
+ if (!translate(in.bands, &out->bands)) return false;
+ {
+ size_t size = in.channels.size();
+ for (size_t i = 0; i < size; i++) {
+ out->channels.push_back(static_cast<int32_t>(in.channels[i]));
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::RadioAccessSpecifier::Bands& in,
+ aidl::android::hardware::radio::RadioAccessSpecifierBands* out) {
+ switch (in.getDiscriminator()) {
+ case ::android::hardware::radio::V1_5::RadioAccessSpecifier::Bands::hidl_discriminator::
+ geranBands: {
+ ::android::hardware::hidl_vec<::android::hardware::radio::V1_1::GeranBands> geranBands =
+ in.geranBands();
+ size_t size = geranBands.size();
+ for (size_t i = 0; i < size; i++) {
+ out->get<aidl::android::hardware::radio::RadioAccessSpecifierBands::Tag::
+ geranBands>()
+ .push_back(static_cast<aidl::android::hardware::radio::GeranBands>(
+ geranBands[i]));
+ }
+ } break;
+ case ::android::hardware::radio::V1_5::RadioAccessSpecifier::Bands::hidl_discriminator::
+ utranBands: {
+ ::android::hardware::hidl_vec<::android::hardware::radio::V1_5::UtranBands> utranBands =
+ in.utranBands();
+ size_t size = utranBands.size();
+ for (size_t i = 0; i < size; i++) {
+ out->get<aidl::android::hardware::radio::RadioAccessSpecifierBands::Tag::
+ utranBands>()
+ .push_back(static_cast<aidl::android::hardware::radio::UtranBands>(
+ utranBands[i]));
+ }
+ } break;
+ case ::android::hardware::radio::V1_5::RadioAccessSpecifier::Bands::hidl_discriminator::
+ eutranBands: {
+ ::android::hardware::hidl_vec<::android::hardware::radio::V1_5::EutranBands>
+ eutranBands = in.eutranBands();
+ size_t size = eutranBands.size();
+ for (size_t i = 0; i < size; i++) {
+ out->get<aidl::android::hardware::radio::RadioAccessSpecifierBands::Tag::
+ eutranBands>()
+ .push_back(static_cast<aidl::android::hardware::radio::EutranBands>(
+ eutranBands[i]));
+ }
+ } break;
+ case ::android::hardware::radio::V1_5::RadioAccessSpecifier::Bands::hidl_discriminator::
+ ngranBands: {
+ ::android::hardware::hidl_vec<::android::hardware::radio::V1_5::NgranBands> ngranBands =
+ in.ngranBands();
+ size_t size = ngranBands.size();
+ for (size_t i = 0; i < size; i++) {
+ out->get<aidl::android::hardware::radio::RadioAccessSpecifierBands::Tag::
+ ngranBands>()
+ .push_back(static_cast<aidl::android::hardware::radio::NgranBands>(
+ ngranBands[i]));
+ }
+ } break;
+ default:
+ return false;
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::SignalThresholdInfo& in,
+ aidl::android::hardware::radio::SignalThresholdInfo* out) {
+ out->signalMeasurement = static_cast<aidl::android::hardware::radio::SignalMeasurementType>(
+ in.signalMeasurement);
+ out->hysteresisMs = static_cast<int32_t>(in.hysteresisMs);
+ out->hysteresisDb = static_cast<int32_t>(in.hysteresisDb);
+ {
+ size_t size = in.thresholds.size();
+ for (size_t i = 0; i < size; i++) {
+ out->thresholds.push_back(static_cast<int32_t>(in.thresholds[i]));
+ }
+ }
+ out->isEnabled = static_cast<bool>(in.isEnabled);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::NetworkScanRequest& in,
+ aidl::android::hardware::radio::NetworkScanRequest* out) {
+ out->type = static_cast<aidl::android::hardware::radio::ScanType>(in.type);
+ out->interval = static_cast<int32_t>(in.interval);
+ {
+ size_t size = in.specifiers.size();
+ aidl::android::hardware::radio::RadioAccessSpecifier specifiers;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.specifiers[i], &specifiers)) return false;
+ out->specifiers.push_back(specifiers);
+ }
+ }
+ out->maxSearchTime = static_cast<int32_t>(in.maxSearchTime);
+ out->incrementalResults = static_cast<bool>(in.incrementalResults);
+ out->incrementalResultsPeriodicity = static_cast<int32_t>(in.incrementalResultsPeriodicity);
+ {
+ size_t size = in.mccMncs.size();
+ for (size_t i = 0; i < size; i++) {
+ out->mccMncs.push_back(in.mccMncs[i]);
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::DataProfileInfo& in,
+ aidl::android::hardware::radio::DataProfileInfo* out) {
+ out->profileId = static_cast<aidl::android::hardware::radio::DataProfileId>(in.profileId);
+ out->apn = in.apn;
+ out->protocol = static_cast<aidl::android::hardware::radio::PdpProtocolType>(in.protocol);
+ out->roamingProtocol =
+ static_cast<aidl::android::hardware::radio::PdpProtocolType>(in.roamingProtocol);
+ out->authType = static_cast<aidl::android::hardware::radio::ApnAuthType>(in.authType);
+ out->user = in.user;
+ out->password = in.password;
+ out->type = static_cast<aidl::android::hardware::radio::DataProfileInfoType>(in.type);
+ out->maxConnsTime = static_cast<int32_t>(in.maxConnsTime);
+ out->maxConns = static_cast<int32_t>(in.maxConns);
+ out->waitTime = static_cast<int32_t>(in.waitTime);
+ out->enabled = static_cast<bool>(in.enabled);
+ out->supportedApnTypesBitmap =
+ static_cast<aidl::android::hardware::radio::ApnTypes>(in.supportedApnTypesBitmap);
+ out->bearerBitmap =
+ static_cast<aidl::android::hardware::radio::RadioAccessFamily>(in.bearerBitmap);
+ out->mtuV4 = static_cast<int32_t>(in.mtuV4);
+ out->mtuV6 = static_cast<int32_t>(in.mtuV6);
+ out->preferred = static_cast<bool>(in.preferred);
+ out->persistent = static_cast<bool>(in.persistent);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::LinkAddress& in,
+ aidl::android::hardware::radio::LinkAddress* out) {
+ out->address = in.address;
+ out->properties = static_cast<aidl::android::hardware::radio::AddressProperty>(in.properties);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.deprecationTime > std::numeric_limits<int64_t>::max() || in.deprecationTime < 0) {
+ return false;
+ }
+ out->deprecationTime = static_cast<int64_t>(in.deprecationTime);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.expirationTime > std::numeric_limits<int64_t>::max() || in.expirationTime < 0) {
+ return false;
+ }
+ out->expirationTime = static_cast<int64_t>(in.expirationTime);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::ClosedSubscriberGroupInfo& in,
+ aidl::android::hardware::radio::ClosedSubscriberGroupInfo* out) {
+ out->csgIndication = static_cast<bool>(in.csgIndication);
+ out->homeNodebName = in.homeNodebName;
+ out->csgIdentity = static_cast<int32_t>(in.csgIdentity);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::OptionalCsgInfo& in,
+ aidl::android::hardware::radio::OptionalCsgInfo* out) {
+ switch (in.getDiscriminator()) {
+ case ::android::hardware::radio::V1_5::OptionalCsgInfo::hidl_discriminator::noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case ::android::hardware::radio::V1_5::OptionalCsgInfo::hidl_discriminator::csgInfo: {
+ aidl::android::hardware::radio::ClosedSubscriberGroupInfo csgInfo;
+ if (!translate(in.csgInfo(), &csgInfo)) return false;
+ out->set<aidl::android::hardware::radio::OptionalCsgInfo::csgInfo>(csgInfo);
+ } break;
+ default:
+ return false;
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::CellIdentityGsm& in,
+ aidl::android::hardware::radio::CellIdentityGsm* out) {
+ out->mcc = in.base.base.mcc;
+ out->mnc = in.base.base.mnc;
+ out->lac = static_cast<int32_t>(in.base.base.lac);
+ out->cid = static_cast<int32_t>(in.base.base.cid);
+ out->arfcn = static_cast<int32_t>(in.base.base.arfcn);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.base.base.bsic > std::numeric_limits<int8_t>::max() || in.base.base.bsic < 0) {
+ return false;
+ }
+ out->bsic = static_cast<int8_t>(in.base.base.bsic);
+ if (!translate(in.base.operatorNames, &out->operatorNames)) return false;
+ {
+ size_t size = in.additionalPlmns.size();
+ for (size_t i = 0; i < size; i++) {
+ out->additionalPlmns.push_back(in.additionalPlmns[i]);
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::CellIdentityWcdma& in,
+ aidl::android::hardware::radio::CellIdentityWcdma* out) {
+ out->mcc = in.base.base.mcc;
+ out->mnc = in.base.base.mnc;
+ out->lac = static_cast<int32_t>(in.base.base.lac);
+ out->cid = static_cast<int32_t>(in.base.base.cid);
+ out->psc = static_cast<int32_t>(in.base.base.psc);
+ out->uarfcn = static_cast<int32_t>(in.base.base.uarfcn);
+ if (!translate(in.base.operatorNames, &out->operatorNames)) return false;
+ {
+ size_t size = in.additionalPlmns.size();
+ for (size_t i = 0; i < size; i++) {
+ out->additionalPlmns.push_back(in.additionalPlmns[i]);
+ }
+ }
+ if (!translate(in.optionalCsgInfo, &out->optionalCsgInfo)) return false;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::CellIdentityTdscdma& in,
+ aidl::android::hardware::radio::CellIdentityTdscdma* out) {
+ out->mcc = in.base.base.mcc;
+ out->mnc = in.base.base.mnc;
+ out->lac = static_cast<int32_t>(in.base.base.lac);
+ out->cid = static_cast<int32_t>(in.base.base.cid);
+ out->cpid = static_cast<int32_t>(in.base.base.cpid);
+ out->uarfcn = static_cast<int32_t>(in.base.uarfcn);
+ if (!translate(in.base.operatorNames, &out->operatorNames)) return false;
+ {
+ size_t size = in.additionalPlmns.size();
+ for (size_t i = 0; i < size; i++) {
+ out->additionalPlmns.push_back(in.additionalPlmns[i]);
+ }
+ }
+ if (!translate(in.optionalCsgInfo, &out->optionalCsgInfo)) return false;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::CellIdentityLte& in,
+ aidl::android::hardware::radio::CellIdentityLte* out) {
+ out->mcc = in.base.base.mcc;
+ out->mnc = in.base.base.mnc;
+ out->ci = static_cast<int32_t>(in.base.base.ci);
+ out->pci = static_cast<int32_t>(in.base.base.pci);
+ out->tac = static_cast<int32_t>(in.base.base.tac);
+ out->earfcn = static_cast<int32_t>(in.base.base.earfcn);
+ if (!translate(in.base.operatorNames, &out->operatorNames)) return false;
+ out->bandwidth = static_cast<int32_t>(in.base.bandwidth);
+ {
+ size_t size = in.additionalPlmns.size();
+ for (size_t i = 0; i < size; i++) {
+ out->additionalPlmns.push_back(in.additionalPlmns[i]);
+ }
+ }
+ if (!translate(in.optionalCsgInfo, &out->optionalCsgInfo)) return false;
+ {
+ size_t size = in.bands.size();
+ for (size_t i = 0; i < size; i++) {
+ out->bands.push_back(
+ static_cast<aidl::android::hardware::radio::EutranBands>(in.bands[i]));
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::CellIdentityNr& in,
+ aidl::android::hardware::radio::CellIdentityNr* out) {
+ out->mcc = in.base.mcc;
+ out->mnc = in.base.mnc;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.base.nci > std::numeric_limits<int64_t>::max() || in.base.nci < 0) {
+ return false;
+ }
+ out->nci = static_cast<int64_t>(in.base.nci);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.base.pci > std::numeric_limits<int32_t>::max() || in.base.pci < 0) {
+ return false;
+ }
+ out->pci = static_cast<int32_t>(in.base.pci);
+ out->tac = static_cast<int32_t>(in.base.tac);
+ out->nrarfcn = static_cast<int32_t>(in.base.nrarfcn);
+ if (!translate(in.base.operatorNames, &out->operatorNames)) return false;
+ {
+ size_t size = in.additionalPlmns.size();
+ for (size_t i = 0; i < size; i++) {
+ out->additionalPlmns.push_back(in.additionalPlmns[i]);
+ }
+ }
+ {
+ size_t size = in.bands.size();
+ for (size_t i = 0; i < size; i++) {
+ out->bands.push_back(
+ static_cast<aidl::android::hardware::radio::NgranBands>(in.bands[i]));
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::CellInfoGsm& in,
+ aidl::android::hardware::radio::CellInfoGsm* out) {
+ if (!translate(in.cellIdentityGsm, &out->cellIdentityGsm)) return false;
+ if (!translate(in.signalStrengthGsm, &out->signalStrengthGsm)) return false;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::CellInfoWcdma& in,
+ aidl::android::hardware::radio::CellInfoWcdma* out) {
+ if (!translate(in.cellIdentityWcdma, &out->cellIdentityWcdma)) return false;
+ if (!translate(in.signalStrengthWcdma, &out->signalStrengthWcdma)) return false;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::CellInfoTdscdma& in,
+ aidl::android::hardware::radio::CellInfoTdscdma* out) {
+ if (!translate(in.cellIdentityTdscdma, &out->cellIdentityTdscdma)) return false;
+ if (!translate(in.signalStrengthTdscdma, &out->signalStrengthTdscdma)) return false;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::CellIdentity& in,
+ aidl::android::hardware::radio::CellIdentity* out) {
+ switch (in.getDiscriminator()) {
+ case ::android::hardware::radio::V1_5::CellIdentity::hidl_discriminator::noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case ::android::hardware::radio::V1_5::CellIdentity::hidl_discriminator::gsm: {
+ aidl::android::hardware::radio::CellIdentityGsm gsm;
+ if (!translate(in.gsm(), &gsm)) return false;
+ out->set<aidl::android::hardware::radio::CellIdentity::gsm>(gsm);
+ } break;
+ case ::android::hardware::radio::V1_5::CellIdentity::hidl_discriminator::wcdma: {
+ aidl::android::hardware::radio::CellIdentityWcdma wcdma;
+ if (!translate(in.wcdma(), &wcdma)) return false;
+ out->set<aidl::android::hardware::radio::CellIdentity::wcdma>(wcdma);
+ } break;
+ case ::android::hardware::radio::V1_5::CellIdentity::hidl_discriminator::tdscdma: {
+ aidl::android::hardware::radio::CellIdentityTdscdma tdscdma;
+ if (!translate(in.tdscdma(), &tdscdma)) return false;
+ out->set<aidl::android::hardware::radio::CellIdentity::tdscdma>(tdscdma);
+ } break;
+ case ::android::hardware::radio::V1_5::CellIdentity::hidl_discriminator::cdma: {
+ aidl::android::hardware::radio::CellIdentityCdma cdma;
+ if (!translate(in.cdma(), &cdma)) return false;
+ out->set<aidl::android::hardware::radio::CellIdentity::cdma>(cdma);
+ } break;
+ case ::android::hardware::radio::V1_5::CellIdentity::hidl_discriminator::lte: {
+ aidl::android::hardware::radio::CellIdentityLte lte;
+ if (!translate(in.lte(), <e)) return false;
+ out->set<aidl::android::hardware::radio::CellIdentity::lte>(lte);
+ } break;
+ case ::android::hardware::radio::V1_5::CellIdentity::hidl_discriminator::nr: {
+ aidl::android::hardware::radio::CellIdentityNr nr;
+ if (!translate(in.nr(), &nr)) return false;
+ out->set<aidl::android::hardware::radio::CellIdentity::nr>(nr);
+ } break;
+ default:
+ return false;
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::BarringInfo& in,
+ aidl::android::hardware::radio::BarringInfo* out) {
+ out->serviceType =
+ static_cast<aidl::android::hardware::radio::BarringInfoServiceType>(in.serviceType);
+ out->barringType =
+ static_cast<aidl::android::hardware::radio::BarringInfoBarringType>(in.barringType);
+ if (!translate(in.barringTypeSpecificInfo, &out->barringTypeSpecificInfo)) return false;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::BarringInfo::BarringTypeSpecificInfo::Conditional&
+ in,
+ aidl::android::hardware::radio::BarringInfoBarringTypeSpecificInfoConditional* out) {
+ out->factor = static_cast<int32_t>(in.factor);
+ out->timeSeconds = static_cast<int32_t>(in.timeSeconds);
+ out->isBarred = static_cast<bool>(in.isBarred);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::BarringInfo::BarringTypeSpecificInfo& in,
+ aidl::android::hardware::radio::BarringInfoBarringTypeSpecificInfo* out) {
+ switch (in.getDiscriminator()) {
+ case ::android::hardware::radio::V1_5::BarringInfo::BarringTypeSpecificInfo::
+ hidl_discriminator::noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case ::android::hardware::radio::V1_5::BarringInfo::BarringTypeSpecificInfo::
+ hidl_discriminator::conditional: {
+ aidl::android::hardware::radio::BarringInfoBarringTypeSpecificInfoConditional
+ conditional;
+ if (!translate(in.conditional(), &conditional)) return false;
+ out->set<aidl::android::hardware::radio::BarringInfoBarringTypeSpecificInfo::
+ conditional>(conditional);
+ } break;
+ default:
+ return false;
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::RegStateResult::AccessTechnologySpecificInfo::
+ Cdma2000RegistrationInfo& in,
+ aidl::android::hardware::radio::
+ RegStateResultAccessTechnologySpecificInfoCdma2000RegistrationInfo* out) {
+ out->cssSupported = static_cast<bool>(in.cssSupported);
+ out->roamingIndicator = static_cast<int32_t>(in.roamingIndicator);
+ out->systemIsInPrl =
+ static_cast<aidl::android::hardware::radio::PrlIndicator>(in.systemIsInPrl);
+ out->defaultRoamingIndicator = static_cast<int32_t>(in.defaultRoamingIndicator);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::RegStateResult::AccessTechnologySpecificInfo::
+ EutranRegistrationInfo& in,
+ aidl::android::hardware::radio::
+ RegStateResultAccessTechnologySpecificInfoEutranRegistrationInfo* out) {
+ if (!translate(in.lteVopsInfo, &out->lteVopsInfo)) return false;
+ if (!translate(in.nrIndicators, &out->nrIndicators)) return false;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::AppStatus& in,
+ aidl::android::hardware::radio::AppStatus* out) {
+ out->appType = static_cast<aidl::android::hardware::radio::AppType>(in.base.appType);
+ out->appState = static_cast<aidl::android::hardware::radio::AppState>(in.base.appState);
+ out->persoSubstate =
+ static_cast<aidl::android::hardware::radio::PersoSubstate>(in.persoSubstate);
+ out->aidPtr = in.base.aidPtr;
+ out->appLabelPtr = in.base.appLabelPtr;
+ out->pin1Replaced = static_cast<int32_t>(in.base.pin1Replaced);
+ out->pin1 = static_cast<aidl::android::hardware::radio::PinState>(in.base.pin1);
+ out->pin2 = static_cast<aidl::android::hardware::radio::PinState>(in.base.pin2);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::CardStatus& in,
+ aidl::android::hardware::radio::CardStatus* out) {
+ out->cardState =
+ static_cast<aidl::android::hardware::radio::CardState>(in.base.base.base.cardState);
+ out->universalPinState = static_cast<aidl::android::hardware::radio::PinState>(
+ in.base.base.base.universalPinState);
+ out->gsmUmtsSubscriptionAppIndex =
+ static_cast<int32_t>(in.base.base.base.gsmUmtsSubscriptionAppIndex);
+ out->cdmaSubscriptionAppIndex =
+ static_cast<int32_t>(in.base.base.base.cdmaSubscriptionAppIndex);
+ out->imsSubscriptionAppIndex = static_cast<int32_t>(in.base.base.base.imsSubscriptionAppIndex);
+ {
+ size_t size = in.applications.size();
+ aidl::android::hardware::radio::AppStatus applications;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.applications[i], &applications)) return false;
+ out->applications.push_back(applications);
+ }
+ }
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.base.base.physicalSlotId > std::numeric_limits<int32_t>::max() ||
+ in.base.base.physicalSlotId < 0) {
+ return false;
+ }
+ out->physicalSlotId = static_cast<int32_t>(in.base.base.physicalSlotId);
+ out->atr = in.base.base.atr;
+ out->iccid = in.base.base.iccid;
+ out->eid = in.base.eid;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::QosBandwidth& in,
+ aidl::android::hardware::radio::QosBandwidth* out) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.maxBitrateKbps > std::numeric_limits<int32_t>::max() || in.maxBitrateKbps < 0) {
+ return false;
+ }
+ out->maxBitrateKbps = static_cast<int32_t>(in.maxBitrateKbps);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.guaranteedBitrateKbps > std::numeric_limits<int32_t>::max() ||
+ in.guaranteedBitrateKbps < 0) {
+ return false;
+ }
+ out->guaranteedBitrateKbps = static_cast<int32_t>(in.guaranteedBitrateKbps);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::EpsQos& in,
+ aidl::android::hardware::radio::EpsQos* out) {
+ out->qci = static_cast<char16_t>(in.qci);
+ if (!translate(in.downlink, &out->downlink)) return false;
+ if (!translate(in.uplink, &out->uplink)) return false;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::NrQos& in,
+ aidl::android::hardware::radio::NrQos* out) {
+ out->fiveQi = static_cast<char16_t>(in.fiveQi);
+ if (!translate(in.downlink, &out->downlink)) return false;
+ if (!translate(in.uplink, &out->uplink)) return false;
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.qfi > std::numeric_limits<int8_t>::max() || in.qfi < 0) {
+ return false;
+ }
+ out->qfi = static_cast<int8_t>(in.qfi);
+ out->averagingWindowMs = static_cast<char16_t>(in.averagingWindowMs);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(const ::android::hardware::radio::V1_6::Qos& in,
+ aidl::android::hardware::radio::Qos* out) {
+ switch (in.getDiscriminator()) {
+ case ::android::hardware::radio::V1_6::Qos::hidl_discriminator::noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case ::android::hardware::radio::V1_6::Qos::hidl_discriminator::eps: {
+ aidl::android::hardware::radio::EpsQos eps;
+ if (!translate(in.eps(), &eps)) return false;
+ out->set<aidl::android::hardware::radio::Qos::eps>(eps);
+ } break;
+ case ::android::hardware::radio::V1_6::Qos::hidl_discriminator::nr: {
+ aidl::android::hardware::radio::NrQos nr;
+ if (!translate(in.nr(), &nr)) return false;
+ out->set<aidl::android::hardware::radio::Qos::nr>(nr);
+ } break;
+ default:
+ return false;
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::RadioResponseInfo& in,
+ aidl::android::hardware::radio::RadioResponseInfo* out) {
+ out->type = static_cast<aidl::android::hardware::radio::RadioResponseType>(in.type);
+ out->serial = static_cast<int32_t>(in.serial);
+ out->error = static_cast<aidl::android::hardware::radio::RadioError>(in.error);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::PortRange& in,
+ aidl::android::hardware::radio::PortRange* out) {
+ out->start = static_cast<int32_t>(in.start);
+ out->end = static_cast<int32_t>(in.end);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::MaybePort& in,
+ aidl::android::hardware::radio::MaybePort* out) {
+ switch (in.getDiscriminator()) {
+ case ::android::hardware::radio::V1_6::MaybePort::hidl_discriminator::noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case ::android::hardware::radio::V1_6::MaybePort::hidl_discriminator::range: {
+ aidl::android::hardware::radio::PortRange range;
+ if (!translate(in.range(), &range)) return false;
+ out->set<aidl::android::hardware::radio::MaybePort::range>(range);
+ } break;
+ default:
+ return false;
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::QosFilter& in,
+ aidl::android::hardware::radio::QosFilter* out) {
+ {
+ size_t size = in.localAddresses.size();
+ for (size_t i = 0; i < size; i++) {
+ out->localAddresses.push_back(in.localAddresses[i]);
+ }
+ }
+ {
+ size_t size = in.remoteAddresses.size();
+ for (size_t i = 0; i < size; i++) {
+ out->remoteAddresses.push_back(in.remoteAddresses[i]);
+ }
+ }
+ if (!translate(in.localPort, &out->localPort)) return false;
+ if (!translate(in.remotePort, &out->remotePort)) return false;
+ out->protocol = static_cast<aidl::android::hardware::radio::QosProtocol>(in.protocol);
+ if (!translate(in.tos, &out->tos)) return false;
+ if (!translate(in.flowLabel, &out->flowLabel)) return false;
+ if (!translate(in.spi, &out->spi)) return false;
+ out->direction = static_cast<aidl::android::hardware::radio::QosFilterDirection>(in.direction);
+ out->precedence = static_cast<int32_t>(in.precedence);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::QosFilter::TypeOfService& in,
+ aidl::android::hardware::radio::QosFilterTypeOfService* out) {
+ switch (in.getDiscriminator()) {
+ case ::android::hardware::radio::V1_6::QosFilter::TypeOfService::hidl_discriminator::noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case ::android::hardware::radio::V1_6::QosFilter::TypeOfService::hidl_discriminator::value:
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.value() > std::numeric_limits<int8_t>::max() || in.value() < 0) {
+ return false;
+ }
+ *out = static_cast<int8_t>(in.value());
+ break;
+ default:
+ return false;
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::QosFilter::Ipv6FlowLabel& in,
+ aidl::android::hardware::radio::QosFilterIpv6FlowLabel* out) {
+ switch (in.getDiscriminator()) {
+ case ::android::hardware::radio::V1_6::QosFilter::Ipv6FlowLabel::hidl_discriminator::noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case ::android::hardware::radio::V1_6::QosFilter::Ipv6FlowLabel::hidl_discriminator::value:
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.value() > std::numeric_limits<int32_t>::max() || in.value() < 0) {
+ return false;
+ }
+ *out = static_cast<int32_t>(in.value());
+ break;
+ default:
+ return false;
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::QosFilter::IpsecSpi& in,
+ aidl::android::hardware::radio::QosFilterIpsecSpi* out) {
+ switch (in.getDiscriminator()) {
+ case ::android::hardware::radio::V1_6::QosFilter::IpsecSpi::hidl_discriminator::noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case ::android::hardware::radio::V1_6::QosFilter::IpsecSpi::hidl_discriminator::value:
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.value() > std::numeric_limits<int32_t>::max() || in.value() < 0) {
+ return false;
+ }
+ *out = static_cast<int32_t>(in.value());
+ break;
+ default:
+ return false;
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::QosSession& in,
+ aidl::android::hardware::radio::QosSession* out) {
+ out->qosSessionId = static_cast<int32_t>(in.qosSessionId);
+ if (!translate(in.qos, &out->qos)) return false;
+ {
+ size_t size = in.qosFilters.size();
+ aidl::android::hardware::radio::QosFilter qosFilters;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.qosFilters[i], &qosFilters)) return false;
+ out->qosFilters.push_back(qosFilters);
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::SetupDataCallResult& in,
+ aidl::android::hardware::radio::SetupDataCallResult* out) {
+ out->cause = static_cast<aidl::android::hardware::radio::DataCallFailCause>(in.cause);
+ out->suggestedRetryTime = static_cast<int64_t>(in.suggestedRetryTime);
+ out->cid = static_cast<int32_t>(in.cid);
+ out->active = static_cast<aidl::android::hardware::radio::DataConnActiveStatus>(in.active);
+ out->type = static_cast<aidl::android::hardware::radio::PdpProtocolType>(in.type);
+ out->ifname = in.ifname;
+ {
+ size_t size = in.addresses.size();
+ aidl::android::hardware::radio::LinkAddress addresses;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.addresses[i], &addresses)) return false;
+ out->addresses.push_back(addresses);
+ }
+ }
+ {
+ size_t size = in.dnses.size();
+ for (size_t i = 0; i < size; i++) {
+ out->dnses.push_back(in.dnses[i]);
+ }
+ }
+ {
+ size_t size = in.gateways.size();
+ for (size_t i = 0; i < size; i++) {
+ out->gateways.push_back(in.gateways[i]);
+ }
+ }
+ {
+ size_t size = in.pcscf.size();
+ for (size_t i = 0; i < size; i++) {
+ out->pcscf.push_back(in.pcscf[i]);
+ }
+ }
+ out->mtuV4 = static_cast<int32_t>(in.mtuV4);
+ out->mtuV6 = static_cast<int32_t>(in.mtuV6);
+ if (!translate(in.defaultQos, &out->defaultQos)) return false;
+ {
+ size_t size = in.qosSessions.size();
+ aidl::android::hardware::radio::QosSession qosSessions;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.qosSessions[i], &qosSessions)) return false;
+ out->qosSessions.push_back(qosSessions);
+ }
+ }
+ out->handoverFailureMode = static_cast<aidl::android::hardware::radio::HandoverFailureMode>(
+ in.handoverFailureMode);
+ out->pduSessionId = static_cast<int32_t>(in.pduSessionId);
+ if (!translate(in.sliceInfo, &out->sliceInfo)) return false;
+ {
+ size_t size = in.trafficDescriptors.size();
+ aidl::android::hardware::radio::TrafficDescriptor trafficDescriptors;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.trafficDescriptors[i], &trafficDescriptors)) return false;
+ out->trafficDescriptors.push_back(trafficDescriptors);
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::LinkCapacityEstimate& in,
+ aidl::android::hardware::radio::LinkCapacityEstimate* out) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.downlinkCapacityKbps > std::numeric_limits<int32_t>::max() ||
+ in.downlinkCapacityKbps < 0) {
+ return false;
+ }
+ out->downlinkCapacityKbps = static_cast<int32_t>(in.downlinkCapacityKbps);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.uplinkCapacityKbps > std::numeric_limits<int32_t>::max() || in.uplinkCapacityKbps < 0) {
+ return false;
+ }
+ out->uplinkCapacityKbps = static_cast<int32_t>(in.uplinkCapacityKbps);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.secondaryDownlinkCapacityKbps > std::numeric_limits<int32_t>::max() ||
+ in.secondaryDownlinkCapacityKbps < 0) {
+ return false;
+ }
+ out->secondaryDownlinkCapacityKbps = static_cast<int32_t>(in.secondaryDownlinkCapacityKbps);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.secondaryUplinkCapacityKbps > std::numeric_limits<int32_t>::max() ||
+ in.secondaryUplinkCapacityKbps < 0) {
+ return false;
+ }
+ out->secondaryUplinkCapacityKbps = static_cast<int32_t>(in.secondaryUplinkCapacityKbps);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::NrVopsInfo& in,
+ aidl::android::hardware::radio::NrVopsInfo* out) {
+ out->vopsSupported =
+ static_cast<aidl::android::hardware::radio::VopsIndicator>(in.vopsSupported);
+ out->emcSupported = static_cast<aidl::android::hardware::radio::EmcIndicator>(in.emcSupported);
+ out->emfSupported = static_cast<aidl::android::hardware::radio::EmfIndicator>(in.emfSupported);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::LteSignalStrength& in,
+ aidl::android::hardware::radio::LteSignalStrength* out) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.base.signalStrength > std::numeric_limits<int32_t>::max() ||
+ in.base.signalStrength < 0) {
+ return false;
+ }
+ out->signalStrength = static_cast<int32_t>(in.base.signalStrength);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.base.rsrp > std::numeric_limits<int32_t>::max() || in.base.rsrp < 0) {
+ return false;
+ }
+ out->rsrp = static_cast<int32_t>(in.base.rsrp);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.base.rsrq > std::numeric_limits<int32_t>::max() || in.base.rsrq < 0) {
+ return false;
+ }
+ out->rsrq = static_cast<int32_t>(in.base.rsrq);
+ out->rssnr = static_cast<int32_t>(in.base.rssnr);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.base.cqi > std::numeric_limits<int32_t>::max() || in.base.cqi < 0) {
+ return false;
+ }
+ out->cqi = static_cast<int32_t>(in.base.cqi);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.base.timingAdvance > std::numeric_limits<int32_t>::max() || in.base.timingAdvance < 0) {
+ return false;
+ }
+ out->timingAdvance = static_cast<int32_t>(in.base.timingAdvance);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.cqiTableIndex > std::numeric_limits<int32_t>::max() || in.cqiTableIndex < 0) {
+ return false;
+ }
+ out->cqiTableIndex = static_cast<int32_t>(in.cqiTableIndex);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::NrSignalStrength& in,
+ aidl::android::hardware::radio::NrSignalStrength* out) {
+ out->ssRsrp = static_cast<int32_t>(in.base.ssRsrp);
+ out->ssRsrq = static_cast<int32_t>(in.base.ssRsrq);
+ out->ssSinr = static_cast<int32_t>(in.base.ssSinr);
+ out->csiRsrp = static_cast<int32_t>(in.base.csiRsrp);
+ out->csiRsrq = static_cast<int32_t>(in.base.csiRsrq);
+ out->csiSinr = static_cast<int32_t>(in.base.csiSinr);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.csiCqiTableIndex > std::numeric_limits<int32_t>::max() || in.csiCqiTableIndex < 0) {
+ return false;
+ }
+ out->csiCqiTableIndex = static_cast<int32_t>(in.csiCqiTableIndex);
+ {
+ size_t size = in.csiCqiReport.size();
+ for (size_t i = 0; i < size; i++) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.csiCqiReport[i] > std::numeric_limits<int8_t>::max() || in.csiCqiReport[i] < 0) {
+ return false;
+ }
+ out->csiCqiReport.push_back(static_cast<int8_t>(in.csiCqiReport[i]));
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::SignalStrength& in,
+ aidl::android::hardware::radio::SignalStrength* out) {
+ if (!translate(in.gsm, &out->gsm)) return false;
+ if (!translate(in.cdma, &out->cdma)) return false;
+ if (!translate(in.evdo, &out->evdo)) return false;
+ if (!translate(in.lte, &out->lte)) return false;
+ if (!translate(in.tdscdma, &out->tdscdma)) return false;
+ if (!translate(in.wcdma, &out->wcdma)) return false;
+ if (!translate(in.nr, &out->nr)) return false;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::CellInfoLte& in,
+ aidl::android::hardware::radio::CellInfoLte* out) {
+ if (!translate(in.cellIdentityLte, &out->cellIdentityLte)) return false;
+ if (!translate(in.signalStrengthLte, &out->signalStrengthLte)) return false;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::CellInfoNr& in,
+ aidl::android::hardware::radio::CellInfoNr* out) {
+ if (!translate(in.cellIdentityNr, &out->cellIdentityNr)) return false;
+ if (!translate(in.signalStrengthNr, &out->signalStrengthNr)) return false;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::CellInfo& in,
+ aidl::android::hardware::radio::CellInfo* out) {
+ out->registered = static_cast<bool>(in.registered);
+ out->connectionStatus =
+ static_cast<aidl::android::hardware::radio::CellConnectionStatus>(in.connectionStatus);
+ if (!translate(in.ratSpecificInfo, &out->ratSpecificInfo)) return false;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::CellInfo::CellInfoRatSpecificInfo& in,
+ aidl::android::hardware::radio::CellInfoCellInfoRatSpecificInfo* out) {
+ switch (in.getDiscriminator()) {
+ case ::android::hardware::radio::V1_6::CellInfo::CellInfoRatSpecificInfo::
+ hidl_discriminator::gsm: {
+ aidl::android::hardware::radio::CellInfoGsm gsm;
+ if (!translate(in.gsm(), &gsm)) return false;
+ out->set<aidl::android::hardware::radio::CellInfoCellInfoRatSpecificInfo::gsm>(gsm);
+ } break;
+ case ::android::hardware::radio::V1_6::CellInfo::CellInfoRatSpecificInfo::
+ hidl_discriminator::wcdma: {
+ aidl::android::hardware::radio::CellInfoWcdma wcdma;
+ if (!translate(in.wcdma(), &wcdma)) return false;
+ out->set<aidl::android::hardware::radio::CellInfoCellInfoRatSpecificInfo::wcdma>(wcdma);
+ } break;
+ case ::android::hardware::radio::V1_6::CellInfo::CellInfoRatSpecificInfo::
+ hidl_discriminator::tdscdma: {
+ aidl::android::hardware::radio::CellInfoTdscdma tdscdma;
+ if (!translate(in.tdscdma(), &tdscdma)) return false;
+ out->set<aidl::android::hardware::radio::CellInfoCellInfoRatSpecificInfo::tdscdma>(
+ tdscdma);
+ } break;
+ case ::android::hardware::radio::V1_6::CellInfo::CellInfoRatSpecificInfo::
+ hidl_discriminator::lte: {
+ aidl::android::hardware::radio::CellInfoLte lte;
+ if (!translate(in.lte(), <e)) return false;
+ out->set<aidl::android::hardware::radio::CellInfoCellInfoRatSpecificInfo::lte>(lte);
+ } break;
+ case ::android::hardware::radio::V1_6::CellInfo::CellInfoRatSpecificInfo::
+ hidl_discriminator::nr: {
+ aidl::android::hardware::radio::CellInfoNr nr;
+ if (!translate(in.nr(), &nr)) return false;
+ out->set<aidl::android::hardware::radio::CellInfoCellInfoRatSpecificInfo::nr>(nr);
+ } break;
+ case ::android::hardware::radio::V1_6::CellInfo::CellInfoRatSpecificInfo::
+ hidl_discriminator::cdma: {
+ aidl::android::hardware::radio::CellInfoCdma cdma;
+ if (!translate(in.cdma(), &cdma)) return false;
+ out->set<aidl::android::hardware::radio::CellInfoCellInfoRatSpecificInfo::cdma>(cdma);
+ } break;
+ default:
+ return false;
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::NetworkScanResult& in,
+ aidl::android::hardware::radio::NetworkScanResult* out) {
+ out->status = static_cast<aidl::android::hardware::radio::ScanStatus>(in.status);
+ out->error = static_cast<aidl::android::hardware::radio::RadioError>(in.error);
+ {
+ size_t size = in.networkInfos.size();
+ aidl::android::hardware::radio::CellInfo networkInfos;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.networkInfos[i], &networkInfos)) return false;
+ out->networkInfos.push_back(networkInfos);
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::RegStateResult& in,
+ aidl::android::hardware::radio::RegStateResult* out) {
+ out->regState = static_cast<aidl::android::hardware::radio::RegState>(in.regState);
+ out->rat = static_cast<aidl::android::hardware::radio::RadioTechnology>(in.rat);
+ out->reasonForDenial =
+ static_cast<aidl::android::hardware::radio::RegistrationFailCause>(in.reasonForDenial);
+ if (!translate(in.cellIdentity, &out->cellIdentity)) return false;
+ out->registeredPlmn = in.registeredPlmn;
+ if (!translate(in.accessTechnologySpecificInfo, &out->accessTechnologySpecificInfo))
+ return false;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::RegStateResult::AccessTechnologySpecificInfo& in,
+ aidl::android::hardware::radio::RegStateResultAccessTechnologySpecificInfo* out) {
+ switch (in.getDiscriminator()) {
+ case ::android::hardware::radio::V1_6::RegStateResult::AccessTechnologySpecificInfo::
+ hidl_discriminator::noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case ::android::hardware::radio::V1_6::RegStateResult::AccessTechnologySpecificInfo::
+ hidl_discriminator::cdmaInfo: {
+ aidl::android::hardware::radio::
+ RegStateResultAccessTechnologySpecificInfoCdma2000RegistrationInfo cdmaInfo;
+ if (!translate(in.cdmaInfo(), &cdmaInfo)) return false;
+ out->set<aidl::android::hardware::radio::RegStateResultAccessTechnologySpecificInfo::
+ cdmaInfo>(cdmaInfo);
+ } break;
+ case ::android::hardware::radio::V1_6::RegStateResult::AccessTechnologySpecificInfo::
+ hidl_discriminator::eutranInfo: {
+ aidl::android::hardware::radio::
+ RegStateResultAccessTechnologySpecificInfoEutranRegistrationInfo eutranInfo;
+ if (!translate(in.eutranInfo(), &eutranInfo)) return false;
+ out->set<aidl::android::hardware::radio::RegStateResultAccessTechnologySpecificInfo::
+ eutranInfo>(eutranInfo);
+ } break;
+ case ::android::hardware::radio::V1_6::RegStateResult::AccessTechnologySpecificInfo::
+ hidl_discriminator::ngranNrVopsInfo: {
+ aidl::android::hardware::radio::NrVopsInfo ngranNrVopsInfo;
+ if (!translate(in.ngranNrVopsInfo(), &ngranNrVopsInfo)) return false;
+ out->set<aidl::android::hardware::radio::RegStateResultAccessTechnologySpecificInfo::
+ ngranNrVopsInfo>(ngranNrVopsInfo);
+ } break;
+ case ::android::hardware::radio::V1_6::RegStateResult::AccessTechnologySpecificInfo::
+ hidl_discriminator::geranDtmSupported:
+ out->set<aidl::android::hardware::radio::RegStateResultAccessTechnologySpecificInfo::
+ geranDtmSupported>(static_cast<bool>(in.geranDtmSupported()));
+ break;
+ default:
+ return false;
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(const ::android::hardware::radio::V1_6::Call& in,
+ aidl::android::hardware::radio::Call* out) {
+ out->state = static_cast<aidl::android::hardware::radio::CallState>(in.base.base.state);
+ out->index = static_cast<int32_t>(in.base.base.index);
+ out->toa = static_cast<int32_t>(in.base.base.toa);
+ out->isMpty = static_cast<bool>(in.base.base.isMpty);
+ out->isMT = static_cast<bool>(in.base.base.isMT);
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.base.base.als > std::numeric_limits<int8_t>::max() || in.base.base.als < 0) {
+ return false;
+ }
+ out->als = static_cast<int8_t>(in.base.base.als);
+ out->isVoice = static_cast<bool>(in.base.base.isVoice);
+ out->isVoicePrivacy = static_cast<bool>(in.base.base.isVoicePrivacy);
+ out->number = in.base.base.number;
+ out->numberPresentation = static_cast<aidl::android::hardware::radio::CallPresentation>(
+ in.base.base.numberPresentation);
+ out->name = in.base.base.name;
+ out->namePresentation = static_cast<aidl::android::hardware::radio::CallPresentation>(
+ in.base.base.namePresentation);
+ {
+ size_t size = in.base.base.uusInfo.size();
+ aidl::android::hardware::radio::UusInfo uusInfo;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.base.base.uusInfo[i], &uusInfo)) return false;
+ out->uusInfo.push_back(uusInfo);
+ }
+ }
+ out->audioQuality =
+ static_cast<aidl::android::hardware::radio::AudioQuality>(in.base.audioQuality);
+ out->forwardedNumber = in.forwardedNumber;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::PhysicalChannelConfig& in,
+ aidl::android::hardware::radio::PhysicalChannelConfig* out) {
+ out->status = static_cast<aidl::android::hardware::radio::CellConnectionStatus>(in.status);
+ out->rat = static_cast<aidl::android::hardware::radio::RadioTechnology>(in.rat);
+ out->downlinkChannelNumber = static_cast<int32_t>(in.downlinkChannelNumber);
+ out->uplinkChannelNumber = static_cast<int32_t>(in.uplinkChannelNumber);
+ out->cellBandwidthDownlinkKhz = static_cast<int32_t>(in.cellBandwidthDownlinkKhz);
+ out->cellBandwidthUplinkKhz = static_cast<int32_t>(in.cellBandwidthUplinkKhz);
+ {
+ size_t size = in.contextIds.size();
+ for (size_t i = 0; i < size; i++) {
+ out->contextIds.push_back(static_cast<int32_t>(in.contextIds[i]));
+ }
+ }
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.physicalCellId > std::numeric_limits<int32_t>::max() || in.physicalCellId < 0) {
+ return false;
+ }
+ out->physicalCellId = static_cast<int32_t>(in.physicalCellId);
+ if (!translate(in.band, &out->band)) return false;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::PhysicalChannelConfig::Band& in,
+ aidl::android::hardware::radio::PhysicalChannelConfigBand* out) {
+ switch (in.getDiscriminator()) {
+ case ::android::hardware::radio::V1_6::PhysicalChannelConfig::Band::hidl_discriminator::
+ geranBand:
+ *out = static_cast<aidl::android::hardware::radio::GeranBands>(in.geranBand());
+ break;
+ case ::android::hardware::radio::V1_6::PhysicalChannelConfig::Band::hidl_discriminator::
+ utranBand:
+ *out = static_cast<aidl::android::hardware::radio::UtranBands>(in.utranBand());
+ break;
+ case ::android::hardware::radio::V1_6::PhysicalChannelConfig::Band::hidl_discriminator::
+ eutranBand:
+ *out = static_cast<aidl::android::hardware::radio::EutranBands>(in.eutranBand());
+ break;
+ case ::android::hardware::radio::V1_6::PhysicalChannelConfig::Band::hidl_discriminator::
+ ngranBand:
+ *out = static_cast<aidl::android::hardware::radio::NgranBands>(in.ngranBand());
+ break;
+ default:
+ return false;
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::OptionalSliceInfo& in,
+ aidl::android::hardware::radio::OptionalSliceInfo* out) {
+ switch (in.getDiscriminator()) {
+ case ::android::hardware::radio::V1_6::OptionalSliceInfo::hidl_discriminator::noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case ::android::hardware::radio::V1_6::OptionalSliceInfo::hidl_discriminator::value: {
+ aidl::android::hardware::radio::SliceInfo value;
+ if (!translate(in.value(), &value)) return false;
+ out->set<aidl::android::hardware::radio::OptionalSliceInfo::value>(value);
+ } break;
+ default:
+ return false;
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::SliceInfo& in,
+ aidl::android::hardware::radio::SliceInfo* out) {
+ out->sst = static_cast<aidl::android::hardware::radio::SliceServiceType>(in.sst);
+ out->sliceDifferentiator = static_cast<int32_t>(in.sliceDifferentiator);
+ out->mappedHplmnSst =
+ static_cast<aidl::android::hardware::radio::SliceServiceType>(in.mappedHplmnSst);
+ out->mappedHplmnSD = static_cast<int32_t>(in.mappedHplmnSD);
+ out->status = static_cast<aidl::android::hardware::radio::SliceStatus>(in.status);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::OptionalDnn& in,
+ aidl::android::hardware::radio::OptionalDnn* out) {
+ switch (in.getDiscriminator()) {
+ case ::android::hardware::radio::V1_6::OptionalDnn::hidl_discriminator::noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case ::android::hardware::radio::V1_6::OptionalDnn::hidl_discriminator::value:
+ *out = in.value();
+ break;
+ default:
+ return false;
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::OptionalOsAppId& in,
+ aidl::android::hardware::radio::OptionalOsAppId* out) {
+ switch (in.getDiscriminator()) {
+ case ::android::hardware::radio::V1_6::OptionalOsAppId::hidl_discriminator::noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case ::android::hardware::radio::V1_6::OptionalOsAppId::hidl_discriminator::value: {
+ aidl::android::hardware::radio::OsAppId value;
+ if (!translate(in.value(), &value)) return false;
+ out->set<aidl::android::hardware::radio::OptionalOsAppId::value>(value);
+ } break;
+ default:
+ return false;
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::OptionalTrafficDescriptor& in,
+ aidl::android::hardware::radio::OptionalTrafficDescriptor* out) {
+ switch (in.getDiscriminator()) {
+ case ::android::hardware::radio::V1_6::OptionalTrafficDescriptor::hidl_discriminator::
+ noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case ::android::hardware::radio::V1_6::OptionalTrafficDescriptor::hidl_discriminator::
+ value: {
+ aidl::android::hardware::radio::TrafficDescriptor value;
+ if (!translate(in.value(), &value)) return false;
+ out->set<aidl::android::hardware::radio::OptionalTrafficDescriptor::value>(value);
+ } break;
+ default:
+ return false;
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::TrafficDescriptor& in,
+ aidl::android::hardware::radio::TrafficDescriptor* out) {
+ if (!translate(in.dnn, &out->dnn)) return false;
+ if (!translate(in.osAppId, &out->osAppId)) return false;
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::OsAppId& in,
+ aidl::android::hardware::radio::OsAppId* out) {
+ {
+ size_t size = in.osAppId.size();
+ for (size_t i = 0; i < size; i++) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.osAppId[i] > std::numeric_limits<int8_t>::max() || in.osAppId[i] < 0) {
+ return false;
+ }
+ out->osAppId.push_back(static_cast<int8_t>(in.osAppId[i]));
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::SlicingConfig& in,
+ aidl::android::hardware::radio::SlicingConfig* out) {
+ {
+ size_t size = in.urspRules.size();
+ aidl::android::hardware::radio::UrspRule urspRules;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.urspRules[i], &urspRules)) return false;
+ out->urspRules.push_back(urspRules);
+ }
+ }
+ {
+ size_t size = in.sliceInfo.size();
+ aidl::android::hardware::radio::SliceInfo sliceInfo;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.sliceInfo[i], &sliceInfo)) return false;
+ out->sliceInfo.push_back(sliceInfo);
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::UrspRule& in,
+ aidl::android::hardware::radio::UrspRule* out) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.precedence > std::numeric_limits<int8_t>::max() || in.precedence < 0) {
+ return false;
+ }
+ out->precedence = static_cast<int8_t>(in.precedence);
+ {
+ size_t size = in.trafficDescriptors.size();
+ aidl::android::hardware::radio::TrafficDescriptor trafficDescriptors;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.trafficDescriptors[i], &trafficDescriptors)) return false;
+ out->trafficDescriptors.push_back(trafficDescriptors);
+ }
+ }
+ {
+ size_t size = in.routeSelectionDescriptor.size();
+ aidl::android::hardware::radio::RouteSelectionDescriptor routeSelectionDescriptor;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.routeSelectionDescriptor[i], &routeSelectionDescriptor)) return false;
+ out->routeSelectionDescriptor.push_back(routeSelectionDescriptor);
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::RouteSelectionDescriptor& in,
+ aidl::android::hardware::radio::RouteSelectionDescriptor* out) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.precedence > std::numeric_limits<int8_t>::max() || in.precedence < 0) {
+ return false;
+ }
+ out->precedence = static_cast<int8_t>(in.precedence);
+ if (!translate(in.sessionType, &out->sessionType)) return false;
+ if (!translate(in.sscMode, &out->sscMode)) return false;
+ {
+ size_t size = in.sliceInfo.size();
+ aidl::android::hardware::radio::SliceInfo sliceInfo;
+ for (size_t i = 0; i < size; i++) {
+ if (!translate(in.sliceInfo[i], &sliceInfo)) return false;
+ out->sliceInfo.push_back(sliceInfo);
+ }
+ }
+ {
+ size_t size = in.dnn.size();
+ for (size_t i = 0; i < size; i++) {
+ out->dnn.push_back(in.dnn[i]);
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::OptionalPdpProtocolType& in,
+ aidl::android::hardware::radio::OptionalPdpProtocolType* out) {
+ switch (in.getDiscriminator()) {
+ case ::android::hardware::radio::V1_6::OptionalPdpProtocolType::hidl_discriminator::noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case ::android::hardware::radio::V1_6::OptionalPdpProtocolType::hidl_discriminator::value:
+ *out = static_cast<aidl::android::hardware::radio::PdpProtocolType>(in.value());
+ break;
+ default:
+ return false;
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::OptionalSscMode& in,
+ aidl::android::hardware::radio::OptionalSscMode* out) {
+ switch (in.getDiscriminator()) {
+ case ::android::hardware::radio::V1_6::OptionalSscMode::hidl_discriminator::noinit:
+ // Nothing to translate for Monostate.
+ break;
+ case ::android::hardware::radio::V1_6::OptionalSscMode::hidl_discriminator::value:
+ *out = static_cast<aidl::android::hardware::radio::SscMode>(in.value());
+ break;
+ default:
+ return false;
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::ImsiEncryptionInfo& in,
+ aidl::android::hardware::radio::ImsiEncryptionInfo* out) {
+ out->mcc = in.base.mcc;
+ out->mnc = in.base.mnc;
+ {
+ size_t size = in.base.carrierKey.size();
+ for (size_t i = 0; i < size; i++) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't
+ // suit your needs.
+ if (in.base.carrierKey[i] > std::numeric_limits<int8_t>::max() ||
+ in.base.carrierKey[i] < 0) {
+ return false;
+ }
+ out->carrierKey.push_back(static_cast<int8_t>(in.base.carrierKey[i]));
+ }
+ }
+ out->keyIdentifier = in.base.keyIdentifier;
+ out->expirationTime = static_cast<int64_t>(in.base.expirationTime);
+ out->keyType = static_cast<aidl::android::hardware::radio::PublicKeyType>(in.keyType);
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::PhonebookRecordInfo& in,
+ aidl::android::hardware::radio::PhonebookRecordInfo* out) {
+ // FIXME This requires conversion between signed and unsigned. Change this if it doesn't suit
+ // your needs.
+ if (in.recordId > std::numeric_limits<int32_t>::max() || in.recordId < 0) {
+ return false;
+ }
+ out->recordId = static_cast<int32_t>(in.recordId);
+ out->name = in.name;
+ out->number = in.number;
+ {
+ size_t size = in.emails.size();
+ for (size_t i = 0; i < size; i++) {
+ out->emails.push_back(in.emails[i]);
+ }
+ }
+ {
+ size_t size = in.additionalNumbers.size();
+ for (size_t i = 0; i < size; i++) {
+ out->additionalNumbers.push_back(in.additionalNumbers[i]);
+ }
+ }
+ return true;
+}
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::PhonebookCapacity& in,
+ aidl::android::hardware::radio::PhonebookCapacity* out) {
+ out->maxAdnRecords = static_cast<int32_t>(in.maxAdnRecords);
+ out->usedAdnRecords = static_cast<int32_t>(in.usedAdnRecords);
+ out->maxEmailRecords = static_cast<int32_t>(in.maxEmailRecords);
+ out->usedEmailRecords = static_cast<int32_t>(in.usedEmailRecords);
+ out->maxAdditionalNumberRecords = static_cast<int32_t>(in.maxAdditionalNumberRecords);
+ out->usedAdditionalNumberRecords = static_cast<int32_t>(in.usedAdditionalNumberRecords);
+ out->maxNameLen = static_cast<int32_t>(in.maxNameLen);
+ out->maxNumberLen = static_cast<int32_t>(in.maxNumberLen);
+ out->maxEmailLen = static_cast<int32_t>(in.maxEmailLen);
+ out->maxAdditionalNumberLen = static_cast<int32_t>(in.maxAdditionalNumberLen);
+ return true;
+}
+
+} // namespace android::h2a
diff --git a/radio/aidl/include/android/hardware/radio/translate-ndk.h b/radio/aidl/include/android/hardware/radio/translate-ndk.h
new file mode 100644
index 0000000..b136029
--- /dev/null
+++ b/radio/aidl/include/android/hardware/radio/translate-ndk.h
@@ -0,0 +1,699 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <limits>
+#include "aidl/android/hardware/radio/AccessNetwork.h"
+#include "aidl/android/hardware/radio/ActivityStatsInfo.h"
+#include "aidl/android/hardware/radio/AddressProperty.h"
+#include "aidl/android/hardware/radio/ApnAuthType.h"
+#include "aidl/android/hardware/radio/ApnTypes.h"
+#include "aidl/android/hardware/radio/AppState.h"
+#include "aidl/android/hardware/radio/AppStatus.h"
+#include "aidl/android/hardware/radio/AppType.h"
+#include "aidl/android/hardware/radio/AudioQuality.h"
+#include "aidl/android/hardware/radio/BarringInfo.h"
+#include "aidl/android/hardware/radio/BarringInfoBarringType.h"
+#include "aidl/android/hardware/radio/BarringInfoBarringTypeSpecificInfo.h"
+#include "aidl/android/hardware/radio/BarringInfoBarringTypeSpecificInfoConditional.h"
+#include "aidl/android/hardware/radio/BarringInfoServiceType.h"
+#include "aidl/android/hardware/radio/Call.h"
+#include "aidl/android/hardware/radio/CallForwardInfo.h"
+#include "aidl/android/hardware/radio/CallForwardInfoStatus.h"
+#include "aidl/android/hardware/radio/CallPresentation.h"
+#include "aidl/android/hardware/radio/CallState.h"
+#include "aidl/android/hardware/radio/CardPowerState.h"
+#include "aidl/android/hardware/radio/CardState.h"
+#include "aidl/android/hardware/radio/CardStatus.h"
+#include "aidl/android/hardware/radio/Carrier.h"
+#include "aidl/android/hardware/radio/CarrierMatchType.h"
+#include "aidl/android/hardware/radio/CarrierRestrictions.h"
+#include "aidl/android/hardware/radio/CarrierRestrictionsWithPriority.h"
+#include "aidl/android/hardware/radio/CdmaBroadcastSmsConfigInfo.h"
+#include "aidl/android/hardware/radio/CdmaCallWaiting.h"
+#include "aidl/android/hardware/radio/CdmaCallWaitingNumberPlan.h"
+#include "aidl/android/hardware/radio/CdmaCallWaitingNumberPresentation.h"
+#include "aidl/android/hardware/radio/CdmaCallWaitingNumberType.h"
+#include "aidl/android/hardware/radio/CdmaDisplayInfoRecord.h"
+#include "aidl/android/hardware/radio/CdmaInfoRecName.h"
+#include "aidl/android/hardware/radio/CdmaInformationRecord.h"
+#include "aidl/android/hardware/radio/CdmaInformationRecords.h"
+#include "aidl/android/hardware/radio/CdmaLineControlInfoRecord.h"
+#include "aidl/android/hardware/radio/CdmaNumberInfoRecord.h"
+#include "aidl/android/hardware/radio/CdmaOtaProvisionStatus.h"
+#include "aidl/android/hardware/radio/CdmaRedirectingNumberInfoRecord.h"
+#include "aidl/android/hardware/radio/CdmaRedirectingReason.h"
+#include "aidl/android/hardware/radio/CdmaRoamingType.h"
+#include "aidl/android/hardware/radio/CdmaSignalInfoRecord.h"
+#include "aidl/android/hardware/radio/CdmaSignalStrength.h"
+#include "aidl/android/hardware/radio/CdmaSmsAck.h"
+#include "aidl/android/hardware/radio/CdmaSmsAddress.h"
+#include "aidl/android/hardware/radio/CdmaSmsDigitMode.h"
+#include "aidl/android/hardware/radio/CdmaSmsErrorClass.h"
+#include "aidl/android/hardware/radio/CdmaSmsMessage.h"
+#include "aidl/android/hardware/radio/CdmaSmsNumberMode.h"
+#include "aidl/android/hardware/radio/CdmaSmsNumberPlan.h"
+#include "aidl/android/hardware/radio/CdmaSmsNumberType.h"
+#include "aidl/android/hardware/radio/CdmaSmsSubaddress.h"
+#include "aidl/android/hardware/radio/CdmaSmsSubaddressType.h"
+#include "aidl/android/hardware/radio/CdmaSmsWriteArgs.h"
+#include "aidl/android/hardware/radio/CdmaSmsWriteArgsStatus.h"
+#include "aidl/android/hardware/radio/CdmaSubscriptionSource.h"
+#include "aidl/android/hardware/radio/CdmaT53AudioControlInfoRecord.h"
+#include "aidl/android/hardware/radio/CdmaT53ClirInfoRecord.h"
+#include "aidl/android/hardware/radio/CellConfigLte.h"
+#include "aidl/android/hardware/radio/CellConnectionStatus.h"
+#include "aidl/android/hardware/radio/CellIdentity.h"
+#include "aidl/android/hardware/radio/CellIdentityCdma.h"
+#include "aidl/android/hardware/radio/CellIdentityGsm.h"
+#include "aidl/android/hardware/radio/CellIdentityLte.h"
+#include "aidl/android/hardware/radio/CellIdentityNr.h"
+#include "aidl/android/hardware/radio/CellIdentityOperatorNames.h"
+#include "aidl/android/hardware/radio/CellIdentityTdscdma.h"
+#include "aidl/android/hardware/radio/CellIdentityWcdma.h"
+#include "aidl/android/hardware/radio/CellInfo.h"
+#include "aidl/android/hardware/radio/CellInfoCdma.h"
+#include "aidl/android/hardware/radio/CellInfoCellInfoRatSpecificInfo.h"
+#include "aidl/android/hardware/radio/CellInfoGsm.h"
+#include "aidl/android/hardware/radio/CellInfoInfo.h"
+#include "aidl/android/hardware/radio/CellInfoLte.h"
+#include "aidl/android/hardware/radio/CellInfoNr.h"
+#include "aidl/android/hardware/radio/CellInfoTdscdma.h"
+#include "aidl/android/hardware/radio/CellInfoType.h"
+#include "aidl/android/hardware/radio/CellInfoWcdma.h"
+#include "aidl/android/hardware/radio/CfData.h"
+#include "aidl/android/hardware/radio/ClipStatus.h"
+#include "aidl/android/hardware/radio/Clir.h"
+#include "aidl/android/hardware/radio/ClosedSubscriberGroupInfo.h"
+#include "aidl/android/hardware/radio/DataCallFailCause.h"
+#include "aidl/android/hardware/radio/DataConnActiveStatus.h"
+#include "aidl/android/hardware/radio/DataProfileId.h"
+#include "aidl/android/hardware/radio/DataProfileInfo.h"
+#include "aidl/android/hardware/radio/DataProfileInfoType.h"
+#include "aidl/android/hardware/radio/DataRegStateResult.h"
+#include "aidl/android/hardware/radio/DataRegStateResultVopsInfo.h"
+#include "aidl/android/hardware/radio/DataRequestReason.h"
+#include "aidl/android/hardware/radio/DataThrottlingAction.h"
+#include "aidl/android/hardware/radio/DeviceStateType.h"
+#include "aidl/android/hardware/radio/Dial.h"
+#include "aidl/android/hardware/radio/Domain.h"
+#include "aidl/android/hardware/radio/EmcIndicator.h"
+#include "aidl/android/hardware/radio/EmergencyCallRouting.h"
+#include "aidl/android/hardware/radio/EmergencyNumber.h"
+#include "aidl/android/hardware/radio/EmergencyNumberSource.h"
+#include "aidl/android/hardware/radio/EmergencyServiceCategory.h"
+#include "aidl/android/hardware/radio/EmfIndicator.h"
+#include "aidl/android/hardware/radio/EpsQos.h"
+#include "aidl/android/hardware/radio/EutranBands.h"
+#include "aidl/android/hardware/radio/EvdoSignalStrength.h"
+#include "aidl/android/hardware/radio/FrequencyRange.h"
+#include "aidl/android/hardware/radio/GeranBands.h"
+#include "aidl/android/hardware/radio/GsmBroadcastSmsConfigInfo.h"
+#include "aidl/android/hardware/radio/GsmSignalStrength.h"
+#include "aidl/android/hardware/radio/GsmSmsMessage.h"
+#include "aidl/android/hardware/radio/HandoverFailureMode.h"
+#include "aidl/android/hardware/radio/HardwareConfig.h"
+#include "aidl/android/hardware/radio/HardwareConfigModem.h"
+#include "aidl/android/hardware/radio/HardwareConfigSim.h"
+#include "aidl/android/hardware/radio/HardwareConfigState.h"
+#include "aidl/android/hardware/radio/HardwareConfigType.h"
+#include "aidl/android/hardware/radio/IccIo.h"
+#include "aidl/android/hardware/radio/IccIoResult.h"
+#include "aidl/android/hardware/radio/ImsSmsMessage.h"
+#include "aidl/android/hardware/radio/ImsiEncryptionInfo.h"
+#include "aidl/android/hardware/radio/IncrementalResultsPeriodicityRange.h"
+#include "aidl/android/hardware/radio/IndicationFilter.h"
+#include "aidl/android/hardware/radio/KeepaliveRequest.h"
+#include "aidl/android/hardware/radio/KeepaliveStatus.h"
+#include "aidl/android/hardware/radio/KeepaliveStatusCode.h"
+#include "aidl/android/hardware/radio/KeepaliveType.h"
+#include "aidl/android/hardware/radio/LastCallFailCause.h"
+#include "aidl/android/hardware/radio/LastCallFailCauseInfo.h"
+#include "aidl/android/hardware/radio/LceDataInfo.h"
+#include "aidl/android/hardware/radio/LceStatus.h"
+#include "aidl/android/hardware/radio/LceStatusInfo.h"
+#include "aidl/android/hardware/radio/LinkAddress.h"
+#include "aidl/android/hardware/radio/LinkCapacityEstimate.h"
+#include "aidl/android/hardware/radio/LteSignalStrength.h"
+#include "aidl/android/hardware/radio/LteVopsInfo.h"
+#include "aidl/android/hardware/radio/MaxSearchTimeRange.h"
+#include "aidl/android/hardware/radio/MaybePort.h"
+#include "aidl/android/hardware/radio/MvnoType.h"
+#include "aidl/android/hardware/radio/NeighboringCell.h"
+#include "aidl/android/hardware/radio/NetworkScanRequest.h"
+#include "aidl/android/hardware/radio/NetworkScanResult.h"
+#include "aidl/android/hardware/radio/NgranBands.h"
+#include "aidl/android/hardware/radio/NrDualConnectivityState.h"
+#include "aidl/android/hardware/radio/NrIndicators.h"
+#include "aidl/android/hardware/radio/NrQos.h"
+#include "aidl/android/hardware/radio/NrSignalStrength.h"
+#include "aidl/android/hardware/radio/NrVopsInfo.h"
+#include "aidl/android/hardware/radio/NvItem.h"
+#include "aidl/android/hardware/radio/NvWriteItem.h"
+#include "aidl/android/hardware/radio/OperatorInfo.h"
+#include "aidl/android/hardware/radio/OperatorStatus.h"
+#include "aidl/android/hardware/radio/OptionalCsgInfo.h"
+#include "aidl/android/hardware/radio/OptionalDnn.h"
+#include "aidl/android/hardware/radio/OptionalOsAppId.h"
+#include "aidl/android/hardware/radio/OptionalPdpProtocolType.h"
+#include "aidl/android/hardware/radio/OptionalSliceInfo.h"
+#include "aidl/android/hardware/radio/OptionalSscMode.h"
+#include "aidl/android/hardware/radio/OptionalTrafficDescriptor.h"
+#include "aidl/android/hardware/radio/OsAppId.h"
+#include "aidl/android/hardware/radio/P2Constant.h"
+#include "aidl/android/hardware/radio/PbReceivedStatus.h"
+#include "aidl/android/hardware/radio/PcoDataInfo.h"
+#include "aidl/android/hardware/radio/PdpProtocolType.h"
+#include "aidl/android/hardware/radio/PersoSubstate.h"
+#include "aidl/android/hardware/radio/PhoneRestrictedState.h"
+#include "aidl/android/hardware/radio/PhonebookCapacity.h"
+#include "aidl/android/hardware/radio/PhonebookRecordInfo.h"
+#include "aidl/android/hardware/radio/PhysicalChannelConfig.h"
+#include "aidl/android/hardware/radio/PhysicalChannelConfigBand.h"
+#include "aidl/android/hardware/radio/PinState.h"
+#include "aidl/android/hardware/radio/PortRange.h"
+#include "aidl/android/hardware/radio/PreferredNetworkType.h"
+#include "aidl/android/hardware/radio/PrlIndicator.h"
+#include "aidl/android/hardware/radio/PublicKeyType.h"
+#include "aidl/android/hardware/radio/Qos.h"
+#include "aidl/android/hardware/radio/QosBandwidth.h"
+#include "aidl/android/hardware/radio/QosFilter.h"
+#include "aidl/android/hardware/radio/QosFilterDirection.h"
+#include "aidl/android/hardware/radio/QosFilterIpsecSpi.h"
+#include "aidl/android/hardware/radio/QosFilterIpv6FlowLabel.h"
+#include "aidl/android/hardware/radio/QosFilterTypeOfService.h"
+#include "aidl/android/hardware/radio/QosFlowIdRange.h"
+#include "aidl/android/hardware/radio/QosPortRange.h"
+#include "aidl/android/hardware/radio/QosProtocol.h"
+#include "aidl/android/hardware/radio/QosSession.h"
+#include "aidl/android/hardware/radio/RadioAccessFamily.h"
+#include "aidl/android/hardware/radio/RadioAccessNetworks.h"
+#include "aidl/android/hardware/radio/RadioAccessSpecifier.h"
+#include "aidl/android/hardware/radio/RadioAccessSpecifierBands.h"
+#include "aidl/android/hardware/radio/RadioBandMode.h"
+#include "aidl/android/hardware/radio/RadioCapability.h"
+#include "aidl/android/hardware/radio/RadioCapabilityPhase.h"
+#include "aidl/android/hardware/radio/RadioCapabilityStatus.h"
+#include "aidl/android/hardware/radio/RadioCdmaSmsConst.h"
+#include "aidl/android/hardware/radio/RadioConst.h"
+#include "aidl/android/hardware/radio/RadioError.h"
+#include "aidl/android/hardware/radio/RadioFrequencyInfo.h"
+#include "aidl/android/hardware/radio/RadioIndicationType.h"
+#include "aidl/android/hardware/radio/RadioResponseInfo.h"
+#include "aidl/android/hardware/radio/RadioResponseInfoModem.h"
+#include "aidl/android/hardware/radio/RadioResponseType.h"
+#include "aidl/android/hardware/radio/RadioState.h"
+#include "aidl/android/hardware/radio/RadioTechnology.h"
+#include "aidl/android/hardware/radio/RadioTechnologyFamily.h"
+#include "aidl/android/hardware/radio/RegState.h"
+#include "aidl/android/hardware/radio/RegStateResult.h"
+#include "aidl/android/hardware/radio/RegStateResultAccessTechnologySpecificInfo.h"
+#include "aidl/android/hardware/radio/RegStateResultAccessTechnologySpecificInfoCdma2000RegistrationInfo.h"
+#include "aidl/android/hardware/radio/RegStateResultAccessTechnologySpecificInfoEutranRegistrationInfo.h"
+#include "aidl/android/hardware/radio/RegistrationFailCause.h"
+#include "aidl/android/hardware/radio/ResetNvType.h"
+#include "aidl/android/hardware/radio/RestrictedState.h"
+#include "aidl/android/hardware/radio/RouteSelectionDescriptor.h"
+#include "aidl/android/hardware/radio/SapApduType.h"
+#include "aidl/android/hardware/radio/SapConnectRsp.h"
+#include "aidl/android/hardware/radio/SapDisconnectType.h"
+#include "aidl/android/hardware/radio/SapResultCode.h"
+#include "aidl/android/hardware/radio/SapStatus.h"
+#include "aidl/android/hardware/radio/SapTransferProtocol.h"
+#include "aidl/android/hardware/radio/ScanIntervalRange.h"
+#include "aidl/android/hardware/radio/ScanStatus.h"
+#include "aidl/android/hardware/radio/ScanType.h"
+#include "aidl/android/hardware/radio/SelectUiccSub.h"
+#include "aidl/android/hardware/radio/SendSmsResult.h"
+#include "aidl/android/hardware/radio/SetupDataCallResult.h"
+#include "aidl/android/hardware/radio/SignalMeasurementType.h"
+#include "aidl/android/hardware/radio/SignalStrength.h"
+#include "aidl/android/hardware/radio/SignalThresholdInfo.h"
+#include "aidl/android/hardware/radio/SimApdu.h"
+#include "aidl/android/hardware/radio/SimLockMultiSimPolicy.h"
+#include "aidl/android/hardware/radio/SimRefreshResult.h"
+#include "aidl/android/hardware/radio/SimRefreshType.h"
+#include "aidl/android/hardware/radio/SliceInfo.h"
+#include "aidl/android/hardware/radio/SliceServiceType.h"
+#include "aidl/android/hardware/radio/SliceStatus.h"
+#include "aidl/android/hardware/radio/SlicingConfig.h"
+#include "aidl/android/hardware/radio/SmsAcknowledgeFailCause.h"
+#include "aidl/android/hardware/radio/SmsWriteArgs.h"
+#include "aidl/android/hardware/radio/SmsWriteArgsStatus.h"
+#include "aidl/android/hardware/radio/SrvccState.h"
+#include "aidl/android/hardware/radio/SsInfoData.h"
+#include "aidl/android/hardware/radio/SsRequestType.h"
+#include "aidl/android/hardware/radio/SsServiceType.h"
+#include "aidl/android/hardware/radio/SsTeleserviceType.h"
+#include "aidl/android/hardware/radio/SscMode.h"
+#include "aidl/android/hardware/radio/StkCcUnsolSsResult.h"
+#include "aidl/android/hardware/radio/SubscriptionType.h"
+#include "aidl/android/hardware/radio/SuppServiceClass.h"
+#include "aidl/android/hardware/radio/SuppSvcNotification.h"
+#include "aidl/android/hardware/radio/TdscdmaSignalStrength.h"
+#include "aidl/android/hardware/radio/TimeStampType.h"
+#include "aidl/android/hardware/radio/TrafficDescriptor.h"
+#include "aidl/android/hardware/radio/TtyMode.h"
+#include "aidl/android/hardware/radio/UiccSubActStatus.h"
+#include "aidl/android/hardware/radio/UrspRule.h"
+#include "aidl/android/hardware/radio/UssdModeType.h"
+#include "aidl/android/hardware/radio/UtranBands.h"
+#include "aidl/android/hardware/radio/UusDcs.h"
+#include "aidl/android/hardware/radio/UusInfo.h"
+#include "aidl/android/hardware/radio/UusType.h"
+#include "aidl/android/hardware/radio/VoiceRegStateResult.h"
+#include "aidl/android/hardware/radio/VopsIndicator.h"
+#include "aidl/android/hardware/radio/WcdmaSignalStrength.h"
+#include "android/hardware/radio/1.0/types.h"
+#include "android/hardware/radio/1.1/types.h"
+#include "android/hardware/radio/1.2/types.h"
+#include "android/hardware/radio/1.3/types.h"
+#include "android/hardware/radio/1.4/types.h"
+#include "android/hardware/radio/1.5/types.h"
+#include "android/hardware/radio/1.6/types.h"
+
+namespace android::h2a {
+
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::IccIo& in,
+ aidl::android::hardware::radio::IccIo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::NeighboringCell& in,
+ aidl::android::hardware::radio::NeighboringCell* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::UusInfo& in,
+ aidl::android::hardware::radio::UusInfo* out);
+__attribute__((warn_unused_result)) bool translate(const ::android::hardware::radio::V1_0::Dial& in,
+ aidl::android::hardware::radio::Dial* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::LastCallFailCauseInfo& in,
+ aidl::android::hardware::radio::LastCallFailCauseInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::GsmSignalStrength& in,
+ aidl::android::hardware::radio::GsmSignalStrength* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaSignalStrength& in,
+ aidl::android::hardware::radio::CdmaSignalStrength* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::EvdoSignalStrength& in,
+ aidl::android::hardware::radio::EvdoSignalStrength* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::SendSmsResult& in,
+ aidl::android::hardware::radio::SendSmsResult* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::IccIoResult& in,
+ aidl::android::hardware::radio::IccIoResult* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CallForwardInfo& in,
+ aidl::android::hardware::radio::CallForwardInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::OperatorInfo& in,
+ aidl::android::hardware::radio::OperatorInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::SmsWriteArgs& in,
+ aidl::android::hardware::radio::SmsWriteArgs* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaSmsAddress& in,
+ aidl::android::hardware::radio::CdmaSmsAddress* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaSmsSubaddress& in,
+ aidl::android::hardware::radio::CdmaSmsSubaddress* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaSmsMessage& in,
+ aidl::android::hardware::radio::CdmaSmsMessage* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaSmsAck& in,
+ aidl::android::hardware::radio::CdmaSmsAck* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaBroadcastSmsConfigInfo& in,
+ aidl::android::hardware::radio::CdmaBroadcastSmsConfigInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaSmsWriteArgs& in,
+ aidl::android::hardware::radio::CdmaSmsWriteArgs* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::GsmBroadcastSmsConfigInfo& in,
+ aidl::android::hardware::radio::GsmBroadcastSmsConfigInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::GsmSmsMessage& in,
+ aidl::android::hardware::radio::GsmSmsMessage* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::ImsSmsMessage& in,
+ aidl::android::hardware::radio::ImsSmsMessage* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::SimApdu& in,
+ aidl::android::hardware::radio::SimApdu* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::NvWriteItem& in,
+ aidl::android::hardware::radio::NvWriteItem* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::SelectUiccSub& in,
+ aidl::android::hardware::radio::SelectUiccSub* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::HardwareConfigModem& in,
+ aidl::android::hardware::radio::HardwareConfigModem* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::HardwareConfigSim& in,
+ aidl::android::hardware::radio::HardwareConfigSim* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::HardwareConfig& in,
+ aidl::android::hardware::radio::HardwareConfig* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::LceStatusInfo& in,
+ aidl::android::hardware::radio::LceStatusInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::LceDataInfo& in,
+ aidl::android::hardware::radio::LceDataInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::ActivityStatsInfo& in,
+ aidl::android::hardware::radio::ActivityStatsInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::Carrier& in,
+ aidl::android::hardware::radio::Carrier* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CarrierRestrictions& in,
+ aidl::android::hardware::radio::CarrierRestrictions* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::SuppSvcNotification& in,
+ aidl::android::hardware::radio::SuppSvcNotification* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::SimRefreshResult& in,
+ aidl::android::hardware::radio::SimRefreshResult* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaSignalInfoRecord& in,
+ aidl::android::hardware::radio::CdmaSignalInfoRecord* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaCallWaiting& in,
+ aidl::android::hardware::radio::CdmaCallWaiting* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaDisplayInfoRecord& in,
+ aidl::android::hardware::radio::CdmaDisplayInfoRecord* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaNumberInfoRecord& in,
+ aidl::android::hardware::radio::CdmaNumberInfoRecord* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaRedirectingNumberInfoRecord& in,
+ aidl::android::hardware::radio::CdmaRedirectingNumberInfoRecord* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaLineControlInfoRecord& in,
+ aidl::android::hardware::radio::CdmaLineControlInfoRecord* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaT53ClirInfoRecord& in,
+ aidl::android::hardware::radio::CdmaT53ClirInfoRecord* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaT53AudioControlInfoRecord& in,
+ aidl::android::hardware::radio::CdmaT53AudioControlInfoRecord* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaInformationRecord& in,
+ aidl::android::hardware::radio::CdmaInformationRecord* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CdmaInformationRecords& in,
+ aidl::android::hardware::radio::CdmaInformationRecords* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::CfData& in,
+ aidl::android::hardware::radio::CfData* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::SsInfoData& in,
+ aidl::android::hardware::radio::SsInfoData* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::StkCcUnsolSsResult& in,
+ aidl::android::hardware::radio::StkCcUnsolSsResult* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_0::PcoDataInfo& in,
+ aidl::android::hardware::radio::PcoDataInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_1::KeepaliveRequest& in,
+ aidl::android::hardware::radio::KeepaliveRequest* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_1::KeepaliveStatus& in,
+ aidl::android::hardware::radio::KeepaliveStatus* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_2::CellIdentityOperatorNames& in,
+ aidl::android::hardware::radio::CellIdentityOperatorNames* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_2::CellIdentityCdma& in,
+ aidl::android::hardware::radio::CellIdentityCdma* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_2::CellInfoCdma& in,
+ aidl::android::hardware::radio::CellInfoCdma* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_2::WcdmaSignalStrength& in,
+ aidl::android::hardware::radio::WcdmaSignalStrength* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_2::TdscdmaSignalStrength& in,
+ aidl::android::hardware::radio::TdscdmaSignalStrength* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_2::VoiceRegStateResult& in,
+ aidl::android::hardware::radio::VoiceRegStateResult* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_3::RadioResponseInfoModem& in,
+ aidl::android::hardware::radio::RadioResponseInfoModem* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_4::EmergencyNumber& in,
+ aidl::android::hardware::radio::EmergencyNumber* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_4::RadioFrequencyInfo& in,
+ aidl::android::hardware::radio::RadioFrequencyInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_4::LteVopsInfo& in,
+ aidl::android::hardware::radio::LteVopsInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_4::NrIndicators& in,
+ aidl::android::hardware::radio::NrIndicators* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_4::DataRegStateResult& in,
+ aidl::android::hardware::radio::DataRegStateResult* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_4::DataRegStateResult::VopsInfo& in,
+ aidl::android::hardware::radio::DataRegStateResultVopsInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_4::CellConfigLte& in,
+ aidl::android::hardware::radio::CellConfigLte* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_4::CellInfo::Info& in,
+ aidl::android::hardware::radio::CellInfoInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_4::RadioCapability& in,
+ aidl::android::hardware::radio::RadioCapability* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_4::CarrierRestrictionsWithPriority& in,
+ aidl::android::hardware::radio::CarrierRestrictionsWithPriority* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::RadioAccessSpecifier& in,
+ aidl::android::hardware::radio::RadioAccessSpecifier* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::RadioAccessSpecifier::Bands& in,
+ aidl::android::hardware::radio::RadioAccessSpecifierBands* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::SignalThresholdInfo& in,
+ aidl::android::hardware::radio::SignalThresholdInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::NetworkScanRequest& in,
+ aidl::android::hardware::radio::NetworkScanRequest* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::DataProfileInfo& in,
+ aidl::android::hardware::radio::DataProfileInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::LinkAddress& in,
+ aidl::android::hardware::radio::LinkAddress* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::ClosedSubscriberGroupInfo& in,
+ aidl::android::hardware::radio::ClosedSubscriberGroupInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::OptionalCsgInfo& in,
+ aidl::android::hardware::radio::OptionalCsgInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::CellIdentityGsm& in,
+ aidl::android::hardware::radio::CellIdentityGsm* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::CellIdentityWcdma& in,
+ aidl::android::hardware::radio::CellIdentityWcdma* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::CellIdentityTdscdma& in,
+ aidl::android::hardware::radio::CellIdentityTdscdma* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::CellIdentityLte& in,
+ aidl::android::hardware::radio::CellIdentityLte* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::CellIdentityNr& in,
+ aidl::android::hardware::radio::CellIdentityNr* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::CellInfoGsm& in,
+ aidl::android::hardware::radio::CellInfoGsm* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::CellInfoWcdma& in,
+ aidl::android::hardware::radio::CellInfoWcdma* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::CellInfoTdscdma& in,
+ aidl::android::hardware::radio::CellInfoTdscdma* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::CellIdentity& in,
+ aidl::android::hardware::radio::CellIdentity* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::BarringInfo& in,
+ aidl::android::hardware::radio::BarringInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::BarringInfo::BarringTypeSpecificInfo::Conditional&
+ in,
+ aidl::android::hardware::radio::BarringInfoBarringTypeSpecificInfoConditional* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::BarringInfo::BarringTypeSpecificInfo& in,
+ aidl::android::hardware::radio::BarringInfoBarringTypeSpecificInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::RegStateResult::AccessTechnologySpecificInfo::
+ Cdma2000RegistrationInfo& in,
+ aidl::android::hardware::radio::
+ RegStateResultAccessTechnologySpecificInfoCdma2000RegistrationInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::RegStateResult::AccessTechnologySpecificInfo::
+ EutranRegistrationInfo& in,
+ aidl::android::hardware::radio::
+ RegStateResultAccessTechnologySpecificInfoEutranRegistrationInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::AppStatus& in,
+ aidl::android::hardware::radio::AppStatus* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_5::CardStatus& in,
+ aidl::android::hardware::radio::CardStatus* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::QosBandwidth& in,
+ aidl::android::hardware::radio::QosBandwidth* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::EpsQos& in,
+ aidl::android::hardware::radio::EpsQos* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::NrQos& in,
+ aidl::android::hardware::radio::NrQos* out);
+__attribute__((warn_unused_result)) bool translate(const ::android::hardware::radio::V1_6::Qos& in,
+ aidl::android::hardware::radio::Qos* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::RadioResponseInfo& in,
+ aidl::android::hardware::radio::RadioResponseInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::PortRange& in,
+ aidl::android::hardware::radio::PortRange* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::MaybePort& in,
+ aidl::android::hardware::radio::MaybePort* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::QosFilter& in,
+ aidl::android::hardware::radio::QosFilter* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::QosFilter::TypeOfService& in,
+ aidl::android::hardware::radio::QosFilterTypeOfService* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::QosFilter::Ipv6FlowLabel& in,
+ aidl::android::hardware::radio::QosFilterIpv6FlowLabel* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::QosFilter::IpsecSpi& in,
+ aidl::android::hardware::radio::QosFilterIpsecSpi* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::QosSession& in,
+ aidl::android::hardware::radio::QosSession* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::SetupDataCallResult& in,
+ aidl::android::hardware::radio::SetupDataCallResult* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::LinkCapacityEstimate& in,
+ aidl::android::hardware::radio::LinkCapacityEstimate* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::NrVopsInfo& in,
+ aidl::android::hardware::radio::NrVopsInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::LteSignalStrength& in,
+ aidl::android::hardware::radio::LteSignalStrength* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::NrSignalStrength& in,
+ aidl::android::hardware::radio::NrSignalStrength* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::SignalStrength& in,
+ aidl::android::hardware::radio::SignalStrength* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::CellInfoLte& in,
+ aidl::android::hardware::radio::CellInfoLte* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::CellInfoNr& in,
+ aidl::android::hardware::radio::CellInfoNr* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::CellInfo& in,
+ aidl::android::hardware::radio::CellInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::CellInfo::CellInfoRatSpecificInfo& in,
+ aidl::android::hardware::radio::CellInfoCellInfoRatSpecificInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::NetworkScanResult& in,
+ aidl::android::hardware::radio::NetworkScanResult* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::RegStateResult& in,
+ aidl::android::hardware::radio::RegStateResult* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::RegStateResult::AccessTechnologySpecificInfo& in,
+ aidl::android::hardware::radio::RegStateResultAccessTechnologySpecificInfo* out);
+__attribute__((warn_unused_result)) bool translate(const ::android::hardware::radio::V1_6::Call& in,
+ aidl::android::hardware::radio::Call* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::PhysicalChannelConfig& in,
+ aidl::android::hardware::radio::PhysicalChannelConfig* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::PhysicalChannelConfig::Band& in,
+ aidl::android::hardware::radio::PhysicalChannelConfigBand* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::OptionalSliceInfo& in,
+ aidl::android::hardware::radio::OptionalSliceInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::SliceInfo& in,
+ aidl::android::hardware::radio::SliceInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::OptionalDnn& in,
+ aidl::android::hardware::radio::OptionalDnn* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::OptionalOsAppId& in,
+ aidl::android::hardware::radio::OptionalOsAppId* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::OptionalTrafficDescriptor& in,
+ aidl::android::hardware::radio::OptionalTrafficDescriptor* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::TrafficDescriptor& in,
+ aidl::android::hardware::radio::TrafficDescriptor* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::OsAppId& in,
+ aidl::android::hardware::radio::OsAppId* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::SlicingConfig& in,
+ aidl::android::hardware::radio::SlicingConfig* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::UrspRule& in,
+ aidl::android::hardware::radio::UrspRule* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::RouteSelectionDescriptor& in,
+ aidl::android::hardware::radio::RouteSelectionDescriptor* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::OptionalPdpProtocolType& in,
+ aidl::android::hardware::radio::OptionalPdpProtocolType* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::OptionalSscMode& in,
+ aidl::android::hardware::radio::OptionalSscMode* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::ImsiEncryptionInfo& in,
+ aidl::android::hardware::radio::ImsiEncryptionInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::PhonebookRecordInfo& in,
+ aidl::android::hardware::radio::PhonebookRecordInfo* out);
+__attribute__((warn_unused_result)) bool translate(
+ const ::android::hardware::radio::V1_6::PhonebookCapacity& in,
+ aidl::android::hardware::radio::PhonebookCapacity* out);
+
+} // namespace android::h2a