Merge "audiohal: Re-implement effect process using FMQ and IMemory"
diff --git a/camera/device/3.2/default/CameraDeviceSession.cpp b/camera/device/3.2/default/CameraDeviceSession.cpp
index de61d83..201a3b4 100644
--- a/camera/device/3.2/default/CameraDeviceSession.cpp
+++ b/camera/device/3.2/default/CameraDeviceSession.cpp
@@ -97,6 +97,9 @@
 //TODO(b/34110242): make this hidl transport agnostic
 #ifdef BINDERIZED
             fd = dup(handle->data[0]);
+            // TODO(b/34169301)
+            // Camera service expect FD be closed by HAL process (in passthrough mode)
+            // close(handle->data[0]);
 #else
             fd = handle->data[0];
 #endif
@@ -695,14 +698,16 @@
         if (hasInputBuf) {
             int streamId = static_cast<Camera3Stream*>(hal_result->input_buffer->stream)->mId;
             auto key = std::make_pair(streamId, frameNumber);
-            sHandleImporter.closeFence(d->mInflightBuffers[key].acquire_fence);
+            // TODO (b/34169301): currently HAL closed the fence
+            //sHandleImporter.closeFence(d->mInflightBuffers[key].acquire_fence);
             d->mInflightBuffers.erase(key);
         }
 
         for (size_t i = 0; i < numOutputBufs; i++) {
             int streamId = static_cast<Camera3Stream*>(hal_result->output_buffers[i].stream)->mId;
             auto key = std::make_pair(streamId, frameNumber);
-            sHandleImporter.closeFence(d->mInflightBuffers[key].acquire_fence);
+            // TODO (b/34169301): currently HAL closed the fence
+            //sHandleImporter.closeFence(d->mInflightBuffers[key].acquire_fence);
             d->mInflightBuffers.erase(key);
         }
 
diff --git a/contexthub/1.0/types.hal b/contexthub/1.0/types.hal
index 043bb39..c8ea623 100644
--- a/contexthub/1.0/types.hal
+++ b/contexthub/1.0/types.hal
@@ -20,12 +20,11 @@
     OK,                  // Success
     UNKNOWN_FAILURE,     // Failure, unknown reason
     BAD_PARAMS,          // Parameters not sane
-    NOT_INIT,            // not initialized
-    TRANSACTION_FAILED,  // transaction failed
+    NOT_INIT,            // Not initialized
+    TRANSACTION_FAILED,  // Transaction failed
     TRANSACTION_PENDING, // Pending transaction, cannot accept a new request
 };
 
-
 enum NanoAppFlags : uint32_t {
     SIGNED = (1<<0),   // Signed nanoapp
     ENCRYPTED = (1<<1),// Encrypted nanoapp
@@ -34,11 +33,12 @@
 struct NanoAppBinary {
     uint32_t headerVersion;    // 0x1 for this version
     uint32_t magic;            // "NANO"
-    uint64_t appId;            // App Id contains vendor id
+    uint64_t appId;            // App ID (contains vendor ID in most significant
+                               // 5 bytes)
     uint32_t appVersion;       // Version of the app
-    uint32_t flags;            // mask of NanoAppFlags
-    uint64_t hwHubType;        // which hub type is this compiled for
-                               // a unique UUID for each h/w + toolchain
+    uint32_t flags;            // Mask of NanoAppFlags
+    uint64_t hwHubType;        // Which hub type is this app is compiled for. A
+                               // unique ID for each h/w + toolchain
                                // combination.
     vec<uint8_t> customBinary; // start of custom binary data
 };
@@ -82,38 +82,38 @@
                                  // definition may be different from say the
                                  // number advertised in the sensors HAL
                                  // which allows for batching in a hub.
-    uint32_t fifoMaxCount;       // maximum number of batchable events.
-    uint64_t minDelayMs;         // in milliseconds, corresponding to highest
+    uint32_t fifoMaxCount;       // Maximum number of batchable events.
+    uint64_t minDelayMs;         // In milliseconds, corresponding to highest
                                  // sampling freq.
-    uint64_t maxDelayMs;         // in milliseconds, corresponds to minimum
+    uint64_t maxDelayMs;         // In milliseconds, corresponds to minimum
                                  // sampling frequency
     float peakPowerMw;           // At max frequency & no batching, power
                                  // in milliwatts
 };
 
 struct ContextHub {
-    string name;                // descriptive name eg: "Awesome Hub #1"
-    string vendor;              // hub hardware vendor eg: "Qualcomm"
-    string toolchain;           // toolchain to make binaries eg: "gcc ARM"
+    string name;                // Descriptive name eg: "Awesome Hub #1"
+    string vendor;              // Hub hardware vendor eg: "Qualcomm"
+    string toolchain;           // Toolchain to make binaries eg: "gcc ARM"
     uint32_t platformVersion;   // Version of the hardware : eg 0x20
     uint32_t toolchainVersion;  // Version of the toolchain : eg: 0x484
-    uint32_t hubId;             // a device unique id for this hub
+    uint32_t hubId;             // A device unique ID for this hub
 
     float peakMips;             // Peak MIPS platform can deliver
-    float stoppedPowerDrawMw;   // if stopped, retention power, milliwatts
-    float sleepPowerDrawMw;     // if sleeping, retention power, milliwatts
-    float peakPowerDrawMw;      // for a busy CPUm power in milliwatts
+    float stoppedPowerDrawMw;   // If stopped, retention power, milliwatts
+    float sleepPowerDrawMw;     // If sleeping, retention power, milliwatts
+    float peakPowerDrawMw;      // For a busy CPU, power in milliwatts
 
-    vec<PhysicalSensor> connectedSensors; // array of connected sensors
+    vec<PhysicalSensor> connectedSensors; // Array of connected sensors
 
     uint32_t maxSupportedMsgLen;// This is the maximum size of the message that can
                                 // be sent to the hub in one chunk (in bytes)
 };
 
 struct ContextHubMsg {
-    uint64_t appName; // intended recipient
-    uint32_t msgType; // identifier for message
-    vec<uint8_t> msg; // message body
+    uint64_t appName; // Intended recipient (appId)
+    uint32_t msgType; // Identifier for message
+    vec<uint8_t> msg; // Message body
 };
 
 enum HubMemoryType : uint32_t {
@@ -129,24 +129,26 @@
 };
 
 struct MemRange {
-    uint32_t totalBytes; // total capacity in bytes
-    uint32_t freeBytes;  // free capacity in bytes
-    HubMemoryType type;  // type of memory, see HubMemoryType
-    uint32_t flags;      // mask of HubMemoryFlag
+    uint32_t totalBytes; // Total capacity in bytes
+    uint32_t freeBytes;  // Free capacity in bytes
+    HubMemoryType type;  // Type of memory, see HubMemoryType
+    uint32_t flags;      // Mask of HubMemoryFlag
 };
 
 enum AsyncEventType : uint32_t {
-    RESTARTED = 1, // Hub restarted unexpectedly
+    RESTARTED = 1,   // Hub restarted unexpectedly
 };
 
 enum TransactionResult : int32_t {
-    SUCCESS,      // successful completion of transaction
-    FAILURE,      // failed transaction
+    SUCCESS,      // Successful completion of transaction
+    FAILURE,      // Failed transaction
 };
 
 struct HubAppInfo {
     uint64_t appId;         // Identifier of the app
-    uint32_t version;       // version of the app
+    uint32_t version;       // Version of the app
     vec<MemRange> memUsage; // Memory used by this app
+    bool enabled;           // true if the app is currently enabled and running,
+                            // or false if in the loaded but disabled state
 };
 
diff --git a/gnss/1.0/Android.bp b/gnss/1.0/Android.bp
index a69d30b..10ab932 100644
--- a/gnss/1.0/Android.bp
+++ b/gnss/1.0/Android.bp
@@ -11,6 +11,8 @@
         "IAGnssRil.hal",
         "IAGnssRilCallback.hal",
         "IGnss.hal",
+        "IGnssBatching.hal",
+        "IGnssBatchingCallback.hal",
         "IGnssCallback.hal",
         "IGnssConfiguration.hal",
         "IGnssDebug.hal",
@@ -32,6 +34,8 @@
         "android/hardware/gnss/1.0/AGnssRilAll.cpp",
         "android/hardware/gnss/1.0/AGnssRilCallbackAll.cpp",
         "android/hardware/gnss/1.0/GnssAll.cpp",
+        "android/hardware/gnss/1.0/GnssBatchingAll.cpp",
+        "android/hardware/gnss/1.0/GnssBatchingCallbackAll.cpp",
         "android/hardware/gnss/1.0/GnssCallbackAll.cpp",
         "android/hardware/gnss/1.0/GnssConfigurationAll.cpp",
         "android/hardware/gnss/1.0/GnssDebugAll.cpp",
@@ -59,6 +63,8 @@
         "IAGnssRil.hal",
         "IAGnssRilCallback.hal",
         "IGnss.hal",
+        "IGnssBatching.hal",
+        "IGnssBatchingCallback.hal",
         "IGnssCallback.hal",
         "IGnssConfiguration.hal",
         "IGnssDebug.hal",
@@ -100,6 +106,16 @@
         "android/hardware/gnss/1.0/BnGnss.h",
         "android/hardware/gnss/1.0/BpGnss.h",
         "android/hardware/gnss/1.0/BsGnss.h",
+        "android/hardware/gnss/1.0/IGnssBatching.h",
+        "android/hardware/gnss/1.0/IHwGnssBatching.h",
+        "android/hardware/gnss/1.0/BnGnssBatching.h",
+        "android/hardware/gnss/1.0/BpGnssBatching.h",
+        "android/hardware/gnss/1.0/BsGnssBatching.h",
+        "android/hardware/gnss/1.0/IGnssBatchingCallback.h",
+        "android/hardware/gnss/1.0/IHwGnssBatchingCallback.h",
+        "android/hardware/gnss/1.0/BnGnssBatchingCallback.h",
+        "android/hardware/gnss/1.0/BpGnssBatchingCallback.h",
+        "android/hardware/gnss/1.0/BsGnssBatchingCallback.h",
         "android/hardware/gnss/1.0/IGnssCallback.h",
         "android/hardware/gnss/1.0/IHwGnssCallback.h",
         "android/hardware/gnss/1.0/BnGnssCallback.h",
diff --git a/gnss/1.0/Android.mk b/gnss/1.0/Android.mk
index d2c7fcf..d72280f 100644
--- a/gnss/1.0/Android.mk
+++ b/gnss/1.0/Android.mk
@@ -164,6 +164,8 @@
 $(GEN): $(LOCAL_PATH)/IAGnss.hal
 $(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/IAGnssRil.hal
 $(GEN): $(LOCAL_PATH)/IAGnssRil.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/IGnssBatching.hal
+$(GEN): $(LOCAL_PATH)/IGnssBatching.hal
 $(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/IGnssCallback.hal
 $(GEN): $(LOCAL_PATH)/IGnssCallback.hal
 $(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/IGnssConfiguration.hal
@@ -195,6 +197,48 @@
 LOCAL_GENERATED_SOURCES += $(GEN)
 
 #
+# Build IGnssBatching.hal
+#
+GEN := $(intermediates)/android/hardware/gnss/V1_0/IGnssBatching.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IGnssBatching.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/IGnssBatchingCallback.hal
+$(GEN): $(LOCAL_PATH)/IGnssBatchingCallback.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+        -Ljava \
+        -randroid.hardware:hardware/interfaces \
+        -randroid.hidl:system/libhidl/transport \
+        android.hardware.gnss@1.0::IGnssBatching
+
+$(GEN): $(LOCAL_PATH)/IGnssBatching.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build IGnssBatchingCallback.hal
+#
+GEN := $(intermediates)/android/hardware/gnss/V1_0/IGnssBatchingCallback.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IGnssBatchingCallback.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
+$(GEN): $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+        -Ljava \
+        -randroid.hardware:hardware/interfaces \
+        -randroid.hidl:system/libhidl/transport \
+        android.hardware.gnss@1.0::IGnssBatchingCallback
+
+$(GEN): $(LOCAL_PATH)/IGnssBatchingCallback.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
 # Build IGnssCallback.hal
 #
 GEN := $(intermediates)/android/hardware/gnss/V1_0/IGnssCallback.java
@@ -623,6 +667,8 @@
 $(GEN): $(LOCAL_PATH)/IAGnss.hal
 $(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/IAGnssRil.hal
 $(GEN): $(LOCAL_PATH)/IAGnssRil.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/IGnssBatching.hal
+$(GEN): $(LOCAL_PATH)/IGnssBatching.hal
 $(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/IGnssCallback.hal
 $(GEN): $(LOCAL_PATH)/IGnssCallback.hal
 $(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/IGnssConfiguration.hal
@@ -654,6 +700,48 @@
 LOCAL_GENERATED_SOURCES += $(GEN)
 
 #
+# Build IGnssBatching.hal
+#
+GEN := $(intermediates)/android/hardware/gnss/V1_0/IGnssBatching.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IGnssBatching.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/IGnssBatchingCallback.hal
+$(GEN): $(LOCAL_PATH)/IGnssBatchingCallback.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+        -Ljava \
+        -randroid.hardware:hardware/interfaces \
+        -randroid.hidl:system/libhidl/transport \
+        android.hardware.gnss@1.0::IGnssBatching
+
+$(GEN): $(LOCAL_PATH)/IGnssBatching.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build IGnssBatchingCallback.hal
+#
+GEN := $(intermediates)/android/hardware/gnss/V1_0/IGnssBatchingCallback.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IGnssBatchingCallback.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
+$(GEN): $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+        -Ljava \
+        -randroid.hardware:hardware/interfaces \
+        -randroid.hidl:system/libhidl/transport \
+        android.hardware.gnss@1.0::IGnssBatchingCallback
+
+$(GEN): $(LOCAL_PATH)/IGnssBatchingCallback.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
 # Build IGnssCallback.hal
 #
 GEN := $(intermediates)/android/hardware/gnss/V1_0/IGnssCallback.java
diff --git a/gnss/1.0/IGnss.hal b/gnss/1.0/IGnss.hal
index cc19ef8..24a5371 100644
--- a/gnss/1.0/IGnss.hal
+++ b/gnss/1.0/IGnss.hal
@@ -18,6 +18,7 @@
 
 import IAGnss;
 import IAGnssRil;
+import IGnssBatching;
 import IGnssCallback;
 import IGnssConfiguration;
 import IGnssDebug;
@@ -81,14 +82,19 @@
     setCallback(IGnssCallback callback) generates (bool success);
 
     /*
-     * Starts navigating.
+     * Starts a location output stream using the IGnssCallback
+     * gnssLocationCb(), following the settings from the most recent call to
+     * setPositionMode().
+     *
+     * This output must operate independently of any GNSS location batching
+     * operations, see the IGnssBatching.hal for details.
      *
      * @return success Returns true on success.
      */
     start() generates (bool success);
 
     /*
-     * Stops navigating.
+     * Stops the location output stream.
      *
      * @return success Returns true on success.
      */
@@ -218,4 +224,11 @@
      * @return debugIface Handle to the IGnssDebug interface.
      */
     getExtensionGnssDebug() generates (IGnssDebug debugIface);
+
+    /*
+     * This method returns the IGnssBatching interface.
+     *
+     * @return batchingIface Handle to the IGnssBatching interface.
+     */
+    getExtensionGnssBatching() generates (IGnssBatching batchingIface);
 };
diff --git a/gnss/1.0/IGnssBatching.hal b/gnss/1.0/IGnssBatching.hal
new file mode 100644
index 0000000..4f0695d
--- /dev/null
+++ b/gnss/1.0/IGnssBatching.hal
@@ -0,0 +1,144 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.gnss@1.0;
+
+import IGnssBatchingCallback;
+
+/*
+ * Extended interface for GNSS Batching support.
+ *
+ * If this interface is supported, this batching request must be able to run in
+ * parallel with, or without, non-batched location requested by the
+ * IGnss start() & stop() - i.e. both requests must be handled independently,
+ * and not interfere with each other.
+ *
+ * For example, if a 1Hz continuous output is underway on the IGnssCallback,
+ * due to an IGnss start() operation,
+ * and then a IGnssBatching start() is called for a location every 10
+ * seconds, the newly added batching request must not disrupt the 1Hz
+ * continuous location output on the IGnssCallback.
+ *
+ * As with GNSS Location outputs, source of location must be GNSS satellite
+ * measurements, optionally using interial and baro sensors to improve
+ * relative motion filtering. No additional absolute positioning information,
+ * such as WiFi derived location, may be mixed with the GNSS information.
+ */
+
+interface IGnssBatching {
+    /*
+     * Enum which holds the bit masks for batching control.
+     */
+    enum Flag : uint8_t {
+        /*
+         * If this flag is set, the hardware implementation
+         * must wake up the application processor when the FIFO is full, and
+         * call IGnssBatchingCallback to return the locations.
+         *
+         * If the flag is not set, the hardware implementation must drop
+         * the oldest data when the FIFO is full.
+         */
+        WAKEUP_ON_FIFO_FULL = 0x01
+    };
+
+    struct Options {
+        /*
+         * Time interval between samples in the location batch, in nano
+         * seconds.
+         */
+        int64_t periodNanos;
+
+        /*
+         * Flags controlling how batching should behave.
+         */
+        bitfield<Flag> flags;
+    };
+
+    /*
+     * Opens the interface and provides the callback routines
+     * to the implementation of this interface.
+     *
+     * @param callback Callback interface for IGnssBatching.
+     *
+     * @return success Returns true on success.
+     */
+    init(IGnssBatchingCallback callback) generates (bool success);
+
+    /*
+     * Return the batch size (in number of GnssLocation objects)
+     * available in this hardware implementation.
+     *
+     * If the available size is variable, for example, based on other operations
+     * consuming memory, this is the minimum size guaranteed to be available
+     * for batching operations.
+     *
+     * This may, for example, be used by the upper layer, to decide on the
+     * batching interval and whether the AP should be woken up or not.
+     *
+     * @return batchSize number of location objects supported per batch
+     */
+    getBatchSize() generates (uint16_t batchSize);
+
+    /*
+     * Start batching locations. This API is primarily used when the AP is
+     * asleep and the device can batch locations in the hardware.
+     *
+     * IGnssBatchingCallback is used to return the locations.
+     *
+     * When the buffer is full and WAKEUP_ON_FIFO_FULL is used,
+     * IGnssBatchingCallback must be called to return the locations.
+     *
+     * When the buffer is full and WAKEUP_ON_FIFO_FULL is not set,
+     * the oldest location object is dropped. In this case the AP must not be
+     * woken up. The AP would then generally be responsible for using
+     * flushBatchedLocation to explicitly ask for the location as needed,
+     * to avoid it being dropped.
+     *
+     * @param options See struct Options definition.
+     *
+     * @return success Returns true on success.
+     */
+    start(Options options) generates (bool success);
+
+    /**
+     * Retrieve all batched locations currently stored.
+     *
+     * IGnssBatchingCallback is used to return the location.
+     *
+     * IGnssBatchingCallback must be called in response, even if there are
+     * no locations to flush (in which case the Location vector must be empty).
+     *
+     * Subsequent calls to flushBatchedLocation
+     * must not return any of the locations returned in this call.
+     */
+    flush();
+
+    /**
+     * Stop batching.
+     *
+     * @return success Returns true on success.
+     */
+    stop() generates (bool success);
+
+    /**
+     * Closes the interface. If any batch operations are in progress,
+     * they should be stopped.
+     *
+     * init() may be called again, after this, if the interface is to be restored
+     */
+    cleanup();
+
+};
diff --git a/gnss/1.0/IGnssBatchingCallback.hal b/gnss/1.0/IGnssBatchingCallback.hal
new file mode 100644
index 0000000..a8f4b88
--- /dev/null
+++ b/gnss/1.0/IGnssBatchingCallback.hal
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.gnss@1.0;
+
+/* The callback interface to report measurements from the HAL. */
+interface IGnssBatchingCallback {
+    /*
+     * Called when a batch of locations is output, by various means, including
+     * a flush request, as well as the buffer becoming full (if appropriate option
+     * is set.)
+     *
+     * All locations returned by this callback must be cleared from the hardware
+     * buffer, such the sequential calls of this callback do not return any
+     * redundant locations.  (Same lat/lon, at a new time, is acceptable.)
+     *
+     * @param locations GNSS Location information from HAL.
+     */
+    gnssLocationBatchCb(vec<GnssLocation> locations);
+};
diff --git a/gnss/1.0/default/Android.mk b/gnss/1.0/default/Android.mk
index 6289491..a6f73f2 100644
--- a/gnss/1.0/default/Android.mk
+++ b/gnss/1.0/default/Android.mk
@@ -8,6 +8,7 @@
     AGnss.cpp \
     AGnssRil.cpp \
     Gnss.cpp \
+    GnssBatching.cpp \
     GnssDebug.cpp \
     GnssGeofencing.cpp \
     GnssMeasurement.cpp \
diff --git a/gnss/1.0/default/Gnss.cpp b/gnss/1.0/default/Gnss.cpp
index 5e6e65d..28a1950 100644
--- a/gnss/1.0/default/Gnss.cpp
+++ b/gnss/1.0/default/Gnss.cpp
@@ -534,6 +534,23 @@
     return mGnssDebug;
 }
 
+Return<sp<IGnssBatching>> Gnss::getExtensionGnssBatching()  {
+    if (mGnssIface == nullptr) {
+        ALOGE("%s: Gnss interface is unavailable", __func__);
+    } else {
+        // TODO(b/34133439): actually get an flpLocationIface
+        const FlpLocationInterface* flpLocationIface = nullptr;
+
+        if (flpLocationIface == nullptr) {
+            ALOGE("%s: GnssBatching interface is not implemented by HAL", __func__);
+        } else {
+            mGnssBatching = new GnssBatching(flpLocationIface);
+        }
+    }
+
+    return mGnssBatching;
+}
+
 IGnss* HIDL_FETCH_IGnss(const char* hal) {
     hw_module_t* module;
     IGnss* iface = nullptr;
diff --git a/gnss/1.0/default/Gnss.h b/gnss/1.0/default/Gnss.h
index e12ac12..36947c1 100644
--- a/gnss/1.0/default/Gnss.h
+++ b/gnss/1.0/default/Gnss.h
@@ -19,6 +19,7 @@
 
 #include <AGnss.h>
 #include <AGnssRil.h>
+#include <GnssBatching.h>
 #include <GnssConfiguration.h>
 #include <GnssDebug.h>
 #include <GnssGeofencing.h>
@@ -29,6 +30,7 @@
 
 #include <ThreadCreationWrapper.h>
 #include <android/hardware/gnss/1.0/IGnss.h>
+#include <hardware/fused_location.h>
 #include <hardware/gps.h>
 #include <hidl/Status.h>
 
@@ -51,6 +53,7 @@
  * IGnssCallback interface to be passed into the conventional implementation of the GNSS HAL.
  */
 struct Gnss : public IGnss {
+    // TODO: Add flp_device_t, either in ctor, or later attach?
     Gnss(gps_device_t* gnss_device);
     ~Gnss();
 
@@ -83,6 +86,7 @@
     Return<sp<IGnssXtra>> getExtensionXtra() override;
     Return<sp<IGnssConfiguration>> getExtensionGnssConfiguration() override;
     Return<sp<IGnssDebug>> getExtensionGnssDebug() override;
+    Return<sp<IGnssBatching>> getExtensionGnssBatching() override;
 
     /*
      * Callback methods to be passed into the conventional GNSS HAL by the default
@@ -119,6 +123,7 @@
     sp<GnssNavigationMessage> mGnssNavigationMessage = nullptr;
     sp<GnssDebug> mGnssDebug = nullptr;
     sp<GnssConfiguration> mGnssConfig = nullptr;
+    sp<GnssBatching> mGnssBatching = nullptr;
     const GpsInterface* mGnssIface = nullptr;
     static sp<IGnssCallback> sGnssCbIface;
     static std::vector<std::unique_ptr<ThreadFuncArgs>> sThreadFuncArgsList;
diff --git a/gnss/1.0/default/GnssBatching.cpp b/gnss/1.0/default/GnssBatching.cpp
new file mode 100644
index 0000000..404b5da
--- /dev/null
+++ b/gnss/1.0/default/GnssBatching.cpp
@@ -0,0 +1,48 @@
+#include "GnssBatching.h"
+
+namespace android {
+namespace hardware {
+namespace gnss {
+namespace V1_0 {
+namespace implementation {
+
+GnssBatching::GnssBatching(const FlpLocationInterface* flpLocationIface) :
+    mFlpLocationIface(flpLocationIface) {}
+
+
+// Methods from ::android::hardware::gnss::V1_0::IGnssBatching follow.
+Return<bool> GnssBatching::init(const sp<IGnssBatchingCallback>& callback) {
+    // TODO(b/34133439) implement
+    return false;
+}
+
+Return<uint16_t> GnssBatching::getBatchSize() {
+    // TODO(b/34133439) implement
+    return 0;
+}
+
+Return<bool> GnssBatching::start(const IGnssBatching::Options& options) {
+    // TODO(b/34133439) implement
+    return false;
+}
+
+Return<void> GnssBatching::flush() {
+    // TODO(b/34133439) implement
+    return Void();
+}
+
+Return<bool> GnssBatching::stop() {
+    // TODO(b/34133439) implement
+    return false;
+}
+
+Return<void> GnssBatching::cleanup() {
+    // TODO(b/34133439) implement
+    return Void();
+}
+
+}  // namespace implementation
+}  // namespace V1_0
+}  // namespace gnss
+}  // namespace hardware
+}  // namespace android
diff --git a/gnss/1.0/default/GnssBatching.h b/gnss/1.0/default/GnssBatching.h
new file mode 100644
index 0000000..ac3aa99
--- /dev/null
+++ b/gnss/1.0/default/GnssBatching.h
@@ -0,0 +1,50 @@
+#ifndef ANDROID_HARDWARE_GNSS_V1_0_GNSSBATCHING_H
+#define ANDROID_HARDWARE_GNSS_V1_0_GNSSBATCHING_H
+
+#include <android/hardware/gnss/1.0/IGnssBatching.h>
+#include <hardware/fused_location.h>
+#include <hidl/MQDescriptor.h>
+#include <hidl/Status.h>
+
+
+namespace android {
+namespace hardware {
+namespace gnss {
+namespace V1_0 {
+namespace implementation {
+
+using ::android::hardware::gnss::V1_0::IGnssBatching;
+using ::android::hardware::gnss::V1_0::IGnssBatchingCallback;
+using ::android::hidl::base::V1_0::IBase;
+using ::android::hardware::hidl_array;
+using ::android::hardware::hidl_memory;
+using ::android::hardware::hidl_string;
+using ::android::hardware::hidl_vec;
+using ::android::hardware::Return;
+using ::android::hardware::Void;
+using ::android::sp;
+
+struct GnssBatching : public IGnssBatching {
+    GnssBatching(const FlpLocationInterface* flpLocationIface);
+
+    // Methods from ::android::hardware::gnss::V1_0::IGnssBatching follow.
+    Return<bool> init(const sp<IGnssBatchingCallback>& callback) override;
+    Return<uint16_t> getBatchSize() override;
+    Return<bool> start(const IGnssBatching::Options& options ) override;
+    Return<void> flush() override;
+    Return<bool> stop() override;
+    Return<void> cleanup() override;
+
+ private:
+    const FlpLocationInterface* mFlpLocationIface = nullptr;
+};
+
+extern "C" IGnssBatching* HIDL_FETCH_IGnssBatching(const char* name);
+
+}  // namespace implementation
+}  // namespace V1_0
+}  // namespace gnss
+}  // namespace hardware
+}  // namespace android
+
+#endif  // ANDROID_HARDWARE_GNSS_V1_0_GNSSBATCHING_H
diff --git a/graphics/common/1.0/types.hal b/graphics/common/1.0/types.hal
index e20fedc..ebdba77 100644
--- a/graphics/common/1.0/types.hal
+++ b/graphics/common/1.0/types.hal
@@ -928,10 +928,6 @@
      * A pixel value of 1.0, 1.0, 1.0 corresponds to sRGB white (D65) at 80 nits.
      * Values beyond the range [0.0 - 1.0] would correspond to other colors
      * spaces and/or HDR content.
-     *
-     * TODO (courtneygo): Will we actually use this? We intend to use FP16
-     * storage for data using scRGB so we can do all work in linear space
-     * and don't have to worry as much about limited precision.
      */
     V0_SCRGB = STANDARD_BT709 | TRANSFER_SRGB | RANGE_EXTENDED,
 
@@ -1015,6 +1011,24 @@
 
 
     /*
+     * Display P3
+     *
+     * Display P3 uses same primaries and white-point as DCI-P3
+     * linear transfer function makes this the same as DCI_P3_LINEAR.
+     */
+    DISPLAY_P3_LINEAR = STANDARD_DCI_P3 | TRANSFER_LINEAR | RANGE_FULL,
+
+
+    /*
+     * Display P3
+     *
+     * Use same primaries and white-point as DCI-P3
+     * but sRGB transfer function.
+     */
+    DISPLAY_P3 = STANDARD_DCI_P3 | TRANSFER_SRGB | RANGE_FULL,
+
+
+    /*
      * Adobe RGB
      *
      * Use full range, gamma 2.2 transfer and Adobe RGB primaries
diff --git a/graphics/mapper/2.0/vts/functional/Android.bp b/graphics/mapper/2.0/vts/functional/Android.bp
index 53e6d16..27ea350 100644
--- a/graphics/mapper/2.0/vts/functional/Android.bp
+++ b/graphics/mapper/2.0/vts/functional/Android.bp
@@ -30,6 +30,7 @@
         "libutils",
         "android.hardware.graphics.allocator@2.0",
         "android.hardware.graphics.mapper@2.0",
+        "android.hardware.graphics.common@1.0",
     ],
     static_libs: ["libgtest"],
     cflags: [
diff --git a/radio/1.0/Android.bp b/radio/1.0/Android.bp
index 7f58452..a02a632 100644
--- a/radio/1.0/Android.bp
+++ b/radio/1.0/Android.bp
@@ -86,3 +86,302 @@
         "android.hidl.base@1.0",
     ],
 }
+
+genrule {
+    name: "android.hardware.radio.vts.driver@1.0_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/radio/1.0/ $(genDir)/android/hardware/radio/1.0/",
+    srcs: [
+        "types.hal",
+        "IRadio.hal",
+        "IRadioIndication.hal",
+        "IRadioResponse.hal",
+        "ISap.hal",
+        "ISapCallback.hal",
+    ],
+    out: [
+        "android/hardware/radio/1.0/types.vts.cpp",
+        "android/hardware/radio/1.0/Radio.vts.cpp",
+        "android/hardware/radio/1.0/RadioIndication.vts.cpp",
+        "android/hardware/radio/1.0/RadioResponse.vts.cpp",
+        "android/hardware/radio/1.0/Sap.vts.cpp",
+        "android/hardware/radio/1.0/SapCallback.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio.vts.driver@1.0_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/radio/1.0/ $(genDir)/android/hardware/radio/1.0/",
+    srcs: [
+        "types.hal",
+        "IRadio.hal",
+        "IRadioIndication.hal",
+        "IRadioResponse.hal",
+        "ISap.hal",
+        "ISapCallback.hal",
+    ],
+    out: [
+        "android/hardware/radio/1.0/types.vts.h",
+        "android/hardware/radio/1.0/Radio.vts.h",
+        "android/hardware/radio/1.0/RadioIndication.vts.h",
+        "android/hardware/radio/1.0/RadioResponse.vts.h",
+        "android/hardware/radio/1.0/Sap.vts.h",
+        "android/hardware/radio/1.0/SapCallback.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.radio.vts.driver@1.0",
+    generated_sources: ["android.hardware.radio.vts.driver@1.0_genc++"],
+    generated_headers: ["android.hardware.radio.vts.driver@1.0_genc++_headers"],
+    export_generated_headers: ["android.hardware.radio.vts.driver@1.0_genc++_headers"],
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libvts_common",
+        "libvts_datatype",
+        "libvts_measurement",
+        "libvts_multidevice_proto",
+        "libcamera_metadata",
+        "libprotobuf-cpp-full",
+        "android.hidl.base@1.0",
+        "android.hardware.radio@1.0",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "android.hidl.base@1.0",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio@1.0-IRadio-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/radio/1.0/ $(genDir)/android/hardware/radio/1.0/",
+    srcs: [
+        "IRadio.hal",
+        "types.hal",
+    ],
+    out: [
+        "android/hardware/radio/1.0/Radio.vts.cpp",
+        "android/hardware/radio/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio@1.0-IRadio-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/radio/1.0/ $(genDir)/android/hardware/radio/1.0/",
+    srcs: [
+        "IRadio.hal",
+        "types.hal",
+    ],
+    out: [
+        "android/hardware/radio/1.0/Radio.vts.h",
+        "android/hardware/radio/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.radio@1.0-IRadio-vts.profiler",
+    generated_sources: ["android.hardware.radio@1.0-IRadio-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.radio@1.0-IRadio-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.radio@1.0-IRadio-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hidl.base@1.0",
+        "android.hardware.radio@1.0",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio@1.0-IRadioIndication-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/radio/1.0/ $(genDir)/android/hardware/radio/1.0/",
+    srcs: [
+        "IRadioIndication.hal",
+        "types.hal",
+    ],
+    out: [
+        "android/hardware/radio/1.0/RadioIndication.vts.cpp",
+        "android/hardware/radio/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio@1.0-IRadioIndication-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/radio/1.0/ $(genDir)/android/hardware/radio/1.0/",
+    srcs: [
+        "IRadioIndication.hal",
+        "types.hal",
+    ],
+    out: [
+        "android/hardware/radio/1.0/RadioIndication.vts.h",
+        "android/hardware/radio/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.radio@1.0-IRadioIndication-vts.profiler",
+    generated_sources: ["android.hardware.radio@1.0-IRadioIndication-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.radio@1.0-IRadioIndication-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.radio@1.0-IRadioIndication-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hidl.base@1.0",
+        "android.hardware.radio@1.0",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio@1.0-IRadioResponse-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/radio/1.0/ $(genDir)/android/hardware/radio/1.0/",
+    srcs: [
+        "IRadioResponse.hal",
+        "types.hal",
+    ],
+    out: [
+        "android/hardware/radio/1.0/RadioResponse.vts.cpp",
+        "android/hardware/radio/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio@1.0-IRadioResponse-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/radio/1.0/ $(genDir)/android/hardware/radio/1.0/",
+    srcs: [
+        "IRadioResponse.hal",
+        "types.hal",
+    ],
+    out: [
+        "android/hardware/radio/1.0/RadioResponse.vts.h",
+        "android/hardware/radio/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.radio@1.0-IRadioResponse-vts.profiler",
+    generated_sources: ["android.hardware.radio@1.0-IRadioResponse-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.radio@1.0-IRadioResponse-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.radio@1.0-IRadioResponse-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hidl.base@1.0",
+        "android.hardware.radio@1.0",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio@1.0-ISap-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/radio/1.0/ $(genDir)/android/hardware/radio/1.0/",
+    srcs: [
+        "ISap.hal",
+        "types.hal",
+    ],
+    out: [
+        "android/hardware/radio/1.0/Sap.vts.cpp",
+        "android/hardware/radio/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio@1.0-ISap-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/radio/1.0/ $(genDir)/android/hardware/radio/1.0/",
+    srcs: [
+        "ISap.hal",
+        "types.hal",
+    ],
+    out: [
+        "android/hardware/radio/1.0/Sap.vts.h",
+        "android/hardware/radio/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.radio@1.0-ISap-vts.profiler",
+    generated_sources: ["android.hardware.radio@1.0-ISap-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.radio@1.0-ISap-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.radio@1.0-ISap-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hidl.base@1.0",
+        "android.hardware.radio@1.0",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio@1.0-ISapCallback-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/radio/1.0/ $(genDir)/android/hardware/radio/1.0/",
+    srcs: [
+        "ISapCallback.hal",
+        "types.hal",
+    ],
+    out: [
+        "android/hardware/radio/1.0/SapCallback.vts.cpp",
+        "android/hardware/radio/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio@1.0-ISapCallback-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/radio/1.0/ $(genDir)/android/hardware/radio/1.0/",
+    srcs: [
+        "ISapCallback.hal",
+        "types.hal",
+    ],
+    out: [
+        "android/hardware/radio/1.0/SapCallback.vts.h",
+        "android/hardware/radio/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.radio@1.0-ISapCallback-vts.profiler",
+    generated_sources: ["android.hardware.radio@1.0-ISapCallback-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.radio@1.0-ISapCallback-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.radio@1.0-ISapCallback-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hidl.base@1.0",
+        "android.hardware.radio@1.0",
+    ],
+}
diff --git a/radio/1.0/vts/Android.mk b/radio/1.0/vts/Android.mk
new file mode 100644
index 0000000..df5dac8
--- /dev/null
+++ b/radio/1.0/vts/Android.mk
@@ -0,0 +1,19 @@
+#
+# Copyright (C) 2016 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+LOCAL_PATH := $(call my-dir)
+
+include $(call all-subdir-makefiles)
\ No newline at end of file
diff --git a/radio/1.0/vts/Radio.vts b/radio/1.0/vts/Radio.vts
new file mode 100644
index 0000000..c3d998a
--- /dev/null
+++ b/radio/1.0/vts/Radio.vts
@@ -0,0 +1,1497 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "IRadio"
+
+package: "android.hardware.radio"
+
+import: "android.hardware.radio@1.0::IRadioIndication"
+import: "android.hardware.radio@1.0::IRadioResponse"
+import: "android.hardware.radio@1.0::types"
+
+interface: {
+    api: {
+        name: "setResponseFunctions"
+        arg: {
+            type: TYPE_HIDL_INTERFACE
+            predefined_type: "IRadioResponse"
+            is_callback: false
+        }
+        arg: {
+            type: TYPE_HIDL_INTERFACE
+            predefined_type: "IRadioIndication"
+            is_callback: false
+        }
+    }
+
+    api: {
+        name: "getIccCardStatus"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "supplyIccPinForApp"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "supplyIccPukForApp"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "supplyIccPin2ForApp"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "supplyIccPuk2ForApp"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "changeIccPinForApp"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "changeIccPin2ForApp"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "supplyNetworkDepersonalization"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "getCurrentCalls"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "dial"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::Dial"
+        }
+    }
+
+    api: {
+        name: "getImsiForApp"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "hangup"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "hangupWaitingOrBackground"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "hangupForegroundResumeBackground"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "switchWaitingOrHoldingAndActive"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "conference"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "rejectCall"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "getLastCallFailCause"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "getSignalStrength"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "getVoiceRegistrationState"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "getDataRegistrationState"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "getOperator"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setRadioPower"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+    }
+
+    api: {
+        name: "sendDtmf"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "sendSms"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::GsmSmsMessage"
+        }
+    }
+
+    api: {
+        name: "sendSMSExpectMore"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::GsmSmsMessage"
+        }
+    }
+
+    api: {
+        name: "setupDataCall"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::ApnAuthType"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "iccIOForApp"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::IccIo"
+        }
+    }
+
+    api: {
+        name: "sendUssd"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "cancelPendingUssd"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "getClir"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setClir"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "getCallForwardStatus"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CallForwardInfo"
+        }
+    }
+
+    api: {
+        name: "setCallForward"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CallForwardInfo"
+        }
+    }
+
+    api: {
+        name: "getCallWaiting"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setCallWaiting"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "acknowledgeLastIncomingGsmSms"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::SmsAcknowledgeFailCause"
+        }
+    }
+
+    api: {
+        name: "acceptCall"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "deactivateDataCall"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+    }
+
+    api: {
+        name: "getFacilityLockForApp"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "setFacilityLockForApp"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "setBarringPassword"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "getNetworkSelectionMode"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setNetworkSelectionModeAutomatic"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setNetworkSelectionModeManual"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "getAvailableNetworks"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "startDtmf"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "stopDtmf"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "getBasebandVersion"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "separateConnection"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setMute"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+    }
+
+    api: {
+        name: "getMute"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "getClip"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "getDataCallList"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "sendOemRadioRequestRaw"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+    }
+
+    api: {
+        name: "sendOemRadioRequestStrings"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRING
+            }
+        }
+    }
+
+    api: {
+        name: "sendScreenState"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+    }
+
+    api: {
+        name: "setSuppServiceNotifications"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+    }
+
+    api: {
+        name: "writeSmsToSim"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::SmsWriteArgs"
+        }
+    }
+
+    api: {
+        name: "deleteSmsOnSim"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setBandMode"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioBandMode"
+        }
+    }
+
+    api: {
+        name: "getAvailableBandModes"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "sendEnvelope"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "sendTerminalResponseToSim"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "handleStkCallSetupRequestFromSim"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+    }
+
+    api: {
+        name: "explicitCallTransfer"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setPreferredNetworkType"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::PreferredNetworkType"
+        }
+    }
+
+    api: {
+        name: "getPreferredNetworkType"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "getNeighboringCids"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setLocationUpdates"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+    }
+
+    api: {
+        name: "setCdmaSubscriptionSource"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::CdmaSubscriptionSource"
+        }
+    }
+
+    api: {
+        name: "setCdmaRoamingPreference"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::CdmaRoamingType"
+        }
+    }
+
+    api: {
+        name: "getCdmaRoamingPreference"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setTTYMode"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::TtyMode"
+        }
+    }
+
+    api: {
+        name: "getTTYMode"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setPreferredVoicePrivacy"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+    }
+
+    api: {
+        name: "getPreferredVoicePrivacy"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "sendCDMAFeatureCode"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "sendBurstDtmf"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "sendCdmaSms"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CdmaSmsMessage"
+        }
+    }
+
+    api: {
+        name: "acknowledgeLastIncomingCdmaSms"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CdmaSmsAck"
+        }
+    }
+
+    api: {
+        name: "getGsmBroadcastConfig"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setGsmBroadcastConfig"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRUCT
+                predefined_type: "::android::hardware::radio::V1_0::GsmBroadcastSmsConfigInfo"
+            }
+        }
+    }
+
+    api: {
+        name: "setGsmBroadcastActivation"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+    }
+
+    api: {
+        name: "getCdmaBroadcastConfig"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setCdmaBroadcastConfig"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRUCT
+                predefined_type: "::android::hardware::radio::V1_0::CdmaBroadcastSmsConfigInfo"
+            }
+        }
+    }
+
+    api: {
+        name: "setCdmaBroadcastActivation"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+    }
+
+    api: {
+        name: "getCDMASubscription"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "writeSmsToRuim"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CdmaSmsWriteArgs"
+        }
+    }
+
+    api: {
+        name: "deleteSmsOnRuim"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "getDeviceIdentity"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "exitEmergencyCallbackMode"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "getSmscAddress"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setSmscAddress"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "reportSmsMemoryStatus"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+    }
+
+    api: {
+        name: "reportStkServiceIsRunning"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "getCdmaSubscriptionSource"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "requestIsimAuthentication"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "acknowledgeIncomingGsmSmsWithPdu"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "sendEnvelopeWithStatus"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "getVoiceRadioTechnology"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "getCellInfoList"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setCellInfoListRate"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setInitialAttachApn"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::ApnAuthType"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "getImsRegistrationState"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "sendImsSms"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::ImsSmsMessage"
+        }
+    }
+
+    api: {
+        name: "iccTransmitApduBasicChannel"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::SimApdu"
+        }
+    }
+
+    api: {
+        name: "iccOpenLogicalChannel"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "iccCloseLogicalChannel"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "iccTransmitApduLogicalChannel"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::SimApdu"
+        }
+    }
+
+    api: {
+        name: "nvReadItem"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::NvItem"
+        }
+    }
+
+    api: {
+        name: "nvWriteItem"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::NvWriteItem"
+        }
+    }
+
+    api: {
+        name: "nvWriteCdmaPrl"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+    }
+
+    api: {
+        name: "nvResetConfig"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::ResetNvType"
+        }
+    }
+
+    api: {
+        name: "setUiccSubscription"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::SelectUiccSub"
+        }
+    }
+
+    api: {
+        name: "setDataAllowed"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+    }
+
+    api: {
+        name: "getHardwareConfig"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "requestIccSimAuthentication"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "setDataProfile"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRUCT
+                predefined_type: "::android::hardware::radio::V1_0::DataProfileInfo"
+            }
+        }
+    }
+
+    api: {
+        name: "requestShutdown"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "getRadioCapability"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setRadioCapability"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioCapability"
+        }
+    }
+
+    api: {
+        name: "startLceService"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+    }
+
+    api: {
+        name: "stopLceService"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "pullLceData"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "getModemActivityInfo"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setAllowedCarriers"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CarrierRestrictions"
+        }
+    }
+
+    api: {
+        name: "getAllowedCarriers"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "responseAcknowledgement"
+    }
+
+}
diff --git a/radio/1.0/vts/RadioIndication.vts b/radio/1.0/vts/RadioIndication.vts
new file mode 100644
index 0000000..fac73a9
--- /dev/null
+++ b/radio/1.0/vts/RadioIndication.vts
@@ -0,0 +1,545 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "IRadioIndication"
+
+package: "android.hardware.radio"
+
+import: "android.hardware.radio@1.0::types"
+
+interface: {
+    api: {
+        name: "radioStateChanged"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioState"
+        }
+    }
+
+    api: {
+        name: "callStateChanged"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+    }
+
+    api: {
+        name: "voiceNetworkStateChanged"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+    }
+
+    api: {
+        name: "newSms"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+    }
+
+    api: {
+        name: "newSmsStatusReport"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+    }
+
+    api: {
+        name: "newSmsOnSim"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "onUssd"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::UssdModeType"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "nitzTimeReceived"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+    }
+
+    api: {
+        name: "currentSignalStrength"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::SignalStrength"
+        }
+    }
+
+    api: {
+        name: "dataCallListChanged"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRUCT
+                predefined_type: "::android::hardware::radio::V1_0::SetupDataCallResult"
+            }
+        }
+    }
+
+    api: {
+        name: "suppSvcNotify"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::SuppSvcNotification"
+        }
+    }
+
+    api: {
+        name: "stkSessionEnd"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+    }
+
+    api: {
+        name: "stkProactiveCommand"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "stkEventNotify"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "stkCallSetup"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int64_t"
+        }
+    }
+
+    api: {
+        name: "simSmsStorageFull"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+    }
+
+    api: {
+        name: "simRefresh"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::SimRefreshResult"
+        }
+    }
+
+    api: {
+        name: "callRing"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CdmaSignalInfoRecord"
+        }
+    }
+
+    api: {
+        name: "simStatusChanged"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+    }
+
+    api: {
+        name: "cdmaNewSms"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CdmaSmsMessage"
+        }
+    }
+
+    api: {
+        name: "newBroadcastSms"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+    }
+
+    api: {
+        name: "cdmaRuimSmsStorageFull"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+    }
+
+    api: {
+        name: "restrictedStateChanged"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::PhoneRestrictedState"
+        }
+    }
+
+    api: {
+        name: "enterEmergencyCallbackMode"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+    }
+
+    api: {
+        name: "cdmaCallWaiting"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CdmaCallWaiting"
+        }
+    }
+
+    api: {
+        name: "cdmaOtaProvisionStatus"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::CdmaOtaProvisionStatus"
+        }
+    }
+
+    api: {
+        name: "cdmaInfoRec"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CdmaInformationRecords"
+        }
+    }
+
+    api: {
+        name: "oemHookRaw"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+    }
+
+    api: {
+        name: "indicateRingbackTone"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+    }
+
+    api: {
+        name: "resendIncallMute"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+    }
+
+    api: {
+        name: "cdmaSubscriptionSourceChanged"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::CdmaSubscriptionSource"
+        }
+    }
+
+    api: {
+        name: "cdmaPrlChanged"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "exitEmergencyCallbackMode"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+    }
+
+    api: {
+        name: "rilConnected"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+    }
+
+    api: {
+        name: "voiceRadioTechChanged"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioTechnology"
+        }
+    }
+
+    api: {
+        name: "cellInfoList"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRUCT
+                predefined_type: "::android::hardware::radio::V1_0::CellInfo"
+            }
+        }
+    }
+
+    api: {
+        name: "imsNetworkStateChanged"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+    }
+
+    api: {
+        name: "subscriptionStatusChanged"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+    }
+
+    api: {
+        name: "srvccStateNotify"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::SrvccState"
+        }
+    }
+
+    api: {
+        name: "hardwareConfigChanged"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRUCT
+                predefined_type: "::android::hardware::radio::V1_0::HardwareConfig"
+            }
+        }
+    }
+
+    api: {
+        name: "radioCapabilityIndication"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioCapability"
+        }
+    }
+
+    api: {
+        name: "onSupplementaryServiceIndication"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::StkCcUnsolSsResult"
+        }
+    }
+
+    api: {
+        name: "stkCallControlAlphaNotify"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "lceData"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::LceDataInfo"
+        }
+    }
+
+    api: {
+        name: "pcoData"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::PcoDataInfo"
+        }
+    }
+
+    api: {
+        name: "modemReset"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioIndicationType"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+}
diff --git a/radio/1.0/vts/RadioResponse.vts b/radio/1.0/vts/RadioResponse.vts
new file mode 100644
index 0000000..2884d30
--- /dev/null
+++ b/radio/1.0/vts/RadioResponse.vts
@@ -0,0 +1,1382 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "IRadioResponse"
+
+package: "android.hardware.radio"
+
+import: "android.hardware.radio@1.0::types"
+
+interface: {
+    api: {
+        name: "getIccCardStatusResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CardStatus"
+        }
+    }
+
+    api: {
+        name: "supplyIccPinForAppResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "supplyIccPukForAppResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "supplyIccPin2ForAppResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "supplyIccPuk2ForAppResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "changeIccPinForAppResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "changeIccPin2ForAppResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "supplyNetworkDepersonalizationResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "getCurrentCallsResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRUCT
+                predefined_type: "::android::hardware::radio::V1_0::Call"
+            }
+        }
+    }
+
+    api: {
+        name: "dialResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getIMSIForAppResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "hangupConnectionResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "hangupWaitingOrBackgroundResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "hangupForegroundResumeBackgroundResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "switchWaitingOrHoldingAndActiveResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "conferenceResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "rejectCallResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getLastCallFailCauseResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::LastCallFailCauseInfo"
+        }
+    }
+
+    api: {
+        name: "getSignalStrengthResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::SignalStrength"
+        }
+    }
+
+    api: {
+        name: "getVoiceRegistrationStateResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::VoiceRegStateResult"
+        }
+    }
+
+    api: {
+        name: "getDataRegistrationStateResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::DataRegStateResult"
+        }
+    }
+
+    api: {
+        name: "getOperatorResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "setRadioPowerResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "sendDtmfResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "sendSmsResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::SendSmsResult"
+        }
+    }
+
+    api: {
+        name: "sendSMSExpectMoreResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::SendSmsResult"
+        }
+    }
+
+    api: {
+        name: "setupDataCallResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::SetupDataCallResult"
+        }
+    }
+
+    api: {
+        name: "iccIOForAppResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::IccIoResult"
+        }
+    }
+
+    api: {
+        name: "sendUssdResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "cancelPendingUssdResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getClirResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setClirResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getCallForwardStatusResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRUCT
+                predefined_type: "::android::hardware::radio::V1_0::CallForwardInfo"
+            }
+        }
+    }
+
+    api: {
+        name: "setCallForwardResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getCallWaitingResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setCallWaitingResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "acknowledgeLastIncomingGsmSmsResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "acceptCallResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "deactivateDataCallResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getFacilityLockForAppResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setFacilityLockForAppResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setBarringPasswordResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getNetworkSelectionModeResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+    }
+
+    api: {
+        name: "setNetworkSelectionModeAutomaticResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "setNetworkSelectionModeManualResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getAvailableNetworksResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRUCT
+                predefined_type: "::android::hardware::radio::V1_0::OperatorInfo"
+            }
+        }
+    }
+
+    api: {
+        name: "startDtmfResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "stopDtmfResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getBasebandVersionResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "separateConnectionResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "setMuteResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getMuteResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+    }
+
+    api: {
+        name: "getClipResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::ClipStatus"
+        }
+    }
+
+    api: {
+        name: "getDataCallListResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRUCT
+                predefined_type: "::android::hardware::radio::V1_0::SetupDataCallResult"
+            }
+        }
+    }
+
+    api: {
+        name: "sendOemRilRequestRawResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+    }
+
+    api: {
+        name: "sendOemRilRequestStringsResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRING
+            }
+        }
+    }
+
+    api: {
+        name: "sendScreenStateResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "setSuppServiceNotificationsResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "writeSmsToSimResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "deleteSmsOnSimResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "setBandModeResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getAvailableBandModesResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_ENUM
+                predefined_type: "::android::hardware::radio::V1_0::RadioBandMode"
+            }
+        }
+    }
+
+    api: {
+        name: "sendEnvelopeResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "sendTerminalResponseToSimResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "handleStkCallSetupRequestFromSimResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "explicitCallTransferResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "setPreferredNetworkTypeResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getPreferredNetworkTypeResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::PreferredNetworkType"
+        }
+    }
+
+    api: {
+        name: "getNeighboringCidsResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRUCT
+                predefined_type: "::android::hardware::radio::V1_0::NeighboringCell"
+            }
+        }
+    }
+
+    api: {
+        name: "setLocationUpdatesResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "setCdmaSubscriptionSourceResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "setCdmaRoamingPreferenceResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getCdmaRoamingPreferenceResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::CdmaRoamingType"
+        }
+    }
+
+    api: {
+        name: "setTTYModeResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getTTYModeResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::TtyMode"
+        }
+    }
+
+    api: {
+        name: "setPreferredVoicePrivacyResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getPreferredVoicePrivacyResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+    }
+
+    api: {
+        name: "sendCDMAFeatureCodeResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "sendBurstDtmfResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "sendCdmaSmsResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::SendSmsResult"
+        }
+    }
+
+    api: {
+        name: "acknowledgeLastIncomingCdmaSmsResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getGsmBroadcastConfigResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRUCT
+                predefined_type: "::android::hardware::radio::V1_0::GsmBroadcastSmsConfigInfo"
+            }
+        }
+    }
+
+    api: {
+        name: "setGsmBroadcastConfigResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "setGsmBroadcastActivationResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getCdmaBroadcastConfigResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRUCT
+                predefined_type: "::android::hardware::radio::V1_0::CdmaBroadcastSmsConfigInfo"
+            }
+        }
+    }
+
+    api: {
+        name: "setCdmaBroadcastConfigResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "setCdmaBroadcastActivationResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getCDMASubscriptionResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "writeSmsToRuimResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+    }
+
+    api: {
+        name: "deleteSmsOnRuimResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getDeviceIdentityResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "exitEmergencyCallbackModeResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getSmscAddressResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "setSmscAddressResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "reportSmsMemoryStatusResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getCdmaSubscriptionSourceResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::CdmaSubscriptionSource"
+        }
+    }
+
+    api: {
+        name: "requestIsimAuthenticationResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "acknowledgeIncomingGsmSmsWithPduResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "sendEnvelopeWithStatusResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::IccIoResult"
+        }
+    }
+
+    api: {
+        name: "getVoiceRadioTechnologyResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioTechnology"
+        }
+    }
+
+    api: {
+        name: "getCellInfoListResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRUCT
+                predefined_type: "::android::hardware::radio::V1_0::CellInfo"
+            }
+        }
+    }
+
+    api: {
+        name: "setCellInfoListRateResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "setInitialAttachApnResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getImsRegistrationStateResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::RadioTechnologyFamily"
+        }
+    }
+
+    api: {
+        name: "sendImsSmsResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::SendSmsResult"
+        }
+    }
+
+    api: {
+        name: "iccTransmitApduBasicChannelResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::IccIoResult"
+        }
+    }
+
+    api: {
+        name: "iccOpenLogicalChannelResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "int8_t"
+            }
+        }
+    }
+
+    api: {
+        name: "iccCloseLogicalChannelResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "iccTransmitApduLogicalChannelResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::IccIoResult"
+        }
+    }
+
+    api: {
+        name: "nvReadItemResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+    }
+
+    api: {
+        name: "nvWriteItemResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "nvWriteCdmaPrlResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "nvResetConfigResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "setUiccSubscriptionResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "setDataAllowedResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getHardwareConfigResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRUCT
+                predefined_type: "::android::hardware::radio::V1_0::HardwareConfig"
+            }
+        }
+    }
+
+    api: {
+        name: "requestIccSimAuthenticationResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::IccIoResult"
+        }
+    }
+
+    api: {
+        name: "setDataProfileResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "requestShutdownResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+    }
+
+    api: {
+        name: "getRadioCapabilityResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioCapability"
+        }
+    }
+
+    api: {
+        name: "setRadioCapabilityResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioCapability"
+        }
+    }
+
+    api: {
+        name: "startLceServiceResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::LceStatusInfo"
+        }
+    }
+
+    api: {
+        name: "stopLceServiceResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::LceStatusInfo"
+        }
+    }
+
+    api: {
+        name: "pullLceDataResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::LceDataInfo"
+        }
+    }
+
+    api: {
+        name: "getModemActivityInfoResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::ActivityStatsInfo"
+        }
+    }
+
+    api: {
+        name: "setAllowedCarriersResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "getAllowedCarriersResponse"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CarrierRestrictions"
+        }
+    }
+
+    api: {
+        name: "acknowledgeRequest"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+}
diff --git a/radio/1.0/vts/Sap.vts b/radio/1.0/vts/Sap.vts
new file mode 100644
index 0000000..23205d0
--- /dev/null
+++ b/radio/1.0/vts/Sap.vts
@@ -0,0 +1,107 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "ISap"
+
+package: "android.hardware.radio"
+
+import: "android.hardware.radio@1.0::ISapCallback"
+import: "android.hardware.radio@1.0::types"
+
+interface: {
+    api: {
+        name: "setCallback"
+        arg: {
+            type: TYPE_HIDL_CALLBACK
+            predefined_type: "ISapCallback"
+            is_callback: true
+        }
+    }
+
+    api: {
+        name: "connectReq"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "disconnectReq"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "apduReq"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::SapApduType"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+    }
+
+    api: {
+        name: "transferAtrReq"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "powerReq"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+    }
+
+    api: {
+        name: "resetSimReq"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "transferCardReaderStatusReq"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "setTransferProtocolReq"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::SapTransferProtocol"
+        }
+    }
+
+}
diff --git a/radio/1.0/vts/SapCallback.vts b/radio/1.0/vts/SapCallback.vts
new file mode 100644
index 0000000..2e61ce6
--- /dev/null
+++ b/radio/1.0/vts/SapCallback.vts
@@ -0,0 +1,156 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "ISapCallback"
+
+package: "android.hardware.radio"
+
+import: "android.hardware.radio@1.0::types"
+
+interface: {
+    api: {
+        name: "connectResponse"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::SapConnectRsp"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "disconnectResponse"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "disconnectIndication"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::SapDisconnectType"
+        }
+    }
+
+    api: {
+        name: "apduResponse"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::SapResultCode"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+    }
+
+    api: {
+        name: "transferAtrResponse"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::SapResultCode"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+    }
+
+    api: {
+        name: "powerResponse"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::SapResultCode"
+        }
+    }
+
+    api: {
+        name: "resetSimResponse"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::SapResultCode"
+        }
+    }
+
+    api: {
+        name: "statusIndication"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::SapStatus"
+        }
+    }
+
+    api: {
+        name: "transferCardReaderStatusResponse"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::SapResultCode"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "errorResponse"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "transferProtocolResponse"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::radio::V1_0::SapResultCode"
+        }
+    }
+
+}
diff --git a/radio/1.0/vts/types.vts b/radio/1.0/vts/types.vts
new file mode 100644
index 0000000..cec9b6d
--- /dev/null
+++ b/radio/1.0/vts/types.vts
@@ -0,0 +1,5532 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "types"
+
+package: "android.hardware.radio"
+
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::RadioConst"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "CDMA_ALPHA_INFO_BUFFER_LENGTH"
+        scalar_value: {
+            int32_t: 64
+        }
+        enumerator: "CDMA_NUMBER_INFO_BUFFER_LENGTH"
+        scalar_value: {
+            int32_t: 81
+        }
+        enumerator: "MAX_RILDS"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "MAX_SOCKET_NAME_LENGTH"
+        scalar_value: {
+            int32_t: 6
+        }
+        enumerator: "MAX_CLIENT_ID_LENGTH"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "MAX_DEBUG_SOCKET_NAME_LENGTH"
+        scalar_value: {
+            int32_t: 12
+        }
+        enumerator: "MAX_QEMU_PIPE_NAME_LENGTH"
+        scalar_value: {
+            int32_t: 11
+        }
+        enumerator: "MAX_UUID_LENGTH"
+        scalar_value: {
+            int32_t: 64
+        }
+        enumerator: "CARD_MAX_APPS"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "CDMA_MAX_NUMBER_OF_INFO_RECS"
+        scalar_value: {
+            int32_t: 10
+        }
+        enumerator: "SS_INFO_MAX"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "NUM_SERVICE_CLASSES"
+        scalar_value: {
+            int32_t: 7
+        }
+        enumerator: "NUM_TX_POWER_LEVELS"
+        scalar_value: {
+            int32_t: 5
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::RadioCdmaSmsConst"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "ADDRESS_MAX"
+        scalar_value: {
+            int32_t: 36
+        }
+        enumerator: "SUBADDRESS_MAX"
+        scalar_value: {
+            int32_t: 36
+        }
+        enumerator: "BEARER_DATA_MAX"
+        scalar_value: {
+            int32_t: 255
+        }
+        enumerator: "UDH_MAX_SND_SIZE"
+        scalar_value: {
+            int32_t: 128
+        }
+        enumerator: "UDH_EO_DATA_SEGMENT_MAX"
+        scalar_value: {
+            int32_t: 131
+        }
+        enumerator: "MAX_UD_HEADERS"
+        scalar_value: {
+            int32_t: 7
+        }
+        enumerator: "USER_DATA_MAX"
+        scalar_value: {
+            int32_t: 229
+        }
+        enumerator: "UDH_LARGE_PIC_SIZE"
+        scalar_value: {
+            int32_t: 128
+        }
+        enumerator: "UDH_SMALL_PIC_SIZE"
+        scalar_value: {
+            int32_t: 32
+        }
+        enumerator: "UDH_VAR_PIC_SIZE"
+        scalar_value: {
+            int32_t: 134
+        }
+        enumerator: "UDH_ANIM_NUM_BITMAPS"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "UDH_LARGE_BITMAP_SIZE"
+        scalar_value: {
+            int32_t: 32
+        }
+        enumerator: "UDH_SMALL_BITMAP_SIZE"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "UDH_OTHER_SIZE"
+        scalar_value: {
+            int32_t: 226
+        }
+        enumerator: "IP_ADDRESS_SIZE"
+        scalar_value: {
+            int32_t: 4
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::RadioError"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "NONE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "RADIO_NOT_AVAILABLE"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "GENERIC_FAILURE"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "PASSWORD_INCORRECT"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "SIM_PIN2"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "SIM_PUK2"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "REQUEST_NOT_SUPPORTED"
+        scalar_value: {
+            int32_t: 6
+        }
+        enumerator: "CANCELLED"
+        scalar_value: {
+            int32_t: 7
+        }
+        enumerator: "OP_NOT_ALLOWED_DURING_VOICE_CALL"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "OP_NOT_ALLOWED_BEFORE_REG_TO_NW"
+        scalar_value: {
+            int32_t: 9
+        }
+        enumerator: "SMS_SEND_FAIL_RETRY"
+        scalar_value: {
+            int32_t: 10
+        }
+        enumerator: "SIM_ABSENT"
+        scalar_value: {
+            int32_t: 11
+        }
+        enumerator: "SUBSCRIPTION_NOT_AVAILABLE"
+        scalar_value: {
+            int32_t: 12
+        }
+        enumerator: "MODE_NOT_SUPPORTED"
+        scalar_value: {
+            int32_t: 13
+        }
+        enumerator: "FDN_CHECK_FAILURE"
+        scalar_value: {
+            int32_t: 14
+        }
+        enumerator: "ILLEGAL_SIM_OR_ME"
+        scalar_value: {
+            int32_t: 15
+        }
+        enumerator: "MISSING_RESOURCE"
+        scalar_value: {
+            int32_t: 16
+        }
+        enumerator: "NO_SUCH_ELEMENT"
+        scalar_value: {
+            int32_t: 17
+        }
+        enumerator: "DIAL_MODIFIED_TO_USSD"
+        scalar_value: {
+            int32_t: 18
+        }
+        enumerator: "DIAL_MODIFIED_TO_SS"
+        scalar_value: {
+            int32_t: 19
+        }
+        enumerator: "DIAL_MODIFIED_TO_DIAL"
+        scalar_value: {
+            int32_t: 20
+        }
+        enumerator: "USSD_MODIFIED_TO_DIAL"
+        scalar_value: {
+            int32_t: 21
+        }
+        enumerator: "USSD_MODIFIED_TO_SS"
+        scalar_value: {
+            int32_t: 22
+        }
+        enumerator: "USSD_MODIFIED_TO_USSD"
+        scalar_value: {
+            int32_t: 23
+        }
+        enumerator: "SS_MODIFIED_TO_DIAL"
+        scalar_value: {
+            int32_t: 24
+        }
+        enumerator: "SS_MODIFIED_TO_USSD"
+        scalar_value: {
+            int32_t: 25
+        }
+        enumerator: "SUBSCRIPTION_NOT_SUPPORTED"
+        scalar_value: {
+            int32_t: 26
+        }
+        enumerator: "SS_MODIFIED_TO_SS"
+        scalar_value: {
+            int32_t: 27
+        }
+        enumerator: "LCE_NOT_SUPPORTED"
+        scalar_value: {
+            int32_t: 36
+        }
+        enumerator: "NO_MEMORY"
+        scalar_value: {
+            int32_t: 37
+        }
+        enumerator: "INTERNAL_ERR"
+        scalar_value: {
+            int32_t: 38
+        }
+        enumerator: "SYSTEM_ERR"
+        scalar_value: {
+            int32_t: 39
+        }
+        enumerator: "MODEM_ERR"
+        scalar_value: {
+            int32_t: 40
+        }
+        enumerator: "INVALID_STATE"
+        scalar_value: {
+            int32_t: 41
+        }
+        enumerator: "NO_RESOURCES"
+        scalar_value: {
+            int32_t: 42
+        }
+        enumerator: "SIM_ERR"
+        scalar_value: {
+            int32_t: 43
+        }
+        enumerator: "INVALID_ARGUMENTS"
+        scalar_value: {
+            int32_t: 44
+        }
+        enumerator: "INVALID_SIM_STATE"
+        scalar_value: {
+            int32_t: 45
+        }
+        enumerator: "INVALID_MODEM_STATE"
+        scalar_value: {
+            int32_t: 46
+        }
+        enumerator: "INVALID_CALL_ID"
+        scalar_value: {
+            int32_t: 47
+        }
+        enumerator: "NO_SMS_TO_ACK"
+        scalar_value: {
+            int32_t: 48
+        }
+        enumerator: "NETWORK_ERR"
+        scalar_value: {
+            int32_t: 49
+        }
+        enumerator: "REQUEST_RATE_LIMITED"
+        scalar_value: {
+            int32_t: 50
+        }
+        enumerator: "SIM_BUSY"
+        scalar_value: {
+            int32_t: 51
+        }
+        enumerator: "SIM_FULL"
+        scalar_value: {
+            int32_t: 52
+        }
+        enumerator: "NETWORK_REJECT"
+        scalar_value: {
+            int32_t: 53
+        }
+        enumerator: "OPERATION_NOT_ALLOWED"
+        scalar_value: {
+            int32_t: 54
+        }
+        enumerator: "EMPTY_RECORD"
+        scalar_value: {
+            int32_t: 55
+        }
+        enumerator: "INVALID_SMS_FORMAT"
+        scalar_value: {
+            int32_t: 56
+        }
+        enumerator: "ENCODING_ERR"
+        scalar_value: {
+            int32_t: 57
+        }
+        enumerator: "INVALID_SMSC_ADDRESS"
+        scalar_value: {
+            int32_t: 58
+        }
+        enumerator: "NO_SUCH_ENTRY"
+        scalar_value: {
+            int32_t: 59
+        }
+        enumerator: "NETWORK_NOT_READY"
+        scalar_value: {
+            int32_t: 60
+        }
+        enumerator: "NOT_PROVISIONED"
+        scalar_value: {
+            int32_t: 61
+        }
+        enumerator: "NO_SUBSCRIPTION"
+        scalar_value: {
+            int32_t: 62
+        }
+        enumerator: "NO_NETWORK_FOUND"
+        scalar_value: {
+            int32_t: 63
+        }
+        enumerator: "DEVICE_IN_USE"
+        scalar_value: {
+            int32_t: 64
+        }
+        enumerator: "ABORTED"
+        scalar_value: {
+            int32_t: 65
+        }
+        enumerator: "INVALID_RESPONSE"
+        scalar_value: {
+            int32_t: 66
+        }
+        enumerator: "OEM_ERROR_1"
+        scalar_value: {
+            int32_t: 501
+        }
+        enumerator: "OEM_ERROR_2"
+        scalar_value: {
+            int32_t: 502
+        }
+        enumerator: "OEM_ERROR_3"
+        scalar_value: {
+            int32_t: 503
+        }
+        enumerator: "OEM_ERROR_4"
+        scalar_value: {
+            int32_t: 504
+        }
+        enumerator: "OEM_ERROR_5"
+        scalar_value: {
+            int32_t: 505
+        }
+        enumerator: "OEM_ERROR_6"
+        scalar_value: {
+            int32_t: 506
+        }
+        enumerator: "OEM_ERROR_7"
+        scalar_value: {
+            int32_t: 507
+        }
+        enumerator: "OEM_ERROR_8"
+        scalar_value: {
+            int32_t: 508
+        }
+        enumerator: "OEM_ERROR_9"
+        scalar_value: {
+            int32_t: 509
+        }
+        enumerator: "OEM_ERROR_10"
+        scalar_value: {
+            int32_t: 510
+        }
+        enumerator: "OEM_ERROR_11"
+        scalar_value: {
+            int32_t: 511
+        }
+        enumerator: "OEM_ERROR_12"
+        scalar_value: {
+            int32_t: 512
+        }
+        enumerator: "OEM_ERROR_13"
+        scalar_value: {
+            int32_t: 513
+        }
+        enumerator: "OEM_ERROR_14"
+        scalar_value: {
+            int32_t: 514
+        }
+        enumerator: "OEM_ERROR_15"
+        scalar_value: {
+            int32_t: 515
+        }
+        enumerator: "OEM_ERROR_16"
+        scalar_value: {
+            int32_t: 516
+        }
+        enumerator: "OEM_ERROR_17"
+        scalar_value: {
+            int32_t: 517
+        }
+        enumerator: "OEM_ERROR_18"
+        scalar_value: {
+            int32_t: 518
+        }
+        enumerator: "OEM_ERROR_19"
+        scalar_value: {
+            int32_t: 519
+        }
+        enumerator: "OEM_ERROR_20"
+        scalar_value: {
+            int32_t: 520
+        }
+        enumerator: "OEM_ERROR_21"
+        scalar_value: {
+            int32_t: 521
+        }
+        enumerator: "OEM_ERROR_22"
+        scalar_value: {
+            int32_t: 522
+        }
+        enumerator: "OEM_ERROR_23"
+        scalar_value: {
+            int32_t: 523
+        }
+        enumerator: "OEM_ERROR_24"
+        scalar_value: {
+            int32_t: 524
+        }
+        enumerator: "OEM_ERROR_25"
+        scalar_value: {
+            int32_t: 525
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::RadioResponseType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "SOLICITED"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "SOLICITED_ACK"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "SOLICITED_ACK_EXP"
+        scalar_value: {
+            int32_t: 2
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::RadioIndicationType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "UNSOLICITED"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "UNSOLICITED_ACK_EXP"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::RestrictedState"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "NONE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "CS_EMERGENCY"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "CS_NORMAL"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "CS_ALL"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "PS_ALL"
+        scalar_value: {
+            int32_t: 16
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CardState"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "ABSENT"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "PRESENT"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "ERROR"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "RESTRICTED"
+        scalar_value: {
+            int32_t: 3
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::PinState"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "UNKNOWN"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "ENABLED_NOT_VERIFIED"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "ENABLED_VERIFIED"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "DISABLED"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "ENABLED_BLOCKED"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "ENABLED_PERM_BLOCKED"
+        scalar_value: {
+            int32_t: 5
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::AppType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "UNKNOWN"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "SIM"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "USIM"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "RUIM"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "CSIM"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "ISIM"
+        scalar_value: {
+            int32_t: 5
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::AppState"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "UNKNOWN"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "DETECTED"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "PIN"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "PUK"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "SUBSCRIPTION_PERSO"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "READY"
+        scalar_value: {
+            int32_t: 5
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::PersoSubstate"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "UNKNOWN"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "IN_PROGRESS"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "READY"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "SIM_NETWORK"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "SIM_NETWORK_SUBSET"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "SIM_CORPORATE"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "SIM_SERVICE_PROVIDER"
+        scalar_value: {
+            int32_t: 6
+        }
+        enumerator: "SIM_SIM"
+        scalar_value: {
+            int32_t: 7
+        }
+        enumerator: "SIM_NETWORK_PUK"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "SIM_NETWORK_SUBSET_PUK"
+        scalar_value: {
+            int32_t: 9
+        }
+        enumerator: "SIM_CORPORATE_PUK"
+        scalar_value: {
+            int32_t: 10
+        }
+        enumerator: "SIM_SERVICE_PROVIDER_PUK"
+        scalar_value: {
+            int32_t: 11
+        }
+        enumerator: "SIM_SIM_PUK"
+        scalar_value: {
+            int32_t: 12
+        }
+        enumerator: "RUIM_NETWORK1"
+        scalar_value: {
+            int32_t: 13
+        }
+        enumerator: "RUIM_NETWORK2"
+        scalar_value: {
+            int32_t: 14
+        }
+        enumerator: "RUIM_HRPD"
+        scalar_value: {
+            int32_t: 15
+        }
+        enumerator: "RUIM_CORPORATE"
+        scalar_value: {
+            int32_t: 16
+        }
+        enumerator: "RUIM_SERVICE_PROVIDER"
+        scalar_value: {
+            int32_t: 17
+        }
+        enumerator: "RUIM_RUIM"
+        scalar_value: {
+            int32_t: 18
+        }
+        enumerator: "RUIM_NETWORK1_PUK"
+        scalar_value: {
+            int32_t: 19
+        }
+        enumerator: "RUIM_NETWORK2_PUK"
+        scalar_value: {
+            int32_t: 20
+        }
+        enumerator: "RUIM_HRPD_PUK"
+        scalar_value: {
+            int32_t: 21
+        }
+        enumerator: "RUIM_CORPORATE_PUK"
+        scalar_value: {
+            int32_t: 22
+        }
+        enumerator: "RUIM_SERVICE_PROVIDER_PUK"
+        scalar_value: {
+            int32_t: 23
+        }
+        enumerator: "RUIM_RUIM_PUK"
+        scalar_value: {
+            int32_t: 24
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::RadioState"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "OFF"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "UNAVAILABLE"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "ON"
+        scalar_value: {
+            int32_t: 10
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SapConnectRsp"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "SUCCESS"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "CONNECT_FAILURE"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "MSG_SIZE_TOO_LARGE"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "MSG_SIZE_TOO_SMALL"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "CONNECT_OK_CALL_ONGOING"
+        scalar_value: {
+            int32_t: 4
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SapDisconnectType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "GRACEFUL"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "IMMEDIATE"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SapApduType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "APDU"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "APDU7816"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SapResultCode"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "SUCCESS"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "GENERIC_FAILURE"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "CARD_NOT_ACCESSSIBLE"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "CARD_ALREADY_POWERED_OFF"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "CARD_REMOVED"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "CARD_ALREADY_POWERED_ON"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "DATA_NOT_AVAILABLE"
+        scalar_value: {
+            int32_t: 6
+        }
+        enumerator: "NOT_SUPPORTED"
+        scalar_value: {
+            int32_t: 7
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SapStatus"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "UNKNOWN_ERROR"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "CARD_RESET"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "CARD_NOT_ACCESSIBLE"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "CARD_REMOVED"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "CARD_INSERTED"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "RECOVERED"
+        scalar_value: {
+            int32_t: 5
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SapTransferProtocol"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "T0"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "T1"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CallState"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "ACTIVE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "HOLDING"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "DIALING"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "ALERTING"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "INCOMING"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "WAITING"
+        scalar_value: {
+            int32_t: 5
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::UusType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "TYPE1_IMPLICIT"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "TYPE1_REQUIRED"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "TYPE1_NOT_REQUIRED"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "TYPE2_REQUIRED"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "TYPE2_NOT_REQUIRED"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "TYPE3_REQUIRED"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "TYPE3_NOT_REQUIRED"
+        scalar_value: {
+            int32_t: 6
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::UusDcs"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "USP"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "OSIHLP"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "X244"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "RMCF"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "IA5C"
+        scalar_value: {
+            int32_t: 4
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CallPresentation"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "ALLOWED"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "RESTRICTED"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "UNKNOWN"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "PAYPHONE"
+        scalar_value: {
+            int32_t: 3
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::Clir"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "DEFAULT"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "INVOCATION"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "SUPPRESSION"
+        scalar_value: {
+            int32_t: 2
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::LastCallFailCause"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "UNOBTAINABLE_NUMBER"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "NO_ROUTE_TO_DESTINATION"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "CHANNEL_UNACCEPTABLE"
+        scalar_value: {
+            int32_t: 6
+        }
+        enumerator: "OPERATOR_DETERMINED_BARRING"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "NORMAL"
+        scalar_value: {
+            int32_t: 16
+        }
+        enumerator: "BUSY"
+        scalar_value: {
+            int32_t: 17
+        }
+        enumerator: "NO_USER_RESPONDING"
+        scalar_value: {
+            int32_t: 18
+        }
+        enumerator: "NO_ANSWER_FROM_USER"
+        scalar_value: {
+            int32_t: 19
+        }
+        enumerator: "CALL_REJECTED"
+        scalar_value: {
+            int32_t: 21
+        }
+        enumerator: "NUMBER_CHANGED"
+        scalar_value: {
+            int32_t: 22
+        }
+        enumerator: "PREEMPTION"
+        scalar_value: {
+            int32_t: 25
+        }
+        enumerator: "DESTINATION_OUT_OF_ORDER"
+        scalar_value: {
+            int32_t: 27
+        }
+        enumerator: "INVALID_NUMBER_FORMAT"
+        scalar_value: {
+            int32_t: 28
+        }
+        enumerator: "FACILITY_REJECTED"
+        scalar_value: {
+            int32_t: 29
+        }
+        enumerator: "RESP_TO_STATUS_ENQUIRY"
+        scalar_value: {
+            int32_t: 30
+        }
+        enumerator: "NORMAL_UNSPECIFIED"
+        scalar_value: {
+            int32_t: 31
+        }
+        enumerator: "CONGESTION"
+        scalar_value: {
+            int32_t: 34
+        }
+        enumerator: "NETWORK_OUT_OF_ORDER"
+        scalar_value: {
+            int32_t: 38
+        }
+        enumerator: "TEMPORARY_FAILURE"
+        scalar_value: {
+            int32_t: 41
+        }
+        enumerator: "SWITCHING_EQUIPMENT_CONGESTION"
+        scalar_value: {
+            int32_t: 42
+        }
+        enumerator: "ACCESS_INFORMATION_DISCARDED"
+        scalar_value: {
+            int32_t: 43
+        }
+        enumerator: "REQUESTED_CIRCUIT_OR_CHANNEL_NOT_AVAILABLE"
+        scalar_value: {
+            int32_t: 44
+        }
+        enumerator: "RESOURCES_UNAVAILABLE_OR_UNSPECIFIED"
+        scalar_value: {
+            int32_t: 47
+        }
+        enumerator: "QOS_UNAVAILABLE"
+        scalar_value: {
+            int32_t: 49
+        }
+        enumerator: "REQUESTED_FACILITY_NOT_SUBSCRIBED"
+        scalar_value: {
+            int32_t: 50
+        }
+        enumerator: "INCOMING_CALLS_BARRED_WITHIN_CUG"
+        scalar_value: {
+            int32_t: 55
+        }
+        enumerator: "BEARER_CAPABILITY_NOT_AUTHORIZED"
+        scalar_value: {
+            int32_t: 57
+        }
+        enumerator: "BEARER_CAPABILITY_UNAVAILABLE"
+        scalar_value: {
+            int32_t: 58
+        }
+        enumerator: "SERVICE_OPTION_NOT_AVAILABLE"
+        scalar_value: {
+            int32_t: 63
+        }
+        enumerator: "BEARER_SERVICE_NOT_IMPLEMENTED"
+        scalar_value: {
+            int32_t: 65
+        }
+        enumerator: "ACM_LIMIT_EXCEEDED"
+        scalar_value: {
+            int32_t: 68
+        }
+        enumerator: "REQUESTED_FACILITY_NOT_IMPLEMENTED"
+        scalar_value: {
+            int32_t: 69
+        }
+        enumerator: "ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE"
+        scalar_value: {
+            int32_t: 70
+        }
+        enumerator: "SERVICE_OR_OPTION_NOT_IMPLEMENTED"
+        scalar_value: {
+            int32_t: 79
+        }
+        enumerator: "INVALID_TRANSACTION_IDENTIFIER"
+        scalar_value: {
+            int32_t: 81
+        }
+        enumerator: "USER_NOT_MEMBER_OF_CUG"
+        scalar_value: {
+            int32_t: 87
+        }
+        enumerator: "INCOMPATIBLE_DESTINATION"
+        scalar_value: {
+            int32_t: 88
+        }
+        enumerator: "INVALID_TRANSIT_NW_SELECTION"
+        scalar_value: {
+            int32_t: 91
+        }
+        enumerator: "SEMANTICALLY_INCORRECT_MESSAGE"
+        scalar_value: {
+            int32_t: 95
+        }
+        enumerator: "INVALID_MANDATORY_INFORMATION"
+        scalar_value: {
+            int32_t: 96
+        }
+        enumerator: "MESSAGE_TYPE_NON_IMPLEMENTED"
+        scalar_value: {
+            int32_t: 97
+        }
+        enumerator: "MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE"
+        scalar_value: {
+            int32_t: 98
+        }
+        enumerator: "INFORMATION_ELEMENT_NON_EXISTENT"
+        scalar_value: {
+            int32_t: 99
+        }
+        enumerator: "CONDITIONAL_IE_ERROR"
+        scalar_value: {
+            int32_t: 100
+        }
+        enumerator: "MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE"
+        scalar_value: {
+            int32_t: 101
+        }
+        enumerator: "RECOVERY_ON_TIMER_EXPIRED"
+        scalar_value: {
+            int32_t: 102
+        }
+        enumerator: "PROTOCOL_ERROR_UNSPECIFIED"
+        scalar_value: {
+            int32_t: 111
+        }
+        enumerator: "INTERWORKING_UNSPECIFIED"
+        scalar_value: {
+            int32_t: 127
+        }
+        enumerator: "CALL_BARRED"
+        scalar_value: {
+            int32_t: 240
+        }
+        enumerator: "FDN_BLOCKED"
+        scalar_value: {
+            int32_t: 241
+        }
+        enumerator: "IMSI_UNKNOWN_IN_VLR"
+        scalar_value: {
+            int32_t: 242
+        }
+        enumerator: "IMEI_NOT_ACCEPTED"
+        scalar_value: {
+            int32_t: 243
+        }
+        enumerator: "DIAL_MODIFIED_TO_USSD"
+        scalar_value: {
+            int32_t: 244
+        }
+        enumerator: "DIAL_MODIFIED_TO_SS"
+        scalar_value: {
+            int32_t: 245
+        }
+        enumerator: "DIAL_MODIFIED_TO_DIAL"
+        scalar_value: {
+            int32_t: 246
+        }
+        enumerator: "CDMA_LOCKED_UNTIL_POWER_CYCLE"
+        scalar_value: {
+            int32_t: 1000
+        }
+        enumerator: "CDMA_DROP"
+        scalar_value: {
+            int32_t: 1001
+        }
+        enumerator: "CDMA_INTERCEPT"
+        scalar_value: {
+            int32_t: 1002
+        }
+        enumerator: "CDMA_REORDER"
+        scalar_value: {
+            int32_t: 1003
+        }
+        enumerator: "CDMA_SO_REJECT"
+        scalar_value: {
+            int32_t: 1004
+        }
+        enumerator: "CDMA_RETRY_ORDER"
+        scalar_value: {
+            int32_t: 1005
+        }
+        enumerator: "CDMA_ACCESS_FAILURE"
+        scalar_value: {
+            int32_t: 1006
+        }
+        enumerator: "CDMA_PREEMPTED"
+        scalar_value: {
+            int32_t: 1007
+        }
+        enumerator: "CDMA_NOT_EMERGENCY"
+        scalar_value: {
+            int32_t: 1008
+        }
+        enumerator: "CDMA_ACCESS_BLOCKED"
+        scalar_value: {
+            int32_t: 1009
+        }
+        enumerator: "ERROR_UNSPECIFIED"
+        scalar_value: {
+            int32_t: 65535
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::DataCallFailCause"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "NONE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "OPERATOR_BARRED"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "NAS_SIGNALLING"
+        scalar_value: {
+            int32_t: 14
+        }
+        enumerator: "INSUFFICIENT_RESOURCES"
+        scalar_value: {
+            int32_t: 26
+        }
+        enumerator: "MISSING_UKNOWN_APN"
+        scalar_value: {
+            int32_t: 27
+        }
+        enumerator: "UNKNOWN_PDP_ADDRESS_TYPE"
+        scalar_value: {
+            int32_t: 28
+        }
+        enumerator: "USER_AUTHENTICATION"
+        scalar_value: {
+            int32_t: 29
+        }
+        enumerator: "ACTIVATION_REJECT_GGSN"
+        scalar_value: {
+            int32_t: 30
+        }
+        enumerator: "ACTIVATION_REJECT_UNSPECIFIED"
+        scalar_value: {
+            int32_t: 31
+        }
+        enumerator: "SERVICE_OPTION_NOT_SUPPORTED"
+        scalar_value: {
+            int32_t: 32
+        }
+        enumerator: "SERVICE_OPTION_NOT_SUBSCRIBED"
+        scalar_value: {
+            int32_t: 33
+        }
+        enumerator: "SERVICE_OPTION_OUT_OF_ORDER"
+        scalar_value: {
+            int32_t: 34
+        }
+        enumerator: "NSAPI_IN_USE"
+        scalar_value: {
+            int32_t: 35
+        }
+        enumerator: "REGULAR_DEACTIVATION"
+        scalar_value: {
+            int32_t: 36
+        }
+        enumerator: "QOS_NOT_ACCEPTED"
+        scalar_value: {
+            int32_t: 37
+        }
+        enumerator: "NETWORK_FAILURE"
+        scalar_value: {
+            int32_t: 38
+        }
+        enumerator: "UMTS_REACTIVATION_REQ"
+        scalar_value: {
+            int32_t: 39
+        }
+        enumerator: "FEATURE_NOT_SUPP"
+        scalar_value: {
+            int32_t: 40
+        }
+        enumerator: "TFT_SEMANTIC_ERROR"
+        scalar_value: {
+            int32_t: 41
+        }
+        enumerator: "TFT_SYTAX_ERROR"
+        scalar_value: {
+            int32_t: 42
+        }
+        enumerator: "UNKNOWN_PDP_CONTEXT"
+        scalar_value: {
+            int32_t: 43
+        }
+        enumerator: "FILTER_SEMANTIC_ERROR"
+        scalar_value: {
+            int32_t: 44
+        }
+        enumerator: "FILTER_SYTAX_ERROR"
+        scalar_value: {
+            int32_t: 45
+        }
+        enumerator: "PDP_WITHOUT_ACTIVE_TFT"
+        scalar_value: {
+            int32_t: 46
+        }
+        enumerator: "ONLY_IPV4_ALLOWED"
+        scalar_value: {
+            int32_t: 50
+        }
+        enumerator: "ONLY_IPV6_ALLOWED"
+        scalar_value: {
+            int32_t: 51
+        }
+        enumerator: "ONLY_SINGLE_BEARER_ALLOWED"
+        scalar_value: {
+            int32_t: 52
+        }
+        enumerator: "ESM_INFO_NOT_RECEIVED"
+        scalar_value: {
+            int32_t: 53
+        }
+        enumerator: "PDN_CONN_DOES_NOT_EXIST"
+        scalar_value: {
+            int32_t: 54
+        }
+        enumerator: "MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED"
+        scalar_value: {
+            int32_t: 55
+        }
+        enumerator: "MAX_ACTIVE_PDP_CONTEXT_REACHED"
+        scalar_value: {
+            int32_t: 65
+        }
+        enumerator: "UNSUPPORTED_APN_IN_CURRENT_PLMN"
+        scalar_value: {
+            int32_t: 66
+        }
+        enumerator: "INVALID_TRANSACTION_ID"
+        scalar_value: {
+            int32_t: 81
+        }
+        enumerator: "MESSAGE_INCORRECT_SEMANTIC"
+        scalar_value: {
+            int32_t: 95
+        }
+        enumerator: "INVALID_MANDATORY_INFO"
+        scalar_value: {
+            int32_t: 96
+        }
+        enumerator: "MESSAGE_TYPE_UNSUPPORTED"
+        scalar_value: {
+            int32_t: 97
+        }
+        enumerator: "MSG_TYPE_NONCOMPATIBLE_STATE"
+        scalar_value: {
+            int32_t: 98
+        }
+        enumerator: "UNKNOWN_INFO_ELEMENT"
+        scalar_value: {
+            int32_t: 99
+        }
+        enumerator: "CONDITIONAL_IE_ERROR"
+        scalar_value: {
+            int32_t: 100
+        }
+        enumerator: "MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE"
+        scalar_value: {
+            int32_t: 101
+        }
+        enumerator: "PROTOCOL_ERRORS"
+        scalar_value: {
+            int32_t: 111
+        }
+        enumerator: "APN_TYPE_CONFLICT"
+        scalar_value: {
+            int32_t: 112
+        }
+        enumerator: "INVALID_PCSCF_ADDR"
+        scalar_value: {
+            int32_t: 113
+        }
+        enumerator: "INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN"
+        scalar_value: {
+            int32_t: 114
+        }
+        enumerator: "EMM_ACCESS_BARRED"
+        scalar_value: {
+            int32_t: 115
+        }
+        enumerator: "EMERGENCY_IFACE_ONLY"
+        scalar_value: {
+            int32_t: 116
+        }
+        enumerator: "IFACE_MISMATCH"
+        scalar_value: {
+            int32_t: 117
+        }
+        enumerator: "COMPANION_IFACE_IN_USE"
+        scalar_value: {
+            int32_t: 118
+        }
+        enumerator: "IP_ADDRESS_MISMATCH"
+        scalar_value: {
+            int32_t: 119
+        }
+        enumerator: "IFACE_AND_POL_FAMILY_MISMATCH"
+        scalar_value: {
+            int32_t: 120
+        }
+        enumerator: "EMM_ACCESS_BARRED_INFINITE_RETRY"
+        scalar_value: {
+            int32_t: 121
+        }
+        enumerator: "AUTH_FAILURE_ON_EMERGENCY_CALL"
+        scalar_value: {
+            int32_t: 122
+        }
+        enumerator: "OEM_DCFAILCAUSE_1"
+        scalar_value: {
+            int32_t: 4097
+        }
+        enumerator: "OEM_DCFAILCAUSE_2"
+        scalar_value: {
+            int32_t: 4098
+        }
+        enumerator: "OEM_DCFAILCAUSE_3"
+        scalar_value: {
+            int32_t: 4099
+        }
+        enumerator: "OEM_DCFAILCAUSE_4"
+        scalar_value: {
+            int32_t: 4100
+        }
+        enumerator: "OEM_DCFAILCAUSE_5"
+        scalar_value: {
+            int32_t: 4101
+        }
+        enumerator: "OEM_DCFAILCAUSE_6"
+        scalar_value: {
+            int32_t: 4102
+        }
+        enumerator: "OEM_DCFAILCAUSE_7"
+        scalar_value: {
+            int32_t: 4103
+        }
+        enumerator: "OEM_DCFAILCAUSE_8"
+        scalar_value: {
+            int32_t: 4104
+        }
+        enumerator: "OEM_DCFAILCAUSE_9"
+        scalar_value: {
+            int32_t: 4105
+        }
+        enumerator: "OEM_DCFAILCAUSE_10"
+        scalar_value: {
+            int32_t: 4106
+        }
+        enumerator: "OEM_DCFAILCAUSE_11"
+        scalar_value: {
+            int32_t: 4107
+        }
+        enumerator: "OEM_DCFAILCAUSE_12"
+        scalar_value: {
+            int32_t: 4108
+        }
+        enumerator: "OEM_DCFAILCAUSE_13"
+        scalar_value: {
+            int32_t: 4109
+        }
+        enumerator: "OEM_DCFAILCAUSE_14"
+        scalar_value: {
+            int32_t: 4110
+        }
+        enumerator: "OEM_DCFAILCAUSE_15"
+        scalar_value: {
+            int32_t: 4111
+        }
+        enumerator: "VOICE_REGISTRATION_FAIL"
+        scalar_value: {
+            int32_t: -1
+        }
+        enumerator: "DATA_REGISTRATION_FAIL"
+        scalar_value: {
+            int32_t: -2
+        }
+        enumerator: "SIGNAL_LOST"
+        scalar_value: {
+            int32_t: -3
+        }
+        enumerator: "PREF_RADIO_TECH_CHANGED"
+        scalar_value: {
+            int32_t: -4
+        }
+        enumerator: "RADIO_POWER_OFF"
+        scalar_value: {
+            int32_t: -5
+        }
+        enumerator: "TETHERED_CALL_ACTIVE"
+        scalar_value: {
+            int32_t: -6
+        }
+        enumerator: "ERROR_UNSPECIFIED"
+        scalar_value: {
+            int32_t: 65535
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::RegState"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "NOT_REG_MT_NOT_SEARCHING_OP"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "REG_HOME"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "NOT_REG_MT_SEARCHING_OP"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "REG_DENIED"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "UNKNOWN"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "REG_ROAMING"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "NOT_REG_MT_NOT_SEARCHING_OP_EM"
+        scalar_value: {
+            int32_t: 6
+        }
+        enumerator: "NOT_REG_MT_SEARCHING_OP_EM"
+        scalar_value: {
+            int32_t: 7
+        }
+        enumerator: "REG_DENIED_EM"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "UNKNOWN_EM"
+        scalar_value: {
+            int32_t: 9
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::RadioTechnology"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "UNKNOWN"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "GPRS"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "EDGE"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "UMTS"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "IS95A"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "IS95B"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "ONE_X_RTT"
+        scalar_value: {
+            int32_t: 6
+        }
+        enumerator: "EVDO_0"
+        scalar_value: {
+            int32_t: 7
+        }
+        enumerator: "EVDO_A"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "HSDPA"
+        scalar_value: {
+            int32_t: 9
+        }
+        enumerator: "HSUPA"
+        scalar_value: {
+            int32_t: 10
+        }
+        enumerator: "HSPA"
+        scalar_value: {
+            int32_t: 11
+        }
+        enumerator: "EVDO_B"
+        scalar_value: {
+            int32_t: 12
+        }
+        enumerator: "EHRPD"
+        scalar_value: {
+            int32_t: 13
+        }
+        enumerator: "LTE"
+        scalar_value: {
+            int32_t: 14
+        }
+        enumerator: "HSPAP"
+        scalar_value: {
+            int32_t: 15
+        }
+        enumerator: "GSM"
+        scalar_value: {
+            int32_t: 16
+        }
+        enumerator: "TD_SCDMA"
+        scalar_value: {
+            int32_t: 17
+        }
+        enumerator: "IWLAN"
+        scalar_value: {
+            int32_t: 18
+        }
+        enumerator: "LTE_CA"
+        scalar_value: {
+            int32_t: 19
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::DataProfile"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "DEFAULT"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "TETHERED"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "IMS"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "FOTA"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "CBS"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "OEM_BASE"
+        scalar_value: {
+            int32_t: 1000
+        }
+        enumerator: "INVALID"
+        scalar_value: {
+            int32_t: -1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SmsAcknowledgeFailCause"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "MEMORY_CAPAPCITY_EXCEEDED"
+        scalar_value: {
+            int32_t: 211
+        }
+        enumerator: "UNSPECIFIED_ERROR"
+        scalar_value: {
+            int32_t: 255
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CallForwardInfoStatus"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "DISABLE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "ENABLE"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "INTERROGATE"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "REGISTRATION"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "ERASURE"
+        scalar_value: {
+            int32_t: 4
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::ClipStatus"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "CLIP_PROVISIONED"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "CLIP_UNPROVISIONED"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "UNKOWN"
+        scalar_value: {
+            int32_t: 2
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SmsWriteArgsStatus"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "REC_UNREAD"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "REC_READ"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "STO_UNSENT"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "STO_SENT"
+        scalar_value: {
+            int32_t: 3
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::RadioBandMode"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "BAND_MODE_UNSPECIFIED"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "BAND_MODE_EURO"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "BAND_MODE_USA"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "BAND_MODE_JPN"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "BAND_MODE_AUS"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "BAND_MODE_AUS_2"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "BAND_MODE_CELL_800"
+        scalar_value: {
+            int32_t: 6
+        }
+        enumerator: "BAND_MODE_PCS"
+        scalar_value: {
+            int32_t: 7
+        }
+        enumerator: "BAND_MODE_JTACS"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "BAND_MODE_KOREA_PCS"
+        scalar_value: {
+            int32_t: 9
+        }
+        enumerator: "BAND_MODE_5_450M"
+        scalar_value: {
+            int32_t: 10
+        }
+        enumerator: "BAND_MODE_IMT2000"
+        scalar_value: {
+            int32_t: 11
+        }
+        enumerator: "BAND_MODE_7_700M_2"
+        scalar_value: {
+            int32_t: 12
+        }
+        enumerator: "BAND_MODE_8_1800M"
+        scalar_value: {
+            int32_t: 13
+        }
+        enumerator: "BAND_MODE_9_900M"
+        scalar_value: {
+            int32_t: 14
+        }
+        enumerator: "BAND_MODE_10_800M_2"
+        scalar_value: {
+            int32_t: 15
+        }
+        enumerator: "BAND_MODE_EURO_PAMR_400M"
+        scalar_value: {
+            int32_t: 16
+        }
+        enumerator: "BAND_MODE_AWS"
+        scalar_value: {
+            int32_t: 17
+        }
+        enumerator: "BAND_MODE_USA_2500M"
+        scalar_value: {
+            int32_t: 18
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::OperatorStatus"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "UNKNOWN"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "AVAILABLE"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "CURRENT"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "FORBIDDEN"
+        scalar_value: {
+            int32_t: 3
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::PreferredNetworkType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "GSM_WCDMA"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "GSM_ONLY"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "WCDMA"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "GSM_WCDMA_AUTO"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "CDMA_EVDO_AUTO"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "CDMA_ONLY"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "EVDO_ONLY"
+        scalar_value: {
+            int32_t: 6
+        }
+        enumerator: "GSM_WCDMA_CDMA_EVDO_AUTO"
+        scalar_value: {
+            int32_t: 7
+        }
+        enumerator: "LTE_CDMA_EVDO"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "LTE_GSM_WCDMA"
+        scalar_value: {
+            int32_t: 9
+        }
+        enumerator: "LTE_CMDA_EVDO_GSM_WCDMA"
+        scalar_value: {
+            int32_t: 10
+        }
+        enumerator: "LTE_ONLY"
+        scalar_value: {
+            int32_t: 11
+        }
+        enumerator: "LTE_WCDMA"
+        scalar_value: {
+            int32_t: 12
+        }
+        enumerator: "TD_SCDMA_ONLY"
+        scalar_value: {
+            int32_t: 13
+        }
+        enumerator: "TD_SCDMA_WCDMA"
+        scalar_value: {
+            int32_t: 14
+        }
+        enumerator: "TD_SCDMA_LTE"
+        scalar_value: {
+            int32_t: 15
+        }
+        enumerator: "TD_SCDMA_GSM"
+        scalar_value: {
+            int32_t: 16
+        }
+        enumerator: "TD_SCDMA_GSM_LTE"
+        scalar_value: {
+            int32_t: 17
+        }
+        enumerator: "TD_SCDMA_GSM_WCDMA"
+        scalar_value: {
+            int32_t: 18
+        }
+        enumerator: "TD_SCDMA_WCDMA_LTE"
+        scalar_value: {
+            int32_t: 19
+        }
+        enumerator: "TD_SCDMA_GSM_WCDMA_LTE"
+        scalar_value: {
+            int32_t: 20
+        }
+        enumerator: "TD_SCDMA_GSM_WCDMA_CDMA_EVDO_AUTO"
+        scalar_value: {
+            int32_t: 21
+        }
+        enumerator: "TD_SCDMA_LTE_CDMA_EVDO_GSM_WCDMA"
+        scalar_value: {
+            int32_t: 22
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaSubscriptionSource"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "RUIM_SIM"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "NV"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaRoamingType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "HOME_NETWORK"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "AFFILIATED_ROAM"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "ANY_ROAM"
+        scalar_value: {
+            int32_t: 2
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::TtyMode"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "OFF"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "FULL"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "HCO"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "VCO"
+        scalar_value: {
+            int32_t: 3
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::NvItem"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "CDMA_MEID"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "CDMA_MIN"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "CDMA_MDN"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "CDMA_ACCOLC"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "DEVICE_MSL"
+        scalar_value: {
+            int32_t: 11
+        }
+        enumerator: "RTN_RECONDITIONED_STATUS"
+        scalar_value: {
+            int32_t: 12
+        }
+        enumerator: "RTN_ACTIVATION_DATE"
+        scalar_value: {
+            int32_t: 13
+        }
+        enumerator: "RTN_LIFE_TIMER"
+        scalar_value: {
+            int32_t: 14
+        }
+        enumerator: "RTN_LIFE_CALLS"
+        scalar_value: {
+            int32_t: 15
+        }
+        enumerator: "RTN_LIFE_DATA_TX"
+        scalar_value: {
+            int32_t: 16
+        }
+        enumerator: "RTN_LIFE_DATA_RX"
+        scalar_value: {
+            int32_t: 17
+        }
+        enumerator: "OMADM_HFA_LEVEL"
+        scalar_value: {
+            int32_t: 18
+        }
+        enumerator: "MIP_PROFILE_NAI"
+        scalar_value: {
+            int32_t: 31
+        }
+        enumerator: "MIP_PROFILE_HOME_ADDRESS"
+        scalar_value: {
+            int32_t: 32
+        }
+        enumerator: "MIP_PROFILE_AAA_AUTH"
+        scalar_value: {
+            int32_t: 33
+        }
+        enumerator: "MIP_PROFILE_HA_AUTH"
+        scalar_value: {
+            int32_t: 34
+        }
+        enumerator: "MIP_PROFILE_PRI_HA_ADDR"
+        scalar_value: {
+            int32_t: 35
+        }
+        enumerator: "MIP_PROFILE_SEC_HA_ADDR"
+        scalar_value: {
+            int32_t: 36
+        }
+        enumerator: "MIP_PROFILE_REV_TUN_PREF"
+        scalar_value: {
+            int32_t: 37
+        }
+        enumerator: "MIP_PROFILE_HA_SPI"
+        scalar_value: {
+            int32_t: 38
+        }
+        enumerator: "MIP_PROFILE_AAA_SPI"
+        scalar_value: {
+            int32_t: 39
+        }
+        enumerator: "MIP_PROFILE_MN_HA_SS"
+        scalar_value: {
+            int32_t: 40
+        }
+        enumerator: "MIP_PROFILE_MN_AAA_SS"
+        scalar_value: {
+            int32_t: 41
+        }
+        enumerator: "CDMA_PRL_VERSION"
+        scalar_value: {
+            int32_t: 51
+        }
+        enumerator: "CDMA_BC10"
+        scalar_value: {
+            int32_t: 52
+        }
+        enumerator: "CDMA_BC14"
+        scalar_value: {
+            int32_t: 53
+        }
+        enumerator: "CDMA_SO68"
+        scalar_value: {
+            int32_t: 54
+        }
+        enumerator: "CDMA_SO73_COP0"
+        scalar_value: {
+            int32_t: 55
+        }
+        enumerator: "CDMA_SO73_COP1TO7"
+        scalar_value: {
+            int32_t: 56
+        }
+        enumerator: "CDMA_1X_ADVANCED_ENABLED"
+        scalar_value: {
+            int32_t: 57
+        }
+        enumerator: "CDMA_EHRPD_ENABLED"
+        scalar_value: {
+            int32_t: 58
+        }
+        enumerator: "CDMA_EHRPD_FORCED"
+        scalar_value: {
+            int32_t: 59
+        }
+        enumerator: "LTE_BAND_ENABLE_25"
+        scalar_value: {
+            int32_t: 71
+        }
+        enumerator: "LTE_BAND_ENABLE_26"
+        scalar_value: {
+            int32_t: 72
+        }
+        enumerator: "LTE_BAND_ENABLE_41"
+        scalar_value: {
+            int32_t: 73
+        }
+        enumerator: "LTE_SCAN_PRIORITY_25"
+        scalar_value: {
+            int32_t: 74
+        }
+        enumerator: "LTE_SCAN_PRIORITY_26"
+        scalar_value: {
+            int32_t: 75
+        }
+        enumerator: "LTE_SCAN_PRIORITY_41"
+        scalar_value: {
+            int32_t: 76
+        }
+        enumerator: "LTE_HIDDEN_BAND_PRIORITY_25"
+        scalar_value: {
+            int32_t: 77
+        }
+        enumerator: "LTE_HIDDEN_BAND_PRIORITY_26"
+        scalar_value: {
+            int32_t: 78
+        }
+        enumerator: "LTE_HIDDEN_BAND_PRIORITY_41"
+        scalar_value: {
+            int32_t: 79
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::ResetNvType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "RELOAD"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "ERASE"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "FACORY_RESET"
+        scalar_value: {
+            int32_t: 2
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::HardwareConfigType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "MODEM"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "SIM"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::HardwareConfigState"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "ENABLED"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "STANDBY"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "DISABLED"
+        scalar_value: {
+            int32_t: 2
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::LceStatus"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "NOT_SUPPORTED"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "STOPPED"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "ACTIVE"
+        scalar_value: {
+            int32_t: 2
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CarrierMatchType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "ALL"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "SPN"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "IMSI_PREFIX"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "GID1"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "GID2"
+        scalar_value: {
+            int32_t: 4
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::NeighboringCell"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "cid"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "rssi"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaSmsDigitMode"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "FOUR_BIT"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "EIGHT_BIT"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaSmsNumberMode"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "NOT_DATA_NETWORK"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "DATA_NETWORK"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaSmsNumberType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "UNKNOWN"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "INTERNATIONAL_OR_DATA_IP"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "NATIONAL_OR_INTERNET_MAIL"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "NETWORK"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "SUBSCRIBER"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "ALPHANUMERIC"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "ABBREVIATED"
+        scalar_value: {
+            int32_t: 6
+        }
+        enumerator: "RESERVED_7"
+        scalar_value: {
+            int32_t: 7
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaSmsNumberPlan"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "UNKNOWN"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "TELEPHONY"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "RESERVED_2"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "DATA"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "TELEX"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "RESERVED_5"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "RESERVED_6"
+        scalar_value: {
+            int32_t: 6
+        }
+        enumerator: "RESERVED_7"
+        scalar_value: {
+            int32_t: 7
+        }
+        enumerator: "RESERVED_8"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "PRIVATE"
+        scalar_value: {
+            int32_t: 9
+        }
+        enumerator: "RESERVED_10"
+        scalar_value: {
+            int32_t: 10
+        }
+        enumerator: "RESERVED_11"
+        scalar_value: {
+            int32_t: 11
+        }
+        enumerator: "RESERVED_12"
+        scalar_value: {
+            int32_t: 12
+        }
+        enumerator: "RESERVED_13"
+        scalar_value: {
+            int32_t: 13
+        }
+        enumerator: "RESERVED_14"
+        scalar_value: {
+            int32_t: 14
+        }
+        enumerator: "RESERVED_15"
+        scalar_value: {
+            int32_t: 15
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaSmsSubaddressType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "NSAP"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "USER_SPECIFIED"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaSmsErrorClass"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "NO_ERROR"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "ERROR"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaSmsWriteArgsStatus"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "REC_UNREAD"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "REC_READ"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "STO_UNSENT"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "STO_SENT"
+        scalar_value: {
+            int32_t: 3
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CellInfoType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "GSM"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "CDMA"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "LTE"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "WCDMA"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "TD_SCDMA"
+        scalar_value: {
+            int32_t: 4
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::TimeStampType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "UNKNOWN"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "ANTENNA"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "MODEM"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "OEM_RIL"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "JAVA_RIL"
+        scalar_value: {
+            int32_t: 4
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::ApnAuthType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "NO_PAP_NO_CHAP"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "PAP_NO_CHAP"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "NO_PAP_CHAP"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "PAP_CHAP"
+        scalar_value: {
+            int32_t: 3
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::RadioTechnologyFamily"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "THREE_GPP"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "THREE_GPP2"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::RadioCapabilityPhase"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "CONFIGURED"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "START"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "APPLY"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "UNSOL_RSP"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "FINISH"
+        scalar_value: {
+            int32_t: 4
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::RadioCapabilityStatus"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "NONE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "SUCCESS"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "FAIL"
+        scalar_value: {
+            int32_t: 2
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::RadioAccessFamily"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "UNKNOWN"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "GPRS"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "EDGE"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "UMTS"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "IS95A"
+        scalar_value: {
+            int32_t: 16
+        }
+        enumerator: "IS95B"
+        scalar_value: {
+            int32_t: 32
+        }
+        enumerator: "ONE_X_RTT"
+        scalar_value: {
+            int32_t: 64
+        }
+        enumerator: "EVDO_0"
+        scalar_value: {
+            int32_t: 128
+        }
+        enumerator: "EVDO_A"
+        scalar_value: {
+            int32_t: 256
+        }
+        enumerator: "HSDPA"
+        scalar_value: {
+            int32_t: 512
+        }
+        enumerator: "HSUPA"
+        scalar_value: {
+            int32_t: 1024
+        }
+        enumerator: "HSPA"
+        scalar_value: {
+            int32_t: 2048
+        }
+        enumerator: "EVDO_B"
+        scalar_value: {
+            int32_t: 4096
+        }
+        enumerator: "EHRPD"
+        scalar_value: {
+            int32_t: 8192
+        }
+        enumerator: "LTE"
+        scalar_value: {
+            int32_t: 16384
+        }
+        enumerator: "HSPAP"
+        scalar_value: {
+            int32_t: 32768
+        }
+        enumerator: "GSM"
+        scalar_value: {
+            int32_t: 65536
+        }
+        enumerator: "TD_SCDMA"
+        scalar_value: {
+            int32_t: 131072
+        }
+        enumerator: "LTE_CA"
+        scalar_value: {
+            int32_t: 524288
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::UssdModeType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "NOTIFY"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "REQUEST"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "NW_RELEASE"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "LOCAL_CLIENT"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "NOT_SUPPORTED"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "NW_TIMEOUT"
+        scalar_value: {
+            int32_t: 5
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SimRefreshType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "SIM_FILE_UPDATE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "SIM_INIT"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "SIM_RESET"
+        scalar_value: {
+            int32_t: 2
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SrvccState"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "HANDOVER_STARTED"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "HANDOVER_COMPLETED"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "HANDOVER_FAILED"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "HANDOVER_CANCELED"
+        scalar_value: {
+            int32_t: 3
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::UiccSubActStatus"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "DEACTIVATE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "ACTIVATE"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SubscriptionType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "SUBSCRIPTION_1"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "SUBSCRIPTION_2"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "SUBSCRIPTION_3"
+        scalar_value: {
+            int32_t: 2
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::DataProfileInfoType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "COMMON"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "THREE_GPP"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "THREE_GPP2"
+        scalar_value: {
+            int32_t: 2
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::PhoneRestrictedState"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "NONE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "CS_EMERGENCY"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "CS_NORMAL"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "CS_ALL"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "PS_ALL"
+        scalar_value: {
+            int32_t: 16
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaCallWaitingNumberPresentation"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "ALLOWED"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "RESTRICTED"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "UNKNOWN"
+        scalar_value: {
+            int32_t: 2
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaCallWaitingNumberType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "UNKNOWN"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "INTERNATIONAL"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "NATIONAL"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "NETWORK_SPECIFIC"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "SUBSCRIBER"
+        scalar_value: {
+            int32_t: 4
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaCallWaitingNumberPlan"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "UNKNOWN"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "ISDN"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "DATA"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "TELEX"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "NATIONAL"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "PRIVATE"
+        scalar_value: {
+            int32_t: 9
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaOtaProvisionStatus"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "SPL_UNLOCKED"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "SPC_RETRIES_EXCEEDED"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "A_KEY_EXCHANGED"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "SSD_UPDATED"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "NAM_DOWNLOADED"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "MDN_DOWNLOADED"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "IMSI_DOWNLOADED"
+        scalar_value: {
+            int32_t: 6
+        }
+        enumerator: "PRL_DOWNLOADED"
+        scalar_value: {
+            int32_t: 7
+        }
+        enumerator: "COMMITTED"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "OTAPA_STARTED"
+        scalar_value: {
+            int32_t: 9
+        }
+        enumerator: "OTAPA_STOPPED"
+        scalar_value: {
+            int32_t: 10
+        }
+        enumerator: "OTAPA_ABORTED"
+        scalar_value: {
+            int32_t: 11
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaInfoRecName"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "DISPLAY"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "CALLED_PARTY_NUMBER"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "CALLING_PARTY_NUMBER"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "CONNECTED_NUMBER"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "SIGNAL"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "REDIRECTING_NUMBER"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "LINE_CONTROL"
+        scalar_value: {
+            int32_t: 6
+        }
+        enumerator: "EXTENDED_DISPLAY"
+        scalar_value: {
+            int32_t: 7
+        }
+        enumerator: "T53_CLIR"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "T53_RELEASE"
+        scalar_value: {
+            int32_t: 9
+        }
+        enumerator: "T53_AUDIO_CONTROL"
+        scalar_value: {
+            int32_t: 10
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaRedirectingReason"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "UNKNOWN"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "CALL_FORWARDING_BUSY"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "CALL_FORWARDING_NO_REPLY"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "CALLED_DTE_OUT_OF_ORDER"
+        scalar_value: {
+            int32_t: 9
+        }
+        enumerator: "CALL_FORWARDING_BY_THE_CALLED_DTE"
+        scalar_value: {
+            int32_t: 10
+        }
+        enumerator: "CALL_FORWARDING_UNCONDITIONAL"
+        scalar_value: {
+            int32_t: 15
+        }
+        enumerator: "RESERVED"
+        scalar_value: {
+            int32_t: 16
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SsServiceType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "CFU"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "CF_BUSY"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "CF_NO_REPLY"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "CF_NOT_REACHABLE"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "CF_ALL"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "CF_ALL_CONDITIONAL"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "CLIP"
+        scalar_value: {
+            int32_t: 6
+        }
+        enumerator: "CLIR"
+        scalar_value: {
+            int32_t: 7
+        }
+        enumerator: "COLP"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "COLR"
+        scalar_value: {
+            int32_t: 9
+        }
+        enumerator: "WAIT"
+        scalar_value: {
+            int32_t: 10
+        }
+        enumerator: "BAOC"
+        scalar_value: {
+            int32_t: 11
+        }
+        enumerator: "BAOIC"
+        scalar_value: {
+            int32_t: 12
+        }
+        enumerator: "BAOIC_EXC_HOME"
+        scalar_value: {
+            int32_t: 13
+        }
+        enumerator: "BAIC"
+        scalar_value: {
+            int32_t: 14
+        }
+        enumerator: "BAIC_ROAMING"
+        scalar_value: {
+            int32_t: 15
+        }
+        enumerator: "ALL_BARRING"
+        scalar_value: {
+            int32_t: 16
+        }
+        enumerator: "OUTGOING_BARRING"
+        scalar_value: {
+            int32_t: 17
+        }
+        enumerator: "INCOMING_BARRING"
+        scalar_value: {
+            int32_t: 18
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SsRequestType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "ACTIVATION"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "DEACTIVATION"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "INTERROGATION"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "REGISTRATION"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "ERASURE"
+        scalar_value: {
+            int32_t: 4
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SsTeleserviceType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "ALL_TELE_AND_BEARER_SERVICES"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "ALL_TELESEVICES"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "TELEPHONY"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "ALL_DATA_TELESERVICES"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "SMS_SERVICES"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "ALL_TELESERVICES_EXCEPT_SMS"
+        scalar_value: {
+            int32_t: 5
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SuppServiceClass"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "NONE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "VOICE"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "DATA"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "FAX"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "SMS"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "DATA_SYNC"
+        scalar_value: {
+            int32_t: 16
+        }
+        enumerator: "DATA_ASYNC"
+        scalar_value: {
+            int32_t: 32
+        }
+        enumerator: "PACKET"
+        scalar_value: {
+            int32_t: 64
+        }
+        enumerator: "PAD"
+        scalar_value: {
+            int32_t: 128
+        }
+        enumerator: "MAX"
+        scalar_value: {
+            int32_t: 128
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::RadioResponseInfo"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "type"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::RadioResponseType"
+    }
+    struct_value: {
+        name: "serial"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "error"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::RadioError"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::AppStatus"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "appType"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::AppType"
+    }
+    struct_value: {
+        name: "appState"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::AppState"
+    }
+    struct_value: {
+        name: "persoSubstate"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::PersoSubstate"
+    }
+    struct_value: {
+        name: "aidPtr"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "appLabelPtr"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "pin1Replaced"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "pin1"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::PinState"
+    }
+    struct_value: {
+        name: "pin2"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::PinState"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CardStatus"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "cardState"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::CardState"
+    }
+    struct_value: {
+        name: "universalPinState"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::PinState"
+    }
+    struct_value: {
+        name: "gsmUmtsSubscriptionAppIndex"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "cdmaSubscriptionAppIndex"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "imsSubscriptionAppIndex"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "applications"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::AppStatus"
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::UusInfo"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "uusType"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::UusType"
+    }
+    struct_value: {
+        name: "uusDcs"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::UusDcs"
+    }
+    struct_value: {
+        name: "uusData"
+        type: TYPE_STRING
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::Call"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "state"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::CallState"
+    }
+    struct_value: {
+        name: "index"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "toa"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "isMpty"
+        type: TYPE_SCALAR
+        scalar_type: "bool_t"
+    }
+    struct_value: {
+        name: "isMT"
+        type: TYPE_SCALAR
+        scalar_type: "bool_t"
+    }
+    struct_value: {
+        name: "als"
+        type: TYPE_SCALAR
+        scalar_type: "uint8_t"
+    }
+    struct_value: {
+        name: "isVoice"
+        type: TYPE_SCALAR
+        scalar_type: "bool_t"
+    }
+    struct_value: {
+        name: "isVoicePrivacy"
+        type: TYPE_SCALAR
+        scalar_type: "bool_t"
+    }
+    struct_value: {
+        name: "number"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "numberPresentation"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::CallPresentation"
+    }
+    struct_value: {
+        name: "name"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "namePresentation"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::CallPresentation"
+    }
+    struct_value: {
+        name: "uusInfo"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::UusInfo"
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::Dial"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "address"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "clir"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::Clir"
+    }
+    struct_value: {
+        name: "uusInfo"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::UusInfo"
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::LastCallFailCauseInfo"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "causeCode"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::LastCallFailCause"
+    }
+    struct_value: {
+        name: "vendorCause"
+        type: TYPE_STRING
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::GsmSignalStrength"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "signalStrength"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "bitErrorRate"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "timingAdvance"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::WcdmaSignalStrength"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "signalStrength"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "bitErrorRate"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaSignalStrength"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "dbm"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "ecio"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::EvdoSignalStrength"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "dbm"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "ecio"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "signalNoiseRatio"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::LteSignalStrength"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "signalStrength"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "rsrp"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "rsrq"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "rssnr"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "cqi"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "timingAdvance"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::TdScdmaSignalStrength"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "rscp"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SignalStrength"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "gw"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::radio::V1_0::GsmSignalStrength"
+    }
+    struct_value: {
+        name: "cdma"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::radio::V1_0::CdmaSignalStrength"
+    }
+    struct_value: {
+        name: "evdo"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::radio::V1_0::EvdoSignalStrength"
+    }
+    struct_value: {
+        name: "lte"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::radio::V1_0::LteSignalStrength"
+    }
+    struct_value: {
+        name: "tdScdma"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::radio::V1_0::TdScdmaSignalStrength"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SendSmsResult"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "messageRef"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "ackPDU"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "errorCode"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SetupDataCallResult"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "status"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "suggestedRetryTime"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "cid"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "active"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "type"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "ifname"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "addresses"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "dnses"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "gateways"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "pcscf"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "mtu"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::IccIo"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "command"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "fileId"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "path"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "p1"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "p2"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "p3"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "data"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "pin2"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "aid"
+        type: TYPE_STRING
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::IccIoResult"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "sw1"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "sw2"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "simResponse"
+        type: TYPE_STRING
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::VoiceRegStateResult"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "regState"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::RegState"
+    }
+    struct_value: {
+        name: "lac"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "cid"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "rat"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "baseStationId"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "baseStationLatitude"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "baseStationLongitude"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "cssSupported"
+        type: TYPE_SCALAR
+        scalar_type: "bool_t"
+    }
+    struct_value: {
+        name: "systemId"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "networkId"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "roamingIndicator"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "systemIsInPrl"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "defaultRoamingIndicator"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "reasonForDenial"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "psc"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::DataRegStateResult"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "regState"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::RegState"
+    }
+    struct_value: {
+        name: "lac"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "cid"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "rat"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "reasonDataDenied"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "maxDataCalls"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "tac"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "phyCid"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "eci"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "csgid"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "tadv"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CallForwardInfo"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "status"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::CallForwardInfoStatus"
+    }
+    struct_value: {
+        name: "reason"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "serviceClass"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "toa"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "number"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "timeSeconds"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::OperatorInfo"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "alphaLong"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "alphaShort"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "operatorNumeric"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "status"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::OperatorStatus"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SmsWriteArgs"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "status"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::SmsWriteArgsStatus"
+    }
+    struct_value: {
+        name: "pdu"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "smsc"
+        type: TYPE_STRING
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaSmsAddress"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "digitMode"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::CdmaSmsDigitMode"
+    }
+    struct_value: {
+        name: "numberMode"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::CdmaSmsNumberMode"
+    }
+    struct_value: {
+        name: "numberType"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::CdmaSmsNumberType"
+    }
+    struct_value: {
+        name: "numberPlan"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::CdmaSmsNumberPlan"
+    }
+    struct_value: {
+        name: "digits"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaSmsSubaddress"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "subaddressType"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::CdmaSmsSubaddressType"
+    }
+    struct_value: {
+        name: "odd"
+        type: TYPE_SCALAR
+        scalar_type: "bool_t"
+    }
+    struct_value: {
+        name: "digits"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaSmsMessage"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "teleserviceId"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "isServicePresent"
+        type: TYPE_SCALAR
+        scalar_type: "bool_t"
+    }
+    struct_value: {
+        name: "serviceCategory"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "address"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::radio::V1_0::CdmaSmsAddress"
+    }
+    struct_value: {
+        name: "subAddress"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::radio::V1_0::CdmaSmsSubaddress"
+    }
+    struct_value: {
+        name: "bearerData"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaSmsAck"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "errorClass"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::CdmaSmsErrorClass"
+    }
+    struct_value: {
+        name: "smsCauseCode"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaBroadcastSmsConfigInfo"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "serviceCategory"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "language"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "selected"
+        type: TYPE_SCALAR
+        scalar_type: "bool_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaSmsWriteArgs"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "status"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::CdmaSmsWriteArgsStatus"
+    }
+    struct_value: {
+        name: "message"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::radio::V1_0::CdmaSmsMessage"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::GsmBroadcastSmsConfigInfo"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "fromServiceId"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "toServiceId"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "fromCodeScheme"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "toCodeScheme"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "selected"
+        type: TYPE_SCALAR
+        scalar_type: "bool_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CellIdentityGsm"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "mcc"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "mnc"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "lac"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "cid"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "arfcn"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "bsic"
+        type: TYPE_SCALAR
+        scalar_type: "uint8_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CellIdentityWcdma"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "mcc"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "mnc"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "lac"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "cid"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "psc"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "uarfcn"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CellIdentityCdma"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "networkId"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "systemId"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "basestationId"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "longitude"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "latitude"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CellIdentityLte"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "mcc"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "mnc"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "ci"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "pci"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "tac"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "earfcn"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CellIdentityTdscdma"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "mcc"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "mnc"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "lac"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "cid"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "cpid"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CellInfoGsm"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "cellIdentityGsm"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::radio::V1_0::CellIdentityGsm"
+    }
+    struct_value: {
+        name: "signalStrengthGsm"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::radio::V1_0::GsmSignalStrength"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CellInfoWcdma"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "cellIdentityWcdma"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::radio::V1_0::CellIdentityWcdma"
+    }
+    struct_value: {
+        name: "signalStrengthWcdma"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::radio::V1_0::WcdmaSignalStrength"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CellInfoCdma"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "cellIdentityCdma"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::radio::V1_0::CellIdentityCdma"
+    }
+    struct_value: {
+        name: "signalStrengthCdma"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::radio::V1_0::CdmaSignalStrength"
+    }
+    struct_value: {
+        name: "signalStrengthEvdo"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::radio::V1_0::EvdoSignalStrength"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CellInfoLte"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "cellIdentityLte"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::radio::V1_0::CellIdentityLte"
+    }
+    struct_value: {
+        name: "signalStrengthLte"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::radio::V1_0::LteSignalStrength"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CellInfoTdscdma"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "cellIdentityTdscdma"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::radio::V1_0::CellIdentityTdscdma"
+    }
+    struct_value: {
+        name: "signalStrengthTdscdma"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::radio::V1_0::TdScdmaSignalStrength"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CellInfo"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "cellInfoType"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::CellInfoType"
+    }
+    struct_value: {
+        name: "registered"
+        type: TYPE_SCALAR
+        scalar_type: "bool_t"
+    }
+    struct_value: {
+        name: "timeStampType"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::TimeStampType"
+    }
+    struct_value: {
+        name: "timeStamp"
+        type: TYPE_SCALAR
+        scalar_type: "uint64_t"
+    }
+    struct_value: {
+        name: "gsm"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CellInfoGsm"
+        }
+    }
+    struct_value: {
+        name: "cdma"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CellInfoCdma"
+        }
+    }
+    struct_value: {
+        name: "lte"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CellInfoLte"
+        }
+    }
+    struct_value: {
+        name: "wcdma"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CellInfoWcdma"
+        }
+    }
+    struct_value: {
+        name: "tdscdma"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CellInfoTdscdma"
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::GsmSmsMessage"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "smscPdu"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "pdu"
+        type: TYPE_STRING
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::ImsSmsMessage"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "tech"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::RadioTechnologyFamily"
+    }
+    struct_value: {
+        name: "retry"
+        type: TYPE_SCALAR
+        scalar_type: "bool_t"
+    }
+    struct_value: {
+        name: "messageRef"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "cdmaMessage"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CdmaSmsMessage"
+        }
+    }
+    struct_value: {
+        name: "gsmMessage"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::GsmSmsMessage"
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SimApdu"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "sessionId"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "cla"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "instruction"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "p1"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "p2"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "p3"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "data"
+        type: TYPE_STRING
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::NvWriteItem"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "itemId"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::NvItem"
+    }
+    struct_value: {
+        name: "value"
+        type: TYPE_STRING
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SelectUiccSub"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "slot"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "appIndex"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "subType"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::SubscriptionType"
+    }
+    struct_value: {
+        name: "actStatus"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::UiccSubActStatus"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::HardwareConfigModem"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "rilModel"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "rat"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "maxVoice"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "maxData"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "maxStandby"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::HardwareConfigSim"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "modemUuid"
+        type: TYPE_STRING
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::HardwareConfig"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "type"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::HardwareConfigType"
+    }
+    struct_value: {
+        name: "uuid"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "state"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::HardwareConfigState"
+    }
+    struct_value: {
+        name: "modem"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::HardwareConfigModem"
+        }
+    }
+    struct_value: {
+        name: "sim"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::HardwareConfigSim"
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::DataProfileInfo"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "profileId"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "apn"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "protocol"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "authType"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::ApnAuthType"
+    }
+    struct_value: {
+        name: "user"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "password"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "type"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::DataProfileInfoType"
+    }
+    struct_value: {
+        name: "maxConnsTime"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "maxConns"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "waitTime"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "enabled"
+        type: TYPE_SCALAR
+        scalar_type: "bool_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::RadioCapability"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "session"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "phase"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::RadioCapabilityPhase"
+    }
+    struct_value: {
+        name: "raf"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::RadioAccessFamily"
+    }
+    struct_value: {
+        name: "logicalModemUuid"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "status"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::RadioCapabilityStatus"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::LceStatusInfo"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "lceStatus"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::LceStatus"
+    }
+    struct_value: {
+        name: "actualIntervalMs"
+        type: TYPE_SCALAR
+        scalar_type: "uint8_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::LceDataInfo"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "lastHopCapacityKbps"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "confidenceLevel"
+        type: TYPE_SCALAR
+        scalar_type: "uint8_t"
+    }
+    struct_value: {
+        name: "lceSuspended"
+        type: TYPE_SCALAR
+        scalar_type: "bool_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::ActivityStatsInfo"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "sleepModeTimeMs"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "idleModeTimeMs"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "txmModetimeMs"
+        type: TYPE_ARRAY
+        vector_value: {
+            vector_size: 5
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+    }
+    struct_value: {
+        name: "rxModeTimeMs"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::Carrier"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "mcc"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "mnc"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "matchType"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::CarrierMatchType"
+    }
+    struct_value: {
+        name: "matchData"
+        type: TYPE_STRING
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CarrierRestrictions"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "allowedCarriers"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::Carrier"
+        }
+    }
+    struct_value: {
+        name: "excludedCarriers"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::Carrier"
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SuppSvcNotification"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "isMT"
+        type: TYPE_SCALAR
+        scalar_type: "bool_t"
+    }
+    struct_value: {
+        name: "code"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "index"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "type"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "number"
+        type: TYPE_STRING
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SimRefreshResult"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "type"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::SimRefreshType"
+    }
+    struct_value: {
+        name: "efId"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "aid"
+        type: TYPE_STRING
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaSignalInfoRecord"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "isPresent"
+        type: TYPE_SCALAR
+        scalar_type: "bool_t"
+    }
+    struct_value: {
+        name: "signalType"
+        type: TYPE_SCALAR
+        scalar_type: "int8_t"
+    }
+    struct_value: {
+        name: "alertPitch"
+        type: TYPE_SCALAR
+        scalar_type: "int8_t"
+    }
+    struct_value: {
+        name: "signal"
+        type: TYPE_SCALAR
+        scalar_type: "int8_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaCallWaiting"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "number"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "numberPresentation"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::CdmaCallWaitingNumberPresentation"
+    }
+    struct_value: {
+        name: "name"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "signalInfoRecord"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::radio::V1_0::CdmaSignalInfoRecord"
+    }
+    struct_value: {
+        name: "numbertype"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::CdmaCallWaitingNumberType"
+    }
+    struct_value: {
+        name: "numberPlan"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::CdmaCallWaitingNumberPlan"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaDisplayInfoRecord"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "alphaBuf"
+        type: TYPE_STRING
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaNumberInfoRecord"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "number"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "numberType"
+        type: TYPE_SCALAR
+        scalar_type: "uint8_t"
+    }
+    struct_value: {
+        name: "numberPlan"
+        type: TYPE_SCALAR
+        scalar_type: "uint8_t"
+    }
+    struct_value: {
+        name: "pi"
+        type: TYPE_SCALAR
+        scalar_type: "uint8_t"
+    }
+    struct_value: {
+        name: "si"
+        type: TYPE_SCALAR
+        scalar_type: "uint8_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaRedirectingNumberInfoRecord"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "redirectingNumber"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::radio::V1_0::CdmaNumberInfoRecord"
+    }
+    struct_value: {
+        name: "redirectingReason"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::CdmaRedirectingReason"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaLineControlInfoRecord"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "lineCtrlPolarityIncluded"
+        type: TYPE_SCALAR
+        scalar_type: "uint8_t"
+    }
+    struct_value: {
+        name: "lineCtrlToggle"
+        type: TYPE_SCALAR
+        scalar_type: "uint8_t"
+    }
+    struct_value: {
+        name: "lineCtrlReverse"
+        type: TYPE_SCALAR
+        scalar_type: "uint8_t"
+    }
+    struct_value: {
+        name: "lineCtrlPowerDenial"
+        type: TYPE_SCALAR
+        scalar_type: "uint8_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaT53ClirInfoRecord"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "cause"
+        type: TYPE_SCALAR
+        scalar_type: "uint8_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaT53AudioControlInfoRecord"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "upLink"
+        type: TYPE_SCALAR
+        scalar_type: "uint8_t"
+    }
+    struct_value: {
+        name: "downLink"
+        type: TYPE_SCALAR
+        scalar_type: "uint8_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaInformationRecord"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "name"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::CdmaInfoRecName"
+    }
+    struct_value: {
+        name: "display"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CdmaDisplayInfoRecord"
+        }
+    }
+    struct_value: {
+        name: "number"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CdmaNumberInfoRecord"
+        }
+    }
+    struct_value: {
+        name: "signal"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CdmaSignalInfoRecord"
+        }
+    }
+    struct_value: {
+        name: "redir"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CdmaRedirectingNumberInfoRecord"
+        }
+    }
+    struct_value: {
+        name: "lineCtrl"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CdmaLineControlInfoRecord"
+        }
+    }
+    struct_value: {
+        name: "clir"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CdmaT53ClirInfoRecord"
+        }
+    }
+    struct_value: {
+        name: "audioCtrl"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CdmaT53AudioControlInfoRecord"
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CdmaInformationRecords"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "infoRec"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CdmaInformationRecord"
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::CfData"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "cfInfo"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CallForwardInfo"
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::SsInfoData"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "ssInfo"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::StkCcUnsolSsResult"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "serviceType"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::SsServiceType"
+    }
+    struct_value: {
+        name: "requestType"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::SsRequestType"
+    }
+    struct_value: {
+        name: "teleserviceType"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::SsTeleserviceType"
+    }
+    struct_value: {
+        name: "serviceClass"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::SuppServiceClass"
+    }
+    struct_value: {
+        name: "result"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::radio::V1_0::RadioError"
+    }
+    struct_value: {
+        name: "ssInfo"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::SsInfoData"
+        }
+    }
+    struct_value: {
+        name: "cfData"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::radio::V1_0::CfData"
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::radio::V1_0::PcoDataInfo"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "cid"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "bearerProto"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "pcoId"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "contents"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+    }
+}
+
diff --git a/sensors/1.0/vts/functional/sensors_hidl_hal_test.cpp b/sensors/1.0/vts/functional/sensors_hidl_hal_test.cpp
index 8e85b23..17c439e 100644
--- a/sensors/1.0/vts/functional/sensors_hidl_hal_test.cpp
+++ b/sensors/1.0/vts/functional/sensors_hidl_hal_test.cpp
@@ -84,6 +84,10 @@
 
   collectionEnabled = false;
   startPollingThread();
+
+  // In case framework just stopped for test and there is sensor events in the pipe,
+  // wait some time for those events to be cleared to avoid them messing up the test.
+  std::this_thread::sleep_for(std::chrono::seconds(3));
 }
 
 void SensorsHidlEnvironment::TearDown() {
diff --git a/tests/foo/1.0/IFoo.hal b/tests/foo/1.0/IFoo.hal
index fc76c1c..76aefcf 100644
--- a/tests/foo/1.0/IFoo.hal
+++ b/tests/foo/1.0/IFoo.hal
@@ -98,6 +98,29 @@
 
     typedef bitfield<BitField> Mask;
 
+    struct Everything {
+        union U {
+            int8_t number;
+            int8_t[1][2] multidimArray;
+            pointer p;
+            Fumble anotherStruct;
+            bitfield<BitField> bf;
+        } u;
+
+        int8_t number;
+        handle h;
+        fmq_sync<uint8_t> descSync;
+        fmq_unsync<uint8_t> descUnsync;
+        memory mem;
+        pointer p;
+        string s;
+        vec<string> vs;
+        string[2][2] multidimArray;
+        string[3] sArray;
+        Quux anotherStruct;
+        bitfield<BitField> bf;
+    };
+
     doThis(float param);
     doThatAndReturnSomething(int64_t param) generates (int32_t result);
     doQuiteABit(int32_t a, int64_t b, float c, double d) generates (double something);
diff --git a/tv/cec/1.0/vts/functional/vts/testcases/hal/tv_cec/hidl/host/TvCecHidlTest.py b/tv/cec/1.0/vts/functional/vts/testcases/hal/tv_cec/hidl/host/TvCecHidlTest.py
index 977cbcd..5f7aaf1 100644
--- a/tv/cec/1.0/vts/functional/vts/testcases/hal/tv_cec/hidl/host/TvCecHidlTest.py
+++ b/tv/cec/1.0/vts/functional/vts/testcases/hal/tv_cec/hidl/host/TvCecHidlTest.py
@@ -58,32 +58,12 @@
         self.vtypes = self.dut.hal.tv_cec.GetHidlTypeInterface("types")
         logging.info("tv_cec types: %s", self.vtypes)
 
-        message = CompSpecMsg.VariableSpecificationMessage()
-        message.name = "CecMessage"
-        message.type = CompSpecMsg.TYPE_STRUCT
-        initiator = message.struct_value.add()
-        initiator.name = "initiator"
-        initiator.type = CompSpecMsg.TYPE_ENUM
-        initiator.scalar_value.int32_t = self.vtypes.TV
-        destination = message.struct_value.add()
-        destination.name = "destination"
-        destination.type = CompSpecMsg.TYPE_ENUM
-        destination.scalar_value.int32_t = self.vtypes.PLAYBACK_1
-        body = message.struct_value.add()
-        body.name = "body"
-        body.type = CompSpecMsg.TYPE_VECTOR
-        vector1 = body.vector_value.add()
-        vector1.type = CompSpecMsg.TYPE_SCALAR
-        vector1.scalar_type = "uint8_t"
-        vector1.scalar_value.uint8_t = 1
-        vector2 = body.vector_value.add()
-        vector2.type = CompSpecMsg.TYPE_SCALAR
-        vector2.scalar_type = "uint8_t"
-        vector2.scalar_value.uint8_t = 2
-        vector3 = body.vector_value.add()
-        vector3.type = CompSpecMsg.TYPE_SCALAR
-        vector3.scalar_type = "uint8_t"
-        vector3.scalar_value.uint8_t = 3
+        cec_message = {
+            "initiator": self.vtypes.TV,
+            "destination": self.vtypes.PLAYBACK_1,
+            "body": [1, 2, 3]
+        }
+        message = self.vtypes.Py2Pb("CecMessage", cec_message)
         logging.info("message: %s", message)
         result = self.dut.hal.tv_cec.sendMessage(message)
         logging.info('sendMessage result: %s', result)
diff --git a/vehicle/2.0/types.hal b/vehicle/2.0/types.hal
index 52a6ace..bb83c8a 100644
--- a/vehicle/2.0/types.hal
+++ b/vehicle/2.0/types.hal
@@ -2745,7 +2745,7 @@
    * tests are available and whether they are complete. The semantics of the individual
    * bits in this value are given by, respectively, SparkIgnitionMonitors and
    * CompressionIgnitionMonitors depending on the value of IGNITION_MONITORS_SUPPORTED.
-  /*
+   */
   IGNITION_SPECIFIC_MONITORS = 3,
 
   INTAKE_AIR_TEMPERATURE = 4,