diff --git a/bluetooth/1.0/default/Android.bp b/bluetooth/1.0/default/Android.bp
index 4af079e..2ae262c 100644
--- a/bluetooth/1.0/default/Android.bp
+++ b/bluetooth/1.0/default/Android.bp
@@ -17,7 +17,6 @@
     name: "android.hardware.bluetooth@1.0-impl",
     relative_install_path: "hw",
     srcs: [
-        "async_fd_watcher.cc",
         "bluetooth_hci.cc",
         "bluetooth_address.cc",
         "vendor_interface.cc",
@@ -27,18 +26,49 @@
         "libbase",
         "libcutils",
         "libhardware",
-        "libhwbinder",
         "libhidlbase",
         "libhidltransport",
         "liblog",
         "libutils",
     ],
+    static_libs: [
+        "android.hardware.bluetooth-async",
+        "android.hardware.bluetooth-hci",
+    ],
+}
+
+cc_library_static {
+    name: "android.hardware.bluetooth-async",
+    srcs: [
+        "async_fd_watcher.cc",
+    ],
+    export_include_dirs: ["."],
+    shared_libs: [
+        "libbase",
+        "libcutils",
+        "liblog",
+        "libutils",
+    ],
+}
+
+cc_library_static {
+    name: "android.hardware.bluetooth-hci",
+    srcs: [
+        "hci_packetizer.cc",
+    ],
+    export_include_dirs: ["."],
+    shared_libs: [
+        "libbase",
+        "libcutils",
+        "libhidlbase",
+        "liblog",
+        "libutils",
+    ],
 }
 
 cc_test {
     name: "bluetooth-vendor-interface-unit-tests",
     srcs: [
-        "async_fd_watcher.cc",
         "test/async_fd_watcher_unittest.cc",
     ],
     local_include_dirs: [
@@ -48,6 +78,9 @@
         "libbase",
         "liblog",
     ],
+    static_libs: [
+        "android.hardware.bluetooth-async",
+    ],
 }
 
 cc_test_host {
diff --git a/bluetooth/1.0/default/Android.mk b/bluetooth/1.0/default/Android.mk
index 08bfb4e..5043fb9 100644
--- a/bluetooth/1.0/default/Android.mk
+++ b/bluetooth/1.0/default/Android.mk
@@ -32,7 +32,6 @@
   libhardware \
 
 LOCAL_SHARED_LIBRARIES += \
-  libhwbinder \
   libhidlbase \
   libhidltransport \
   android.hardware.bluetooth@1.0 \
diff --git a/bluetooth/1.0/default/async_fd_watcher.cc b/bluetooth/1.0/default/async_fd_watcher.cc
index 161a74a..287d007 100644
--- a/bluetooth/1.0/default/async_fd_watcher.cc
+++ b/bluetooth/1.0/default/async_fd_watcher.cc
@@ -29,8 +29,7 @@
 namespace android {
 namespace hardware {
 namespace bluetooth {
-namespace V1_0 {
-namespace implementation {
+namespace async {
 
 int AsyncFdWatcher::WatchFdForNonBlockingReads(
     int file_descriptor, const ReadCallback& on_read_fd_ready_callback) {
@@ -42,12 +41,7 @@
   }
 
   // Start the thread if not started yet
-  int started = tryStartThread();
-  if (started != 0) {
-    return started;
-  }
-
-  return 0;
+  return tryStartThread();
 }
 
 int AsyncFdWatcher::ConfigureTimeout(
@@ -167,8 +161,7 @@
   }
 }
 
-} // namespace implementation
-} // namespace V1_0
+} // namespace async
 } // namespace bluetooth
 } // namespace hardware
 } // namespace android
diff --git a/bluetooth/1.0/default/async_fd_watcher.h b/bluetooth/1.0/default/async_fd_watcher.h
index d6e112f..3f7ff54 100644
--- a/bluetooth/1.0/default/async_fd_watcher.h
+++ b/bluetooth/1.0/default/async_fd_watcher.h
@@ -22,8 +22,7 @@
 namespace android {
 namespace hardware {
 namespace bluetooth {
-namespace V1_0 {
-namespace implementation {
+namespace async {
 
 using ReadCallback = std::function<void(int)>;
 using TimeoutCallback = std::function<void(void)>;
@@ -62,8 +61,7 @@
 };
 
 
-} // namespace implementation
-} // namespace V1_0
+} // namespace async
 } // namespace bluetooth
 } // namespace hardware
 } // namespace android
diff --git a/bluetooth/1.0/default/bluetooth_hci.cc b/bluetooth/1.0/default/bluetooth_hci.cc
index 6cea623..1d6e600 100644
--- a/bluetooth/1.0/default/bluetooth_hci.cc
+++ b/bluetooth/1.0/default/bluetooth_hci.cc
@@ -30,9 +30,13 @@
 static const uint8_t HCI_DATA_TYPE_ACL = 2;
 static const uint8_t HCI_DATA_TYPE_SCO = 3;
 
+BluetoothHci::BluetoothHci()
+    : deathRecipient(new BluetoothDeathRecipient(this)) {}
+
 Return<void> BluetoothHci::initialize(
     const ::android::sp<IBluetoothHciCallbacks>& cb) {
   ALOGW("BluetoothHci::initialize()");
+  cb->linkToDeath(deathRecipient, 0);
   event_cb_ = cb;
 
   bool rc = VendorInterface::Initialize(
@@ -62,6 +66,7 @@
 
 Return<void> BluetoothHci::close() {
   ALOGW("BluetoothHci::close()");
+  event_cb_->unlinkToDeath(deathRecipient);
   VendorInterface::Shutdown();
   return Void();
 }
diff --git a/bluetooth/1.0/default/bluetooth_hci.h b/bluetooth/1.0/default/bluetooth_hci.h
index da1b411..67d6c37 100644
--- a/bluetooth/1.0/default/bluetooth_hci.h
+++ b/bluetooth/1.0/default/bluetooth_hci.h
@@ -30,8 +30,20 @@
 using ::android::hardware::Return;
 using ::android::hardware::hidl_vec;
 
+struct BluetoothDeathRecipient : hidl_death_recipient {
+  BluetoothDeathRecipient(const sp<IBluetoothHci> hci) : mHci(hci) {}
+
+  virtual void serviceDied(
+      uint64_t /*cookie*/,
+      const wp<::android::hidl::base::V1_0::IBase>& /*who*/) {
+    mHci->close();
+  }
+  sp<IBluetoothHci> mHci;
+};
+
 class BluetoothHci : public IBluetoothHci {
  public:
+  BluetoothHci();
   Return<void> initialize(
       const ::android::sp<IBluetoothHciCallbacks>& cb) override;
   Return<void> sendHciCommand(const hidl_vec<uint8_t>& packet) override;
@@ -42,6 +54,7 @@
  private:
   void sendDataToController(const uint8_t type, const hidl_vec<uint8_t>& data);
   ::android::sp<IBluetoothHciCallbacks> event_cb_;
+  ::android::sp<BluetoothDeathRecipient> deathRecipient;
 };
 
 extern "C" IBluetoothHci* HIDL_FETCH_IBluetoothHci(const char* name);
diff --git a/bluetooth/1.0/default/hci_internals.h b/bluetooth/1.0/default/hci_internals.h
index d5714be..1e1f300 100644
--- a/bluetooth/1.0/default/hci_internals.h
+++ b/bluetooth/1.0/default/hci_internals.h
@@ -16,6 +16,8 @@
 
 #pragma once
 
+#include <stdlib.h>
+
 // HCI UART transport packet types (Volume 4, Part A, 2)
 enum HciPacketType {
   HCI_PACKET_TYPE_UNKNOWN = 0,
diff --git a/bluetooth/1.0/default/hci_packetizer.cc b/bluetooth/1.0/default/hci_packetizer.cc
new file mode 100644
index 0000000..1a50196
--- /dev/null
+++ b/bluetooth/1.0/default/hci_packetizer.cc
@@ -0,0 +1,115 @@
+//
+// Copyright 2017 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#include "hci_packetizer.h"
+
+#define LOG_TAG "android.hardware.bluetooth.hci_packetizer"
+#include <android-base/logging.h>
+#include <cutils/properties.h>
+#include <utils/Log.h>
+
+#include <dlfcn.h>
+#include <fcntl.h>
+
+namespace {
+
+const size_t preamble_size_for_type[] = {
+    0, HCI_COMMAND_PREAMBLE_SIZE, HCI_ACL_PREAMBLE_SIZE, HCI_SCO_PREAMBLE_SIZE,
+    HCI_EVENT_PREAMBLE_SIZE};
+const size_t packet_length_offset_for_type[] = {
+    0, HCI_LENGTH_OFFSET_CMD, HCI_LENGTH_OFFSET_ACL, HCI_LENGTH_OFFSET_SCO,
+    HCI_LENGTH_OFFSET_EVT};
+
+size_t HciGetPacketLengthForType(HciPacketType type, const uint8_t* preamble) {
+  size_t offset = packet_length_offset_for_type[type];
+  if (type != HCI_PACKET_TYPE_ACL_DATA) return preamble[offset];
+  return (((preamble[offset + 1]) << 8) | preamble[offset]);
+}
+
+}  // namespace
+
+namespace android {
+namespace hardware {
+namespace bluetooth {
+namespace hci {
+
+HciPacketType HciPacketizer::GetPacketType() const {
+  return hci_packet_type_;
+}
+
+const hidl_vec<uint8_t>& HciPacketizer::GetPacket() const {
+  return hci_packet_;
+}
+
+void HciPacketizer::OnDataReady(int fd) {
+  switch (hci_parser_state_) {
+    case HCI_IDLE: {
+      uint8_t buffer[1] = {0};
+      size_t bytes_read = TEMP_FAILURE_RETRY(read(fd, buffer, 1));
+      CHECK(bytes_read == 1);
+      hci_packet_type_ = static_cast<HciPacketType>(buffer[0]);
+      CHECK(hci_packet_type_ >= HCI_PACKET_TYPE_ACL_DATA &&
+            hci_packet_type_ <= HCI_PACKET_TYPE_EVENT)
+          << "buffer[0] = " << static_cast<unsigned int>(buffer[0]);
+      hci_parser_state_ = HCI_TYPE_READY;
+      hci_packet_bytes_remaining_ = preamble_size_for_type[hci_packet_type_];
+      hci_packet_bytes_read_ = 0;
+      break;
+    }
+
+    case HCI_TYPE_READY: {
+      size_t bytes_read = TEMP_FAILURE_RETRY(
+          read(fd, hci_packet_preamble_ + hci_packet_bytes_read_,
+               hci_packet_bytes_remaining_));
+      CHECK(bytes_read > 0);
+      hci_packet_bytes_remaining_ -= bytes_read;
+      hci_packet_bytes_read_ += bytes_read;
+      if (hci_packet_bytes_remaining_ == 0) {
+        size_t packet_length =
+            HciGetPacketLengthForType(hci_packet_type_, hci_packet_preamble_);
+        hci_packet_.resize(preamble_size_for_type[hci_packet_type_] +
+                           packet_length);
+        memcpy(hci_packet_.data(), hci_packet_preamble_,
+               preamble_size_for_type[hci_packet_type_]);
+        hci_packet_bytes_remaining_ = packet_length;
+        hci_parser_state_ = HCI_PAYLOAD;
+        hci_packet_bytes_read_ = 0;
+      }
+      break;
+    }
+
+    case HCI_PAYLOAD: {
+      size_t bytes_read = TEMP_FAILURE_RETRY(
+          read(fd,
+               hci_packet_.data() + preamble_size_for_type[hci_packet_type_] +
+                   hci_packet_bytes_read_,
+               hci_packet_bytes_remaining_));
+      CHECK(bytes_read > 0);
+      hci_packet_bytes_remaining_ -= bytes_read;
+      hci_packet_bytes_read_ += bytes_read;
+      if (hci_packet_bytes_remaining_ == 0) {
+        hci_packet_ready_cb_();
+        hci_parser_state_ = HCI_IDLE;
+      }
+      break;
+    }
+  }
+}
+
+}  // namespace hci
+}  // namespace bluetooth
+}  // namespace hardware
+}  // namespace android
diff --git a/bluetooth/1.0/default/hci_packetizer.h b/bluetooth/1.0/default/hci_packetizer.h
new file mode 100644
index 0000000..e9c01dc
--- /dev/null
+++ b/bluetooth/1.0/default/hci_packetizer.h
@@ -0,0 +1,54 @@
+//
+// Copyright 2017 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#pragma once
+
+#include <functional>
+
+#include <hidl/HidlSupport.h>
+
+#include "hci_internals.h"
+
+namespace android {
+namespace hardware {
+namespace bluetooth {
+namespace hci {
+
+using ::android::hardware::hidl_vec;
+using HciPacketReadyCallback = std::function<void(void)>;
+
+class HciPacketizer {
+ public:
+  HciPacketizer(HciPacketReadyCallback packet_cb) : hci_packet_ready_cb_(packet_cb) {};
+  void OnDataReady(int fd);
+  const hidl_vec<uint8_t>& GetPacket() const;
+  HciPacketType GetPacketType() const;
+
+ protected:
+  enum HciParserState { HCI_IDLE, HCI_TYPE_READY, HCI_PAYLOAD };
+  HciParserState hci_parser_state_{HCI_IDLE};
+  HciPacketType hci_packet_type_{HCI_PACKET_TYPE_UNKNOWN};
+  uint8_t hci_packet_preamble_[HCI_PREAMBLE_SIZE_MAX];
+  hidl_vec<uint8_t> hci_packet_;
+  size_t hci_packet_bytes_remaining_;
+  size_t hci_packet_bytes_read_;
+  HciPacketReadyCallback hci_packet_ready_cb_;
+};
+
+}  // namespace hci
+}  // namespace bluetooth
+}  // namespace hardware
+}  // namespace android
diff --git a/bluetooth/1.0/default/test/async_fd_watcher_unittest.cc b/bluetooth/1.0/default/test/async_fd_watcher_unittest.cc
index 49ea44a..a7f5bda 100644
--- a/bluetooth/1.0/default/test/async_fd_watcher_unittest.cc
+++ b/bluetooth/1.0/default/test/async_fd_watcher_unittest.cc
@@ -33,6 +33,8 @@
 namespace V1_0 {
 namespace implementation {
 
+using android::hardware::bluetooth::async::AsyncFdWatcher;
+
 class AsyncFdWatcherSocketTest : public ::testing::Test {
  public:
   static const uint16_t kPort = 6111;
diff --git a/bluetooth/1.0/default/vendor_interface.cc b/bluetooth/1.0/default/vendor_interface.cc
index 7737dd2..3878129 100644
--- a/bluetooth/1.0/default/vendor_interface.cc
+++ b/bluetooth/1.0/default/vendor_interface.cc
@@ -51,19 +51,6 @@
 
 VendorInterface* g_vendor_interface = nullptr;
 
-const size_t preamble_size_for_type[] = {
-    0, HCI_COMMAND_PREAMBLE_SIZE, HCI_ACL_PREAMBLE_SIZE, HCI_SCO_PREAMBLE_SIZE,
-    HCI_EVENT_PREAMBLE_SIZE};
-const size_t packet_length_offset_for_type[] = {
-    0, HCI_LENGTH_OFFSET_CMD, HCI_LENGTH_OFFSET_ACL, HCI_LENGTH_OFFSET_SCO,
-    HCI_LENGTH_OFFSET_EVT};
-
-size_t HciGetPacketLengthForType(HciPacketType type, const uint8_t* preamble) {
-  size_t offset = packet_length_offset_for_type[type];
-  if (type != HCI_PACKET_TYPE_ACL_DATA) return preamble[offset];
-  return (((preamble[offset + 1]) << 8) | preamble[offset]);
-}
-
 HC_BT_HDR* WrapPacketAndCopy(uint16_t event, const hidl_vec<uint8_t>& data) {
   size_t packet_size = data.size() + sizeof(HC_BT_HDR);
   HC_BT_HDR* packet = reinterpret_cast<HC_BT_HDR*>(new uint8_t[packet_size]);
@@ -274,7 +261,7 @@
   ALOGI("%s UART fd: %d", __func__, uart_fd_);
 
   fd_watcher_.WatchFdForNonBlockingReads(uart_fd_,
-                                         [this](int fd) { OnDataReady(fd); });
+                                         [this](int fd) { hci_packetizer_.OnDataReady(fd); });
 
   // Initially, the power management is off.
   lpm_wake_deasserted = true;
@@ -370,72 +357,26 @@
   recent_activity_flag = false;
 }
 
-void VendorInterface::OnDataReady(int fd) {
-  switch (hci_parser_state_) {
-    case HCI_IDLE: {
-      uint8_t buffer[1] = {0};
-      size_t bytes_read = TEMP_FAILURE_RETRY(read(fd, buffer, 1));
-      CHECK(bytes_read == 1);
-      hci_packet_type_ = static_cast<HciPacketType>(buffer[0]);
-      // TODO(eisenbach): Check for workaround(s)
-      CHECK(hci_packet_type_ >= HCI_PACKET_TYPE_ACL_DATA &&
-            hci_packet_type_ <= HCI_PACKET_TYPE_EVENT)
-          << "buffer[0] = " << static_cast<unsigned int>(buffer[0]);
-      hci_parser_state_ = HCI_TYPE_READY;
-      hci_packet_bytes_remaining_ = preamble_size_for_type[hci_packet_type_];
-      hci_packet_bytes_read_ = 0;
-      break;
-    }
+void VendorInterface::OnPacketReady() {
+  VendorInterface::get()->HandleIncomingPacket();
+}
 
-    case HCI_TYPE_READY: {
-      size_t bytes_read = TEMP_FAILURE_RETRY(
-          read(fd, hci_packet_preamble_ + hci_packet_bytes_read_,
-               hci_packet_bytes_remaining_));
-      CHECK(bytes_read > 0);
-      hci_packet_bytes_remaining_ -= bytes_read;
-      hci_packet_bytes_read_ += bytes_read;
-      if (hci_packet_bytes_remaining_ == 0) {
-        size_t packet_length =
-            HciGetPacketLengthForType(hci_packet_type_, hci_packet_preamble_);
-        hci_packet_.resize(preamble_size_for_type[hci_packet_type_] +
-                           packet_length);
-        memcpy(hci_packet_.data(), hci_packet_preamble_,
-               preamble_size_for_type[hci_packet_type_]);
-        hci_packet_bytes_remaining_ = packet_length;
-        hci_parser_state_ = HCI_PAYLOAD;
-        hci_packet_bytes_read_ = 0;
-      }
-      break;
-    }
-
-    case HCI_PAYLOAD: {
-      size_t bytes_read = TEMP_FAILURE_RETRY(
-          read(fd,
-               hci_packet_.data() + preamble_size_for_type[hci_packet_type_] +
-                   hci_packet_bytes_read_,
-               hci_packet_bytes_remaining_));
-      CHECK(bytes_read > 0);
-      hci_packet_bytes_remaining_ -= bytes_read;
-      hci_packet_bytes_read_ += bytes_read;
-      if (hci_packet_bytes_remaining_ == 0) {
+void VendorInterface::HandleIncomingPacket() {
+  HciPacketType hci_packet_type = hci_packetizer_.GetPacketType();
+  hidl_vec<uint8_t> hci_packet = hci_packetizer_.GetPacket();
         if (internal_command.cb != nullptr &&
-            hci_packet_type_ == HCI_PACKET_TYPE_EVENT &&
-            internal_command_event_match(hci_packet_)) {
+            hci_packet_type == HCI_PACKET_TYPE_EVENT &&
+            internal_command_event_match(hci_packet)) {
           HC_BT_HDR* bt_hdr =
-              WrapPacketAndCopy(HCI_PACKET_TYPE_EVENT, hci_packet_);
+              WrapPacketAndCopy(HCI_PACKET_TYPE_EVENT, hci_packet);
 
           // The callbacks can send new commands, so don't zero after calling.
           tINT_CMD_CBACK saved_cb = internal_command.cb;
           internal_command.cb = nullptr;
           saved_cb(bt_hdr);
         } else {
-          packet_read_cb_(hci_packet_type_, hci_packet_);
+          packet_read_cb_(hci_packet_type, hci_packet);
         }
-        hci_parser_state_ = HCI_IDLE;
-      }
-      break;
-    }
-  }
 }
 
 }  // namespace implementation
diff --git a/bluetooth/1.0/default/vendor_interface.h b/bluetooth/1.0/default/vendor_interface.h
index ce5769c..8115640 100644
--- a/bluetooth/1.0/default/vendor_interface.h
+++ b/bluetooth/1.0/default/vendor_interface.h
@@ -20,7 +20,7 @@
 
 #include "async_fd_watcher.h"
 #include "bt_vendor_lib.h"
-#include "hci_internals.h"
+#include "hci_packetizer.h"
 
 namespace android {
 namespace hardware {
@@ -46,6 +46,8 @@
 
   void OnFirmwareConfigured(uint8_t result);
 
+  static void OnPacketReady();
+
  private:
   virtual ~VendorInterface() = default;
 
@@ -55,22 +57,16 @@
 
   void OnTimeout();
 
-  void OnDataReady(int fd);
+  void HandleIncomingPacket();
 
   void *lib_handle_;
   bt_vendor_interface_t *lib_interface_;
-  AsyncFdWatcher fd_watcher_;
+  async::AsyncFdWatcher fd_watcher_;
   int uart_fd_;
   PacketReadCallback packet_read_cb_;
   InitializeCompleteCallback initialize_complete_cb_;
 
-  enum HciParserState { HCI_IDLE, HCI_TYPE_READY, HCI_PAYLOAD };
-  HciParserState hci_parser_state_{HCI_IDLE};
-  HciPacketType hci_packet_type_{HCI_PACKET_TYPE_UNKNOWN};
-  uint8_t hci_packet_preamble_[HCI_PREAMBLE_SIZE_MAX];
-  hidl_vec<uint8_t> hci_packet_;
-  size_t hci_packet_bytes_remaining_;
-  size_t hci_packet_bytes_read_;
+  hci::HciPacketizer hci_packetizer_ {VendorInterface::OnPacketReady};
 
   FirmwareStartupTimer *firmware_startup_timer_;
 };
diff --git a/bluetooth/1.0/vts/BluetoothHci.vts b/bluetooth/1.0/vts/BluetoothHci.vts
deleted file mode 100644
index 348c0ab..0000000
--- a/bluetooth/1.0/vts/BluetoothHci.vts
+++ /dev/null
@@ -1,87 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "IBluetoothHci"
-
-package: "android.hardware.bluetooth"
-
-import: "android.hardware.bluetooth@1.0::IBluetoothHciCallbacks"
-import: "android.hardware.bluetooth@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    api: {
-        name: "initialize"
-        arg: {
-            type: TYPE_HIDL_INTERFACE
-            predefined_type: "::android::hardware::bluetooth::V1_0::IBluetoothHciCallbacks"
-        }
-        callflow: {
-            entry: true
-        }
-        callflow: {
-            next: "sendHciCommand"
-            next: "sendAclData"
-            next: "sendScoData"
-            next: "close"
-        }
-    }
-
-    api: {
-        name: "sendHciCommand"
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        callflow: {
-            next: "sendHciCommand"
-            next: "sendAclData"
-            next: "sendScoData"
-            next: "close"
-        }
-    }
-
-    api: {
-        name: "sendAclData"
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        callflow: {
-            next: "sendHciCommand"
-            next: "sendAclData"
-            next: "sendScoData"
-            next: "close"
-        }
-    }
-
-    api: {
-        name: "sendScoData"
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        callflow: {
-            next: "sendHciCommand"
-            next: "sendAclData"
-            next: "sendScoData"
-            next: "close"
-        }
-    }
-
-    api: {
-        name: "close"
-        callflow: {
-            exit: true
-        }
-    }
-
-}
diff --git a/bluetooth/1.0/vts/BluetoothHciCallbacks.vts b/bluetooth/1.0/vts/BluetoothHciCallbacks.vts
deleted file mode 100644
index 6b3dfd4..0000000
--- a/bluetooth/1.0/vts/BluetoothHciCallbacks.vts
+++ /dev/null
@@ -1,52 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "IBluetoothHciCallbacks"
-
-package: "android.hardware.bluetooth"
-
-import: "android.hardware.bluetooth@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    api: {
-        name: "initializationComplete"
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::bluetooth::V1_0::Status"
-        }
-    }
-
-    api: {
-        name: "hciEventReceived"
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "aclDataReceived"
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "scoDataReceived"
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-}
diff --git a/bluetooth/1.0/vts/functional/Android.bp b/bluetooth/1.0/vts/functional/Android.bp
index 2012c20..939a07f 100644
--- a/bluetooth/1.0/vts/functional/Android.bp
+++ b/bluetooth/1.0/vts/functional/Android.bp
@@ -24,7 +24,6 @@
         "libcutils",
         "libhidlbase",
         "libhidltransport",
-        "libhwbinder",
         "libnativehelper",
         "libutils",
         "android.hardware.bluetooth@1.0",
diff --git a/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp b/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp
index eb1cdc1..5a6c29a 100644
--- a/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp
+++ b/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp
@@ -123,7 +123,7 @@
     // currently test passthrough mode only
     bluetooth = IBluetoothHci::getService();
     ASSERT_NE(bluetooth, nullptr);
-    ALOGW("%s: getService() for bluetooth is %s", __func__,
+    ALOGI("%s: getService() for bluetooth is %s", __func__,
           bluetooth->isRemote() ? "remote" : "local");
 
     bluetooth_cb = new BluetoothHciCallbacks(*this);
@@ -255,7 +255,7 @@
     virtual ~BluetoothHciCallbacks() = default;
 
     Return<void> initializationComplete(Status status) override {
-      parent_.initialized = true;
+      parent_.initialized = (status == Status::SUCCESS);
       parent_.notify_initialized();
       ALOGV("%s (status = %d)", __func__, static_cast<int>(status));
       return Void();
diff --git a/bluetooth/1.0/vts/types.vts b/bluetooth/1.0/vts/types.vts
deleted file mode 100644
index 59eb3d4..0000000
--- a/bluetooth/1.0/vts/types.vts
+++ /dev/null
@@ -1,32 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "types"
-
-package: "android.hardware.bluetooth"
-
-
-attribute: {
-    name: "::android::hardware::bluetooth::V1_0::Status"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "int32_t"
-
-        enumerator: "SUCCESS"
-        scalar_value: {
-            int32_t: 0
-        }
-        enumerator: "TRANSPORT_ERROR"
-        scalar_value: {
-            int32_t: 1
-        }
-        enumerator: "INITIALIZATION_ERROR"
-        scalar_value: {
-            int32_t: 2
-        }
-        enumerator: "UNKNOWN"
-        scalar_value: {
-            int32_t: 3
-        }
-    }
-}
-
diff --git a/boot/1.0/default/Android.mk b/boot/1.0/default/Android.mk
index 99a6cf9..5e7ecb4 100644
--- a/boot/1.0/default/Android.mk
+++ b/boot/1.0/default/Android.mk
@@ -11,7 +11,6 @@
     liblog \
     libhidlbase \
     libhidltransport \
-    libhwbinder \
     libhardware \
     libutils \
     android.hardware.boot@1.0 \
@@ -28,7 +27,6 @@
 
 LOCAL_SHARED_LIBRARIES := \
     liblog \
-    libhwbinder \
     libhardware \
     libhidlbase \
     libhidltransport \
diff --git a/ir/1.0/default/Android.bp b/ir/1.0/default/Android.bp
index ed0b807..151a9af 100644
--- a/ir/1.0/default/Android.bp
+++ b/ir/1.0/default/Android.bp
@@ -21,7 +21,6 @@
         "libhidlbase",
         "libhidltransport",
         "libhardware",
-        "libhwbinder",
         "liblog",
         "libutils",
         "android.hardware.ir@1.0",
@@ -37,7 +36,6 @@
 
     shared_libs: [
         "liblog",
-        "libhwbinder",
         "libhardware",
         "libhidlbase",
         "libhidltransport",
diff --git a/ir/1.0/vts/ConsumerIr.vts b/ir/1.0/vts/ConsumerIr.vts
deleted file mode 100644
index c31331e..0000000
--- a/ir/1.0/vts/ConsumerIr.vts
+++ /dev/null
@@ -1,45 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "IConsumerIr"
-
-package: "android.hardware.ir"
-
-import: "android.hardware.ir@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    api: {
-        name: "transmit"
-        return_type_hidl: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "int32_t"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "int32_t"
-            }
-        }
-    }
-
-    api: {
-        name: "getCarrierFreqs"
-        return_type_hidl: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_STRUCT
-                predefined_type: "::android::hardware::ir::V1_0::ConsumerIrFreqRange"
-            }
-        }
-    }
-
-}
diff --git a/ir/1.0/vts/functional/Android.bp b/ir/1.0/vts/functional/Android.bp
index 5689474..ac29996 100644
--- a/ir/1.0/vts/functional/Android.bp
+++ b/ir/1.0/vts/functional/Android.bp
@@ -24,7 +24,6 @@
         "libcutils",
         "libhidlbase",
         "libhidltransport",
-        "libhwbinder",
         "libutils",
         "android.hardware.ir@1.0",
     ],
diff --git a/ir/1.0/vts/types.vts b/ir/1.0/vts/types.vts
deleted file mode 100644
index f1e9cbe..0000000
--- a/ir/1.0/vts/types.vts
+++ /dev/null
@@ -1,22 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "types"
-
-package: "android.hardware.ir"
-
-
-attribute: {
-    name: "::android::hardware::ir::V1_0::ConsumerIrFreqRange"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "min"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "max"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-}
-
diff --git a/nfc/1.0/default/Android.bp b/nfc/1.0/default/Android.bp
index 02f5664..051ca54 100644
--- a/nfc/1.0/default/Android.bp
+++ b/nfc/1.0/default/Android.bp
@@ -7,7 +7,6 @@
         "liblog",
         "libcutils",
         "libhardware",
-        "libhwbinder",
         "libbase",
         "libcutils",
         "libutils",
diff --git a/nfc/1.0/default/Android.mk b/nfc/1.0/default/Android.mk
index fbb340f..2e1f17f 100644
--- a/nfc/1.0/default/Android.mk
+++ b/nfc/1.0/default/Android.mk
@@ -18,7 +18,6 @@
 	libhardware \
 
 LOCAL_SHARED_LIBRARIES += \
-	libhwbinder \
 	libhidlbase \
 	libhidltransport \
 	android.hardware.nfc@1.0 \
diff --git a/nfc/1.0/default/Nfc.cpp b/nfc/1.0/default/Nfc.cpp
index 3bd5e41..c610406 100644
--- a/nfc/1.0/default/Nfc.cpp
+++ b/nfc/1.0/default/Nfc.cpp
@@ -14,12 +14,14 @@
 
 sp<INfcClientCallback> Nfc::mCallback = NULL;
 
-Nfc::Nfc(nfc_nci_device_t* device) : mDevice(device) {
+Nfc::Nfc(nfc_nci_device_t* device) : mDevice(device),
+    mDeathRecipient(new NfcDeathRecipient(this)) {
 }
 
 // Methods from ::android::hardware::nfc::V1_0::INfc follow.
 ::android::hardware::Return<NfcStatus> Nfc::open(const sp<INfcClientCallback>& clientCallback)  {
     mCallback = clientCallback;
+    mCallback->linkToDeath(mDeathRecipient, 0 /*cookie*/);
     int ret = mDevice->open(mDevice, eventCallback, dataCallback);
     return ret == 0 ? NfcStatus::OK : NfcStatus::FAILED;
 }
@@ -39,6 +41,7 @@
 }
 
 ::android::hardware::Return<NfcStatus> Nfc::close()  {
+    mCallback->unlinkToDeath(mDeathRecipient);
     return mDevice->close(mDevice) ? NfcStatus::FAILED : NfcStatus::OK;
 }
 
diff --git a/nfc/1.0/default/Nfc.h b/nfc/1.0/default/Nfc.h
index 13004a5..d8787fd 100644
--- a/nfc/1.0/default/Nfc.h
+++ b/nfc/1.0/default/Nfc.h
@@ -19,6 +19,16 @@
 using ::android::hardware::hidl_string;
 using ::android::sp;
 
+struct NfcDeathRecipient : hidl_death_recipient {
+    NfcDeathRecipient(const sp<INfc> nfc) : mNfc(nfc) {
+    }
+
+    virtual void serviceDied(uint64_t /*cookie*/, const wp<::android::hidl::base::V1_0::IBase>& /*who*/) {
+        mNfc->close();
+    }
+    sp<INfc> mNfc;
+};
+
 struct Nfc : public INfc {
   Nfc(nfc_nci_device_t* device);
   ::android::hardware::Return<NfcStatus> open(const sp<INfcClientCallback>& clientCallback)  override;
@@ -31,21 +41,28 @@
 
   static void eventCallback(uint8_t event, uint8_t status) {
       if (mCallback != nullptr) {
-          mCallback->sendEvent(
+          auto ret = mCallback->sendEvent(
                   (::android::hardware::nfc::V1_0::NfcEvent) event,
                   (::android::hardware::nfc::V1_0::NfcStatus) status);
+          if (!ret.isOk()) {
+              ALOGW("Failed to call back into NFC process.");
+          }
       }
   }
   static void dataCallback(uint16_t data_len, uint8_t* p_data) {
       hidl_vec<uint8_t> data;
       data.setToExternal(p_data, data_len);
       if (mCallback != nullptr) {
-          mCallback->sendData(data);
+          auto ret = mCallback->sendData(data);
+          if (!ret.isOk()) {
+              ALOGW("Failed to call back into NFC process.");
+          }
       }
   }
   private:
     static sp<INfcClientCallback> mCallback;
     const nfc_nci_device_t*       mDevice;
+    sp<NfcDeathRecipient>         mDeathRecipient;
 };
 
 extern "C" INfc* HIDL_FETCH_INfc(const char* name);
diff --git a/nfc/1.0/vts/Nfc.vts b/nfc/1.0/vts/Nfc.vts
deleted file mode 100644
index 48b2750..0000000
--- a/nfc/1.0/vts/Nfc.vts
+++ /dev/null
@@ -1,133 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "INfc"
-
-package: "android.hardware.nfc"
-
-import: "android.hardware.nfc@1.0::INfcClientCallback"
-import: "android.hardware.nfc@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    api: {
-        name: "open"
-        return_type_hidl: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::nfc::V1_0::NfcStatus"
-        }
-        arg: {
-            type: TYPE_HIDL_CALLBACK
-            predefined_type: "::android::hardware::nfc::V1_0::INfcClientCallback"
-        }
-        callflow: {
-            entry: true
-        }
-        callflow: {
-            next: "write"
-            next: "coreInitialized"
-            next: "prediscover"
-            next: "powerCycle"
-            next: "controlGranted"
-        }
-    }
-
-    api: {
-        name: "write"
-        return_type_hidl: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        callflow: {
-            next: "write"
-            next: "prediscover"
-            next: "coreInitialized"
-            next: "close"
-            next: "powerCycle"
-            next: "controlGranted"
-        }
-    }
-
-    api: {
-        name: "coreInitialized"
-        return_type_hidl: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::nfc::V1_0::NfcStatus"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        callflow: {
-            next: "write"
-            next: "prediscover"
-            next: "close"
-        }
-    }
-
-    api: {
-        name: "prediscover"
-        return_type_hidl: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::nfc::V1_0::NfcStatus"
-        }
-        callflow: {
-            next: "write"
-            next: "close"
-            next: "coreInitialized"
-            next: "powerCycle"
-            next: "controlGranted"
-        }
-    }
-
-    api: {
-        name: "close"
-        return_type_hidl: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::nfc::V1_0::NfcStatus"
-        }
-        callflow: {
-            exit: true
-        }
-    }
-
-    api: {
-        name: "controlGranted"
-        return_type_hidl: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::nfc::V1_0::NfcStatus"
-        }
-        callflow: {
-            next: "write"
-            next: "close"
-            next: "prediscover"
-            next: "coreInitialized"
-            next: "powerCycle"
-        }
-    }
-
-    api: {
-        name: "powerCycle"
-        return_type_hidl: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::nfc::V1_0::NfcStatus"
-        }
-        callflow: {
-            next: "write"
-            next: "coreInitialized"
-            next: "prediscover"
-            next: "controlGranted"
-            next: "close"
-        }
-    }
-
-}
diff --git a/nfc/1.0/vts/NfcClientCallback.vts b/nfc/1.0/vts/NfcClientCallback.vts
deleted file mode 100644
index b06f12b..0000000
--- a/nfc/1.0/vts/NfcClientCallback.vts
+++ /dev/null
@@ -1,34 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "INfcClientCallback"
-
-package: "android.hardware.nfc"
-
-import: "android.hardware.nfc@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    api: {
-        name: "sendEvent"
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::nfc::V1_0::NfcEvent"
-        }
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::nfc::V1_0::NfcStatus"
-        }
-    }
-
-    api: {
-        name: "sendData"
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-}
diff --git a/nfc/1.0/vts/functional/Android.bp b/nfc/1.0/vts/functional/Android.bp
index 080887f..23d83e5 100644
--- a/nfc/1.0/vts/functional/Android.bp
+++ b/nfc/1.0/vts/functional/Android.bp
@@ -24,7 +24,6 @@
         "libcutils",
         "libhidlbase",
         "libhidltransport",
-        "libhwbinder",
         "libnativehelper",
         "libutils",
         "android.hardware.nfc@1.0",
diff --git a/nfc/1.0/vts/types.vts b/nfc/1.0/vts/types.vts
deleted file mode 100644
index e43db1e..0000000
--- a/nfc/1.0/vts/types.vts
+++ /dev/null
@@ -1,73 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "types"
-
-package: "android.hardware.nfc"
-
-
-attribute: {
-    name: "::android::hardware::nfc::V1_0::NfcEvent"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "OPEN_CPLT"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "CLOSE_CPLT"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "POST_INIT_CPLT"
-        scalar_value: {
-            uint32_t: 2
-        }
-        enumerator: "PRE_DISCOVER_CPLT"
-        scalar_value: {
-            uint32_t: 3
-        }
-        enumerator: "REQUEST_CONTROL"
-        scalar_value: {
-            uint32_t: 4
-        }
-        enumerator: "RELEASE_CONTROL"
-        scalar_value: {
-            uint32_t: 5
-        }
-        enumerator: "ERROR"
-        scalar_value: {
-            uint32_t: 6
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::nfc::V1_0::NfcStatus"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "OK"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "FAILED"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "ERR_TRANSPORT"
-        scalar_value: {
-            uint32_t: 2
-        }
-        enumerator: "ERR_CMD_TIMEOUT"
-        scalar_value: {
-            uint32_t: 3
-        }
-        enumerator: "REFUSED"
-        scalar_value: {
-            uint32_t: 4
-        }
-    }
-}
-
diff --git a/radio/1.0/IRadio.hal b/radio/1.0/IRadio.hal
index bda7d65..baa4df6 100644
--- a/radio/1.0/IRadio.hal
+++ b/radio/1.0/IRadio.hal
@@ -726,26 +726,6 @@
     oneway getDataCallList(int32_t serial);
 
     /*
-     * This request is reserved for OEM-specific uses. It passes raw byte arrays back and forth.
-     *
-     * @param serial Serial number of request.
-     * @param data data passed as raw bytes to oem
-     *
-     * Response function is IRadioResponse.sendOemRadioRequestRawResponse()
-     */
-    oneway sendOemRadioRequestRaw(int32_t serial, vec<uint8_t> data);
-
-    /*
-     * This request is reserved for OEM-specific uses. It passes strings back and forth.
-     *
-     * @param serial Serial number of request.
-     * @param data data passed as strings to oem
-     *
-     * Response function is IRadioResponse.sendOemRadioRequestStringsResponse()
-     */
-    oneway sendOemRadioRequestStrings(int32_t serial, vec<string> data);
-
-    /*
      * Indicates the current state of the screen. When the screen is off, the
      * Radio must notify the baseband to suppress certain notifications (eg,
      * signal strength and changes in LAC/CID or BID/SID/NID/latitude/longitude)
diff --git a/radio/1.0/IRadioIndication.hal b/radio/1.0/IRadioIndication.hal
index 81ac13a..0b95821 100644
--- a/radio/1.0/IRadioIndication.hal
+++ b/radio/1.0/IRadioIndication.hal
@@ -293,14 +293,6 @@
    oneway cdmaInfoRec(RadioIndicationType type, CdmaInformationRecords records);
 
    /*
-    * This is for OEM specific use.
-    *
-    * @param type Type of radio indication
-    * @param data data passed as raw bytes
-    */
-   oneway oemHookRaw(RadioIndicationType type, vec<uint8_t> data);
-
-   /*
     * Indicates that nework doesn't have in-band information, need to
     * play out-band tone.
     *
diff --git a/radio/1.0/IRadioResponse.hal b/radio/1.0/IRadioResponse.hal
index 637f697..11a1d03 100644
--- a/radio/1.0/IRadioResponse.hal
+++ b/radio/1.0/IRadioResponse.hal
@@ -923,30 +923,6 @@
 
     /*
      * @param info Response info struct containing response type, serial no. and error
-     * @param data data returned by oem
-     *
-     * Valid errors returned:
-     *   RadioError:NONE
-     *   RadioError:RADIO_NOT_AVAILABLE
-     *   RadioError:INVALID_ARGUMENTS
-     *   RadioError:OEM_ERROR_X
-     */
-    oneway sendOemRilRequestRawResponse(RadioResponseInfo info, vec<uint8_t> data);
-
-    /*
-     * @param info Response info struct containing response type, serial no. and error
-     * @param data data returned by oem
-     *
-     * Valid errors returned:
-     *   RadioError:NONE
-     *   RadioError:RADIO_NOT_AVAILABLE
-     *   RadioError:INVALID_ARGUMENTS
-     *   RadioError:OEM_ERROR_X
-     */
-    oneway sendOemRilRequestStringsResponse(RadioResponseInfo info, vec<string> data);
-
-    /*
-     * @param info Response info struct containing response type, serial no. and error
      *
      * Valid errors returned:
      *   RadioError:NONE
diff --git a/radio/1.0/vts/Radio.vts b/radio/1.0/vts/Radio.vts
deleted file mode 100644
index 68cf620..0000000
--- a/radio/1.0/vts/Radio.vts
+++ /dev/null
@@ -1,1521 +0,0 @@
-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"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    api: {
-        name: "setResponseFunctions"
-        arg: {
-            type: TYPE_HIDL_INTERFACE
-            predefined_type: "::android::hardware::radio::V1_0::IRadioResponse"
-        }
-        arg: {
-            type: TYPE_HIDL_INTERFACE
-            predefined_type: "::android::hardware::radio::V1_0::IRadioIndication"
-        }
-    }
-
-    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_ENUM
-            predefined_type: "::android::hardware::radio::V1_0::RadioTechnology"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::radio::V1_0::DataProfileInfo"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    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_STRUCT
-            predefined_type: "::android::hardware::radio::V1_0::DataProfileInfo"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    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: "sendDeviceState"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "int32_t"
-        }
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::radio::V1_0::DeviceStateType"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "setIndicationFilter"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "int32_t"
-        }
-        arg: {
-            type: TYPE_MASK
-            scalar_type: "int32_t"
-            predefined_type: "::android::hardware::radio::V1_0::IndicationFilter"
-        }
-    }
-
-    api: {
-        name: "setSimCardPower"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "int32_t"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "responseAcknowledgement"
-    }
-
-}
diff --git a/radio/1.0/vts/RadioIndication.vts b/radio/1.0/vts/RadioIndication.vts
deleted file mode 100644
index cce8ada..0000000
--- a/radio/1.0/vts/RadioIndication.vts
+++ /dev/null
@@ -1,546 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "IRadioIndication"
-
-package: "android.hardware.radio"
-
-import: "android.hardware.radio@1.0::types"
-import: "android.hidl.base@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: "networkStateChanged"
-        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
deleted file mode 100644
index 915a053..0000000
--- a/radio/1.0/vts/RadioResponse.vts
+++ /dev/null
@@ -1,1407 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "IRadioResponse"
-
-package: "android.hardware.radio"
-
-import: "android.hardware.radio@1.0::types"
-import: "android.hidl.base@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: "sendDeviceStateResponse"
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
-        }
-    }
-
-    api: {
-        name: "setIndicationFilterResponse"
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
-        }
-    }
-
-    api: {
-        name: "setSimCardPowerResponse"
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::radio::V1_0::RadioResponseInfo"
-        }
-    }
-
-    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
deleted file mode 100644
index b4983da..0000000
--- a/radio/1.0/vts/Sap.vts
+++ /dev/null
@@ -1,107 +0,0 @@
-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"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    api: {
-        name: "setCallback"
-        arg: {
-            type: TYPE_HIDL_CALLBACK
-            predefined_type: "::android::hardware::radio::V1_0::ISapCallback"
-        }
-    }
-
-    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
deleted file mode 100644
index 3a33dba..0000000
--- a/radio/1.0/vts/SapCallback.vts
+++ /dev/null
@@ -1,157 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "ISapCallback"
-
-package: "android.hardware.radio"
-
-import: "android.hardware.radio@1.0::types"
-import: "android.hidl.base@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/functional/Android.bp b/radio/1.0/vts/functional/Android.bp
index 6615f03..03434f4 100644
--- a/radio/1.0/vts/functional/Android.bp
+++ b/radio/1.0/vts/functional/Android.bp
@@ -27,7 +27,6 @@
         "libcutils",
         "libhidlbase",
         "libhidltransport",
-        "libhwbinder",
         "libnativehelper",
         "libutils",
         "android.hardware.radio@1.0",
diff --git a/radio/1.0/vts/types.vts b/radio/1.0/vts/types.vts
deleted file mode 100644
index 6d42016..0000000
--- a/radio/1.0/vts/types.vts
+++ /dev/null
@@ -1,5696 +0,0 @@
-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::DataProfileId"
-    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_CAPACITY_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: "UNKNOWN"
-        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: "FACTORY_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: 1
-        }
-        enumerator: "CDMA"
-        scalar_value: {
-            int32_t: 2
-        }
-        enumerator: "LTE"
-        scalar_value: {
-            int32_t: 3
-        }
-        enumerator: "WCDMA"
-        scalar_value: {
-            int32_t: 4
-        }
-        enumerator: "TD_SCDMA"
-        scalar_value: {
-            int32_t: 5
-        }
-    }
-}
-
-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::ApnTypes"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "int32_t"
-
-        enumerator: "NONE"
-        scalar_value: {
-            int32_t: 0
-        }
-        enumerator: "DEFAULT"
-        scalar_value: {
-            int32_t: 1
-        }
-        enumerator: "MMS"
-        scalar_value: {
-            int32_t: 2
-        }
-        enumerator: "SUPL"
-        scalar_value: {
-            int32_t: 4
-        }
-        enumerator: "DUN"
-        scalar_value: {
-            int32_t: 8
-        }
-        enumerator: "HIPRI"
-        scalar_value: {
-            int32_t: 16
-        }
-        enumerator: "FOTA"
-        scalar_value: {
-            int32_t: 32
-        }
-        enumerator: "IMS"
-        scalar_value: {
-            int32_t: 64
-        }
-        enumerator: "CBS"
-        scalar_value: {
-            int32_t: 128
-        }
-        enumerator: "IA"
-        scalar_value: {
-            int32_t: 256
-        }
-        enumerator: "EMERGENCY"
-        scalar_value: {
-            int32_t: 512
-        }
-        enumerator: "ALL"
-        scalar_value: {
-            int32_t: 1023
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::radio::V1_0::IndicationFilter"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "int32_t"
-
-        enumerator: "NONE"
-        scalar_value: {
-            int32_t: 0
-        }
-        enumerator: "SIGNAL_STRENGTH"
-        scalar_value: {
-            int32_t: 1
-        }
-        enumerator: "FULL_NETWORK_STATE"
-        scalar_value: {
-            int32_t: 2
-        }
-        enumerator: "DATA_CALL_DORMANCY_CHANGED"
-        scalar_value: {
-            int32_t: 4
-        }
-        enumerator: "ALL"
-        scalar_value: {
-            int32_t: 7
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::radio::V1_0::MvnoType"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "int32_t"
-
-        enumerator: "NONE"
-        scalar_value: {
-            int32_t: 0
-        }
-        enumerator: "IMSI"
-        scalar_value: {
-            int32_t: 1
-        }
-        enumerator: "GID"
-        scalar_value: {
-            int32_t: 2
-        }
-        enumerator: "SPN"
-        scalar_value: {
-            int32_t: 3
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::radio::V1_0::DeviceStateType"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "int32_t"
-
-        enumerator: "POWER_SAVE_MODE"
-        scalar_value: {
-            int32_t: 0
-        }
-        enumerator: "CHARGING_STATE"
-        scalar_value: {
-            int32_t: 1
-        }
-        enumerator: "LOW_DATA_EXPECTED"
-        scalar_value: {
-            int32_t: 2
-        }
-    }
-}
-
-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_ENUM
-        predefined_type: "::android::hardware::radio::V1_0::DataProfileId"
-    }
-    struct_value: {
-        name: "apn"
-        type: TYPE_STRING
-    }
-    struct_value: {
-        name: "protocol"
-        type: TYPE_STRING
-    }
-    struct_value: {
-        name: "roamingProtocol"
-        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"
-    }
-    struct_value: {
-        name: "supportedApnTypesBitmap"
-        type: TYPE_MASK
-        scalar_type: "int32_t"
-        predefined_type: "::android::hardware::radio::V1_0::ApnTypes"
-    }
-    struct_value: {
-        name: "bearerBitmap"
-        type: TYPE_MASK
-        scalar_type: "int32_t"
-        predefined_type: "::android::hardware::radio::V1_0::RadioAccessFamily"
-    }
-    struct_value: {
-        name: "mtu"
-        type: TYPE_SCALAR
-        scalar_type: "int32_t"
-    }
-    struct_value: {
-        name: "mvnoType"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::radio::V1_0::MvnoType"
-    }
-    struct_value: {
-        name: "mvnoMatchData"
-        type: TYPE_STRING
-    }
-}
-
-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_MASK
-        scalar_type: "int32_t"
-        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_size: 5
-        vector_value: {
-            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_MASK
-        scalar_type: "int32_t"
-        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/radio/Android.bp b/radio/Android.bp
index 33f70eb..8bda000 100644
--- a/radio/Android.bp
+++ b/radio/Android.bp
@@ -2,4 +2,5 @@
 subdirs = [
     "1.0",
     "1.0/vts/functional",
+    "deprecated/1.0",
 ]
diff --git a/radio/deprecated/1.0/Android.bp b/radio/deprecated/1.0/Android.bp
new file mode 100644
index 0000000..f8a9c64
--- /dev/null
+++ b/radio/deprecated/1.0/Android.bp
@@ -0,0 +1,75 @@
+// This file is autogenerated by hidl-gen. Do not edit manually.
+
+filegroup {
+    name: "android.hardware.radio.deprecated@1.0_hal",
+    srcs: [
+        "IOemHook.hal",
+        "IOemHookIndication.hal",
+        "IOemHookResponse.hal",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio.deprecated@1.0_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio.deprecated@1.0",
+    srcs: [
+        ":android.hardware.radio.deprecated@1.0_hal",
+    ],
+    out: [
+        "android/hardware/radio/deprecated/1.0/OemHookAll.cpp",
+        "android/hardware/radio/deprecated/1.0/OemHookIndicationAll.cpp",
+        "android/hardware/radio/deprecated/1.0/OemHookResponseAll.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio.deprecated@1.0_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio.deprecated@1.0",
+    srcs: [
+        ":android.hardware.radio.deprecated@1.0_hal",
+    ],
+    out: [
+        "android/hardware/radio/deprecated/1.0/IOemHook.h",
+        "android/hardware/radio/deprecated/1.0/IHwOemHook.h",
+        "android/hardware/radio/deprecated/1.0/BnHwOemHook.h",
+        "android/hardware/radio/deprecated/1.0/BpHwOemHook.h",
+        "android/hardware/radio/deprecated/1.0/BsOemHook.h",
+        "android/hardware/radio/deprecated/1.0/IOemHookIndication.h",
+        "android/hardware/radio/deprecated/1.0/IHwOemHookIndication.h",
+        "android/hardware/radio/deprecated/1.0/BnHwOemHookIndication.h",
+        "android/hardware/radio/deprecated/1.0/BpHwOemHookIndication.h",
+        "android/hardware/radio/deprecated/1.0/BsOemHookIndication.h",
+        "android/hardware/radio/deprecated/1.0/IOemHookResponse.h",
+        "android/hardware/radio/deprecated/1.0/IHwOemHookResponse.h",
+        "android/hardware/radio/deprecated/1.0/BnHwOemHookResponse.h",
+        "android/hardware/radio/deprecated/1.0/BpHwOemHookResponse.h",
+        "android/hardware/radio/deprecated/1.0/BsOemHookResponse.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.radio.deprecated@1.0",
+    generated_sources: ["android.hardware.radio.deprecated@1.0_genc++"],
+    generated_headers: ["android.hardware.radio.deprecated@1.0_genc++_headers"],
+    export_generated_headers: ["android.hardware.radio.deprecated@1.0_genc++_headers"],
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "android.hardware.radio@1.0",
+        "android.hidl.base@1.0",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "android.hardware.radio@1.0",
+        "android.hidl.base@1.0",
+    ],
+}
diff --git a/radio/deprecated/1.0/Android.mk b/radio/deprecated/1.0/Android.mk
new file mode 100644
index 0000000..4cce633
--- /dev/null
+++ b/radio/deprecated/1.0/Android.mk
@@ -0,0 +1,162 @@
+# This file is autogenerated by hidl-gen. Do not edit manually.
+
+LOCAL_PATH := $(call my-dir)
+
+################################################################################
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := android.hardware.radio.deprecated@1.0-java
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+
+intermediates := $(call local-generated-sources-dir, COMMON)
+
+HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
+
+LOCAL_JAVA_LIBRARIES := \
+    android.hardware.radio@1.0-java \
+    android.hidl.base@1.0-java \
+
+
+#
+# Build IOemHook.hal
+#
+GEN := $(intermediates)/android/hardware/radio/deprecated/V1_0/IOemHook.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IOemHook.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/IOemHookIndication.hal
+$(GEN): $(LOCAL_PATH)/IOemHookIndication.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/IOemHookResponse.hal
+$(GEN): $(LOCAL_PATH)/IOemHookResponse.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.radio.deprecated@1.0::IOemHook
+
+$(GEN): $(LOCAL_PATH)/IOemHook.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build IOemHookIndication.hal
+#
+GEN := $(intermediates)/android/hardware/radio/deprecated/V1_0/IOemHookIndication.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IOemHookIndication.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.radio.deprecated@1.0::IOemHookIndication
+
+$(GEN): $(LOCAL_PATH)/IOemHookIndication.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build IOemHookResponse.hal
+#
+GEN := $(intermediates)/android/hardware/radio/deprecated/V1_0/IOemHookResponse.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IOemHookResponse.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.radio.deprecated@1.0::IOemHookResponse
+
+$(GEN): $(LOCAL_PATH)/IOemHookResponse.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+include $(BUILD_JAVA_LIBRARY)
+
+
+################################################################################
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := android.hardware.radio.deprecated@1.0-java-static
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+
+intermediates := $(call local-generated-sources-dir, COMMON)
+
+HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
+
+LOCAL_STATIC_JAVA_LIBRARIES := \
+    android.hardware.radio@1.0-java-static \
+    android.hidl.base@1.0-java-static \
+
+
+#
+# Build IOemHook.hal
+#
+GEN := $(intermediates)/android/hardware/radio/deprecated/V1_0/IOemHook.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IOemHook.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/IOemHookIndication.hal
+$(GEN): $(LOCAL_PATH)/IOemHookIndication.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/IOemHookResponse.hal
+$(GEN): $(LOCAL_PATH)/IOemHookResponse.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.radio.deprecated@1.0::IOemHook
+
+$(GEN): $(LOCAL_PATH)/IOemHook.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build IOemHookIndication.hal
+#
+GEN := $(intermediates)/android/hardware/radio/deprecated/V1_0/IOemHookIndication.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IOemHookIndication.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.radio.deprecated@1.0::IOemHookIndication
+
+$(GEN): $(LOCAL_PATH)/IOemHookIndication.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build IOemHookResponse.hal
+#
+GEN := $(intermediates)/android/hardware/radio/deprecated/V1_0/IOemHookResponse.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IOemHookResponse.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.radio.deprecated@1.0::IOemHookResponse
+
+$(GEN): $(LOCAL_PATH)/IOemHookResponse.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/radio/deprecated/1.0/IOemHook.hal b/radio/deprecated/1.0/IOemHook.hal
new file mode 100644
index 0000000..2b6db65
--- /dev/null
+++ b/radio/deprecated/1.0/IOemHook.hal
@@ -0,0 +1,57 @@
+/**
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.radio.deprecated@1.0;
+
+import IOemHookResponse;
+import IOemHookIndication;
+
+/**
+ * This interface has APIs for OEM-specific use-cases.
+ * USE OF THIS INTERFACE IS DISCOURATED. IT IS PRESENT ONLY FOR BACKWARD COMPATIBILITY AND WILL BE
+ * REMOVED IN O (ATTEMPTING TO REMOVE IT IN O, BUT IF NOT IN O WILL BE REMOVED IN P).
+ * ALSO NOTE THAT FRAMEWORK EXPECTS THE SERVICE IMPLEMENTING THIS INTERFACE TO RESIDE
+ * IN THE SAME PROCESS AS IRADIO SERVICE.
+ */
+interface IOemHook {
+    /**
+     * Set response functions for oem hook requests & oem hook indications.
+     *
+     * @param oemHookResponse Object containing response functions
+     * @param oemHookIndication Object containing oem hook indications
+     */
+    setResponseFunctions(IOemHookResponse oemHookResponse, IOemHookIndication oemHookIndication);
+
+    /**
+     * This request passes raw byte arrays between framework and vendor code.
+     *
+     * @param serial Serial number of request.
+     * @param data data passed as raw bytes
+     *
+     * Response function is IOemHookResponse.sendRequestRawResponse()
+     */
+    oneway sendRequestRaw(int32_t serial, vec<uint8_t> data);
+
+    /**
+     * This request passes strings between framework and vendor code.
+     *
+     * @param serial Serial number of request.
+     * @param data data passed as strings
+     *
+     * Response function is IOemHookResponse.sendRequestStringsResponse()
+     */
+    oneway sendRequestStrings(int32_t serial, vec<string> data);
+};
\ No newline at end of file
diff --git a/radio/deprecated/1.0/IOemHookIndication.hal b/radio/deprecated/1.0/IOemHookIndication.hal
new file mode 100644
index 0000000..936779f
--- /dev/null
+++ b/radio/deprecated/1.0/IOemHookIndication.hal
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.radio.deprecated@1.0;
+
+import android.hardware.radio@1.0::types;
+
+/*
+ * Interface declaring unsolicited oem hook indications.
+ */
+interface IOemHookIndication {
+   /*
+    * This is for OEM specific use.
+    *
+    * @param type Type of radio indication
+    * @param data data passed as raw bytes
+    */
+   oneway oemHookRaw(RadioIndicationType type, vec<uint8_t> data);
+};
\ No newline at end of file
diff --git a/radio/deprecated/1.0/IOemHookResponse.hal b/radio/deprecated/1.0/IOemHookResponse.hal
new file mode 100644
index 0000000..4e49acc
--- /dev/null
+++ b/radio/deprecated/1.0/IOemHookResponse.hal
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.radio.deprecated@1.0;
+
+import android.hardware.radio@1.0::types;
+
+/*
+ * Interface declaring response functions to solicited oem hook requests.
+ * Response functions defined in this interface are as per following convention:
+ * <xyz>Response is response to IOemHook.<xyz>
+ */
+interface IOemHookResponse {
+    /*
+     * @param info Response info struct containing response type, serial no. and error
+     * @param data data returned by oem
+     *
+     * Valid errors returned:
+     *   RadioError:NONE
+     *   RadioError:RADIO_NOT_AVAILABLE
+     *   RadioError:INVALID_ARGUMENTS
+     *   RadioError:OEM_ERROR_X
+     */
+    oneway sendRequestRawResponse(RadioResponseInfo info, vec<uint8_t> data);
+
+    /*
+     * @param info Response info struct containing response type, serial no. and error
+     * @param data data returned by oem
+     *
+     * Valid errors returned:
+     *   RadioError:NONE
+     *   RadioError:RADIO_NOT_AVAILABLE
+     *   RadioError:INVALID_ARGUMENTS
+     *   RadioError:OEM_ERROR_X
+     */
+    oneway sendRequestStringsResponse(RadioResponseInfo info, vec<string> data);
+};
\ No newline at end of file
diff --git a/renderscript/1.0/Android.bp b/renderscript/1.0/Android.bp
new file mode 100644
index 0000000..cce34e7
--- /dev/null
+++ b/renderscript/1.0/Android.bp
@@ -0,0 +1,69 @@
+// This file is autogenerated by hidl-gen. Do not edit manually.
+
+filegroup {
+    name: "android.hardware.renderscript@1.0_hal",
+    srcs: [
+        "types.hal",
+        "IContext.hal",
+        "IDevice.hal",
+    ],
+}
+
+genrule {
+    name: "android.hardware.renderscript@1.0_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.renderscript@1.0",
+    srcs: [
+        ":android.hardware.renderscript@1.0_hal",
+    ],
+    out: [
+        "android/hardware/renderscript/1.0/types.cpp",
+        "android/hardware/renderscript/1.0/ContextAll.cpp",
+        "android/hardware/renderscript/1.0/DeviceAll.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.renderscript@1.0_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.renderscript@1.0",
+    srcs: [
+        ":android.hardware.renderscript@1.0_hal",
+    ],
+    out: [
+        "android/hardware/renderscript/1.0/types.h",
+        "android/hardware/renderscript/1.0/IContext.h",
+        "android/hardware/renderscript/1.0/IHwContext.h",
+        "android/hardware/renderscript/1.0/BnHwContext.h",
+        "android/hardware/renderscript/1.0/BpHwContext.h",
+        "android/hardware/renderscript/1.0/BsContext.h",
+        "android/hardware/renderscript/1.0/IDevice.h",
+        "android/hardware/renderscript/1.0/IHwDevice.h",
+        "android/hardware/renderscript/1.0/BnHwDevice.h",
+        "android/hardware/renderscript/1.0/BpHwDevice.h",
+        "android/hardware/renderscript/1.0/BsDevice.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.renderscript@1.0",
+    generated_sources: ["android.hardware.renderscript@1.0_genc++"],
+    generated_headers: ["android.hardware.renderscript@1.0_genc++_headers"],
+    export_generated_headers: ["android.hardware.renderscript@1.0_genc++_headers"],
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "android.hidl.base@1.0",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "android.hidl.base@1.0",
+    ],
+}
diff --git a/renderscript/1.0/Android.mk b/renderscript/1.0/Android.mk
new file mode 100644
index 0000000..5c3a37d
--- /dev/null
+++ b/renderscript/1.0/Android.mk
@@ -0,0 +1,41 @@
+# This file is autogenerated by hidl-gen. Do not edit manually.
+
+LOCAL_PATH := $(call my-dir)
+
+################################################################################
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := android.hardware.renderscript@1.0-java-constants
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+
+intermediates := $(call local-generated-sources-dir, COMMON)
+
+HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
+#
+GEN := $(intermediates)/android/hardware/renderscript/V1_0/Constants.java
+$(GEN): $(HIDL)
+$(GEN): $(LOCAL_PATH)/types.hal
+$(GEN): $(LOCAL_PATH)/IContext.hal
+$(GEN): $(LOCAL_PATH)/IDevice.hal
+
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+        -Ljava-constants \
+        -randroid.hardware:hardware/interfaces \
+        -randroid.hidl:system/libhidl/transport \
+        android.hardware.renderscript@1.0
+
+$(GEN):
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+# Avoid dependency cycle of framework.jar -> this-library -> framework.jar
+LOCAL_NO_STANDARD_LIBRARIES := true
+LOCAL_JAVA_LIBRARIES := core-oj
+
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/renderscript/1.0/IContext.hal b/renderscript/1.0/IContext.hal
new file mode 100644
index 0000000..2e386d2
--- /dev/null
+++ b/renderscript/1.0/IContext.hal
@@ -0,0 +1,1177 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.renderscript@1.0;
+
+import android.hardware.renderscript@1.0::types;
+
+// TODO: is there any way to keep this documentation in sync with the
+// corresponding Java doc?
+//
+// TODO: Some of the documentation was taken from Java docs, whereas others were
+// undocumented. Because of this, there's somewhat two different styles of
+// comments. Look into having a consistent convention.
+//
+// TODO: There was some confusion as to why some paramters use vec<> and others
+// use Ptr/Size. The convention is that vec<> is used whenever the paramter is
+// only an input parameter. HIDL is not supposed to include any output
+// parameters, so a more explicit Ptr/Size is used.
+
+interface IContext {
+
+    /*
+     * TODO: Do we need to define "selectors"? It may be a property of the
+     * "adapted allocation" that's returned.
+     *
+     * Creates an arbitrary window into the base allocation. The type describes
+     * the shape of the window. Any dimensions present in the type must be
+     * equal to or smaller than the dimensions in the source allocation. A
+     * dimension present in the allocation that is not present in the type must
+     * be constrained away with the selectors. If a dimension is present in
+     * both the type and allocation, one of two things must happen. If the type
+     * is smaller than the allocation, a window must be created, the selected
+     * value in the adapter for that dimension must act as the base address,
+     * and the type must describe the size of the view starting at that point.
+     * If the type and allocation dimension are of the same size, then setting
+     * the selector for the dimension must be an error.
+     *
+     * @param type Type describing data layout
+     * @param baseAlloc Allocation
+     * @return subAlloc AllocationAdapter
+     */
+    @callflow(next={"*"})
+    allocationAdapterCreate(Type type, Allocation baseAlloc)
+                 generates (AllocationAdapter subAlloc);
+
+    /*
+     * TODO: Need to relate "offset" back to the terminology in
+     * allocationAdapterCreate() -- the latter uses the terms "selector" and
+     * "selected value". Can we use consistent terminology? Are "offset" and
+     * "selector" actually two different things?
+     *
+     * TODO: Explain the flattened layout in the offsets vec
+     *
+     * Sets the offsets for an Allocation Adapter.
+     *
+     * @param alloc AllocationAdapter
+     * @param offsets Collection of offsets
+     */
+    @callflow(next={"*"})
+    allocationAdapterOffset(AllocationAdapter alloc, vec<uint32_t> offsets);
+
+    /*
+     * TODO: add more explanation here.
+     *
+     * Returns the Type of the Allocation.
+     *
+     * @param allocation Allocation
+     * @return type Allocation's Type
+     */
+    @callflow(next={"*"})
+    allocationGetType(Allocation allocation) generates (Type type);
+
+    /*
+     * TODO: more clarification needed describing if the pointer can be aliased
+     * or if the data can outlive the allocation.
+     *
+     * Creates an Allocation for use by scripts with a given Type and a backing
+     * pointer. For use with ALLOCATION_USAGE_SHARED.
+     *
+     * @param type Type describing data layout
+     * @param mips AllocationMipmapControl specifies desired mipmap behavior for
+     *             the allocation
+     * @param usage Bit field specifying how the Allocation is utilized
+     * @param ptr Pointer to client-side data
+     * @return allocation Created Allocation
+     */
+    @callflow(next={"*"})
+    allocationCreateTyped(Type type, AllocationMipmapControl mips,
+                          bitfield<AllocationUsageType> usage, Ptr ptr)
+               generates (Allocation allocation);
+
+    /*
+     * Creates an Allocation from a Bitmap.
+     *
+     * @param type Type describing data layout
+     * @param mips AllocationMipmapControl specifies desired mipmap behavior for
+     *             the allocation
+     * @param bitmap Bitmap source for the allocation data
+     * @param usage Bit field specifying how the Allocation is utilized
+     * @return allocation Created Allocation containing bitmap data
+     */
+    @callflow(next={"*"})
+    allocationCreateFromBitmap(Type type, AllocationMipmapControl mips,
+                               vec<uint8_t> bitmap,
+                               bitfield<AllocationUsageType> usage)
+                    generates (Allocation allocation);
+
+    /*
+     * Creates a Cubemapped Allocation from a Bitmap.
+     *
+     * @param type Type describing data layout
+     * @param mips AllocationMipmapControl specifies desired mipmap behavior
+     *             for the allocation
+     * @param bitmap Bitmap with cubemap faces layed out in the following
+     *               format: right, left, top, bottom, front, back
+     * @param usage Bit field specifying how the Allocation is used
+     * @return allocation Created Allocation containing cubemap data
+     */
+    @callflow(next={"*"})
+    allocationCubeCreateFromBitmap(Type type, AllocationMipmapControl mips,
+                                   vec<uint8_t> bitmap,
+                                   bitfield<AllocationUsageType> usage)
+                        generates (Allocation allocation);
+
+    /*
+     * Returns the handle to a raw buffer that is being managed by the screen
+     * compositor. This operation is only valid for Allocations with
+     * USAGE_IO_INPUT.
+     *
+     * @param allocation Allocation
+     * @return nativeWindow NativeWindow object associated with allocation
+     */
+    @callflow(next={"*"})
+    allocationGetNativeWindow(Allocation allocation)
+                   generates (NativeWindow nativeWindow);
+
+    /*
+     * TODO: more clarification needed
+     *
+     * Sets the NativeWindow of an Allocation. This operation is only valid
+     * for Allocations with USAGE_IO_INPUT.
+     *
+     * @param allocation Allocation to be modified
+     * @pram nativeWindow NativeWindow to associate with allocation
+     */
+    @callflow(next={"*"})
+    allocationSetNativeWindow(Allocation allocation, NativeWindow nativewindow);
+
+    /*
+     * Initialize BufferQueue with specified max number of buffers.
+     *
+     * @param alloc Allocation
+     * @param numBuffer Maximum number of buffers
+     */
+    @callflow(next={"*"})
+    allocationSetupBufferQueue(Allocation alloc, uint32_t numBuffer);
+
+    /*
+     * TODO: clearly define baseAlloc vs subAlloc
+     *
+     * Shares the BufferQueue with another Allocation. Both must be
+     * USAGE_IO_INPUT Allocations.
+     *
+     * @param baseAlloc Base Allocation
+     * @param subAlloc Allocation to use the same buffer queue as the Base
+     *                 Allocation
+     */
+    @callflow(next={"*"})
+    allocationShareBufferQueue(Allocation baseAlloc, Allocation subAlloc);
+
+    /*
+     * Copies from the Allocation into a Bitmap. The bitmap must match the
+     * dimensions of the Allocation.
+     *
+     * HIDL is always running in Passthrough mode for RenderScript, so the
+     * buffer is modified directly by the driver.
+     *
+     * @param allocation Allocation
+     * @param data Buffer to be copied into
+     * @param sizeBytes Size of the buffer pointed to by "data"
+     */
+    @callflow(next={"*"})
+    allocationCopyToBitmap(Allocation allocation, Ptr data, Size sizeBytes);
+
+    /*
+     * TODO: should we consolidate all [123]DWrite functions or [123]DRead
+     * functions into the same API call? Our current plan is to be very similar
+     * to the dispatch table API. How much should we deviate from the original
+     * API?
+     * TODO: better description on Vec3/Vec4 and padding.
+     *
+     * Copies data into a 1D region of this Allocation.
+     *
+     * When this HAL entry is executed, all Vec3 elements have been explicitly
+     * padded as Vec4 elements.
+     *
+     * The size of the region is: count * Element's size.
+     *
+     * @param allocation Allocation to be modified
+     * @param offset The offset of the first element to be copied
+     * @param lod Selected mipmap level of detail
+     * @param count Number of elements to be copied
+     * @param data Source data to be copied to Allocation
+     */
+    @callflow(next={"*"})
+    allocation1DWrite(Allocation allocation, uint32_t offset, uint32_t lod,
+                      uint32_t count, vec<uint8_t> data);
+
+    /*
+     * Copies a value into a single sub-Element of this Allocation.
+     *
+     * @param allocation Allocation to be updated
+     * @param x X position of the first element in the Allocation to be updated
+     * @param y Y position of the first element in the Allocation to be
+     *          updated; for a 1D Allocation, this value must be 0
+     * @param z Z position of the first element in the Allocation to be
+     *          updated; for a 1D or 2D Allocation, this value must be 0
+     * @param lod Selected mipmap level of detail
+     * @param data Data to be copied from
+     * @param compIdx Component number to identify which sub-Element is updated
+     */
+    @callflow(next={"*"})
+    allocationElementWrite(Allocation allocation, uint32_t x, uint32_t y,
+                           uint32_t z, uint32_t lod, vec<uint8_t> data,
+                           Size compIdx);
+
+    /*
+     * Copies from an array into a rectangular region in this Allocation.
+     *
+     * When this HAL entry is executed, all Vec3 elements have been explicitly
+     * padded as Vec4 elements.
+     *
+     * The size of the region is: w * h * Element's size.
+     *
+     * @param allocation Allocation to be modified
+     * @param xoff X offset of the region to update in this Allocation
+     * @param yoff Y offset of the region to update in this Allocation
+     * @param lod Selected mipmap level of detail
+     * @param face AllocationCubemapFace
+     * @param w Width of the region to update
+     * @param h Height of the region to update
+     * @param data Data to be placed into the Allocation
+     * @param stride For 1D Allocation, the stride must be the number of bytes
+     *               of this Allocation. For 2D and 3D Allocations, the stride
+     *               must be the stride in X dimension measuring in bytes.
+     */
+    @callflow(next={"*"})
+    allocation2DWrite(Allocation allocation, uint32_t xoff, uint32_t yoff,
+                      uint32_t lod, AllocationCubemapFace face, uint32_t w,
+                      uint32_t h, vec<uint8_t> data, Size stride);
+
+    /*
+     * Copies from an array into a 3D region in this Allocation.
+     *
+     * When this HAL entry is executed, all Vec3 elements have been explicitly
+     * padded as Vec4 elements.
+     *
+     * The size of the region is: w * h * d * Element's size.
+     *
+     * @param allocation Allocation to be modified
+     * @param xoff X offset of the region to update in this Allocation
+     * @param yoff Y offset of the region to update in this Allocation
+     * @param zoff Z offset of the region to update in this Allocation
+     * @param lod Selected mipmap level of detail
+     * @param w Width of the region to update
+     * @param h Height of the region to update
+     * @param d Depth of the region to update
+     * @param data Data to be placed in the Allocation
+     * @param stride For 1D Allocation, the stride must be the number of bytes
+     *               of this Allocation. For 2D and 3D Allocations, the stride
+     *               must be the stride in X dimension measuring in bytes.
+     */
+    @callflow(next={"*"})
+    allocation3DWrite(Allocation allocation, uint32_t xoff, uint32_t yoff,
+                      uint32_t zoff, uint32_t lod, uint32_t w, uint32_t h,
+                      uint32_t d, vec<uint8_t> data, Size stride);
+
+    /*
+     * Generates a mipmap chain. This is only valid if the Type of the
+     * Allocation includes mipmaps.
+     *
+     * This function generates a complete set of mipmaps from the top level
+     * LOD.
+     *
+     * If the Allocation is also using other memory spaces, a call to
+     * allocationSyncAll(context, allocation, usage) is required.
+     *
+     * @param allocation Allocation which has its top LOD read and lower LOD
+     *                   written to
+     */
+    @callflow(next={"*"})
+    allocationGenerateMipmaps(Allocation allocation);
+
+    /*
+     * Copies all of an Allocation's data into an array.
+     *
+     * All Vec3 elements of an Allocation are padded to be Vec4, so the data
+     * returned by this function automatically includes padding.
+     *
+     * HIDL is always running in Passthrough mode for RenderScript, so the
+     * buffer is modified directly by the driver.
+     *
+     * @param allocation Allocation to be read
+     * @param data Buffer to be copied into
+     * @param sizeBytes Size of the buffer pointed to by "data"
+     */
+    @callflow(next={"*"})
+    allocationRead(Allocation allocation, Ptr data, Size sizeBytes);
+
+    /*
+     * Copies a 1D region of this Allocation into an array.
+     *
+     * All Vec3 elements of an Allocation are padded to be Vec4, so the data
+     * returned by this function automatically includes padding.
+     *
+     * The size of the region is: count * Element's size.
+     *
+     * HIDL is always running in Passthrough mode for RenderScript, so the
+     * buffer is modified directly by the driver.
+     *
+     * @param allocation Allocation to be read
+     * @param xoff X offset of the first element to be copied
+     * @param lod Mipmap level of detail
+     * @param count The number of elements to be copied
+     * @param data Buffer to be copied into
+     * @param sizeBytes Size of the buffer pointed to by "data"
+     */
+    @callflow(next={"*"})
+    allocation1DRead(Allocation allocation, uint32_t xoff, uint32_t lod,
+                     uint32_t count, Ptr data, Size sizeBytes);
+
+    /*
+     * Returns the value of a single sub-Element of this Allocation.
+     *
+     * HIDL is always running in Passthrough mode for RenderScript, so the
+     * buffer is modified directly by the driver.
+     *
+     * @param allocation Allocation to be read
+     * @param x X position of the first element in the Allocation to be read
+     * @param y Y position of the first element in the Allocation to be read
+     * @param z Z position of the first element in the Allocation to be read
+     * @param lod Mipmap level of detail
+     * @param data Buffer to be copied into
+     * @param sizeBytes Size of the buffer pointed to by "data"
+     * @param compIdx Component number to identify which sub-Element is updated
+     */
+    @callflow(next={"*"})
+    allocationElementRead(Allocation allocation, uint32_t x, uint32_t y,
+                          uint32_t z, uint32_t lod, Ptr data, Size sizeBytes,
+                          Size compIdx);
+
+    /*
+     * Copies from a rectangular region in this Allocation to an array.
+     *
+     * All Vec3 elements of an Allocation are padded to be Vec4, so the data
+     * returned by this function automatically includes padding.
+     *
+     * The size of the region is: w * h * Element's size.
+     *
+     * HIDL is always running in Passthrough mode for RenderScript, so the
+     * buffer is modified directly by the driver.
+     *
+     * @param allocation Allocation to be read
+     * @param xoff X offset of the region to copy in this array
+     * @param yoff Y offset of the region to copy in this array
+     * @param lod Mipmap level of detail
+     * @param face AllocationCubemapFace
+     * @param w Width of the region to copy
+     * @param h Height of the region to copy
+     * @param data Buffer to be copied into
+     * @param sizeBytes Size of the buffer pointed to by "data"
+     * @param stride For 1D Allocation, the stride must be the number of bytes
+     *               of this Allocation. For 2D and 3D Allocations, the stride
+     *               must be the stride in X dimension measuring in bytes.
+     */
+    @callflow(next={"*"})
+    allocation2DRead(Allocation allocation, uint32_t xoff, uint32_t yoff,
+                     uint32_t lod, AllocationCubemapFace face, uint32_t w,
+                     uint32_t h, Ptr data, Size sizeBytes, Size stride);
+
+    /*
+     * Copies from a rectangular cuboid region in this Allocation to an array.
+     *
+     * All Vec3 elements of an Allocation are padded to be Vec4, so the data
+     * returned by this function automatically includes padding.
+     *
+     * The size of the region is: w * h * d * Element's size.
+     *
+     * HIDL is always running in Passthrough mode for RenderScript, so the
+     * buffer is modified directly by the driver.
+     *
+     * @param allocation Allocation to be read
+     * @param xoff X offset of the region to copy in this array
+     * @param yoff Y offset of the region to copy in this array
+     * @param zoff Z offset of the region to copy in this array
+     * @param lod Mipmap level of detail
+     * @param w Width of the region to copy
+     * @param h Height of the region to copy
+     * @param d Depth of the region to copy
+     * @param data Buffer to be copied into
+     * @param sizeBytes Size of the buffer pointed to by "data"
+     * @param stride For 1D Allocation, the stride must be the number of bytes
+     *               of this Allocation. For 2D and 3D Allocations, the stride
+     *               must be the stride in X dimension measuring in bytes.
+     */
+    @callflow(next={"*"})
+    allocation3DRead(Allocation allocation, uint32_t xoff, uint32_t yoff,
+                     uint32_t zoff, uint32_t lod, uint32_t w, uint32_t h,
+                     uint32_t d, Ptr data, Size sizeBytes, Size stride);
+
+    /*
+     * Propagates changes from one usage of the Allocation to the other usages
+     * of the Allocation.
+     *
+     * @param allocation First usage of the Allocation
+     * @param usageType Allocation usage type
+     */
+    @callflow(next={"*"})
+    allocationSyncAll(Allocation allocation, AllocationUsageType usageType);
+
+    /*
+     * TODO: describe the functionality of resize1D better
+     * TODO: original Java Doc description seems to contradict itself ("with
+     * null contents and the region is otherwise undefined")
+     * TODO: should "new elements" be "new cells"?
+     * TODO: what does "objects are created" mean?
+     * TODO: what does "new dimension" mean? IS the type of the resized
+     * allocation different than the type before resizing?
+     *
+     * Resizes a 1D allocation. The contents of the allocation are preserved.
+     * If new elements are allocated, objects are created with null contents
+     * and the new region is otherwise undefined.
+     *
+     * If the new region is smaller, the references of any object outside the
+     * new region must be released.
+     *
+     * A new type must be created with the new dimension.
+     *
+     * @param allocation Allocation to be resized
+     * @param dimX New size along the x dimension of the Allocation
+     */
+    @callflow(next={"*"})
+    allocationResize1D(Allocation allocation, uint32_t dimX);
+
+    /*
+     * TODO: There are allocationCopy2DRange and 3DRange, but no 1DRange. Should
+     * the interface be cleaned up more?
+     *
+     * Copies a rectangular region from an Allocation into a rectangular region
+     * in this Allocation.
+     *
+     * @param dstAlloc Allocation to be updated
+     * @param dstXoff X offset of the region to update
+     * @param dstYoff Y offset of the region to update
+     * @param dstMip Selected mipmap level of the Allocation to update
+     * @param dstFace Destination AllocationCubemapFace
+     * @param width Width of the region to update
+     * @param height Height of the region to update
+     * @param srcAlloc Source Allocation, to be read
+     * @param srcXoff X offset of the region in the source Allocation
+     * @param srcYoff Y offset of the region in the source Allocation
+     * @param srcMip Selected mipmap level of the source Allocation
+     * @param srcFace Source AllocationCubemapFace
+     */
+    @callflow(next={"*"})
+    allocationCopy2DRange(Allocation dstAlloc, uint32_t dstXoff,
+                          uint32_t dstYoff, uint32_t dstMip,
+                          AllocationCubemapFace dstFace, uint32_t width,
+                          uint32_t height, Allocation srcAlloc,
+                          uint32_t srcXoff, uint32_t srcYoff, uint32_t srcMip,
+                          AllocationCubemapFace srcFace);
+
+    /*
+     * Copies a rectangular cuboid region into the allocation from another
+     * Allocation.
+     *
+     * @param dstAlloc Allocation to be updated
+     * @param dstXoff X offset of the region to update
+     * @param dstYoff Y offset of the region to update
+     * @param dstZoff Z offset of the region to update
+     * @param dstMip Selected mipmap level of the Allocation to update
+     * @param width Width of the region to update
+     * @param height Height of the region to update
+     * @param depth Depth of the region to update
+     * @param srcAlloc Source Allocation, to be read
+     * @param srcXoff Source X offset of the region in the source Allocation
+     * @param srcYoff Source Y offset of the region in the source Allocation
+     * @param srcZoff Source Z offset of the region in the souce Allocation
+     * @param srcMip Selected mipmap level of the Allocation to read
+     */
+    @callflow(next={"*"})
+    allocationCopy3DRange(Allocation dstAlloc, uint32_t dstXoff,
+                          uint32_t dstYoff, uint32_t dstZoff, uint32_t dstMip,
+                          uint32_t width, uint32_t height, uint32_t depth,
+                          Allocation srcAlloc, uint32_t srcXoff,
+                          uint32_t srcYoff, uint32_t srcZoff, uint32_t srcMip);
+
+    /*
+     * TODO: define buffer and output stream
+     *
+     * Sends a buffer to the output stream. The contents of the Allocation may
+     * be undefined after this operation. This operation is only valid if
+     * USAGE_IO_OUTPUT is set on the Allocation.
+     *
+     * @param allocation Allocation to be sent
+     */
+    @callflow(next={"*"})
+    allocationIoSend(Allocation allocation);
+
+    /*
+     * Receives the latest input into the Allocation. This operation is only
+     * valid if USAGE_IO_INPUT is set on the Allocation, otherwise an error
+     * must be reported and no operations may be executed.
+     *
+     * @param allocation Allocation to be updated
+     */
+    @callflow(next={"*"})
+    allocationIoReceive(Allocation allocation);
+
+    /*
+     * TODO: describe default values for lod, face, and z better.
+     * TODO: what cases can invalidate the pointer? Resize? It should be
+     * clarified that this method should always return a valid pointer, but the
+     * returned pointer might become invalid later.
+     *
+     * Retrieves the pointer to the actual data an Allocation contains as well
+     * as the data's stride.
+     *
+     * If Allocation lacks the corresponding dimension for lod, face, or z, an
+     * error message must be sent to the message queue and nullptr must be
+     * returned for dataPtr and 0 for stride. All missing values must be 0 or
+     * NONE in the corresponding enum.
+     *
+     * @param allocation Allocation
+     * @param lod Mipmap level of detail
+     * @param face AllocationCubemapFace
+     * @param z Z position
+     * @return pointer Pointer to the server-side data; if this points to an
+     *                 invalid location in memory (because the buffer was
+     *                 freed), this may result in undefined behavior
+     * @return stride For 1D Allocation, the stride must be the number of bytes
+     *                of this Allocation. For 2D and 3D Allocations, the stride
+     *                must be the stride in X dimension measuring in bytes.
+     */
+    @callflow(next={"*"})
+    allocationGetPointer(Allocation allocation, uint32_t lod,
+                         AllocationCubemapFace face, uint32_t z)
+              generates (Ptr dataPtr, Size stride);
+
+    /*
+     * Retrieves an Element's metadata from native code.
+     *
+     * @param element Element to be read
+     * @return elemData Element data
+     */
+    @callflow(next={"*"})
+    elementGetNativeMetadata(Element element)
+                  generates (vec<uint32_t> elemData);
+
+    /*
+     * TODO: define Sub-Element handles better.
+     *
+     * Retrieves an Element's sub Elements, specifically their identifiers,
+     * names, and sizes.
+     *
+     * @param element Element to be read
+     * @param numSubElem Number of sub-Elements
+     * @return ids Sub-Element handles
+     * @return names Sub-Element Names
+     * @return arraySizes Sizes of sub-Element arrays
+     */
+    @callflow(next={"*"})
+    elementGetSubElements(Element element, Size numSubElem)
+               generates (vec<Element> ids, vec<string> names,
+                          vec<Size> arraySizes);
+
+    /*
+     * TODO: can normalization flag be removed?
+     *
+     * Creates an Element.
+     *
+     * @param dt Data type
+     * @param dk Data kind
+     * @param norm Flag for normalization
+     * @param size Vector length, with scalar = 1
+     * @return element Created Element
+     */
+    @callflow(next={"*"})
+    elementCreate(DataType dt, DataKind dk, bool norm, uint32_t size)
+       generates (Element element);
+
+    /*
+     * Creates a complex Element.
+     *
+     * @param einsPtr Container of input Elements
+     * @param namesPtr Container of input names
+     * @param arraySizesPtr Container of array sizes
+     * @return element Created Element
+     */
+    @callflow(next={"*"})
+    elementComplexCreate(vec<Element> einsPtr, vec<string> names,
+                         vec<Size> arraySizesPtr)
+              generates (Element element);
+
+    /*
+     * Retrives a Type's metadata from native code.
+     *
+     * @param type Type describing data layout
+     * @return metadata Type's native metadata
+     */
+    @callflow(next={"*"})
+    typeGetNativeMetadata(Type type) generates (vec<OpaqueHandle> metadata);
+
+    /*
+     * Creates a new Type.
+     *
+     * If Type is 1D, Y and Z must be 0. If Type is 2D, Z must be 0.
+     *
+     * @param element Element of the Type
+     * @param dimX X dimension
+     * @param dimY Y dimension
+     * @param dimZ Z dimension
+     * @param mipmaps Flag indicating whether Type has mipmaps
+     * @param faces Flag indicating whether Type has faces
+     * @param yuv Enumeration specifying which type of YUV format, if any, Type
+     *            uses
+     * @return type Created Type
+     */
+    @callflow(next={"*"})
+    typeCreate(Element element, uint32_t dimX, uint32_t dimY, uint32_t dimZ,
+               bool mipmaps, bool faces, YuvFormat yuv)
+    generates (Type type);
+
+    /*
+     * Destroys provided RenderScript context, including all objects created in
+     * this context.
+     */
+    @exit
+    contextDestroy();
+
+    /*
+     * TODO: provide overview of messaging model and figure out if this should
+     * be part of HAL or not.
+     * TODO: what is the "client" for purposes of this interface?
+     * TODO: consider using send/receive to be more similar to other calls
+     * TODO: define the purpose of size more
+     *
+     * Fills the provided buffer with message data. "size" should be at least
+     * as large as the message size. Returns the MessageType and size of the
+     * message are returned.
+     *
+     * @param data A pointer to a buffer to be filled with a message
+     * @param size Size in bytes of the buffer pointed to by "data"
+     * @return messageType Type of message sent to the client
+     * @return receiveLen Length of the message in bytes
+     */
+    @callflow(next={"*"})
+    contextGetMessage(Ptr data, Size size)
+           generates (MessageToClientType messageType, Size receiveLen);
+
+    /*
+     * TODO: define subID better.
+     *
+     * Gets the metadata of a message to ensure entire message can be properly
+     * received. Can be used to determine size of data to allocate when calling
+     * contextGetMessage.
+     *
+     * @return messageType Type of message sent to the client
+     * @return receiveLen Length of message
+     * @return subID Message sub identifier
+     */
+    @callflow(next={"*"})
+    contextPeekMessage()
+            generates (MessageToClientType messageType, Size receiveLen,
+                       uint32_t subID);
+
+    /*
+     * TODO: Define "previous commands" better
+     * TODO: Is the message identifier the same as subID?
+     *
+     * Places a message into the message queue to be sent back to the message
+     * handler once all previous commands have been executed. The message data
+     * is copied into the queue and can be discarded by the client after this
+     * call.
+     *
+     * @param id Message identifier
+     * @param data Message data
+     */
+    @callflow(next={"*"})
+    contextSendMessage(uint32_t id, vec<uint8_t> data);
+
+    /*
+     * TODO: Can this be done automatically as part of context creation? What
+     * happens if we perform message operations before doing this?
+     *
+     * Initializes the messaging thread, so that the front-end API can receive
+     * messages from the driver. This call also waits for the messaging FIFO to
+     * start up.
+     */
+    @callflow(next={"*"})
+    contextInitToClient();
+
+    /*
+     * TODO: Why doesn't this happen automatically as part of context
+     * destruction? What happens if the FIFO is not empty?
+     *
+     * Deinitializes a the messaging thread. Shuts down the FIFO.
+     */
+    @callflow(next={"*"})
+    contextDeinitToClient();
+
+    /*
+     * TODO: do we need to mark asynchronous operations in this interface
+     * definition?
+     *
+     * Waits for any pending asynchronous operations (such as copies to a RS
+     * allocation or RS script executions) to complete.
+     */
+    @callflow(next={"*"})
+    contextFinish();
+
+    /*
+     * Prints the currently available debugging information about the state of
+     * the RS context to the logcat.
+     */
+    @callflow(next={"*"})
+    contextLog();
+
+    /*
+     * TODO: full path? relative path? Investigate further.
+     *
+     * Sets the cache directory of the context.
+     *
+     * @param cacheDir Name of the application's cache directory
+     */
+    @callflow(next={"*"})
+    contextSetCacheDir(string cacheDir);
+
+    /*
+     * TODO: does this apply to the GPU as well?
+     *
+     * Changes the priority of the cpu worker threads for this context.
+     *
+     * @param priority Priority of the thread
+     */
+    @callflow(next={"*"})
+    contextSetPriority(ThreadPriorities priority);
+
+    /*
+     * TODO: does this need to be part of the HAL? What if the object already
+     * has a name?
+     *
+     * Assigns a name to a base object.
+     *
+     * @param obj Object to be named
+     * @param name Assigned name
+     */
+    @callflow(next={"*"})
+    assignName(ObjectBase obj, string name);
+
+    /*
+     * TODO: what if the object has no name?
+     *
+     * Returns the name of an object.
+     *
+     * @param obj Object to be read
+     * @return name Name of the object
+     */
+    @callflow(next={"*"})
+    getName(ObjectBase obj) generates (string name);
+
+    /*
+     * TODO: starting here we have a set of interfaces for use with
+     * ScriptGroups. At the very least we should indicate for each one that's
+     * what it's for. Should we include ScriptGroup in the interface names?
+     * TODO: sweep whole file and remove prefix "v" from all parameter names
+     * TODO: there are some places where we use Size for size, and others where
+     * we use int32_t. Is there a reason it's int32_t? In some cases, it
+     * requires a negative value.
+     *
+     * Creates a Closure which represents a function call to a ForEach Kernel
+     * combined with arguments and values for global variables.
+     *
+     * @param kernelID Kernel identifier
+     * @param returnValue Allocation used in output of Closure
+     * @param fieldIDS Collection of Script's Field identifiers
+     * @param values Collection of Script's data values
+     * @param sizes Collection of Script's data sizes
+     * @param depClosures Collection of Closures
+     * @param depFieldIDS Collection of Script's dependent Field identifiers
+     * @return closure Created Closure
+     */
+    @callflow(next={"*"})
+    closureCreate(ScriptKernelID kernelID, Allocation returnValue,
+                  vec<ScriptFieldID> fieldIDS, vec<int64_t> values,
+                  vec<int32_t> sizes, vec<Closure> depClosures,
+                  vec<ScriptFieldID> depFieldIDS)
+       generates (Closure closure);
+
+    /*
+     * Creates a Closure which represents a function call to a invocable
+     * function, combined with arguments and values for global variables.
+     *
+     * @param invokeID Invokable function identifier
+     * @param params Collection of Invoke script parameters
+     * @param fieldIDS Collection of Script Field identifiers
+     * @param values Collection of values
+     * @param sizes Collection of sizes
+     * @return closure Created Closure
+     */
+    @callflow(next={"*"})
+    invokeClosureCreate(ScriptInvokeID invokeID, vec<uint8_t> params,
+                        vec<ScriptFieldID> fieldIDS, vec<int64_t> values,
+                        vec<int32_t> sizes)
+             generates (Closure closure);
+
+    /*
+     * Sets the argument of a Closure at specified index and size to provided
+     * value.
+     *
+     * @param closure Closure to be modified
+     * @param index Index
+     * @param value Value
+     * @param size Size
+     */
+    @callflow(next={"*"})
+    closureSetArg(Closure closure, uint32_t index, Ptr value, int32_t size);
+
+    /*
+     * Sets a global variable in a Closure.
+     *
+     * @param closure Closure
+     * @param fieldID Global's Field identifier
+     * @param value Value
+     * @param size Size
+     */
+    @callflow(next={"*"})
+    closureSetGlobal(Closure closure, ScriptFieldID fieldID, int64_t value,
+                     int32_t size);
+
+    /*
+     * TODO: should slot be unsigned? (applies to other two ID interfaces, too)
+     *
+     * Creates a Script Kernel ID.
+     *
+     * @param script Script
+     * @param slot Slot
+     * @param sig Bitfield describing Kernel signature and operation
+     * @return scriptKernelID Script's Kernel identifier
+     */
+    @callflow(next={"*"})
+    scriptKernelIDCreate(Script script, int32_t slot,
+                         bitfield<MetadataSignatureBitval> sig)
+              generates (ScriptKernelID scriptKernelID);
+
+    /*
+     * Creates a Script Invoke ID.
+     *
+     * @param script Script
+     * @param slot Slot
+     * @return scriptInvokeID Invoke Script's identifier
+     */
+    @callflow(next={"*"})
+    scriptInvokeIDCreate(Script script, int32_t slot)
+              generates (ScriptInvokeID scriptInvokeID);
+
+    /*
+     * TODO: describe the return value better. What is it?
+     *
+     * Creates a Script Field ID.
+     *
+     * @param script Script
+     * @param slot Slot
+     * @return scriptFieldID Script's Field identifier
+     */
+    @callflow(next={"*"})
+    scriptFieldIDCreate(Script script, int32_t slot)
+             generates (ScriptFieldID scriptFieldID);
+
+    /*
+     * TODO: add more description
+     *
+     * Creates a Script Group.
+     *
+     * @param kernels Collection of Scripts' Kernel identifiers
+     * @param srcK Source Kernel identifiers
+     * @param dstK Destination Kernel identifiers
+     * @param dstF Destination Script Field identifiers
+     * @param types Collection of Types describing data layout
+     * @return scriptGroup Created Script Group
+     */
+    @callflow(next={"*"})
+    scriptGroupCreate(vec<ScriptKernelID> kernels, vec<ScriptKernelID> srcK,
+                      vec<ScriptKernelID> dstK, vec<ScriptFieldID> dstF,
+                      vec<Type> types)
+           generates (ScriptGroup scriptGroup);
+
+    /*
+     * Creates a Script Group.
+     *
+     * @param name Name
+     * @param cacheDir Cache directory
+     * @param closures Collection of Closures
+     * @return scriptGroup2 Created Script Group
+     */
+    @callflow(next={"*"})
+    scriptGroup2Create(string name, string cacheDir, vec<Closure> closures)
+            generates (ScriptGroup2 scriptGroup2);
+
+    /*
+     * TODO: if SetInput/Output corresponds to the Java API setInput() and
+     * setOutput(), which are documented as deprecated in API 23, do we need to
+     * support them? Or can we fallback to the CPU when they're used? Or can't
+     * we tell whether they're used early enough to do fallback?
+     *
+     * Sets an output of the ScriptGroup. This specifies an Allocation to be
+     * used for the kernels that require an output Allocation visible after the
+     * ScriptGroup is executed.
+     *
+     * @param sg Script Group
+     * @param kid Script's Kernel identifier to be changed
+     * @param alloc Allocation to be filled by output
+     */
+    @callflow(next={"*"})
+    scriptGroupSetOutput(ScriptGroup sg, ScriptKernelID kid, Allocation alloc);
+
+    /*
+     * Sets an input of the Script Group. This specifies an Allocation to be
+     * used for kernels that require an input Allocation provided from outside
+     * of the Script Group.
+     *
+     * @param sg Script Group
+     * @param kid Script's Kernel identifier to be changed
+     * @param alloc Allocation to be read as input
+     */
+    @callflow(next={"*"})
+    scriptGroupSetInput(ScriptGroup sg, ScriptKernelID kid, Allocation alloc);
+
+    /*
+     * Executes a Script Group.
+     *
+     * @param sg Script Group to be executed.
+     */
+    @callflow(next={"*"})
+    scriptGroupExecute( ScriptGroup sg);
+
+    /*
+     * Frees any native resources associated with this object. The primary use
+     * is to force immediate cleanup of resources when it is believed the GC
+     * may not respond quickly enough.
+     *
+     * @param handle Opaque handle to the server-side object to be destroyed
+     */
+    @callflow(next={"*"})
+    objDestroy(ObjectBase obj);
+
+    /*
+     * Creates a Sampler.
+     *
+     * @param magFilter Magnification value for the filter
+     * @param minFilter Minification value for the filter
+     * @param wrapS S wrapping mode for the sampler
+     * @param wrapT T wrapping mode for the sampler
+     * @param wrapR R wrapping mode for the sampler
+     * @param aniso Anisotropy setting for the sampler
+     * @return sampler Created Sampler
+     */
+    @callflow(next={"*"})
+    samplerCreate(SamplerValue magFilter, SamplerValue minFilter,
+                  SamplerValue wrapS, SamplerValue wrapT, SamplerValue wrapR,
+                  float aniso)
+       generates (Sampler sampler);
+
+    /*
+     * Binds an Allocation to a global pointer in the Script.
+     *
+     * @param script Script to be bound to
+     * @param allocation Allocation to be bound
+     * @param slot Slot of a global variable
+     */
+    @callflow(next={"*"})
+    scriptBindAllocation(Script script, Allocation allocation, uint32_t slot);
+
+    /*
+     * TODO: is this necessary?
+     *
+     * Sets the timezone of a Script.
+     *
+     * @param script Script to be altered
+     * @param timeZone Time Zone value as text
+     */
+    @callflow(next={"*"})
+    scriptSetTimeZone(Script script, string timeZone);
+
+    /*
+     * TODO: can scriptInvoke be combined with scriptInvokeV?
+     *
+     * Launches an invokable function.
+     *
+     * @param vs Script to be invoked
+     * @param slot Slot of invokable function
+     */
+    @callflow(next={"*"})
+    scriptInvoke(Script vs, uint32_t slot);
+
+    /*
+     * Invokes a Script with values.
+     *
+     * @param vs Script to be invoked
+     * @param slot Slot
+     * @param data Data buffer of packed arguments
+     */
+    @callflow(next={"*"})
+    scriptInvokeV(Script vs, uint32_t slot, vec<uint8_t> data);
+
+    /*
+     * TODO: add documentation for params
+     * TODO: Should we rename "ScriptCall" to "LaunchOptions"?
+     *
+     * Launches a ForEach kernel.
+     *
+     * @param vs Script
+     * @param slot Slot of ForEach Kernel
+     * @param vains Collection of input Allocations or null
+     * @param vaout Output Allocation or null
+     * @param params Collection of parameters
+     * @param sc Pointer to a ScriptCall, nullptr if unused
+     */
+    @callflow(next={"*"})
+    scriptForEach(Script vs, uint32_t slot, vec<Allocation> vains,
+                  Allocation vaout, vec<uint8_t> params, Ptr sc);
+
+    /*
+     * Launches a Reduction kernel.
+     *
+     * @param vs Script
+     * @param slot Slot of Reduction Kernel
+     * @param vains Collection of input Allocations
+     * @param vaout Output Allocation
+     * @param sc Pointer to a ScriptCall, nullptr if unused
+     */
+    @callflow(next={"*"})
+    scriptReduce(Script vs, uint32_t slot, vec<Allocation> vains,
+                 Allocation vaout, Ptr sc);
+
+    /*
+     * Sets a Script's integer variable to a value.
+     *
+     * @param vs RenderScript Script
+     * @param slot Slot number of variable to be updated
+     * @param value Value to be pushed to variable
+     */
+    @callflow(next={"*"})
+    scriptSetVarI(Script vs, uint32_t slot, int32_t value);
+
+    /*
+     * Sets a Script's Object variable to a value
+     *
+     * @param vs RenderScript Script
+     * @param slot Slot number of variable to be updated
+     * @param obj ObjectBase
+     */
+    @callflow(next={"*"})
+    scriptSetVarObj( Script vs,  uint32_t slot, ObjectBase obj);
+
+    /*
+     * Sets a Script's long variable to a value.
+     *
+     * @param vs RenderScript Script
+     * @param slot Slot number of variable to be updated
+     * @param value Value to be pushed to variable
+     */
+    @callflow(next={"*"})
+    scriptSetVarJ(Script vs, uint32_t slot, int64_t value);
+
+    /*
+     * Sets a Script's float variable to a value.
+     *
+     * @param vs RenderScript Script
+     * @param slot Slot number of variable to be updated
+     * @param value Value to be pushed to variable
+     */
+    @callflow(next={"*"})
+    scriptSetVarF(Script vs, uint32_t slot, float value);
+
+    /*
+     * Sets a Script's double variable to a value.
+     *
+     * @param vs RenderScript Script
+     * @param slot Slot number of variable to be updated
+     * @param value Value to be pushed to variable
+     */
+    @callflow(next={"*"})
+    scriptSetVarD(Script vs, uint32_t slot, double value);
+
+    /*
+     * Sets a Script's struct variable to a value.
+     *
+     * @param vs RenderScript Script
+     * @param slot Slot number of variable to be updated
+     * @param data Data to be pushed to variable
+     */
+    @callflow(next={"*"})
+    scriptSetVarV(Script vs, uint32_t slot, vec<uint8_t> data);
+
+    /*
+     * TODO: Why do we have typed setters but only untyped getter?
+     *
+     * Retrieves the value from a global variable in a script.
+     *
+     * @param vs RenderScript Script
+     * @param slot Slot number of variable to be read
+     * @param len Size of data to be filled
+     * @return data Data to be updated
+     */
+    @callflow(next={"*"})
+    scriptGetVarV(Script vs, uint32_t slot, Size len)
+       generates (vec<uint8_t> data);
+
+    /*
+     * TODO: Is this a value to be replicated for each member of the array? Or
+     * is there a representation for each separate member?
+     *
+     * Sets the value of a global array of structs, given the Element and
+     * dimension.
+     *
+     * @param vs RenderScript Script
+     * @param slot Slot number of variable to be updated
+     * @param data Data
+     * @param ve Element
+     * @param dims Collection of dimensions
+     */
+    @callflow(next={"*"})
+    scriptSetVarVE(Script vs, uint32_t slot, vec<uint8_t> data, Element ve,
+                   vec<uint32_t> dims);
+
+    /*
+     * TODO: is cacheDir redundant with createCache() function? Can we remove
+     * it?
+     * TODO: define resName more clearly
+     *
+     * Creates a RenderScript C99 kernel script.
+     *
+     * @param resName Resource name of the bitcode
+     * @param cacheDir Cache directory name
+     * @param text The kernel's bitcode as a uint8_t vector
+     * @return script Created Script
+     */
+    @callflow(next={"*"})
+    scriptCCreate(string resName, string cacheDir, vec<uint8_t> text)
+       generates (Script script);
+
+    /*
+     * Creates a RenderScript Intrinsic script.
+     *
+     * @param id Intrinsic Script identifier
+     * @param elem Element
+     * @return script Created Script
+     */
+    @callflow(next={"*"})
+    scriptIntrinsicCreate(ScriptIntrinsicID id, Element elem)
+               generates (Script script);
+
+};
diff --git a/renderscript/1.0/IDevice.hal b/renderscript/1.0/IDevice.hal
new file mode 100644
index 0000000..7b1b866
--- /dev/null
+++ b/renderscript/1.0/IDevice.hal
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.renderscript@1.0;
+
+import android.hardware.renderscript@1.0::types;
+import IContext;
+
+interface IDevice {
+
+    /*
+     * Creates a RenderScript context.
+     *
+     * @param sdkVersion Target RS API level
+     * @param ct Context type
+     * @param flags Optional flags for this context
+     * @return context Created context
+     */
+    @entry
+    @callflow(next={"*"})
+    contextCreate(uint32_t sdkVersion, ContextType ct,
+                  bitfield<ContextFlags> flags)
+       generates (IContext context);
+
+};
diff --git a/renderscript/1.0/default/Android.bp b/renderscript/1.0/default/Android.bp
new file mode 100644
index 0000000..564d6db
--- /dev/null
+++ b/renderscript/1.0/default/Android.bp
@@ -0,0 +1,21 @@
+cc_library_shared {
+    name: "android.hardware.renderscript@1.0-impl",
+    relative_install_path: "hw",
+    proprietary: true,
+    srcs: [
+        "Context.cpp",
+        "Device.cpp",
+    ],
+    include_dirs: [
+        "frameworks/rs",
+    ],
+    shared_libs: [
+        "libdl",
+        "liblog",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.renderscript@1.0",
+        "android.hidl.base@1.0",
+    ],
+}
diff --git a/renderscript/1.0/default/Context.cpp b/renderscript/1.0/default/Context.cpp
new file mode 100644
index 0000000..4e0964e
--- /dev/null
+++ b/renderscript/1.0/default/Context.cpp
@@ -0,0 +1,757 @@
+#define LOG_TAG "android.hardware.renderscript@1.0-impl"
+
+#include "Context.h"
+#include "Device.h"
+
+namespace android {
+namespace hardware {
+namespace renderscript {
+namespace V1_0 {
+namespace implementation {
+
+
+Context::Context(uint32_t sdkVersion, ContextType ct, int32_t flags) {
+    RsDevice _dev = nullptr;
+    uint32_t _version = 0;
+    uint32_t _sdkVersion = sdkVersion;
+    RsContextType _ct = static_cast<RsContextType>(ct);
+    int32_t _flags = flags;
+    mContext = Device::getHal().ContextCreate(_dev, _version, _sdkVersion, _ct, _flags);
+}
+
+
+// Helper functions
+template<typename ReturnType>
+static ReturnType hidl_to_rs(OpaqueHandle src) {
+    return reinterpret_cast<ReturnType>(static_cast<uintptr_t>(src));
+}
+
+template<typename ReturnType, typename SourceType>
+static ReturnType hidl_to_rs(SourceType* src) {
+    return reinterpret_cast<ReturnType>(src);
+}
+
+template<typename RsType, typename HidlType, typename Operation>
+static std::vector<RsType> hidl_to_rs(const hidl_vec<HidlType>& src, Operation operation) {
+    std::vector<RsType> dst(src.size());
+    std::transform(src.begin(), src.end(), dst.begin(), operation);
+    return dst;
+}
+
+template<typename ReturnType, typename SourceType>
+static ReturnType rs_to_hidl(SourceType* src) {
+    return static_cast<ReturnType>(reinterpret_cast<uintptr_t>(src));
+}
+
+template<typename HidlType, typename RsType, typename Operation>
+static hidl_vec<HidlType> rs_to_hidl(const std::vector<RsType>& src, Operation operation) {
+    std::vector<HidlType> dst(src.size());
+    std::transform(src.begin(), src.end(), dst.begin(), operation);
+    return dst;
+}
+
+
+// Methods from ::android::hardware::renderscript::V1_0::IContext follow.
+
+Return<Allocation> Context::allocationAdapterCreate(Type type, Allocation baseAlloc) {
+    RsType _type = hidl_to_rs<RsType>(type);
+    RsAllocation _baseAlloc = hidl_to_rs<RsAllocation>(baseAlloc);
+    RsAllocation _subAlloc = Device::getHal().AllocationAdapterCreate(mContext, _type, _baseAlloc);
+    return rs_to_hidl<Allocation>(_subAlloc);
+}
+
+Return<void> Context::allocationAdapterOffset(Allocation alloc, const hidl_vec<uint32_t>& offsets) {
+    RsAllocation _alloc = hidl_to_rs<RsAllocation>(alloc);
+    const hidl_vec<uint32_t>& _offsets = offsets;
+    Device::getHal().AllocationAdapterOffset(mContext, _alloc, _offsets.data(), _offsets.size());
+    return Void();
+}
+
+Return<Type> Context::allocationGetType(Allocation allocation) {
+    RsAllocation _allocation = hidl_to_rs<RsAllocation>(allocation);
+    const void* _type = Device::getHal().AllocationGetType(mContext, _allocation);
+    return rs_to_hidl<Type>(_type);
+}
+
+Return<Allocation> Context::allocationCreateTyped(Type type, AllocationMipmapControl amips, int32_t usage, Ptr ptr) {
+    RsType _type = hidl_to_rs<RsType>(type);
+    RsAllocationMipmapControl _amips = static_cast<RsAllocationMipmapControl>(amips);
+    uint32_t _usage = usage;
+    uintptr_t _ptr = hidl_to_rs<uintptr_t>(ptr);
+    RsAllocation _allocation = Device::getHal().AllocationCreateTyped(mContext, _type, _amips, _usage, _ptr);
+    return rs_to_hidl<Allocation>(_allocation);
+}
+
+Return<Allocation> Context::allocationCreateFromBitmap(Type type, AllocationMipmapControl amips, const hidl_vec<uint8_t>& bitmap, int32_t usage) {
+    RsType _type = hidl_to_rs<RsType>(type);
+    RsAllocationMipmapControl _amips = static_cast<RsAllocationMipmapControl>(amips);
+    const hidl_vec<uint8_t>& _bitmap = bitmap;
+    uint32_t _usage = usage;
+    RsAllocation _allocation = Device::getHal().AllocationCreateFromBitmap(mContext, _type, _amips, _bitmap.data(), _bitmap.size(), _usage);
+    return rs_to_hidl<Allocation>(_allocation);
+}
+
+Return<Allocation> Context::allocationCubeCreateFromBitmap(Type type, AllocationMipmapControl amips, const hidl_vec<uint8_t>& bitmap, int32_t usage) {
+    RsType _type = hidl_to_rs<RsType>(type);
+    RsAllocationMipmapControl _amips = static_cast<RsAllocationMipmapControl>(amips);
+    const hidl_vec<uint8_t>& _bitmap = bitmap;
+    uint32_t _usage = usage;
+    RsAllocation _allocation = Device::getHal().AllocationCubeCreateFromBitmap(mContext, _type, _amips, _bitmap.data(), _bitmap.size(), _usage);
+    return rs_to_hidl<Allocation>(_allocation);
+}
+
+Return<NativeWindow> Context::allocationGetNativeWindow(Allocation allocation) {
+    RsAllocation _allocation = hidl_to_rs<RsAllocation>(allocation);
+    RsNativeWindow _nativeWindow = Device::getHal().AllocationGetSurface(mContext, _allocation);
+    return rs_to_hidl<NativeWindow>(_nativeWindow);
+}
+
+Return<void> Context::allocationSetNativeWindow(Allocation allocation, NativeWindow nativewindow) {
+    RsAllocation _allocation = hidl_to_rs<RsAllocation>(allocation);
+    RsNativeWindow _nativewindow = hidl_to_rs<RsNativeWindow>(nativewindow);
+    Device::getHal().AllocationSetSurface(mContext, _allocation, _nativewindow);
+    return Void();
+}
+
+Return<void> Context::allocationSetupBufferQueue(Allocation alloc, uint32_t numBuffer) {
+    RsAllocation _alloc = hidl_to_rs<RsAllocation>(alloc);
+    uint32_t _numBuffer = numBuffer;
+    Device::getHal().AllocationSetupBufferQueue(mContext, _alloc, _numBuffer);
+    return Void();
+}
+
+Return<void> Context::allocationShareBufferQueue(Allocation baseAlloc, Allocation subAlloc) {
+    RsAllocation _baseAlloc = hidl_to_rs<RsAllocation>(baseAlloc);
+    RsAllocation _subAlloc = hidl_to_rs<RsAllocation>(subAlloc);
+    Device::getHal().AllocationShareBufferQueue(mContext, _baseAlloc, _subAlloc);
+    return Void();
+}
+
+Return<void> Context::allocationCopyToBitmap(Allocation allocation, Ptr data, Size sizeBytes) {
+    RsAllocation _allocation = hidl_to_rs<RsAllocation>(allocation);
+    void* _data = hidl_to_rs<void*>(data);
+    size_t _sizeBytes = static_cast<size_t>(sizeBytes);
+    Device::getHal().AllocationCopyToBitmap(mContext, _allocation, _data, _sizeBytes);
+    return Void();
+}
+
+Return<void> Context::allocation1DWrite(Allocation allocation, uint32_t offset, uint32_t lod, uint32_t count, const hidl_vec<uint8_t>& data) {
+    RsAllocation _allocation = hidl_to_rs<RsAllocation>(allocation);
+    uint32_t _offset = offset;
+    uint32_t _lod = lod;
+    uint32_t _count = count;
+    const void* _dataPtr = hidl_to_rs<const void*>(data.data());
+    size_t _sizeBytes = data.size();
+    Device::getHal().Allocation1DData(mContext, _allocation, _offset, _lod, _count, _dataPtr, _sizeBytes);
+    return Void();
+}
+
+Return<void> Context::allocationElementWrite(Allocation allocation, uint32_t x, uint32_t y, uint32_t z, uint32_t lod, const hidl_vec<uint8_t>& data, Size compIdx) {
+    RsAllocation _allocation = hidl_to_rs<RsAllocation>(allocation);
+    uint32_t _x = x;
+    uint32_t _y = y;
+    uint32_t _z = z;
+    uint32_t _lod = lod;
+    const void* _dataPtr = hidl_to_rs<const void*>(data.data());
+    size_t _sizeBytes = data.size();
+    size_t _compIdx = static_cast<size_t>(compIdx);
+    Device::getHal().AllocationElementData(mContext, _allocation, _x, _y, _z, _lod, _dataPtr, _sizeBytes, _compIdx);
+    return Void();
+}
+
+Return<void> Context::allocation2DWrite(Allocation allocation, uint32_t xoff, uint32_t yoff, uint32_t lod, AllocationCubemapFace face, uint32_t w, uint32_t h, const hidl_vec<uint8_t>& data, Size stride) {
+    RsAllocation _allocation = hidl_to_rs<RsAllocation>(allocation);
+    uint32_t _xoff = xoff;
+    uint32_t _yoff = yoff;
+    uint32_t _lod = lod;
+    RsAllocationCubemapFace _face = static_cast<RsAllocationCubemapFace>(face);
+    uint32_t _w = w;
+    uint32_t _h = h;
+    const void* _dataPtr = hidl_to_rs<const void*>(data.data());
+    size_t _sizeBytes = data.size();
+    size_t _stride = static_cast<size_t>(stride);
+    Device::getHal().Allocation2DData(mContext, _allocation, _xoff, _yoff, _lod, _face, _w, _h, _dataPtr, _sizeBytes, _stride);
+    return Void();
+}
+
+Return<void> Context::allocation3DWrite(Allocation allocation, uint32_t xoff, uint32_t yoff, uint32_t zoff, uint32_t lod, uint32_t w, uint32_t h, uint32_t d, const hidl_vec<uint8_t>& data, Size stride) {
+    RsAllocation _allocation = hidl_to_rs<RsAllocation>(allocation);
+    uint32_t _xoff = xoff;
+    uint32_t _yoff = yoff;
+    uint32_t _zoff = zoff;
+    uint32_t _lod = lod;
+    uint32_t _w = w;
+    uint32_t _h = h;
+    uint32_t _d = d;
+    const void* _dataPtr = hidl_to_rs<const void*>(data.data());
+    size_t _sizeBytes = data.size();
+    size_t _stride = static_cast<size_t>(stride);
+    Device::getHal().Allocation3DData(mContext, _allocation, _xoff, _yoff, _zoff, _lod, _w, _h, _d, _dataPtr, _sizeBytes, _stride);
+    return Void();
+}
+
+Return<void> Context::allocationGenerateMipmaps(Allocation allocation) {
+    RsAllocation _allocation = hidl_to_rs<RsAllocation>(allocation);
+    Device::getHal().AllocationGenerateMipmaps(mContext, _allocation);
+    return Void();
+}
+
+Return<void> Context::allocationRead(Allocation allocation, Ptr data, Size sizeBytes) {
+    RsAllocation _allocation = hidl_to_rs<RsAllocation>(allocation);
+    void* _data = hidl_to_rs<void*>(data);
+    size_t _sizeBytes = static_cast<size_t>(sizeBytes);
+    Device::getHal().AllocationRead(mContext, _allocation, _data, _sizeBytes);
+    return Void();
+}
+
+Return<void> Context::allocation1DRead(Allocation allocation, uint32_t xoff, uint32_t lod, uint32_t count, Ptr data, Size sizeBytes) {
+    RsAllocation _allocation = hidl_to_rs<RsAllocation>(allocation);
+    uint32_t _xoff = xoff;
+    uint32_t _lod = lod;
+    uint32_t _count = count;
+    void* _data = hidl_to_rs<void*>(data);
+    size_t _sizeBytes = static_cast<size_t>(sizeBytes);
+    Device::getHal().Allocation1DRead(mContext, _allocation, _xoff, _lod, _count, _data, _sizeBytes);
+    return Void();
+}
+
+Return<void> Context::allocationElementRead(Allocation allocation, uint32_t x, uint32_t y, uint32_t z, uint32_t lod, Ptr data, Size sizeBytes, Size compIdx) {
+    RsAllocation _allocation = hidl_to_rs<RsAllocation>(allocation);
+    uint32_t _x = x;
+    uint32_t _y = y;
+    uint32_t _z = z;
+    uint32_t _lod = lod;
+    void* _data = hidl_to_rs<void*>(data);
+    size_t _sizeBytes = static_cast<size_t>(sizeBytes);
+    size_t _compIdx = static_cast<size_t>(compIdx);
+    Device::getHal().AllocationElementRead(mContext, _allocation, _x, _y, _z, _lod, _data, _sizeBytes, _compIdx);
+    return Void();
+}
+
+Return<void> Context::allocation2DRead(Allocation allocation, uint32_t xoff, uint32_t yoff, uint32_t lod, AllocationCubemapFace face, uint32_t w, uint32_t h, Ptr data, Size sizeBytes, Size stride) {
+    RsAllocation _allocation = hidl_to_rs<RsAllocation>(allocation);
+    uint32_t _xoff = xoff;
+    uint32_t _yoff = yoff;
+    uint32_t _lod = lod;
+    RsAllocationCubemapFace _face = static_cast<RsAllocationCubemapFace>(face);
+    uint32_t _w = w;
+    uint32_t _h = h;
+    void* _data = hidl_to_rs<void*>(data);
+    size_t _sizeBytes = static_cast<size_t>(sizeBytes);
+    size_t _stride = static_cast<size_t>(stride);
+    Device::getHal().Allocation2DRead(mContext, _allocation, _xoff, _yoff, _lod, _face, _w, _h, _data, _sizeBytes, _stride);
+    return Void();
+}
+
+Return<void> Context::allocation3DRead(Allocation allocation, uint32_t xoff, uint32_t yoff, uint32_t zoff, uint32_t lod, uint32_t w, uint32_t h, uint32_t d, Ptr data, Size sizeBytes, Size stride) {
+    RsAllocation _allocation = hidl_to_rs<RsAllocation>(allocation);
+    uint32_t _xoff = xoff;
+    uint32_t _yoff = yoff;
+    uint32_t _zoff = zoff;
+    uint32_t _lod = lod;
+    uint32_t _w = w;
+    uint32_t _h = h;
+    uint32_t _d = d;
+    void* _dataPtr = hidl_to_rs<void*>(data);
+    size_t _sizeBytes = static_cast<size_t>(sizeBytes);
+    size_t _stride = static_cast<size_t>(stride);
+    Device::getHal().Allocation3DRead(mContext, _allocation, _xoff, _yoff, _zoff, _lod, _w, _h, _d, _dataPtr, _sizeBytes, _stride);
+    return Void();
+}
+
+Return<void> Context::allocationSyncAll(Allocation allocation, AllocationUsageType usageType) {
+    RsAllocation _allocation = hidl_to_rs<RsAllocation>(allocation);
+    RsAllocationUsageType _usageType = static_cast<RsAllocationUsageType>(usageType);
+    Device::getHal().AllocationSyncAll(mContext, _allocation, _usageType);
+    return Void();
+}
+
+Return<void> Context::allocationResize1D(Allocation allocation, uint32_t dimX) {
+    RsAllocation _allocation = hidl_to_rs<RsAllocation>(allocation);
+    uint32_t _dimX = dimX;
+    Device::getHal().AllocationResize1D(mContext, _allocation, _dimX);
+    return Void();
+}
+
+Return<void> Context::allocationCopy2DRange(Allocation dstAlloc, uint32_t dstXoff, uint32_t dstYoff, uint32_t dstMip, AllocationCubemapFace dstFace, uint32_t width, uint32_t height, Allocation srcAlloc, uint32_t srcXoff, uint32_t srcYoff, uint32_t srcMip, AllocationCubemapFace srcFace) {
+    RsAllocation _dstAlloc = hidl_to_rs<RsAllocation>(dstAlloc);
+    uint32_t _dstXoff = dstXoff;
+    uint32_t _dstYoff = dstYoff;
+    uint32_t _dstMip = dstMip;
+    RsAllocationCubemapFace _dstFace = static_cast<RsAllocationCubemapFace>(dstFace);
+    uint32_t _width = width;
+    uint32_t _height = height;
+    RsAllocation _srcAlloc = hidl_to_rs<RsAllocation>(srcAlloc);
+    uint32_t _srcXoff = srcXoff;
+    uint32_t _srcYoff = srcYoff;
+    uint32_t _srcMip = srcMip;
+    RsAllocationCubemapFace _srcFace = static_cast<RsAllocationCubemapFace>(srcFace);
+    Device::getHal().AllocationCopy2DRange(mContext, _dstAlloc, _dstXoff, _dstYoff, _dstMip, _dstFace, _width, _height, _srcAlloc, _srcXoff, _srcYoff, _srcMip, _srcFace);
+    return Void();
+}
+
+Return<void> Context::allocationCopy3DRange(Allocation dstAlloc, uint32_t dstXoff, uint32_t dstYoff, uint32_t dstZoff, uint32_t dstMip, uint32_t width, uint32_t height, uint32_t depth, Allocation srcAlloc, uint32_t srcXoff, uint32_t srcYoff, uint32_t srcZoff, uint32_t srcMip) {
+    RsAllocation _dstAlloc = hidl_to_rs<RsAllocation>(dstAlloc);
+    uint32_t _dstXoff = dstXoff;
+    uint32_t _dstYoff = dstYoff;
+    uint32_t _dstZoff = dstZoff;
+    uint32_t _dstMip = dstMip;
+    uint32_t _width = width;
+    uint32_t _height = height;
+    uint32_t _depth = depth;
+    RsAllocation _srcAlloc = hidl_to_rs<RsAllocation>(srcAlloc);
+    uint32_t _srcXoff = srcXoff;
+    uint32_t _srcYoff = srcYoff;
+    uint32_t _srcZoff = srcZoff;
+    uint32_t _srcMip = srcMip;
+    Device::getHal().AllocationCopy3DRange(mContext, _dstAlloc, _dstXoff, _dstYoff, _dstZoff, _dstMip, _width, _height, _depth, _srcAlloc, _srcXoff, _srcYoff, _srcZoff, _srcMip);
+    return Void();
+}
+
+Return<void> Context::allocationIoSend(Allocation allocation) {
+    RsAllocation _allocation = hidl_to_rs<RsAllocation>(allocation);
+    Device::getHal().AllocationIoSend(mContext, _allocation);
+    return Void();
+}
+
+Return<void> Context::allocationIoReceive(Allocation allocation) {
+    RsAllocation _allocation = hidl_to_rs<RsAllocation>(allocation);
+    Device::getHal().AllocationIoReceive(mContext, _allocation);
+    return Void();
+}
+
+Return<void> Context::allocationGetPointer(Allocation allocation, uint32_t lod, AllocationCubemapFace face, uint32_t z, allocationGetPointer_cb _hidl_cb) {
+    RsAllocation _allocation = hidl_to_rs<RsAllocation>(allocation);
+    uint32_t _lod = lod;
+    RsAllocationCubemapFace _face = static_cast<RsAllocationCubemapFace>(face);
+    uint32_t _z = z;
+    uint32_t _array = 0;
+    size_t _stride = 0;
+    void* _dataPtr = Device::getHal().AllocationGetPointer(mContext, _allocation, _lod, _face, _z, _array, &_stride, sizeof(size_t));
+    Ptr dataPtr = reinterpret_cast<Ptr>(_dataPtr);
+    Size stride = static_cast<Size>(_stride);
+    _hidl_cb(dataPtr, stride);
+    return Void();
+}
+
+Return<void> Context::elementGetNativeMetadata(Element element, elementGetNativeMetadata_cb _hidl_cb) {
+    RsElement _element = hidl_to_rs<RsElement>(element);
+    std::vector<uint32_t> _elemData(5);
+    Device::getHal().ElementGetNativeData(mContext, _element, _elemData.data(), _elemData.size());
+    hidl_vec<uint32_t> elemData = _elemData;
+    _hidl_cb(elemData);
+    return Void();
+}
+
+Return<void> Context::elementGetSubElements(Element element, Size numSubElem, elementGetSubElements_cb _hidl_cb) {
+    RsElement _element = hidl_to_rs<RsElement>(element);
+    uint32_t _numSubElem = static_cast<uint32_t>(numSubElem);
+    std::vector<uintptr_t> _ids(_numSubElem);
+    std::vector<const char*> _names(_numSubElem);
+    std::vector<size_t> _arraySizes(_numSubElem);
+    Device::getHal().ElementGetSubElements(mContext, _element, _ids.data(), _names.data(), _arraySizes.data(), _numSubElem);
+    hidl_vec<Element>     ids        = rs_to_hidl<Element>(_ids,       [](uintptr_t val) { return static_cast<Element>(val); });
+    hidl_vec<hidl_string> names      = rs_to_hidl<hidl_string>(_names, [](const char* val) { return val; });
+    hidl_vec<Size>        arraySizes = rs_to_hidl<Size>(_arraySizes,   [](size_t val) { return static_cast<Size>(val); });
+    _hidl_cb(ids, names, arraySizes);
+    return Void();
+}
+
+Return<Element> Context::elementCreate(DataType dt, DataKind dk, bool norm, uint32_t size) {
+    RsDataType _dt = static_cast<RsDataType>(dt);
+    RsDataKind _dk = static_cast<RsDataKind>(dk);
+    bool _norm = norm;
+    uint32_t _size = size;
+    RsElement _element = Device::getHal().ElementCreate(mContext, _dt, _dk, _norm, _size);
+    return rs_to_hidl<Element>(_element);
+}
+
+Return<Element> Context::elementComplexCreate(const hidl_vec<Element>& eins, const hidl_vec<hidl_string>& names, const hidl_vec<Size>& arraySizes) {
+    std::vector<RsElement>   _eins           = hidl_to_rs<RsElement>(eins,      [](Element val) { return hidl_to_rs<RsElement>(val); });
+    std::vector<const char*> _namesPtr       = hidl_to_rs<const char*>(names,   [](const hidl_string& val) { return val.c_str(); });
+    std::vector<size_t>      _nameLengthsPtr = hidl_to_rs<size_t>(names,        [](const hidl_string& val) { return val.size(); });
+    std::vector<uint32_t>    _arraySizes     = hidl_to_rs<uint32_t>(arraySizes, [](Size val) { return static_cast<uint32_t>(val); });
+    RsElement _element = Device::getHal().ElementCreate2(mContext, _eins.data(), _eins.size(), _namesPtr.data(), _namesPtr.size(), _nameLengthsPtr.data(), _arraySizes.data(), _arraySizes.size());
+    return rs_to_hidl<Element>(_element);
+}
+
+Return<void> Context::typeGetNativeMetadata(Type type, typeGetNativeMetadata_cb _hidl_cb) {
+    RsType _type = hidl_to_rs<RsType>(type);
+    std::vector<uintptr_t> _metadata(6);
+    Device::getHal().TypeGetNativeData(mContext, _type, _metadata.data(), _metadata.size());
+    hidl_vec<OpaqueHandle> metadata = rs_to_hidl<OpaqueHandle>(_metadata, [](uintptr_t val) { return static_cast<OpaqueHandle>(val); });
+    _hidl_cb(metadata);
+    return Void();
+}
+
+Return<Type> Context::typeCreate(Element element, uint32_t dimX, uint32_t dimY, uint32_t dimZ, bool mipmaps, bool faces, YuvFormat yuv) {
+    RsElement _element = hidl_to_rs<RsElement>(element);
+    uint32_t _dimX = dimX;
+    uint32_t _dimY = dimY;
+    uint32_t _dimZ = dimZ;
+    bool _mipmaps = mipmaps;
+    bool _faces = faces;
+    RsYuvFormat _yuv = static_cast<RsYuvFormat>(yuv);
+    RsType _type = Device::getHal().TypeCreate(mContext, _element, _dimX, _dimY, _dimZ, _mipmaps, _faces, _yuv);
+    return rs_to_hidl<Type>(_type);
+}
+
+Return<void> Context::contextDestroy() {
+    Device::getHal().ContextDestroy(mContext);
+    mContext = nullptr;
+    return Void();
+}
+
+Return<void> Context::contextGetMessage(Ptr data, Size size, contextGetMessage_cb _hidl_cb) {
+    void* _data = hidl_to_rs<void*>(data);
+    size_t _size = static_cast<size_t>(size);
+    size_t _receiveLen = 0;
+    uint32_t _subID = 0;
+    RsMessageToClientType _messageType = Device::getHal().ContextGetMessage(mContext, _data, _size, &_receiveLen, sizeof(size_t), &_subID, sizeof(uint32_t));
+    MessageToClientType messageType = static_cast<MessageToClientType>(_messageType);
+    Size receiveLen = static_cast<Size>(_receiveLen);
+    _hidl_cb(messageType, receiveLen);
+    return Void();
+}
+
+Return<void> Context::contextPeekMessage(contextPeekMessage_cb _hidl_cb) {
+    size_t _receiveLen = 0;
+    uint32_t _subID = 0;
+    RsMessageToClientType _messageType = Device::getHal().ContextPeekMessage(mContext, &_receiveLen, sizeof(size_t), &_subID, sizeof(uint32_t));
+    MessageToClientType messageType = static_cast<MessageToClientType>(_messageType);
+    Size receiveLen = static_cast<Size>(_receiveLen);
+    uint32_t subID = _subID;
+    _hidl_cb(messageType, receiveLen, subID);
+    return Void();
+}
+
+Return<void> Context::contextSendMessage(uint32_t id, const hidl_vec<uint8_t>& data) {
+    uint32_t _id = id;
+    const uint8_t* _dataPtr = data.data();
+    size_t _dataSize = data.size();
+    Device::getHal().ContextSendMessage(mContext, _id, _dataPtr, _dataSize);
+    return Void();
+}
+
+Return<void> Context::contextInitToClient() {
+    Device::getHal().ContextInitToClient(mContext);
+    return Void();
+}
+
+Return<void> Context::contextDeinitToClient() {
+    Device::getHal().ContextDeinitToClient(mContext);
+    return Void();
+}
+
+Return<void> Context::contextFinish() {
+    Device::getHal().ContextFinish(mContext);
+    return Void();
+}
+
+Return<void> Context::contextLog() {
+    uint32_t _bits = 0;
+    Device::getHal().ContextDump(mContext, _bits);
+    return Void();
+}
+
+Return<void> Context::contextSetPriority(ThreadPriorities priority) {
+    RsThreadPriorities _priority = static_cast<RsThreadPriorities>(priority);
+    Device::getHal().ContextSetPriority(mContext, _priority);
+    return Void();
+}
+
+Return<void> Context::contextSetCacheDir(const hidl_string& cacheDir) {
+    Device::getHal().ContextSetCacheDir(mContext, cacheDir.c_str(), cacheDir.size());
+    return Void();
+}
+
+Return<void> Context::assignName(ObjectBase obj, const hidl_string& name) {
+    RsObjectBase _obj = hidl_to_rs<RsObjectBase>(obj);
+    const hidl_string& _name = name;
+    Device::getHal().AssignName(mContext, _obj, _name.c_str(), _name.size());
+    return Void();
+}
+
+Return<void> Context::getName(ObjectBase obj, getName_cb _hidl_cb) {
+    void* _obj = hidl_to_rs<void*>(obj);
+    const char* _name = nullptr;
+    Device::getHal().GetName(mContext, _obj, &_name);
+    hidl_string name = _name;
+    _hidl_cb(name);
+    return Void();
+}
+
+Return<Closure> Context::closureCreate(ScriptKernelID kernelID, Allocation returnValue, const hidl_vec<ScriptFieldID>& fieldIDS, const hidl_vec<int64_t>& values, const hidl_vec<int32_t>& sizes, const hidl_vec<Closure>& depClosures, const hidl_vec<ScriptFieldID>& depFieldIDS) {
+    RsScriptKernelID _kernelID = hidl_to_rs<RsScriptKernelID>(kernelID);
+    RsAllocation _returnValue = hidl_to_rs<RsAllocation>(returnValue);
+    std::vector<RsScriptFieldID> _fieldIDS = hidl_to_rs<RsScriptFieldID>(fieldIDS, [](ScriptFieldID val) { return hidl_to_rs<RsScriptFieldID>(val); });
+    int64_t* _valuesPtr = const_cast<int64_t*>(values.data());
+    size_t _valuesLength = values.size();
+    std::vector<int>             _sizes       = hidl_to_rs<int>(sizes,                   [](int32_t val) { return static_cast<int>(val); });
+    std::vector<RsClosure>       _depClosures = hidl_to_rs<RsClosure>(depClosures,       [](Closure val) { return hidl_to_rs<RsClosure>(val); });
+    std::vector<RsScriptFieldID> _depFieldIDS = hidl_to_rs<RsScriptFieldID>(depFieldIDS, [](ScriptFieldID val) { return hidl_to_rs<RsScriptFieldID>(val); });
+    RsClosure _closure = Device::getHal().ClosureCreate(mContext, _kernelID, _returnValue, _fieldIDS.data(), _fieldIDS.size(), _valuesPtr, _valuesLength, _sizes.data(), _sizes.size(), _depClosures.data(), _depClosures.size(), _depFieldIDS.data(), _depFieldIDS.size());
+    return rs_to_hidl<Closure>(_closure);
+}
+
+Return<Closure> Context::invokeClosureCreate(ScriptInvokeID invokeID, const hidl_vec<uint8_t>& params, const hidl_vec<ScriptFieldID>& fieldIDS, const hidl_vec<int64_t>& values, const hidl_vec<int32_t>& sizes) {
+    RsScriptInvokeID _invokeID = hidl_to_rs<RsScriptInvokeID>(invokeID);
+    const void* _paramsPtr = params.data();
+    size_t _paramsSize = params.size();
+    std::vector<RsScriptFieldID> _fieldIDS = hidl_to_rs<RsScriptFieldID>(fieldIDS, [](ScriptFieldID val) { return hidl_to_rs<RsScriptFieldID>(val); });
+    const int64_t* _valuesPtr = values.data();
+    size_t _valuesLength = values.size();
+    std::vector<int> _sizes = hidl_to_rs<int>(sizes, [](int32_t val) { return static_cast<int>(val); });
+    RsClosure _closure = Device::getHal().InvokeClosureCreate(mContext, _invokeID, _paramsPtr, _paramsSize, _fieldIDS.data(), _fieldIDS.size(), _valuesPtr, _valuesLength, _sizes.data(), _sizes.size());
+    return rs_to_hidl<Closure>(_closure);
+}
+
+Return<void> Context::closureSetArg(Closure closure, uint32_t index, Ptr value, int32_t size) {
+    RsClosure _closure = hidl_to_rs<RsClosure>(closure);
+    uint32_t _index = index;
+    uintptr_t _value = hidl_to_rs<uintptr_t>(value);
+    int _size = static_cast<int>(size);
+    Device::getHal().ClosureSetArg(mContext, _closure, _index, _value, _size);
+    return Void();
+}
+
+Return<void> Context::closureSetGlobal(Closure closure, ScriptFieldID fieldID, int64_t value, int32_t size) {
+    RsClosure _closure = hidl_to_rs<RsClosure>(closure);
+    RsScriptFieldID _fieldID = hidl_to_rs<RsScriptFieldID>(fieldID);
+    int64_t _value = value;
+    int _size = static_cast<int>(size);
+    Device::getHal().ClosureSetGlobal(mContext, _closure, _fieldID, _value, _size);
+    return Void();
+}
+
+Return<ScriptKernelID> Context::scriptKernelIDCreate(Script script, int32_t slot, int32_t sig) {
+    RsScript _script = hidl_to_rs<RsScript>(script);
+    int _slot = static_cast<int>(slot);
+    int _sig = static_cast<int>(sig);
+    RsScriptKernelID _scriptKernelID = Device::getHal().ScriptKernelIDCreate(mContext, _script, _slot, _sig);
+    return rs_to_hidl<ScriptKernelID>(_scriptKernelID);
+}
+
+Return<ScriptInvokeID> Context::scriptInvokeIDCreate(Script script, int32_t slot) {
+    RsScript _script = hidl_to_rs<RsScript>(script);
+    int _slot = static_cast<int>(slot);
+    RsScriptInvokeID _scriptInvokeID = Device::getHal().ScriptInvokeIDCreate(mContext, _script, _slot);
+    return rs_to_hidl<ScriptInvokeID>(_scriptInvokeID);
+}
+
+Return<ScriptFieldID> Context::scriptFieldIDCreate(Script script, int32_t slot) {
+    RsScript _script = hidl_to_rs<RsScript>(script);
+    int _slot = static_cast<int>(slot);
+    RsScriptFieldID _scriptFieldID = Device::getHal().ScriptFieldIDCreate(mContext, _script, _slot);
+    return rs_to_hidl<ScriptFieldID>(_scriptFieldID);
+}
+
+Return<ScriptGroup> Context::scriptGroupCreate(const hidl_vec<ScriptKernelID>& kernels, const hidl_vec<ScriptKernelID>& srcK, const hidl_vec<ScriptKernelID>& dstK, const hidl_vec<ScriptFieldID>& dstF, const hidl_vec<Type>& types) {
+    std::vector<RsScriptKernelID> _kernels = hidl_to_rs<RsScriptKernelID>(kernels, [](ScriptFieldID val) { return hidl_to_rs<RsScriptKernelID>(val); });
+    std::vector<RsScriptKernelID> _srcK    = hidl_to_rs<RsScriptKernelID>(srcK,    [](ScriptFieldID val) { return hidl_to_rs<RsScriptKernelID>(val); });
+    std::vector<RsScriptKernelID> _dstK    = hidl_to_rs<RsScriptKernelID>(dstK,    [](ScriptFieldID val) { return hidl_to_rs<RsScriptKernelID>(val); });
+    std::vector<RsScriptFieldID>  _dstF    = hidl_to_rs<RsScriptFieldID>(dstF,     [](ScriptFieldID val) { return hidl_to_rs<RsScriptFieldID>(val); });
+    std::vector<RsType>           _types   = hidl_to_rs<RsType>(types,             [](Type val) { return hidl_to_rs<RsType>(val); });
+    RsScriptGroup _scriptGroup = Device::getHal().ScriptGroupCreate(mContext, _kernels.data(), _kernels.size(), _srcK.data(), _srcK.size(), _dstK.data(), _dstK.size(), _dstF.data(), _dstF.size(), _types.data(), _types.size());
+    return rs_to_hidl<ScriptGroup>(_scriptGroup);
+}
+
+Return<ScriptGroup2> Context::scriptGroup2Create(const hidl_string& name, const hidl_string& cacheDir, const hidl_vec<Closure>& closures) {
+    const hidl_string& _name = name;
+    const hidl_string& _cacheDir = cacheDir;
+    std::vector<RsClosure> _closures = hidl_to_rs<RsClosure>(closures, [](Closure val) { return hidl_to_rs<RsClosure>(val); });
+    RsScriptGroup2 _scriptGroup2 = Device::getHal().ScriptGroup2Create(mContext, _name.c_str(), _name.size(), _cacheDir.c_str(), _cacheDir.size(), _closures.data(), _closures.size());
+    return rs_to_hidl<ScriptGroup2>(_scriptGroup2);
+}
+
+Return<void> Context::scriptGroupSetOutput(ScriptGroup sg, ScriptKernelID kid, Allocation alloc) {
+    RsScriptGroup _sg = hidl_to_rs<RsScriptGroup>(sg);
+    RsScriptKernelID _kid = hidl_to_rs<RsScriptKernelID>(kid);
+    RsAllocation _alloc = hidl_to_rs<RsAllocation>(alloc);
+    Device::getHal().ScriptGroupSetOutput(mContext, _sg, _kid, _alloc);
+    return Void();
+}
+
+Return<void> Context::scriptGroupSetInput(ScriptGroup sg, ScriptKernelID kid, Allocation alloc) {
+    RsScriptGroup _sg = hidl_to_rs<RsScriptGroup>(sg);
+    RsScriptKernelID _kid = hidl_to_rs<RsScriptKernelID>(kid);
+    RsAllocation _alloc = hidl_to_rs<RsAllocation>(alloc);
+    Device::getHal().ScriptGroupSetInput(mContext, _sg, _kid, _alloc);
+    return Void();
+}
+
+Return<void> Context::scriptGroupExecute(ScriptGroup sg) {
+    RsScriptGroup _sg = hidl_to_rs<RsScriptGroup>(sg);
+    Device::getHal().ScriptGroupExecute(mContext, _sg);
+    return Void();
+}
+
+Return<void> Context::objDestroy(ObjectBase obj) {
+    RsAsyncVoidPtr _obj = hidl_to_rs<RsAsyncVoidPtr>(obj);
+    Device::getHal().ObjDestroy(mContext, _obj);
+    return Void();
+}
+
+Return<Sampler> Context::samplerCreate(SamplerValue magFilter, SamplerValue minFilter, SamplerValue wrapS, SamplerValue wrapT, SamplerValue wrapR, float aniso) {
+    RsSamplerValue _magFilter = static_cast<RsSamplerValue>(magFilter);
+    RsSamplerValue _minFilter = static_cast<RsSamplerValue>(minFilter);
+    RsSamplerValue _wrapS = static_cast<RsSamplerValue>(wrapS);
+    RsSamplerValue _wrapT = static_cast<RsSamplerValue>(wrapT);
+    RsSamplerValue _wrapR = static_cast<RsSamplerValue>(wrapR);
+    float _aniso = static_cast<float>(aniso);
+    RsSampler _sampler = Device::getHal().SamplerCreate(mContext, _magFilter, _minFilter, _wrapS, _wrapT, _wrapR, _aniso);
+    return rs_to_hidl<Sampler>(_sampler);
+}
+
+Return<void> Context::scriptBindAllocation(Script script, Allocation allocation, uint32_t slot) {
+    RsScript _script = hidl_to_rs<RsScript>(script);
+    RsAllocation _allocation = hidl_to_rs<RsAllocation>(allocation);
+    uint32_t _slot = slot;
+    Device::getHal().ScriptBindAllocation(mContext, _script, _allocation, _slot);
+    return Void();
+}
+
+Return<void> Context::scriptSetTimeZone(Script script, const hidl_string& timeZone) {
+    RsScript _script = hidl_to_rs<RsScript>(script);
+    const hidl_string& _timeZone = timeZone;
+    Device::getHal().ScriptSetTimeZone(mContext, _script, _timeZone.c_str(), _timeZone.size());
+    return Void();
+}
+
+Return<void> Context::scriptInvoke(Script vs, uint32_t slot) {
+    RsScript _vs = hidl_to_rs<RsScript>(vs);
+    uint32_t _slot = slot;
+    Device::getHal().ScriptInvoke(mContext, _vs, _slot);
+    return Void();
+}
+
+Return<void> Context::scriptInvokeV(Script vs, uint32_t slot, const hidl_vec<uint8_t>& data) {
+    RsScript _vs = hidl_to_rs<RsScript>(vs);
+    uint32_t _slot = slot;
+    const void* _dataPtr = hidl_to_rs<const void*>(data.data());
+    size_t _len = data.size();
+    Device::getHal().ScriptInvokeV(mContext, _vs, _slot, _dataPtr, _len);
+    return Void();
+}
+
+Return<void> Context::scriptForEach(Script vs, uint32_t slot, const hidl_vec<Allocation>& vains, Allocation vaout, const hidl_vec<uint8_t>& params, Ptr sc) {
+    RsScript _vs = hidl_to_rs<RsScript>(vs);
+    uint32_t _slot = slot;
+    std::vector<RsAllocation> _vains = hidl_to_rs<RsAllocation>(vains, [](Allocation val) { return hidl_to_rs<RsAllocation>(val); });
+    RsAllocation _vaout = hidl_to_rs<RsAllocation>(vaout);
+    const void* _paramsPtr = hidl_to_rs<const void*>(params.data());
+    size_t _paramLen = params.size();
+    const RsScriptCall* _sc = hidl_to_rs<const RsScriptCall*>(sc);
+    size_t _scLen = _sc != nullptr ? sizeof(ScriptCall) : 0;
+    Device::getHal().ScriptForEachMulti(mContext, _vs, _slot, _vains.data(), _vains.size(), _vaout, _paramsPtr, _paramLen, _sc, _scLen);
+    return Void();
+}
+
+Return<void> Context::scriptReduce(Script vs, uint32_t slot, const hidl_vec<Allocation>& vains, Allocation vaout, Ptr sc) {
+    RsScript _vs = hidl_to_rs<RsScript>(vs);
+    uint32_t _slot = slot;
+    std::vector<RsAllocation> _vains = hidl_to_rs<RsAllocation>(vains, [](Allocation val) { return hidl_to_rs<RsAllocation>(val); });
+    RsAllocation _vaout = hidl_to_rs<RsAllocation>(vaout);
+    const RsScriptCall* _sc = hidl_to_rs<const RsScriptCall*>(sc);
+    size_t _scLen = _sc != nullptr ? sizeof(ScriptCall) : 0;
+    Device::getHal().ScriptReduce(mContext, _vs, _slot, _vains.data(), _vains.size(), _vaout, _sc, _scLen);
+    return Void();
+}
+
+Return<void> Context::scriptSetVarI(Script vs, uint32_t slot, int32_t value) {
+    RsScript _vs = hidl_to_rs<RsScript>(vs);
+    uint32_t _slot = slot;
+    int _value = static_cast<int>(value);
+    Device::getHal().ScriptSetVarI(mContext, _vs, _slot, _value);
+    return Void();
+}
+
+Return<void> Context::scriptSetVarObj(Script vs, uint32_t slot, ObjectBase obj) {
+    RsScript _vs = hidl_to_rs<RsScript>(vs);
+    uint32_t _slot = slot;
+    RsObjectBase _obj = hidl_to_rs<RsObjectBase>(obj);
+    Device::getHal().ScriptSetVarObj(mContext, _vs, _slot, _obj);
+    return Void();
+}
+
+Return<void> Context::scriptSetVarJ(Script vs, uint32_t slot, int64_t value) {
+    RsScript _vs = hidl_to_rs<RsScript>(vs);
+    uint32_t _slot = slot;
+    int64_t _value = static_cast<int64_t>(value);
+    Device::getHal().ScriptSetVarJ(mContext, _vs, _slot, _value);
+    return Void();
+}
+
+Return<void> Context::scriptSetVarF(Script vs, uint32_t slot, float value) {
+    RsScript _vs = hidl_to_rs<RsScript>(vs);
+    uint32_t _slot = slot;
+    float _value = value;
+    Device::getHal().ScriptSetVarF(mContext, _vs, _slot, _value);
+    return Void();
+}
+
+Return<void> Context::scriptSetVarD(Script vs, uint32_t slot, double value) {
+    RsScript _vs = hidl_to_rs<RsScript>(vs);
+    uint32_t _slot = slot;
+    double _value = value;
+    Device::getHal().ScriptSetVarD(mContext, _vs, _slot, _value);
+    return Void();
+}
+
+Return<void> Context::scriptSetVarV(Script vs, uint32_t slot, const hidl_vec<uint8_t>& data) {
+    RsScript _vs = hidl_to_rs<RsScript>(vs);
+    uint32_t _slot = slot;
+    const void* _dataPtr = hidl_to_rs<const void*>(data.data());
+    size_t _len = data.size();
+    Device::getHal().ScriptSetVarV(mContext, _vs, _slot, _dataPtr, _len);
+    return Void();
+}
+
+Return<void> Context::scriptGetVarV(Script vs, uint32_t slot, Size len, scriptGetVarV_cb _hidl_cb) {
+    RsScript _vs = hidl_to_rs<RsScript>(vs);
+    uint32_t _slot = slot;
+    size_t _len = static_cast<size_t>(len);
+    std::vector<uint8_t> _data(static_cast<size_t>(len));
+    Device::getHal().ScriptGetVarV(mContext, _vs, _slot, _data.data(), _data.size());
+    hidl_vec<uint8_t> data = _data;
+    _hidl_cb(data);
+    return Void();
+}
+
+Return<void> Context::scriptSetVarVE(Script vs, uint32_t slot, const hidl_vec<uint8_t>& data, Element ve, const hidl_vec<uint32_t>& dims) {
+    RsScript _vs = hidl_to_rs<RsScript>(vs);
+    uint32_t _slot = slot;
+    const void* _dataPtr = hidl_to_rs<const void*>(data.data());
+    size_t _len = data.size();
+    RsElement _ve = hidl_to_rs<RsElement>(ve);
+    const uint32_t* _dimsPtr = dims.data();
+    size_t _dimLen = dims.size();
+    Device::getHal().ScriptSetVarVE(mContext, _vs, _slot, _dataPtr, _len, _ve, _dimsPtr, _dimLen);
+    return Void();
+}
+
+Return<Script> Context::scriptCCreate(const hidl_string& resName, const hidl_string& cacheDir, const hidl_vec<uint8_t>& text) {
+    const hidl_string& _resName = resName;
+    const hidl_string& _cacheDir = cacheDir;
+    const char* _textPtr = hidl_to_rs<const char*>(text.data());
+    size_t _textSize = text.size();
+    RsScript _script = Device::getHal().ScriptCCreate(mContext, _resName.c_str(), _resName.size(), _cacheDir.c_str(), _cacheDir.size(), _textPtr, _textSize);
+    return rs_to_hidl<Script>(_script);
+}
+
+Return<Script> Context::scriptIntrinsicCreate(ScriptIntrinsicID id, Element elem) {
+    RsScriptIntrinsicID _id = static_cast<RsScriptIntrinsicID>(id);
+    RsElement _elem = hidl_to_rs<RsElement>(elem);
+    RsScript _script = Device::getHal().ScriptIntrinsicCreate(mContext, _id, _elem);
+    return rs_to_hidl<Script>(_script);
+}
+
+
+// Methods from ::android::hidl::base::V1_0::IBase follow.
+
+
+}  // namespace implementation
+}  // namespace V1_0
+}  // namespace renderscript
+}  // namespace hardware
+}  // namespace android
diff --git a/renderscript/1.0/default/Context.h b/renderscript/1.0/default/Context.h
new file mode 100644
index 0000000..d8bfe4f
--- /dev/null
+++ b/renderscript/1.0/default/Context.h
@@ -0,0 +1,129 @@
+#ifndef ANDROID_HARDWARE_RENDERSCRIPT_V1_0_CONTEXT_H
+#define ANDROID_HARDWARE_RENDERSCRIPT_V1_0_CONTEXT_H
+
+#include "cpp/rsDispatch.h"
+#include "dlfcn.h"
+#include <android/hardware/renderscript/1.0/IContext.h>
+#include <hidl/MQDescriptor.h>
+#include <hidl/Status.h>
+
+namespace android {
+namespace hardware {
+namespace renderscript {
+namespace V1_0 {
+namespace implementation {
+
+using ::android::hardware::renderscript::V1_0::AllocationCubemapFace;
+using ::android::hardware::renderscript::V1_0::AllocationMipmapControl;
+using ::android::hardware::renderscript::V1_0::AllocationUsageType;
+using ::android::hardware::renderscript::V1_0::ContextType;
+using ::android::hardware::renderscript::V1_0::DataKind;
+using ::android::hardware::renderscript::V1_0::DataType;
+using ::android::hardware::renderscript::V1_0::IContext;
+using ::android::hardware::renderscript::V1_0::MessageToClientType;
+using ::android::hardware::renderscript::V1_0::SamplerValue;
+using ::android::hardware::renderscript::V1_0::ScriptCall;
+using ::android::hardware::renderscript::V1_0::ScriptIntrinsicID;
+using ::android::hardware::renderscript::V1_0::ThreadPriorities;
+using ::android::hardware::renderscript::V1_0::YuvFormat;
+using ::android::hidl::base::V1_0::IBase;
+using ::android::hardware::hidl_string;
+using ::android::hardware::hidl_vec;
+using ::android::hardware::Return;
+using ::android::hardware::Void;
+using ::android::sp;
+
+struct Context : public IContext {
+    Context(uint32_t sdkVersion, ContextType ct, int32_t flags);
+
+    // Methods from ::android::hardware::renderscript::V1_0::IContext follow.
+    Return<Allocation> allocationAdapterCreate(Type type, Allocation baseAlloc) override;
+    Return<void> allocationAdapterOffset(Allocation alloc, const hidl_vec<uint32_t>& offsets) override;
+    Return<Type> allocationGetType(Allocation allocation) override;
+    Return<Allocation> allocationCreateTyped(Type type, AllocationMipmapControl amips, int32_t usage, Ptr ptr) override;
+    Return<Allocation> allocationCreateFromBitmap(Type type, AllocationMipmapControl amips, const hidl_vec<uint8_t>& bitmap, int32_t usage) override;
+    Return<Allocation> allocationCubeCreateFromBitmap(Type type, AllocationMipmapControl amips, const hidl_vec<uint8_t>& bitmap, int32_t usage) override;
+    Return<NativeWindow> allocationGetNativeWindow(Allocation allocation) override;
+    Return<void> allocationSetNativeWindow(Allocation allocation, NativeWindow nativewindow) override;
+    Return<void> allocationSetupBufferQueue(Allocation alloc, uint32_t numBuffer) override;
+    Return<void> allocationShareBufferQueue(Allocation baseAlloc, Allocation subAlloc) override;
+    Return<void> allocationCopyToBitmap(Allocation allocation, Ptr data, Size sizeBytes) override;
+    Return<void> allocation1DWrite(Allocation allocation, uint32_t offset, uint32_t lod, uint32_t count, const hidl_vec<uint8_t>& data) override;
+    Return<void> allocationElementWrite(Allocation allocation, uint32_t x, uint32_t y, uint32_t z, uint32_t lod, const hidl_vec<uint8_t>& data, Size compIdx) override;
+    Return<void> allocation2DWrite(Allocation allocation, uint32_t xoff, uint32_t yoff, uint32_t lod, AllocationCubemapFace face, uint32_t w, uint32_t h, const hidl_vec<uint8_t>& data, Size stride) override;
+    Return<void> allocation3DWrite(Allocation allocation, uint32_t xoff, uint32_t yoff, uint32_t zoff, uint32_t lod, uint32_t w, uint32_t h, uint32_t d, const hidl_vec<uint8_t>& data, Size stride) override;
+    Return<void> allocationGenerateMipmaps(Allocation allocation) override;
+    Return<void> allocationRead(Allocation allocation, Ptr data, Size sizeBytes) override;
+    Return<void> allocation1DRead(Allocation allocation, uint32_t xoff, uint32_t lod, uint32_t count, Ptr data, Size sizeBytes) override;
+    Return<void> allocationElementRead(Allocation allocation, uint32_t x, uint32_t y, uint32_t z, uint32_t lod, Ptr data, Size sizeBytes, Size compIdx) override;
+    Return<void> allocation2DRead(Allocation allocation, uint32_t xoff, uint32_t yoff, uint32_t lod, AllocationCubemapFace face, uint32_t w, uint32_t h, Ptr data, Size sizeBytes, Size stride) override;
+    Return<void> allocation3DRead(Allocation allocation, uint32_t xoff, uint32_t yoff, uint32_t zoff, uint32_t lod, uint32_t w, uint32_t h, uint32_t d, Ptr data, Size sizeBytes, Size stride) override;
+    Return<void> allocationSyncAll(Allocation allocation, AllocationUsageType usageType) override;
+    Return<void> allocationResize1D(Allocation allocation, uint32_t dimX) override;
+    Return<void> allocationCopy2DRange(Allocation dstAlloc, uint32_t dstXoff, uint32_t dstYoff, uint32_t dstMip, AllocationCubemapFace dstFace, uint32_t width, uint32_t height, Allocation srcAlloc, uint32_t srcXoff, uint32_t srcYoff, uint32_t srcMip, AllocationCubemapFace srcFace) override;
+    Return<void> allocationCopy3DRange(Allocation dstAlloc, uint32_t dstXoff, uint32_t dstYoff, uint32_t dstZoff, uint32_t dstMip, uint32_t width, uint32_t height, uint32_t depth, Allocation srcAlloc, uint32_t srcXoff, uint32_t srcYoff, uint32_t srcZoff, uint32_t srcMip) override;
+    Return<void> allocationIoSend(Allocation allocation) override;
+    Return<void> allocationIoReceive(Allocation allocation) override;
+    Return<void> allocationGetPointer(Allocation allocation, uint32_t lod, AllocationCubemapFace face, uint32_t z, allocationGetPointer_cb _hidl_cb) override;
+    Return<void> elementGetNativeMetadata(Element element, elementGetNativeMetadata_cb _hidl_cb) override;
+    Return<void> elementGetSubElements(Element element, Size numSubElem, elementGetSubElements_cb _hidl_cb) override;
+    Return<Element> elementCreate(DataType dt, DataKind dk, bool norm, uint32_t size) override;
+    Return<Element> elementComplexCreate(const hidl_vec<Element>& eins, const hidl_vec<hidl_string>& names, const hidl_vec<Size>& arraySizes) override;
+    Return<void> typeGetNativeMetadata(Type type, typeGetNativeMetadata_cb _hidl_cb) override;
+    Return<Type> typeCreate(Element element, uint32_t dimX, uint32_t dimY, uint32_t dimZ, bool mipmaps, bool faces, YuvFormat yuv) override;
+    Return<void> contextDestroy() override;
+    Return<void> contextGetMessage(Ptr data, Size size, contextGetMessage_cb _hidl_cb) override;
+    Return<void> contextPeekMessage(contextPeekMessage_cb _hidl_cb) override;
+    Return<void> contextSendMessage(uint32_t id, const hidl_vec<uint8_t>& data) override;
+    Return<void> contextInitToClient() override;
+    Return<void> contextDeinitToClient() override;
+    Return<void> contextFinish() override;
+    Return<void> contextLog() override;
+    Return<void> contextSetPriority(ThreadPriorities priority) override;
+    Return<void> contextSetCacheDir(const hidl_string& cacheDir) override;
+    Return<void> assignName(ObjectBase obj, const hidl_string& name) override;
+    Return<void> getName(ObjectBase obj, getName_cb _hidl_cb) override;
+    Return<Closure> closureCreate(ScriptKernelID kernelID, Allocation returnValue, const hidl_vec<ScriptFieldID>& fieldIDS, const hidl_vec<int64_t>& values, const hidl_vec<int32_t>& sizes, const hidl_vec<Closure>& depClosures, const hidl_vec<ScriptFieldID>& depFieldIDS) override;
+    Return<Closure> invokeClosureCreate(ScriptInvokeID invokeID, const hidl_vec<uint8_t>& params, const hidl_vec<ScriptFieldID>& fieldIDS, const hidl_vec<int64_t>& values, const hidl_vec<int32_t>& sizes) override;
+    Return<void> closureSetArg(Closure closure, uint32_t index, Ptr value, int32_t size) override;
+    Return<void> closureSetGlobal(Closure closure, ScriptFieldID fieldID, int64_t value, int32_t size) override;
+    Return<ScriptKernelID> scriptKernelIDCreate(Script script, int32_t slot, int32_t sig) override;
+    Return<ScriptInvokeID> scriptInvokeIDCreate(Script script, int32_t slot) override;
+    Return<ScriptFieldID> scriptFieldIDCreate(Script script, int32_t slot) override;
+    Return<ScriptGroup> scriptGroupCreate(const hidl_vec<ScriptKernelID>& kernels, const hidl_vec<ScriptKernelID>& srcK, const hidl_vec<ScriptKernelID>& dstK, const hidl_vec<ScriptFieldID>& dstF, const hidl_vec<Type>& types) override;
+    Return<ScriptGroup2> scriptGroup2Create(const hidl_string& name, const hidl_string& cacheDir, const hidl_vec<Closure>& closures) override;
+    Return<void> scriptGroupSetOutput(ScriptGroup sg, ScriptKernelID kid, Allocation alloc) override;
+    Return<void> scriptGroupSetInput(ScriptGroup sg, ScriptKernelID kid, Allocation alloc) override;
+    Return<void> scriptGroupExecute(ScriptGroup sg) override;
+    Return<void> objDestroy(ObjectBase obj) override;
+    Return<Sampler> samplerCreate(SamplerValue magFilter, SamplerValue minFilter, SamplerValue wrapS, SamplerValue wrapT, SamplerValue wrapR, float aniso) override;
+    Return<void> scriptBindAllocation(Script script, Allocation allocation, uint32_t slot) override;
+    Return<void> scriptSetTimeZone(Script script, const hidl_string& timeZone) override;
+    Return<void> scriptInvoke(Script vs, uint32_t slot) override;
+    Return<void> scriptInvokeV(Script vs, uint32_t slot, const hidl_vec<uint8_t>& data) override;
+    Return<void> scriptForEach(Script vs, uint32_t slot, const hidl_vec<Allocation>& vains, Allocation vaout, const hidl_vec<uint8_t>& params, Ptr sc) override;
+    Return<void> scriptReduce(Script vs, uint32_t slot, const hidl_vec<Allocation>& vains, Allocation vaout, Ptr sc) override;
+    Return<void> scriptSetVarI(Script vs, uint32_t slot, int32_t value) override;
+    Return<void> scriptSetVarObj(Script vs, uint32_t slot, ObjectBase obj) override;
+    Return<void> scriptSetVarJ(Script vs, uint32_t slot, int64_t value) override;
+    Return<void> scriptSetVarF(Script vs, uint32_t slot, float value) override;
+    Return<void> scriptSetVarD(Script vs, uint32_t slot, double value) override;
+    Return<void> scriptSetVarV(Script vs, uint32_t slot, const hidl_vec<uint8_t>& data) override;
+    Return<void> scriptGetVarV(Script vs, uint32_t slot, Size len, scriptGetVarV_cb _hidl_cb) override;
+    Return<void> scriptSetVarVE(Script vs, uint32_t slot, const hidl_vec<uint8_t>& data, Element ve, const hidl_vec<uint32_t>& dims) override;
+    Return<Script> scriptCCreate(const hidl_string& resName, const hidl_string& cacheDir, const hidl_vec<uint8_t>& text) override;
+    Return<Script> scriptIntrinsicCreate(ScriptIntrinsicID id, Element elem) override;
+
+    // Methods from ::android::hidl::base::V1_0::IBase follow.
+
+ private:
+    RsContext mContext;
+};
+
+}  // namespace implementation
+}  // namespace V1_0
+}  // namespace renderscript
+}  // namespace hardware
+}  // namespace android
+
+#endif  // ANDROID_HARDWARE_RENDERSCRIPT_V1_0_CONTEXT_H
diff --git a/renderscript/1.0/default/Device.cpp b/renderscript/1.0/default/Device.cpp
new file mode 100644
index 0000000..86cf8eb
--- /dev/null
+++ b/renderscript/1.0/default/Device.cpp
@@ -0,0 +1,139 @@
+#include "Context.h"
+#include "Device.h"
+
+namespace android {
+namespace hardware {
+namespace renderscript {
+namespace V1_0 {
+namespace implementation {
+
+
+static dispatchTable loadHAL();
+dispatchTable Device::mDispatchHal = loadHAL();
+
+Device::Device() {
+}
+
+dispatchTable& Device::getHal() {
+    return mDispatchHal;
+}
+
+
+// Methods from ::android::hardware::renderscript::V1_0::IDevice follow.
+
+Return<sp<IContext>> Device::contextCreate(uint32_t sdkVersion, ContextType ct, int32_t flags) {
+    return new Context(sdkVersion, ct, flags);
+}
+
+
+// Methods from ::android::hidl::base::V1_0::IBase follow.
+
+IDevice* HIDL_FETCH_IDevice(const char* /* name */) {
+    return new Device();
+}
+
+// Helper function
+dispatchTable loadHAL() {
+
+    static_assert(sizeof(void*) <= sizeof(uint64_t), "RenderScript HIDL Error: sizeof(void*) > sizeof(uint64_t)");
+    static_assert(sizeof(size_t) <= sizeof(uint64_t), "RenderScript HIDL Error: sizeof(size_t) > sizeof(uint64_t)");
+
+    const char* filename = "libRS_internal.so";
+    void* handle = dlopen(filename, RTLD_LAZY | RTLD_LOCAL);
+
+    dispatchTable dispatchHal = {
+        .SetNativeLibDir = (SetNativeLibDirFnPtr)nullptr,
+
+        .Allocation1DData = (Allocation1DDataFnPtr)dlsym(handle, "rsAllocation1DData"),
+        .Allocation1DElementData = (Allocation1DElementDataFnPtr)nullptr,
+        .Allocation1DRead = (Allocation1DReadFnPtr)dlsym(handle, "rsAllocation1DRead"),
+        .Allocation2DData = (Allocation2DDataFnPtr)dlsym(handle, "rsAllocation2DData"),
+        .Allocation2DRead = (Allocation2DReadFnPtr)dlsym(handle, "rsAllocation2DRead"),
+        .Allocation3DData = (Allocation3DDataFnPtr)dlsym(handle, "rsAllocation3DData"),
+        .Allocation3DRead = (Allocation3DReadFnPtr)dlsym(handle, "rsAllocation3DRead"),
+        .AllocationAdapterCreate = (AllocationAdapterCreateFnPtr)dlsym(handle, "rsAllocationAdapterCreate"),
+        .AllocationAdapterOffset = (AllocationAdapterOffsetFnPtr)dlsym(handle, "rsAllocationAdapterOffset"),
+        .AllocationCopy2DRange = (AllocationCopy2DRangeFnPtr)dlsym(handle, "rsAllocationCopy2DRange"),
+        .AllocationCopy3DRange = (AllocationCopy3DRangeFnPtr)dlsym(handle, "rsAllocationCopy3DRange"),
+        .AllocationCopyToBitmap = (AllocationCopyToBitmapFnPtr)dlsym(handle, "rsAllocationCopyToBitmap"),
+        .AllocationCreateFromBitmap = (AllocationCreateFromBitmapFnPtr)dlsym(handle, "rsAllocationCreateFromBitmap"),
+        .AllocationCreateStrided = (AllocationCreateStridedFnPtr)dlsym(handle, "rsAllocationCreateStrided"),
+        .AllocationCreateTyped = (AllocationCreateTypedFnPtr)dlsym(handle, "rsAllocationCreateTyped"),
+        .AllocationCubeCreateFromBitmap = (AllocationCubeCreateFromBitmapFnPtr)dlsym(handle, "rsAllocationCubeCreateFromBitmap"),
+        .AllocationElementData = (AllocationElementDataFnPtr)dlsym(handle, "rsAllocationElementData"),
+        .AllocationElementRead = (AllocationElementReadFnPtr)dlsym(handle, "rsAllocationElementRead"),
+        .AllocationGenerateMipmaps = (AllocationGenerateMipmapsFnPtr)dlsym(handle, "rsAllocationGenerateMipmaps"),
+        .AllocationGetPointer = (AllocationGetPointerFnPtr)dlsym(handle, "rsAllocationGetPointer"),
+        .AllocationGetSurface = (AllocationGetSurfaceFnPtr)dlsym(handle, "rsAllocationGetSurface"),
+        .AllocationGetType = (AllocationGetTypeFnPtr)dlsym(handle, "rsaAllocationGetType"),
+        .AllocationIoReceive = (AllocationIoReceiveFnPtr)dlsym(handle, "rsAllocationIoReceive"),
+        .AllocationIoSend = (AllocationIoSendFnPtr)dlsym(handle, "rsAllocationIoSend"),
+        .AllocationRead = (AllocationReadFnPtr)dlsym(handle, "rsAllocationRead"),
+        .AllocationResize1D = (AllocationResize1DFnPtr)dlsym(handle, "rsAllocationResize1D"),
+        .AllocationSetSurface = (AllocationSetSurfaceFnPtr)dlsym(handle, "rsAllocationSetSurface"),
+        .AllocationSetupBufferQueue = (AllocationSetupBufferQueueFnPtr)dlsym(handle, "rsAllocationSetupBufferQueue"),
+        .AllocationShareBufferQueue = (AllocationShareBufferQueueFnPtr)dlsym(handle, "rsAllocationShareBufferQueue"),
+        .AllocationSyncAll = (AllocationSyncAllFnPtr)dlsym(handle, "rsAllocationSyncAll"),
+        .AssignName = (AssignNameFnPtr)dlsym(handle, "rsAssignName"),
+        .ClosureCreate = (ClosureCreateFnPtr)dlsym(handle, "rsClosureCreate"),
+        .ClosureSetArg = (ClosureSetArgFnPtr)dlsym(handle, "rsClosureSetArg"),
+        .ClosureSetGlobal = (ClosureSetGlobalFnPtr)dlsym(handle, "rsClosureSetGlobal"),
+        .ContextCreate = (ContextCreateFnPtr)dlsym(handle, "rsContextCreate"),
+        .ContextDeinitToClient = (ContextDeinitToClientFnPtr)dlsym(handle, "rsContextDeinitToClient"),
+        .ContextDestroy = (ContextDestroyFnPtr)dlsym(handle, "rsContextDestroy"),
+        .ContextDump = (ContextDumpFnPtr)dlsym(handle, "rsContextDump"),
+        .ContextFinish = (ContextFinishFnPtr)dlsym(handle, "rsContextFinish"),
+        .ContextGetMessage = (ContextGetMessageFnPtr)dlsym(handle, "rsContextGetMessage"),
+        .ContextInitToClient = (ContextInitToClientFnPtr)dlsym(handle, "rsContextInitToClient"),
+        .ContextPeekMessage = (ContextPeekMessageFnPtr)dlsym(handle, "rsContextPeekMessage"),
+        .ContextSendMessage = (ContextSendMessageFnPtr)dlsym(handle, "rsContextSendMessage"),
+        .ContextSetCacheDir = (ContextSetCacheDirFnPtr)dlsym(handle, "rsContextSetCacheDir"),
+        .ContextSetPriority = (ContextSetPriorityFnPtr)dlsym(handle, "rsContextSetPriority"),
+        .DeviceCreate = (DeviceCreateFnPtr)nullptr,
+        .DeviceDestroy = (DeviceDestroyFnPtr)nullptr,
+        .DeviceSetConfig = (DeviceSetConfigFnPtr)nullptr,
+        .ElementCreate2 = (ElementCreate2FnPtr)dlsym(handle, "rsElementCreate2"),
+        .ElementCreate = (ElementCreateFnPtr)dlsym(handle, "rsElementCreate"),
+        .ElementGetNativeData = (ElementGetNativeDataFnPtr)dlsym(handle, "rsaElementGetNativeData"),
+        .ElementGetSubElements = (ElementGetSubElementsFnPtr)dlsym(handle, "rsaElementGetSubElements"),
+        .GetName = (GetNameFnPtr)dlsym(handle, "rsaGetName"),
+        .InvokeClosureCreate = (InvokeClosureCreateFnPtr)dlsym(handle, "rsInvokeClosureCreate"),
+        .ObjDestroy = (ObjDestroyFnPtr)dlsym(handle, "rsObjDestroy"),
+        .SamplerCreate = (SamplerCreateFnPtr)dlsym(handle, "rsSamplerCreate"),
+        .ScriptBindAllocation = (ScriptBindAllocationFnPtr)dlsym(handle, "rsScriptBindAllocation"),
+        .ScriptCCreate = (ScriptCCreateFnPtr)dlsym(handle, "rsScriptCCreate"),
+        .ScriptFieldIDCreate = (ScriptFieldIDCreateFnPtr)dlsym(handle, "rsScriptFieldIDCreate"),
+        .ScriptForEach = (ScriptForEachFnPtr)nullptr,
+        .ScriptForEachMulti = (ScriptForEachMultiFnPtr)dlsym(handle, "rsScriptForEachMulti"),
+        .ScriptGetVarV = (ScriptGetVarVFnPtr)dlsym(handle, "rsScriptGetVarV"),
+        .ScriptGroup2Create = (ScriptGroup2CreateFnPtr)dlsym(handle, "rsScriptGroup2Create"),
+        .ScriptGroupCreate = (ScriptGroupCreateFnPtr)dlsym(handle, "rsScriptGroupCreate"),
+        .ScriptGroupExecute = (ScriptGroupExecuteFnPtr)dlsym(handle, "rsScriptGroupExecute"),
+        .ScriptGroupSetInput = (ScriptGroupSetInputFnPtr)dlsym(handle, "rsScriptGroupSetInput"),
+        .ScriptGroupSetOutput = (ScriptGroupSetOutputFnPtr)dlsym(handle, "rsScriptGroupSetOutput"),
+        .ScriptIntrinsicCreate = (ScriptIntrinsicCreateFnPtr)dlsym(handle, "rsScriptIntrinsicCreate"),
+        .ScriptInvoke = (ScriptInvokeFnPtr)dlsym(handle, "rsScriptInvoke"),
+        .ScriptInvokeIDCreate = (ScriptInvokeIDCreateFnPtr)dlsym(handle, "rsScriptInvokeIDCreate"),
+        .ScriptInvokeV = (ScriptInvokeVFnPtr)dlsym(handle, "rsScriptInvokeV"),
+        .ScriptKernelIDCreate = (ScriptKernelIDCreateFnPtr)dlsym(handle, "rsScriptKernelIDCreate"),
+        .ScriptReduce = (ScriptReduceFnPtr)dlsym(handle, "rsScriptReduce"),
+        .ScriptSetTimeZone = (ScriptSetTimeZoneFnPtr)dlsym(handle, "rsScriptSetTimeZone"),
+        .ScriptSetVarD = (ScriptSetVarDFnPtr)dlsym(handle, "rsScriptSetVarD"),
+        .ScriptSetVarF = (ScriptSetVarFFnPtr)dlsym(handle, "rsScriptSetVarF"),
+        .ScriptSetVarI = (ScriptSetVarIFnPtr)dlsym(handle, "rsScriptSetVarI"),
+        .ScriptSetVarJ = (ScriptSetVarJFnPtr)dlsym(handle, "rsScriptSetVarJ"),
+        .ScriptSetVarObj = (ScriptSetVarObjFnPtr)dlsym(handle, "rsScriptSetVarObj"),
+        .ScriptSetVarVE = (ScriptSetVarVEFnPtr)dlsym(handle, "rsScriptSetVarVE"),
+        .ScriptSetVarV = (ScriptSetVarVFnPtr)dlsym(handle, "rsScriptSetVarV"),
+        .TypeCreate = (TypeCreateFnPtr)dlsym(handle, "rsTypeCreate"),
+        .TypeGetNativeData = (TypeGetNativeDataFnPtr)dlsym(handle, "rsaTypeGetNativeData"),
+    };
+
+    return dispatchHal;
+}
+
+}  // namespace implementation
+}  // namespace V1_0
+}  // namespace renderscript
+}  // namespace hardware
+}  // namespace android
diff --git a/renderscript/1.0/default/Device.h b/renderscript/1.0/default/Device.h
new file mode 100644
index 0000000..f5bda37
--- /dev/null
+++ b/renderscript/1.0/default/Device.h
@@ -0,0 +1,44 @@
+#ifndef ANDROID_HARDWARE_RENDERSCRIPT_V1_0_DEVICE_H
+#define ANDROID_HARDWARE_RENDERSCRIPT_V1_0_DEVICE_H
+
+#include "cpp/rsDispatch.h"
+#include "dlfcn.h"
+#include <android/hardware/renderscript/1.0/IDevice.h>
+#include <hidl/MQDescriptor.h>
+#include <hidl/Status.h>
+
+namespace android {
+namespace hardware {
+namespace renderscript {
+namespace V1_0 {
+namespace implementation {
+
+using ::android::hardware::renderscript::V1_0::ContextType;
+using ::android::hardware::renderscript::V1_0::IContext;
+using ::android::hardware::renderscript::V1_0::IDevice;
+using ::android::hidl::base::V1_0::IBase;
+using ::android::hardware::Return;
+using ::android::sp;
+
+struct Device : public IDevice {
+    Device();
+    static dispatchTable& getHal();
+
+    // Methods from ::android::hardware::renderscript::V1_0::IDevice follow.
+    Return<sp<IContext>> contextCreate(uint32_t sdkVersion, ContextType ct, int32_t flags) override;
+
+    // Methods from ::android::hidl::base::V1_0::IBase follow.
+
+ private:
+    static dispatchTable mDispatchHal;
+};
+
+extern "C" IDevice* HIDL_FETCH_IDevice(const char* name);
+
+}  // namespace implementation
+}  // namespace V1_0
+}  // namespace renderscript
+}  // namespace hardware
+}  // namespace android
+
+#endif  // ANDROID_HARDWARE_RENDERSCRIPT_V1_0_DEVICE_H
diff --git a/renderscript/1.0/types.hal b/renderscript/1.0/types.hal
new file mode 100644
index 0000000..7c32188
--- /dev/null
+++ b/renderscript/1.0/types.hal
@@ -0,0 +1,253 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// TODO: Currently, most of the types are simply typedefs of uint64_t, so
+// misusing one type as another won't be caught by the compiler. Should we wrap
+// each type in a unique class to have stronger type guarantees?
+// TODO: is there an enum for intrinsics?
+
+package android.hardware.renderscript@1.0;
+
+// OpaqueHandle is an object that is used entirely in the driver but still needs
+// to be identified by the framework.
+typedef uint64_t OpaqueHandle;
+
+// A pointer is an actual local pointer that can be accessed by both the
+// framework and the driver. This is possible because RenderScript is always
+// running in Passthrough mode.
+typedef pointer Ptr;
+
+// This is an abstraction of size_t because it is not supported in HIDL.
+typedef uint64_t Size;
+
+// In RenderScript code, these are all defined as void*, but act only as
+// handles.
+typedef OpaqueHandle Allocation;
+typedef OpaqueHandle AllocationAdapter;
+typedef OpaqueHandle Closure;
+typedef OpaqueHandle Element;
+typedef OpaqueHandle NativeWindow;
+typedef OpaqueHandle ObjectBase;
+typedef OpaqueHandle Sampler;
+typedef OpaqueHandle Script;
+typedef OpaqueHandle ScriptFieldID;
+typedef OpaqueHandle ScriptGroup;
+typedef OpaqueHandle ScriptGroup2;
+typedef OpaqueHandle ScriptInvokeID;
+typedef OpaqueHandle ScriptKernelID;
+typedef OpaqueHandle Type;
+
+// types below are same as those in frameworks/rs/rsDefines.h
+
+@export(name="RsContextType", value_prefix="RS_CONTEXT_TYPE_")
+enum ContextType : int32_t {
+    NORMAL,
+    DEBUG,
+    PROFILE,
+};
+
+@export(name="RsAllocationUsageType", value_prefix="RS_ALLOCATION_USAGE_")
+enum AllocationUsageType : int32_t {
+    SCRIPT                 = 0x0001,
+    GRAPHICS_TEXTURE       = 0x0002,
+    GRAPHICS_VERTEX        = 0x0004,
+    GRAPHICS_CONSTANTS     = 0x0008,
+    GRAPHICS_RENDER_TARGET = 0x0010,
+    IO_INPUT               = 0x0020,
+    IO_OUTPUT              = 0x0040,
+    SHARED                 = 0x0080,
+    OEM                    = 0x8000,
+    ALL                    = 0x80FF,
+};
+
+@export(name="RsAllocationMipmapControl", value_prefix="RS_ALLOCATION_MIPMAP_")
+enum AllocationMipmapControl : int32_t {
+    NONE               = 0,
+    FULL               = 1,
+    ON_SYNC_TO_TEXTURE = 2,
+};
+
+@export(name="RsAllocationCubemapFace",
+        value_prefix="RS_ALLOCATION_CUBEMAP_FACE_")
+enum AllocationCubemapFace : int32_t {
+    POSITIVE_X = 0,
+    NEGATIVE_X = 1,
+    POSITIVE_Y = 2,
+    NEGATIVE_Y = 3,
+    POSITIVE_Z = 4,
+    NEGATIVE_Z = 5,
+};
+
+@export(name="RsDataType", value_prefix="RS_TYPE_")
+enum DataType : int32_t {
+    NONE = 0,
+    FLOAT_16,
+    FLOAT_32,
+    FLOAT_64,
+    SIGNED_8,
+    SIGNED_16,
+    SIGNED_32,
+    SIGNED_64,
+    UNSIGNED_8,
+    UNSIGNED_16,
+    UNSIGNED_32,
+    UNSIGNED_64,
+    BOOLEAN,
+    UNSIGNED_5_6_5,
+    UNSIGNED_5_5_5_1,
+    UNSIGNED_4_4_4_4,
+    MATRIX_4X4,
+    MATRIX_3X3,
+    MATRIX_2X2,
+    ELEMENT = 1000,
+    TYPE,
+    ALLOCATION,
+    SAMPLER,
+    SCRIPT,
+    MESH,
+    PROGRAM_FRAGMENT,
+    PROGRAM_VERTEX,
+    PROGRAM_RASTER,
+    PROGRAM_STORE,
+    FONT,
+    INVALID = 10000,
+};
+
+@export(name="RsDataKind", value_prefix="RS_KIND_")
+enum DataKind : int32_t {
+    USER,
+    PIXEL_L = 7,
+    PIXEL_A,
+    PIXEL_LA,
+    PIXEL_RGB,
+    PIXEL_RGBA,
+    PIXEL_DEPTH,
+    PIXEL_YUV,
+    INVALID = 100,
+};
+
+@export(name="RsYuvFormat", value_prefix="RS_")
+enum YuvFormat : int32_t {
+    YUV_NONE    = 0,
+    YUV_YV12    = 0x32315659, // HAL_PIXEL_FORMAT_YV12 in system/graphics.h
+    YUV_NV21    = 0x11,       // HAL_PIXEL_FORMAT_YCrCb_420_SP
+    YUV_420_888 = 0x23,       // HAL_PIXEL_FORMAT_YCbCr_420_888
+};
+
+@export(name="RsSamplerValue", value_prefix="RS_SAMPLER_")
+enum SamplerValue : int32_t {
+    NEAREST,
+    LINEAR,
+    LINEAR_MIP_LINEAR,
+    WRAP,
+    CLAMP,
+    LINEAR_MIP_NEAREST,
+    MIRRORED_REPEAT,
+    INVALID = 100,
+};
+
+@export(name="RsForEachStrategy", value_prefix="RS_FOR_EACH_STRATEGY_")
+enum ForEachStrategy : int32_t {
+    SERIAL      = 0,
+    DONT_CARE   = 1,
+    DST_LINEAR  = 2,
+    TILE_SMALL  = 3,
+    TILE_MEDIUM = 4,
+    TILE_LARGE  = 5,
+};
+
+// Script to Script
+@export(name="RsScriptCall")
+struct ScriptCall {
+    ForEachStrategy strategy;
+    uint32_t        xStart;
+    uint32_t        xEnd;
+    uint32_t        yStart;
+    uint32_t        yEnd;
+    uint32_t        zStart;
+    uint32_t        zEnd;
+    uint32_t        arrayStart;
+    uint32_t        arrayEnd;
+    uint32_t        array2Start;
+    uint32_t        array2End;
+    uint32_t        array3Start;
+    uint32_t        array3End;
+    uint32_t        array4Start;
+    uint32_t        array4End;
+};
+
+@export(name="RsContextFlags", value_prefix="RS_CONTEXT_")
+enum ContextFlags : int32_t {
+    SYNCHRONOUS     = 1<<0,
+    LOW_LATENCY     = 1<<1,
+    LOW_POWER       = 1<<2,
+    WAIT_FOR_ATTACH = 1<<3,
+};
+
+// types below are same as those in frameworks/rs/rsInternalDefines.h
+
+@export(name="RsMessageToClientType", value_prefix="RS_MESSAGE_TO_CLIENT_")
+enum MessageToClientType : int32_t {
+    NONE       = 0,
+    EXCEPTION  = 1,
+    RESIZE     = 2,
+    ERROR      = 3,
+    USER       = 4,
+    NEW_BUFFER = 5,
+};
+
+@export(name="RsScriptIntrinsicID", value_prefix="RS_SCRIPT_INTRINSIC_")
+enum ScriptIntrinsicID : int32_t {
+    ID_UNDEFINED    = 0,
+    ID_CONVOLVE_3X3 = 1,
+    ID_COLOR_MATRIX = 2,
+    ID_LUT          = 3,
+    ID_CONVOLVE_5X5 = 4,
+    ID_BLUR         = 5,
+    ID_YUV_TO_RGB   = 6,
+    ID_BLEND        = 7,
+    ID_3DLUT        = 8,
+    ID_HISTOGRAM    = 9,
+    // unused 10, 11
+    ID_RESIZE       = 12,
+    ID_BLAS         = 13,
+    ID_EXTBLAS      = 14,
+    ID_OEM_START    = 0x10000000,
+};
+
+@export(name="RsThreadPriorities", value_prefix="RS_THREAD_PRIORITY_")
+enum ThreadPriorities : int32_t {
+    LOW             = 15,
+    NORMAL_GRAPHICS = -8,
+    NORMAL          = -1,
+    LOW_LATENCY     = -4,
+};
+
+// types below are same as those in
+// frameworks/compile/libbcc/include/bcinfo/MetadataExtractor.h
+
+@export(name="", value_prefix="RS_MD_")
+enum MetadataSignatureBitval : int32_t {
+    SIG_None        = 0,
+    SIG_In          = 1<<0,
+    SIG_Out         = 1<<1,
+    SIG_Usr         = 1<<2,
+    SIG_X           = 1<<3,
+    SIG_Y           = 1<<4,
+    SIG_Kernel      = 1<<5,
+    SIG_Z           = 1<<6,
+    SIG_Ctxt        = 1<<7,
+};
diff --git a/renderscript/Android.bp b/renderscript/Android.bp
new file mode 100644
index 0000000..ba90f2c
--- /dev/null
+++ b/renderscript/Android.bp
@@ -0,0 +1,5 @@
+// This is an autogenerated file, do not edit.
+subdirs = [
+    "1.0",
+    "1.0/default",
+]
diff --git a/tests/bar/1.0/default/Android.bp b/tests/bar/1.0/default/Android.bp
index 2c79357..14506c5 100644
--- a/tests/bar/1.0/default/Android.bp
+++ b/tests/bar/1.0/default/Android.bp
@@ -14,7 +14,6 @@
         "libcutils",
         "libhidlbase",
         "libhidltransport",
-        "libhwbinder",
         "liblog",
         "libutils",
         "android.hardware.tests.foo@1.0",
diff --git a/tests/foo/1.0/default/Android.bp b/tests/foo/1.0/default/Android.bp
index f4a80d5..77e617c 100644
--- a/tests/foo/1.0/default/Android.bp
+++ b/tests/foo/1.0/default/Android.bp
@@ -14,7 +14,6 @@
         "libhidlbase",
         "libhidltransport",
         "libfootest",
-        "libhwbinder",
         "liblog",
         "libutils",
         "android.hardware.tests.foo@1.0",
diff --git a/tests/foo/1.0/default/lib/Android.bp b/tests/foo/1.0/default/lib/Android.bp
index 7873203..708cf43 100644
--- a/tests/foo/1.0/default/lib/Android.bp
+++ b/tests/foo/1.0/default/lib/Android.bp
@@ -7,7 +7,6 @@
     shared_libs: [
         "libhidlbase",
         "libhidltransport",
-        "libhwbinder",
         "android.hardware.tests.foo@1.0",
     ],
     local_include_dirs: ["include/hidl-test"],
diff --git a/tests/inheritance/1.0/default/Android.bp b/tests/inheritance/1.0/default/Android.bp
index 090c36e..a67dc09 100644
--- a/tests/inheritance/1.0/default/Android.bp
+++ b/tests/inheritance/1.0/default/Android.bp
@@ -14,7 +14,6 @@
         "libbase",
         "libhidlbase",
         "libhidltransport",
-        "libhwbinder",
         "liblog",
         "libutils",
         "android.hardware.tests.inheritance@1.0",
diff --git a/tests/libhwbinder/1.0/default/Android.bp b/tests/libhwbinder/1.0/default/Android.bp
index 0edabfc..6e8fbb1 100644
--- a/tests/libhwbinder/1.0/default/Android.bp
+++ b/tests/libhwbinder/1.0/default/Android.bp
@@ -10,7 +10,6 @@
         "libbase",
         "libhidlbase",
         "libhidltransport",
-        "libhwbinder",
         "liblog",
         "libutils",
         "android.hardware.tests.libhwbinder@1.0",
diff --git a/tests/memory/1.0/default/Android.bp b/tests/memory/1.0/default/Android.bp
index 14dc08d..40716da 100644
--- a/tests/memory/1.0/default/Android.bp
+++ b/tests/memory/1.0/default/Android.bp
@@ -22,7 +22,6 @@
     shared_libs: [
         "libhidlbase",
         "libhidltransport",
-        "libhwbinder",
         "libhidlmemory",
         "liblog",
         "libutils",
diff --git a/tests/pointer/1.0/default/Android.bp b/tests/pointer/1.0/default/Android.bp
index ab7f8fa..c4dc013 100644
--- a/tests/pointer/1.0/default/Android.bp
+++ b/tests/pointer/1.0/default/Android.bp
@@ -14,7 +14,6 @@
         "libhidlbase",
         "libhidltransport",
         "libpointertest",
-        "libhwbinder",
         "liblog",
         "libutils",
         "android.hardware.tests.pointer@1.0",
diff --git a/tests/pointer/1.0/default/lib/Android.bp b/tests/pointer/1.0/default/lib/Android.bp
index a7203c7..7737932 100644
--- a/tests/pointer/1.0/default/lib/Android.bp
+++ b/tests/pointer/1.0/default/lib/Android.bp
@@ -8,7 +8,6 @@
         "libbase",
         "libhidlbase",
         "libhidltransport",
-        "libhwbinder",
         "liblog",
         "android.hardware.tests.pointer@1.0",
     ],
diff --git a/tests/versioning/2.3/Android.bp b/tests/versioning/2.3/Android.bp
index 3cc2076..122c484 100644
--- a/tests/versioning/2.3/Android.bp
+++ b/tests/versioning/2.3/Android.bp
@@ -63,7 +63,6 @@
         "libcutils",
         "android.hardware.tests.versioning@1.0",
         "android.hardware.tests.versioning@2.2",
-        "android.hidl.base@1.0",
     ],
     export_shared_lib_headers: [
         "libhidlbase",
@@ -72,6 +71,5 @@
         "libutils",
         "android.hardware.tests.versioning@1.0",
         "android.hardware.tests.versioning@2.2",
-        "android.hidl.base@1.0",
     ],
 }
diff --git a/wifi/1.0/Android.mk b/wifi/1.0/Android.mk
index 4476b14..fa6ef6c 100644
--- a/wifi/1.0/Android.mk
+++ b/wifi/1.0/Android.mk
@@ -796,25 +796,6 @@
 LOCAL_GENERATED_SOURCES += $(GEN)
 
 #
-# Build types.hal (StaBackgroundScanBand)
-#
-GEN := $(intermediates)/android/hardware/wifi/V1_0/StaBackgroundScanBand.java
-$(GEN): $(HIDL)
-$(GEN): PRIVATE_HIDL := $(HIDL)
-$(GEN): PRIVATE_DEPS := $(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.wifi@1.0::types.StaBackgroundScanBand
-
-$(GEN): $(LOCAL_PATH)/types.hal
-	$(transform-generated-source)
-LOCAL_GENERATED_SOURCES += $(GEN)
-
-#
 # Build types.hal (StaBackgroundScanBucketEventReportSchemeMask)
 #
 GEN := $(intermediates)/android/hardware/wifi/V1_0/StaBackgroundScanBucketEventReportSchemeMask.java
@@ -1081,6 +1062,25 @@
 LOCAL_GENERATED_SOURCES += $(GEN)
 
 #
+# Build types.hal (WifiBand)
+#
+GEN := $(intermediates)/android/hardware/wifi/V1_0/WifiBand.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(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.wifi@1.0::types.WifiBand
+
+$(GEN): $(LOCAL_PATH)/types.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
 # Build types.hal (WifiChannelInfo)
 #
 GEN := $(intermediates)/android/hardware/wifi/V1_0/WifiChannelInfo.java
@@ -2599,25 +2599,6 @@
 LOCAL_GENERATED_SOURCES += $(GEN)
 
 #
-# Build types.hal (StaBackgroundScanBand)
-#
-GEN := $(intermediates)/android/hardware/wifi/V1_0/StaBackgroundScanBand.java
-$(GEN): $(HIDL)
-$(GEN): PRIVATE_HIDL := $(HIDL)
-$(GEN): PRIVATE_DEPS := $(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.wifi@1.0::types.StaBackgroundScanBand
-
-$(GEN): $(LOCAL_PATH)/types.hal
-	$(transform-generated-source)
-LOCAL_GENERATED_SOURCES += $(GEN)
-
-#
 # Build types.hal (StaBackgroundScanBucketEventReportSchemeMask)
 #
 GEN := $(intermediates)/android/hardware/wifi/V1_0/StaBackgroundScanBucketEventReportSchemeMask.java
@@ -2884,6 +2865,25 @@
 LOCAL_GENERATED_SOURCES += $(GEN)
 
 #
+# Build types.hal (WifiBand)
+#
+GEN := $(intermediates)/android/hardware/wifi/V1_0/WifiBand.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(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.wifi@1.0::types.WifiBand
+
+$(GEN): $(LOCAL_PATH)/types.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
 # Build types.hal (WifiChannelInfo)
 #
 GEN := $(intermediates)/android/hardware/wifi/V1_0/WifiChannelInfo.java
diff --git a/wifi/1.0/IWifiApIface.hal b/wifi/1.0/IWifiApIface.hal
index aeca2cd..1f6ee7c 100644
--- a/wifi/1.0/IWifiApIface.hal
+++ b/wifi/1.0/IWifiApIface.hal
@@ -33,4 +33,21 @@
    *         |WifiStatusCode.FAILURE_IFACE_INVALID|
    */
   setCountryCode(int8_t[2] code) generates (WifiStatus status);
+
+  /**
+   * Used to query the list of valid frequencies (depending on country code set)
+   * for the provided band.
+   *
+   * @param band Band for which the frequency list is being generated.
+   * @return status WifiStatus of the operation.
+   *         Possible status codes:
+   *         |WifiStatusCode.SUCCESS|,
+   *         |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
+   *         |WifiStatusCode.ERROR_NOT_SUPPORTED|,
+   *         |WifiStatusCode.ERROR_NOT_AVAILABLE|,
+   *         |WifiStatusCode.ERROR_UNKNOWN|
+   * @return frequencies vector of valid frequencies for the provided band.
+   */
+  getValidFrequenciesForBand(WifiBand band)
+      generates (WifiStatus status, vec<WifiChannelInMhz> frequencies);
 };
diff --git a/wifi/1.0/IWifiStaIface.hal b/wifi/1.0/IWifiStaIface.hal
index 96dc54a..43c3126 100644
--- a/wifi/1.0/IWifiStaIface.hal
+++ b/wifi/1.0/IWifiStaIface.hal
@@ -180,7 +180,6 @@
    * for the provided band. These channels may be specifed in the
    * |BackgroundScanBucketParameters.frequenciesInMhz| for a background scan
    * request.
-   * Must fail if |StaIfaceCapabilityMask.BACKGROUND_SCAN| is not set.
    *
    * @param band Band for which the frequency list is being generated.
    * @return status WifiStatus of the operation.
@@ -192,7 +191,7 @@
    *         |WifiStatusCode.ERROR_UNKNOWN|
    * @return frequencies vector of valid frequencies for the provided band.
    */
-  getValidFrequenciesForBackgroundScan(StaBackgroundScanBand band)
+  getValidFrequenciesForBand(WifiBand band)
       generates (WifiStatus status, vec<WifiChannelInMhz> frequencies);
 
   /**
diff --git a/wifi/1.0/default/Android.mk b/wifi/1.0/default/Android.mk
index 2d2d898..00e5f98 100644
--- a/wifi/1.0/default/Android.mk
+++ b/wifi/1.0/default/Android.mk
@@ -39,7 +39,6 @@
     libcutils \
     libhidlbase \
     libhidltransport \
-    libhwbinder \
     liblog \
     libnl \
     libutils \
diff --git a/wifi/1.0/default/hidl_callback_util.h b/wifi/1.0/default/hidl_callback_util.h
index a1c6819..7136279 100644
--- a/wifi/1.0/default/hidl_callback_util.h
+++ b/wifi/1.0/default/hidl_callback_util.h
@@ -82,14 +82,12 @@
     return true;
   }
 
-  const std::set<android::sp<CallbackType>> getCallbacks() {
-    return cb_set_;
-  }
+  const std::set<android::sp<CallbackType>> getCallbacks() { return cb_set_; }
 
   // Death notification for callbacks.
   void onObjectDeath(uint64_t cookie) {
-    CallbackType *cb = reinterpret_cast<CallbackType*>(cookie);
-    const auto& iter =  cb_set_.find(cb);
+    CallbackType* cb = reinterpret_cast<CallbackType*>(cookie);
+    const auto& iter = cb_set_.find(cb);
     if (iter == cb_set_.end()) {
       LOG(ERROR) << "Unknown callback death notification received";
       return;
diff --git a/wifi/1.0/default/hidl_struct_util.cpp b/wifi/1.0/default/hidl_struct_util.cpp
index 0bf0d32..c7b8c41 100644
--- a/wifi/1.0/default/hidl_struct_util.cpp
+++ b/wifi/1.0/default/hidl_struct_util.cpp
@@ -306,21 +306,21 @@
   return true;
 }
 
-legacy_hal::wifi_band convertHidlGscanBandToLegacy(StaBackgroundScanBand band) {
+legacy_hal::wifi_band convertHidlWifiBandToLegacy(WifiBand band) {
   switch (band) {
-    case StaBackgroundScanBand::BAND_UNSPECIFIED:
+    case WifiBand::BAND_UNSPECIFIED:
       return legacy_hal::WIFI_BAND_UNSPECIFIED;
-    case StaBackgroundScanBand::BAND_24GHZ:
+    case WifiBand::BAND_24GHZ:
       return legacy_hal::WIFI_BAND_BG;
-    case StaBackgroundScanBand::BAND_5GHZ:
+    case WifiBand::BAND_5GHZ:
       return legacy_hal::WIFI_BAND_A;
-    case StaBackgroundScanBand::BAND_5GHZ_DFS:
+    case WifiBand::BAND_5GHZ_DFS:
       return legacy_hal::WIFI_BAND_A_DFS;
-    case StaBackgroundScanBand::BAND_5GHZ_WITH_DFS:
+    case WifiBand::BAND_5GHZ_WITH_DFS:
       return legacy_hal::WIFI_BAND_A_WITH_DFS;
-    case StaBackgroundScanBand::BAND_24GHZ_5GHZ:
+    case WifiBand::BAND_24GHZ_5GHZ:
       return legacy_hal::WIFI_BAND_ABG;
-    case StaBackgroundScanBand::BAND_24GHZ_5GHZ_WITH_DFS:
+    case WifiBand::BAND_24GHZ_5GHZ_WITH_DFS:
       return legacy_hal::WIFI_BAND_ABG_WITH_DFS;
   };
   CHECK(false);
@@ -917,7 +917,15 @@
   memcpy(legacy_request->service_specific_info,
         hidl_request.baseConfigs.serviceSpecificInfo.data(),
         legacy_request->service_specific_info_len);
-  // TODO: b/35193423 add support for extended service specific info
+  legacy_request->sdea_service_specific_info_len =
+        hidl_request.baseConfigs.extendedServiceSpecificInfo.size();
+  if (legacy_request->sdea_service_specific_info_len > NAN_MAX_SDEA_SERVICE_SPECIFIC_INFO_LEN) {
+    LOG(ERROR) << "convertHidlNanPublishRequestToLegacy: sdea_service_specific_info_len too large";
+    return false;
+  }
+  memcpy(legacy_request->sdea_service_specific_info,
+        hidl_request.baseConfigs.extendedServiceSpecificInfo.data(),
+        legacy_request->sdea_service_specific_info_len);
   legacy_request->rx_match_filter_len = hidl_request.baseConfigs.rxMatchFilter.size();
   if (legacy_request->rx_match_filter_len > NAN_MAX_MATCH_FILTER_LEN) {
     LOG(ERROR) << "convertHidlNanPublishRequestToLegacy: rx_match_filter_len too large";
@@ -999,7 +1007,16 @@
   memcpy(legacy_request->service_specific_info,
         hidl_request.baseConfigs.serviceSpecificInfo.data(),
         legacy_request->service_specific_info_len);
-  // TODO: b/35193423 add support for extended service specific info
+  legacy_request->sdea_service_specific_info_len =
+        hidl_request.baseConfigs.extendedServiceSpecificInfo.size();
+  if (legacy_request->sdea_service_specific_info_len > NAN_MAX_SDEA_SERVICE_SPECIFIC_INFO_LEN) {
+    LOG(ERROR) <<
+        "convertHidlNanSubscribeRequestToLegacy: sdea_service_specific_info_len too large";
+    return false;
+  }
+  memcpy(legacy_request->sdea_service_specific_info,
+        hidl_request.baseConfigs.extendedServiceSpecificInfo.data(),
+        legacy_request->sdea_service_specific_info_len);
   legacy_request->rx_match_filter_len = hidl_request.baseConfigs.rxMatchFilter.size();
   if (legacy_request->rx_match_filter_len > NAN_MAX_MATCH_FILTER_LEN) {
     LOG(ERROR) << "convertHidlNanSubscribeRequestToLegacy: rx_match_filter_len too large";
@@ -1083,13 +1100,22 @@
         legacy_hal::NAN_TRANSMIT_IN_DW : legacy_hal::NAN_TRANSMIT_IN_FAW;
   legacy_request->service_specific_info_len = hidl_request.serviceSpecificInfo.size();
   if (legacy_request->service_specific_info_len > NAN_MAX_SERVICE_SPECIFIC_INFO_LEN) {
-    LOG(ERROR) << "convertHidlNanTransmitFollowupRequestToLegacy: service_specific_info_len too large";
+    LOG(ERROR) <<
+        "convertHidlNanTransmitFollowupRequestToLegacy: service_specific_info_len too large";
     return false;
   }
   memcpy(legacy_request->service_specific_info,
         hidl_request.serviceSpecificInfo.data(),
         legacy_request->service_specific_info_len);
-  // TODO: b/35193423 add support for extended service specific info
+  legacy_request->sdea_service_specific_info_len = hidl_request.extendedServiceSpecificInfo.size();
+  if (legacy_request->sdea_service_specific_info_len > NAN_MAX_SDEA_SERVICE_SPECIFIC_INFO_LEN) {
+    LOG(ERROR) <<
+        "convertHidlNanTransmitFollowupRequestToLegacy: sdea_service_specific_info_len too large";
+    return false;
+  }
+  memcpy(legacy_request->sdea_service_specific_info,
+        hidl_request.extendedServiceSpecificInfo.data(),
+        legacy_request->sdea_service_specific_info_len);
   legacy_request->recv_indication_cfg = hidl_request.disableFollowupResultIndication ? 0x1 : 0x0;
 
   return true;
@@ -1279,8 +1305,8 @@
   hidl_response->maxMatchFilterLen = legacy_response.max_match_filter_len;
   hidl_response->maxTotalMatchFilterLen = legacy_response.max_total_match_filter_len;
   hidl_response->maxServiceSpecificInfoLen = legacy_response.max_service_specific_info_len;
-  // TODO: b/35193423 add support for extended service specific info
-  hidl_response->maxExtendedServiceSpecificInfoLen = 0;
+  hidl_response->maxExtendedServiceSpecificInfoLen =
+    legacy_response.max_sdea_service_specific_info_len;
   hidl_response->maxNdiInterfaces = legacy_response.max_ndi_interfaces;
   hidl_response->maxNdpSessions = legacy_response.max_ndp_sessions;
   hidl_response->maxAppInfoLen = legacy_response.max_app_info_len;
@@ -1303,7 +1329,9 @@
   hidl_ind->addr = hidl_array<uint8_t, 6>(legacy_ind.addr);
   hidl_ind->serviceSpecificInfo = std::vector<uint8_t>(legacy_ind.service_specific_info,
         legacy_ind.service_specific_info + legacy_ind.service_specific_info_len);
-  // TODO: b/35193423 add support for extended service specific info
+  hidl_ind->extendedServiceSpecificInfo = std::vector<uint8_t>(
+        legacy_ind.sdea_service_specific_info,
+        legacy_ind.sdea_service_specific_info + legacy_ind.sdea_service_specific_info_len);
   hidl_ind->matchFilter = std::vector<uint8_t>(legacy_ind.sdf_match_filter,
         legacy_ind.sdf_match_filter + legacy_ind.sdf_match_filter_len);
   hidl_ind->matchOccuredInBeaconFlag = legacy_ind.match_occured_flag == 1;
@@ -1333,6 +1361,9 @@
   hidl_ind->receivedInFaw = legacy_ind.dw_or_faw == 1;
   hidl_ind->serviceSpecificInfo = std::vector<uint8_t>(legacy_ind.service_specific_info,
         legacy_ind.service_specific_info + legacy_ind.service_specific_info_len);
+  hidl_ind->extendedServiceSpecificInfo = std::vector<uint8_t>(
+        legacy_ind.sdea_service_specific_info,
+        legacy_ind.sdea_service_specific_info + legacy_ind.sdea_service_specific_info_len);
 
   return true;
 }
diff --git a/wifi/1.0/default/hidl_struct_util.h b/wifi/1.0/default/hidl_struct_util.h
index 490dcae..41e97b3 100644
--- a/wifi/1.0/default/hidl_struct_util.h
+++ b/wifi/1.0/default/hidl_struct_util.h
@@ -60,7 +60,7 @@
 bool convertLegacyGscanCapabilitiesToHidl(
     const legacy_hal::wifi_gscan_capabilities& legacy_caps,
     StaBackgroundScanCapabilities* hidl_caps);
-legacy_hal::wifi_band convertHidlGscanBandToLegacy(StaBackgroundScanBand band);
+legacy_hal::wifi_band convertHidlWifiBandToLegacy(WifiBand band);
 bool convertHidlGscanParamsToLegacy(
     const StaBackgroundScanParameters& hidl_scan_params,
     legacy_hal::wifi_scan_cmd_params* legacy_scan_params);
diff --git a/wifi/1.0/default/wifi_ap_iface.cpp b/wifi/1.0/default/wifi_ap_iface.cpp
index 1a8b31d..e2beec2 100644
--- a/wifi/1.0/default/wifi_ap_iface.cpp
+++ b/wifi/1.0/default/wifi_ap_iface.cpp
@@ -17,6 +17,7 @@
 #include <android-base/logging.h>
 
 #include "hidl_return_util.h"
+#include "hidl_struct_util.h"
 #include "wifi_ap_iface.h"
 #include "wifi_status_util.h"
 
@@ -64,6 +65,15 @@
                          code);
 }
 
+Return<void> WifiApIface::getValidFrequenciesForBand(
+    WifiBand band, getValidFrequenciesForBand_cb hidl_status_cb) {
+  return validateAndCall(this,
+                         WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
+                         &WifiApIface::getValidFrequenciesForBandInternal,
+                         hidl_status_cb,
+                         band);
+}
+
 std::pair<WifiStatus, std::string> WifiApIface::getNameInternal() {
   return {createWifiStatus(WifiStatusCode::SUCCESS), ifname_};
 }
@@ -79,6 +89,16 @@
   return createWifiStatusFromLegacyError(legacy_status);
 }
 
+std::pair<WifiStatus, std::vector<WifiChannelInMhz>>
+WifiApIface::getValidFrequenciesForBandInternal(WifiBand band) {
+  static_assert(sizeof(WifiChannelInMhz) == sizeof(uint32_t), "Size mismatch");
+  legacy_hal::wifi_error legacy_status;
+  std::vector<uint32_t> valid_frequencies;
+  std::tie(legacy_status, valid_frequencies) =
+      legacy_hal_.lock()->getValidFrequenciesForBand(
+          hidl_struct_util::convertHidlWifiBandToLegacy(band));
+  return {createWifiStatusFromLegacyError(legacy_status), valid_frequencies};
+}
 }  // namespace implementation
 }  // namespace V1_0
 }  // namespace wifi
diff --git a/wifi/1.0/default/wifi_ap_iface.h b/wifi/1.0/default/wifi_ap_iface.h
index 23d6435..efc168a 100644
--- a/wifi/1.0/default/wifi_ap_iface.h
+++ b/wifi/1.0/default/wifi_ap_iface.h
@@ -44,12 +44,16 @@
   Return<void> getType(getType_cb hidl_status_cb) override;
   Return<void> setCountryCode(const hidl_array<int8_t, 2>& code,
                               setCountryCode_cb hidl_status_cb) override;
+  Return<void> getValidFrequenciesForBand(
+      WifiBand band, getValidFrequenciesForBand_cb hidl_status_cb) override;
 
  private:
   // Corresponding worker functions for the HIDL methods.
   std::pair<WifiStatus, std::string> getNameInternal();
   std::pair<WifiStatus, IfaceType> getTypeInternal();
   WifiStatus setCountryCodeInternal(const std::array<int8_t, 2>& code);
+  std::pair<WifiStatus, std::vector<WifiChannelInMhz>>
+  getValidFrequenciesForBandInternal(WifiBand band);
 
   std::string ifname_;
   std::weak_ptr<legacy_hal::WifiLegacyHal> legacy_hal_;
diff --git a/wifi/1.0/default/wifi_legacy_hal.cpp b/wifi/1.0/default/wifi_legacy_hal.cpp
index 7d58254..7390b65 100644
--- a/wifi/1.0/default/wifi_legacy_hal.cpp
+++ b/wifi/1.0/default/wifi_legacy_hal.cpp
@@ -562,7 +562,7 @@
 }
 
 std::pair<wifi_error, std::vector<uint32_t>>
-WifiLegacyHal::getValidFrequenciesForGscan(wifi_band band) {
+WifiLegacyHal::getValidFrequenciesForBand(wifi_band band) {
   static_assert(sizeof(uint32_t) >= sizeof(wifi_channel),
                 "Wifi Channel cannot be represented in output");
   std::vector<uint32_t> freqs;
diff --git a/wifi/1.0/default/wifi_legacy_hal.h b/wifi/1.0/default/wifi_legacy_hal.h
index ed020b0..c8fd5bd 100644
--- a/wifi/1.0/default/wifi_legacy_hal.h
+++ b/wifi/1.0/default/wifi_legacy_hal.h
@@ -175,7 +175,7 @@
       const on_gscan_results_callback& on_results_callback,
       const on_gscan_full_result_callback& on_full_result_callback);
   wifi_error stopGscan(wifi_request_id id);
-  std::pair<wifi_error, std::vector<uint32_t>> getValidFrequenciesForGscan(
+  std::pair<wifi_error, std::vector<uint32_t>> getValidFrequenciesForBand(
       wifi_band band);
   // Link layer stats functions.
   wifi_error enableLinkLayerStats(bool debug);
diff --git a/wifi/1.0/default/wifi_sta_iface.cpp b/wifi/1.0/default/wifi_sta_iface.cpp
index 55c9cf7..0c84102 100644
--- a/wifi/1.0/default/wifi_sta_iface.cpp
+++ b/wifi/1.0/default/wifi_sta_iface.cpp
@@ -106,15 +106,13 @@
                          hidl_status_cb);
 }
 
-Return<void> WifiStaIface::getValidFrequenciesForBackgroundScan(
-    StaBackgroundScanBand band,
-    getValidFrequenciesForBackgroundScan_cb hidl_status_cb) {
-  return validateAndCall(
-      this,
-      WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
-      &WifiStaIface::getValidFrequenciesForBackgroundScanInternal,
-      hidl_status_cb,
-      band);
+Return<void> WifiStaIface::getValidFrequenciesForBand(
+    WifiBand band, getValidFrequenciesForBand_cb hidl_status_cb) {
+  return validateAndCall(this,
+                         WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
+                         &WifiStaIface::getValidFrequenciesForBandInternal,
+                         hidl_status_cb,
+                         band);
 }
 
 Return<void> WifiStaIface::startBackgroundScan(
@@ -363,14 +361,13 @@
 }
 
 std::pair<WifiStatus, std::vector<WifiChannelInMhz>>
-WifiStaIface::getValidFrequenciesForBackgroundScanInternal(
-    StaBackgroundScanBand band) {
+WifiStaIface::getValidFrequenciesForBandInternal(WifiBand band) {
   static_assert(sizeof(WifiChannelInMhz) == sizeof(uint32_t), "Size mismatch");
   legacy_hal::wifi_error legacy_status;
   std::vector<uint32_t> valid_frequencies;
   std::tie(legacy_status, valid_frequencies) =
-      legacy_hal_.lock()->getValidFrequenciesForGscan(
-          hidl_struct_util::convertHidlGscanBandToLegacy(band));
+      legacy_hal_.lock()->getValidFrequenciesForBand(
+          hidl_struct_util::convertHidlWifiBandToLegacy(band));
   return {createWifiStatusFromLegacyError(legacy_status), valid_frequencies};
 }
 
diff --git a/wifi/1.0/default/wifi_sta_iface.h b/wifi/1.0/default/wifi_sta_iface.h
index 5f0ffe9..08faa2f 100644
--- a/wifi/1.0/default/wifi_sta_iface.h
+++ b/wifi/1.0/default/wifi_sta_iface.h
@@ -57,9 +57,8 @@
       installApfPacketFilter_cb hidl_status_cb) override;
   Return<void> getBackgroundScanCapabilities(
       getBackgroundScanCapabilities_cb hidl_status_cb) override;
-  Return<void> getValidFrequenciesForBackgroundScan(
-      StaBackgroundScanBand band,
-      getValidFrequenciesForBackgroundScan_cb hidl_status_cb) override;
+  Return<void> getValidFrequenciesForBand(
+      WifiBand band, getValidFrequenciesForBand_cb hidl_status_cb) override;
   Return<void> startBackgroundScan(
       uint32_t cmd_id,
       const StaBackgroundScanParameters& params,
@@ -119,7 +118,7 @@
   std::pair<WifiStatus, StaBackgroundScanCapabilities>
   getBackgroundScanCapabilitiesInternal();
   std::pair<WifiStatus, std::vector<WifiChannelInMhz>>
-  getValidFrequenciesForBackgroundScanInternal(StaBackgroundScanBand band);
+  getValidFrequenciesForBandInternal(WifiBand band);
   WifiStatus startBackgroundScanInternal(
       uint32_t cmd_id, const StaBackgroundScanParameters& params);
   WifiStatus stopBackgroundScanInternal(uint32_t cmd_id);
diff --git a/wifi/1.0/types.hal b/wifi/1.0/types.hal
index 30e8943..a843ce8 100644
--- a/wifi/1.0/types.hal
+++ b/wifi/1.0/types.hal
@@ -210,6 +210,37 @@
 };
 
 /**
+ * Wifi bands defined in 80211 spec.
+ */
+enum WifiBand : uint32_t {
+  BAND_UNSPECIFIED = 0,
+  /**
+   * 2.4 GHz.
+   */
+  BAND_24GHZ = 1,
+  /**
+   * 5 GHz without DFS.
+   */
+  BAND_5GHZ = 2,
+  /**
+   * 5 GHz DFS only.
+   */
+  BAND_5GHZ_DFS = 4,
+  /**
+   * 5 GHz with DFS.
+   */
+  BAND_5GHZ_WITH_DFS = 6,
+  /**
+   * 2.4 GHz + 5 GHz; no DFS.
+   */
+  BAND_24GHZ_5GHZ = 3,
+  /**
+   * 2.4 GHz + 5 GHz with DFS
+   */
+  BAND_24GHZ_5GHZ_WITH_DFS = 7
+};
+
+/**
  * STA specific types.
  * TODO(b/32159498): Move to a separate sta_types.hal.
  */
@@ -251,37 +282,6 @@
 };
 
 /**
- * Bands that can be specified in Background scan requests.
- */
-enum StaBackgroundScanBand : uint32_t {
-  BAND_UNSPECIFIED = 0,
-  /**
-   * 2.4 GHz.
-   */
-  BAND_24GHZ = 1,
-  /**
-   * 5 GHz without DFS.
-   */
-  BAND_5GHZ = 2,
-  /**
-   * 5 GHz DFS only.
-   */
-  BAND_5GHZ_DFS = 4,
-  /**
-   * 5 GHz with DFS.
-   */
-  BAND_5GHZ_WITH_DFS = 6,
-  /**
-   * 2.4 GHz + 5 GHz; no DFS.
-   */
-  BAND_24GHZ_5GHZ = 3,
-  /**
-   * 2.4 GHz + 5 GHz with DFS
-   */
-  BAND_24GHZ_5GHZ_WITH_DFS = 7
-};
-
-/**
  * Mask of event reporting schemes that can be specified in background scan
  * requests.
  */
@@ -311,12 +311,13 @@
  */
 struct StaBackgroundScanBucketParameters {
   /**
-   * Bands to scan or 0 if frequencies list must be used instead.
+   * Bands to scan or |BAND_UNSPECIFIED| if frequencies list must be used
+   * instead.
    */
-  StaBackgroundScanBand band;
+  WifiBand band;
   /**
    * Channel frequencies (in Mhz) to scan if |band| is set to
-   * |UNSPECIFIED|.
+   * |BAND_UNSPECIFIED|.
    */
   vec<WifiChannelInMhz> frequencies;
   /**
@@ -1009,22 +1010,12 @@
   bool securityEnabledInNdp;
   /**
    * Specifies whether or not there is a ranging requirement in this discovery session.
-   * Ranging is only performed if all other match criteria with the peer are met.
+   * Ranging is only performed if all other match criteria with the peer are met. Ranging must
+   * be performed if both peers in the discovery session (publisher and subscriber) set this
+   * flag to true. Otherwise, if either peer sets this flag to false, ranging must not be performed
+   * and must not impact discovery decisions.
    * Note: specifying that ranging is required also implies that this device must automatically
    * accept ranging requests from peers.
-   *   Solicited Publisher + Passive Subscriber:
-   *     Publisher/Subscriber:
-   *     true/true: ranging performed.
-   *     true/false: subscriber doesn't require ranging (match if all other criteria met). I.e.
-   *                 publisher requiring range doesn't gate subscriber matching.
-   *     false/true: subscriber tries ranging but publisher refuses (no match).
-   *     false/false: ranging isn't attempted and doesn't impact match.
-   *   Unsolicited Publisher + Active Subscriber:
-   *     Publisher/Subscriber:
-   *     true/true: ranging performed.
-   *     true/false: publisher attempts ranging but subscriber doesn't allow - no match.
-   *     false/true: publisher doesn't attempt ranging, should not impact match.
-   *     false/false: ranging isn't attempted and doesn't impact match.
    * NAN Spec: Service Discovery Extension Attribute (SDEA) / Control / Ranging Require.
    */
   bool rangingRequired;
diff --git a/wifi/1.0/vts/Wifi.vts b/wifi/1.0/vts/Wifi.vts
deleted file mode 100644
index 3f567a4..0000000
--- a/wifi/1.0/vts/Wifi.vts
+++ /dev/null
@@ -1,119 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "IWifi"
-
-package: "android.hardware.wifi"
-
-import: "android.hardware.wifi@1.0::IWifiApIface"
-import: "android.hardware.wifi@1.0::IWifiChip"
-import: "android.hardware.wifi@1.0::IWifiChipEventCallback"
-import: "android.hardware.wifi@1.0::IWifiEventCallback"
-import: "android.hardware.wifi@1.0::IWifiIface"
-import: "android.hardware.wifi@1.0::IWifiNanIface"
-import: "android.hardware.wifi@1.0::IWifiNanIfaceEventCallback"
-import: "android.hardware.wifi@1.0::IWifiP2pIface"
-import: "android.hardware.wifi@1.0::IWifiRttController"
-import: "android.hardware.wifi@1.0::IWifiRttControllerEventCallback"
-import: "android.hardware.wifi@1.0::IWifiStaIface"
-import: "android.hardware.wifi@1.0::IWifiStaIfaceEventCallback"
-import: "android.hardware.wifi@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    api: {
-        name: "registerEventCallback"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_HIDL_CALLBACK
-            predefined_type: "::android::hardware::wifi::V1_0::IWifiEventCallback"
-        }
-        callflow: {
-            entry: true
-        }
-        callflow: {
-            next: "*"
-        }
-    }
-
-    api: {
-        name: "isStarted"
-        return_type_hidl: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "start"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        callflow: {
-            entry: true
-        }
-        callflow: {
-            next: "registerEventCallback"
-            next: "start"
-            next: "stop"
-            next: "getChip"
-        }
-    }
-
-    api: {
-        name: "stop"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        callflow: {
-            exit: true
-        }
-        callflow: {
-            next: "registerEventCallback"
-            next: "start"
-            next: "stop"
-        }
-    }
-
-    api: {
-        name: "getChipIds"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint32_t"
-            }
-        }
-        callflow: {
-            next: "*"
-        }
-    }
-
-    api: {
-        name: "getChip"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_HIDL_INTERFACE
-            predefined_type: "::android::hardware::wifi::V1_0::IWifiChip"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        callflow: {
-            next: "*"
-        }
-    }
-
-}
diff --git a/wifi/1.0/vts/WifiApIface.vts b/wifi/1.0/vts/WifiApIface.vts
deleted file mode 100644
index 6b58058..0000000
--- a/wifi/1.0/vts/WifiApIface.vts
+++ /dev/null
@@ -1,51 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "IWifiApIface"
-
-package: "android.hardware.wifi"
-
-import: "android.hardware.wifi@1.0::IWifiIface"
-import: "android.hardware.wifi@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    api: {
-        name: "getType"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::V1_0::IfaceType"
-        }
-    }
-
-    api: {
-        name: "getName"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setCountryCode"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 2
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "int8_t"
-            }
-        }
-    }
-
-}
diff --git a/wifi/1.0/vts/WifiChip.vts b/wifi/1.0/vts/WifiChip.vts
deleted file mode 100644
index 1208202..0000000
--- a/wifi/1.0/vts/WifiChip.vts
+++ /dev/null
@@ -1,539 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "IWifiChip"
-
-package: "android.hardware.wifi"
-
-import: "android.hardware.wifi@1.0::IWifiApIface"
-import: "android.hardware.wifi@1.0::IWifiChipEventCallback"
-import: "android.hardware.wifi@1.0::IWifiIface"
-import: "android.hardware.wifi@1.0::IWifiNanIface"
-import: "android.hardware.wifi@1.0::IWifiNanIfaceEventCallback"
-import: "android.hardware.wifi@1.0::IWifiP2pIface"
-import: "android.hardware.wifi@1.0::IWifiRttController"
-import: "android.hardware.wifi@1.0::IWifiRttControllerEventCallback"
-import: "android.hardware.wifi@1.0::IWifiStaIface"
-import: "android.hardware.wifi@1.0::IWifiStaIfaceEventCallback"
-import: "android.hardware.wifi@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    attribute: {
-        name: "::android::hardware::wifi::V1_0::IWifiChip::ChipIfaceCombinationLimit"
-        type: TYPE_STRUCT
-        struct_value: {
-            name: "types"
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_ENUM
-                predefined_type: "::android::hardware::wifi::V1_0::IfaceType"
-            }
-        }
-        struct_value: {
-            name: "maxIfaces"
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::V1_0::IWifiChip::ChipIfaceCombination"
-        type: TYPE_STRUCT
-        struct_value: {
-            name: "limits"
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_STRUCT
-                predefined_type: "::android::hardware::wifi::V1_0::IWifiChip::ChipIfaceCombinationLimit"
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::V1_0::IWifiChip::ChipMode"
-        type: TYPE_STRUCT
-        struct_value: {
-            name: "id"
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        struct_value: {
-            name: "availableCombinations"
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_STRUCT
-                predefined_type: "::android::hardware::wifi::V1_0::IWifiChip::ChipIfaceCombination"
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::V1_0::IWifiChip::ChipDebugInfo"
-        type: TYPE_STRUCT
-        struct_value: {
-            name: "driverDescription"
-            type: TYPE_STRING
-        }
-        struct_value: {
-            name: "firmwareDescription"
-            type: TYPE_STRING
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::V1_0::IWifiChip::ChipCapabilityMask"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint32_t"
-
-            enumerator: "DEBUG_MEMORY_FIRMWARE_DUMP"
-            scalar_value: {
-                uint32_t: 1
-            }
-            enumerator: "DEBUG_MEMORY_DRIVER_DUMP"
-            scalar_value: {
-                uint32_t: 2
-            }
-            enumerator: "DEBUG_RING_BUFFER_CONNECT_EVENT"
-            scalar_value: {
-                uint32_t: 4
-            }
-            enumerator: "DEBUG_RING_BUFFER_POWER_EVENT"
-            scalar_value: {
-                uint32_t: 8
-            }
-            enumerator: "DEBUG_RING_BUFFER_WAKELOCK_EVENT"
-            scalar_value: {
-                uint32_t: 16
-            }
-            enumerator: "DEBUG_RING_BUFFER_VENDOR_DATA"
-            scalar_value: {
-                uint32_t: 32
-            }
-            enumerator: "DEBUG_HOST_WAKE_REASON_STATS"
-            scalar_value: {
-                uint32_t: 64
-            }
-            enumerator: "DEBUG_ERROR_ALERTS"
-            scalar_value: {
-                uint32_t: 128
-            }
-        }
-    }
-
-    api: {
-        name: "getId"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "registerEventCallback"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_HIDL_CALLBACK
-            predefined_type: "::android::hardware::wifi::V1_0::IWifiChipEventCallback"
-        }
-    }
-
-    api: {
-        name: "getCapabilities"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_MASK
-            scalar_type: "uint32_t"
-            predefined_type: "::android::hardware::wifi::V1_0::IWifiChip::ChipCapabilityMask"
-        }
-    }
-
-    api: {
-        name: "getAvailableModes"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_STRUCT
-                predefined_type: "::android::hardware::wifi::V1_0::IWifiChip::ChipMode"
-            }
-        }
-    }
-
-    api: {
-        name: "configureChip"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "getMode"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "requestChipDebugInfo"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::IWifiChip::ChipDebugInfo"
-        }
-    }
-
-    api: {
-        name: "requestDriverDebugDump"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "requestFirmwareDebugDump"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "createApIface"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_HIDL_INTERFACE
-            predefined_type: "::android::hardware::wifi::V1_0::IWifiApIface"
-        }
-    }
-
-    api: {
-        name: "getApIfaceNames"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_STRING
-            }
-        }
-    }
-
-    api: {
-        name: "getApIface"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_HIDL_INTERFACE
-            predefined_type: "::android::hardware::wifi::V1_0::IWifiApIface"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "removeApIface"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "createNanIface"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_HIDL_INTERFACE
-            predefined_type: "::android::hardware::wifi::V1_0::IWifiNanIface"
-        }
-    }
-
-    api: {
-        name: "getNanIfaceNames"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_STRING
-            }
-        }
-    }
-
-    api: {
-        name: "getNanIface"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_HIDL_INTERFACE
-            predefined_type: "::android::hardware::wifi::V1_0::IWifiNanIface"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "removeNanIface"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "createP2pIface"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_HIDL_INTERFACE
-            predefined_type: "::android::hardware::wifi::V1_0::IWifiP2pIface"
-        }
-    }
-
-    api: {
-        name: "getP2pIfaceNames"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_STRING
-            }
-        }
-    }
-
-    api: {
-        name: "getP2pIface"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_HIDL_INTERFACE
-            predefined_type: "::android::hardware::wifi::V1_0::IWifiP2pIface"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "removeP2pIface"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "createStaIface"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_HIDL_INTERFACE
-            predefined_type: "::android::hardware::wifi::V1_0::IWifiStaIface"
-        }
-    }
-
-    api: {
-        name: "getStaIfaceNames"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_STRING
-            }
-        }
-    }
-
-    api: {
-        name: "getStaIface"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_HIDL_INTERFACE
-            predefined_type: "::android::hardware::wifi::V1_0::IWifiStaIface"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "removeStaIface"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "createRttController"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_HIDL_INTERFACE
-            predefined_type: "::android::hardware::wifi::V1_0::IWifiRttController"
-        }
-        arg: {
-            type: TYPE_HIDL_INTERFACE
-            predefined_type: "::android::hardware::wifi::V1_0::IWifiIface"
-        }
-    }
-
-    api: {
-        name: "getDebugRingBuffersStatus"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_STRUCT
-                predefined_type: "::android::hardware::wifi::V1_0::WifiDebugRingBufferStatus"
-            }
-        }
-    }
-
-    api: {
-        name: "startLoggingToDebugRingBuffer"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::V1_0::WifiDebugRingBufferVerboseLevel"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "forceDumpToDebugRingBuffer"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "getDebugHostWakeReasonStats"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiDebugHostWakeReasonStats"
-        }
-    }
-
-    api: {
-        name: "enableDebugErrorAlerts"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-}
diff --git a/wifi/1.0/vts/WifiChipEventCallback.vts b/wifi/1.0/vts/WifiChipEventCallback.vts
deleted file mode 100644
index 2246f82..0000000
--- a/wifi/1.0/vts/WifiChipEventCallback.vts
+++ /dev/null
@@ -1,79 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "IWifiChipEventCallback"
-
-package: "android.hardware.wifi"
-
-import: "android.hardware.wifi@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    api: {
-        name: "onChipReconfigured"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "onChipReconfigureFailure"
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-    }
-
-    api: {
-        name: "onIfaceAdded"
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::V1_0::IfaceType"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "onIfaceRemoved"
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::V1_0::IfaceType"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "onDebugRingBufferDataAvailable"
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiDebugRingBufferStatus"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "onDebugErrorAlert"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "int32_t"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-}
diff --git a/wifi/1.0/vts/WifiEventCallback.vts b/wifi/1.0/vts/WifiEventCallback.vts
deleted file mode 100644
index 60ec87c..0000000
--- a/wifi/1.0/vts/WifiEventCallback.vts
+++ /dev/null
@@ -1,27 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "IWifiEventCallback"
-
-package: "android.hardware.wifi"
-
-import: "android.hardware.wifi@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    api: {
-        name: "onStart"
-    }
-
-    api: {
-        name: "onStop"
-    }
-
-    api: {
-        name: "onFailure"
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-    }
-
-}
diff --git a/wifi/1.0/vts/WifiIface.vts b/wifi/1.0/vts/WifiIface.vts
deleted file mode 100644
index 0de0f8d..0000000
--- a/wifi/1.0/vts/WifiIface.vts
+++ /dev/null
@@ -1,34 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "IWifiIface"
-
-package: "android.hardware.wifi"
-
-import: "android.hardware.wifi@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    api: {
-        name: "getType"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::V1_0::IfaceType"
-        }
-    }
-
-    api: {
-        name: "getName"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-    }
-
-}
diff --git a/wifi/1.0/vts/WifiNanIface.vts b/wifi/1.0/vts/WifiNanIface.vts
deleted file mode 100644
index 66c8755..0000000
--- a/wifi/1.0/vts/WifiNanIface.vts
+++ /dev/null
@@ -1,262 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "IWifiNanIface"
-
-package: "android.hardware.wifi"
-
-import: "android.hardware.wifi@1.0::IWifiIface"
-import: "android.hardware.wifi@1.0::IWifiNanIfaceEventCallback"
-import: "android.hardware.wifi@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    api: {
-        name: "getType"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::V1_0::IfaceType"
-        }
-    }
-
-    api: {
-        name: "getName"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "registerEventCallback"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_HIDL_CALLBACK
-            predefined_type: "::android::hardware::wifi::V1_0::IWifiNanIfaceEventCallback"
-        }
-    }
-
-    api: {
-        name: "getCapabilitiesRequest"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-    }
-
-    api: {
-        name: "enableRequest"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::NanEnableRequest"
-        }
-    }
-
-    api: {
-        name: "configRequest"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::NanConfigRequest"
-        }
-    }
-
-    api: {
-        name: "disableRequest"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-    }
-
-    api: {
-        name: "startPublishRequest"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::NanPublishRequest"
-        }
-    }
-
-    api: {
-        name: "stopPublishRequest"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-
-    api: {
-        name: "startSubscribeRequest"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::NanSubscribeRequest"
-        }
-    }
-
-    api: {
-        name: "stopSubscribeRequest"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-
-    api: {
-        name: "transmitFollowupRequest"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::NanTransmitFollowupRequest"
-        }
-    }
-
-    api: {
-        name: "createDataInterfaceRequest"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "deleteDataInterfaceRequest"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "initiateDataPathRequest"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::NanInitiateDataPathRequest"
-        }
-    }
-
-    api: {
-        name: "respondToDataPathIndicationRequest"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::NanRespondToDataPathIndicationRequest"
-        }
-    }
-
-    api: {
-        name: "terminateDataPathRequest"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-}
diff --git a/wifi/1.0/vts/WifiNanIfaceEventCallback.vts b/wifi/1.0/vts/WifiNanIfaceEventCallback.vts
deleted file mode 100644
index e3e82f7..0000000
--- a/wifi/1.0/vts/WifiNanIfaceEventCallback.vts
+++ /dev/null
@@ -1,299 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "IWifiNanIfaceEventCallback"
-
-package: "android.hardware.wifi"
-
-import: "android.hardware.wifi@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    api: {
-        name: "notifyCapabilitiesResponse"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::NanCapabilities"
-        }
-    }
-
-    api: {
-        name: "notifyEnableResponse"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
-        }
-    }
-
-    api: {
-        name: "notifyConfigResponse"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
-        }
-    }
-
-    api: {
-        name: "notifyDisableResponse"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
-        }
-    }
-
-    api: {
-        name: "notifyStartPublishResponse"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-
-    api: {
-        name: "notifyStopPublishResponse"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
-        }
-    }
-
-    api: {
-        name: "notifyStartSubscribeResponse"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-
-    api: {
-        name: "notifyStopSubscribeResponse"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
-        }
-    }
-
-    api: {
-        name: "notifyTransmitFollowupResponse"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
-        }
-    }
-
-    api: {
-        name: "notifyCreateDataInterfaceResponse"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
-        }
-    }
-
-    api: {
-        name: "notifyDeleteDataInterfaceResponse"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
-        }
-    }
-
-    api: {
-        name: "notifyInitiateDataPathResponse"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "notifyRespondToDataPathIndicationResponse"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
-        }
-    }
-
-    api: {
-        name: "notifyTerminateDataPathResponse"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
-        }
-    }
-
-    api: {
-        name: "eventClusterEvent"
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::NanClusterEventInd"
-        }
-    }
-
-    api: {
-        name: "eventDisabled"
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
-        }
-    }
-
-    api: {
-        name: "eventPublishTerminated"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
-        }
-    }
-
-    api: {
-        name: "eventSubscribeTerminated"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
-        }
-    }
-
-    api: {
-        name: "eventMatch"
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::NanMatchInd"
-        }
-    }
-
-    api: {
-        name: "eventMatchExpired"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "eventFollowupReceived"
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::NanFollowupReceivedInd"
-        }
-    }
-
-    api: {
-        name: "eventTransmitFollowup"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
-        }
-    }
-
-    api: {
-        name: "eventDataPathRequest"
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::NanDataPathRequestInd"
-        }
-    }
-
-    api: {
-        name: "eventDataPathConfirm"
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::NanDataPathConfirmInd"
-        }
-    }
-
-    api: {
-        name: "eventDataPathTerminated"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-}
diff --git a/wifi/1.0/vts/WifiP2pIface.vts b/wifi/1.0/vts/WifiP2pIface.vts
deleted file mode 100644
index 220f332..0000000
--- a/wifi/1.0/vts/WifiP2pIface.vts
+++ /dev/null
@@ -1,35 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "IWifiP2pIface"
-
-package: "android.hardware.wifi"
-
-import: "android.hardware.wifi@1.0::IWifiIface"
-import: "android.hardware.wifi@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    api: {
-        name: "getType"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::V1_0::IfaceType"
-        }
-    }
-
-    api: {
-        name: "getName"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-    }
-
-}
diff --git a/wifi/1.0/vts/WifiRttController.vts b/wifi/1.0/vts/WifiRttController.vts
deleted file mode 100644
index 45fb309..0000000
--- a/wifi/1.0/vts/WifiRttController.vts
+++ /dev/null
@@ -1,171 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "IWifiRttController"
-
-package: "android.hardware.wifi"
-
-import: "android.hardware.wifi@1.0::IWifiIface"
-import: "android.hardware.wifi@1.0::IWifiRttControllerEventCallback"
-import: "android.hardware.wifi@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    api: {
-        name: "getBoundIface"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_HIDL_INTERFACE
-            predefined_type: "::android::hardware::wifi::V1_0::IWifiIface"
-        }
-    }
-
-    api: {
-        name: "registerEventCallback"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_HIDL_CALLBACK
-            predefined_type: "::android::hardware::wifi::V1_0::IWifiRttControllerEventCallback"
-        }
-    }
-
-    api: {
-        name: "rangeRequest"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_STRUCT
-                predefined_type: "::android::hardware::wifi::V1_0::RttConfig"
-            }
-        }
-    }
-
-    api: {
-        name: "rangeCancel"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_ARRAY
-                vector_size: 6
-                vector_value: {
-                    type: TYPE_SCALAR
-                    scalar_type: "uint8_t"
-                }
-            }
-        }
-    }
-
-    api: {
-        name: "getCapabilities"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::RttCapabilities"
-        }
-    }
-
-    api: {
-        name: "setLci"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::RttLciInformation"
-        }
-    }
-
-    api: {
-        name: "setLcr"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::RttLcrInformation"
-        }
-    }
-
-    api: {
-        name: "getResponderInfo"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::RttResponder"
-        }
-    }
-
-    api: {
-        name: "enableResponder"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiChannelInfo"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::RttResponder"
-        }
-    }
-
-    api: {
-        name: "disableResponder"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-}
diff --git a/wifi/1.0/vts/WifiRttControllerEventCallback.vts b/wifi/1.0/vts/WifiRttControllerEventCallback.vts
deleted file mode 100644
index e3c2651..0000000
--- a/wifi/1.0/vts/WifiRttControllerEventCallback.vts
+++ /dev/null
@@ -1,26 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "IWifiRttControllerEventCallback"
-
-package: "android.hardware.wifi"
-
-import: "android.hardware.wifi@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    api: {
-        name: "onResults"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_STRUCT
-                predefined_type: "::android::hardware::wifi::V1_0::RttResult"
-            }
-        }
-    }
-
-}
diff --git a/wifi/1.0/vts/WifiStaIface.vts b/wifi/1.0/vts/WifiStaIface.vts
deleted file mode 100644
index 1edf4db..0000000
--- a/wifi/1.0/vts/WifiStaIface.vts
+++ /dev/null
@@ -1,441 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "IWifiStaIface"
-
-package: "android.hardware.wifi"
-
-import: "android.hardware.wifi@1.0::IWifiIface"
-import: "android.hardware.wifi@1.0::IWifiStaIfaceEventCallback"
-import: "android.hardware.wifi@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    attribute: {
-        name: "::android::hardware::wifi::V1_0::IWifiStaIface::StaIfaceCapabilityMask"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint32_t"
-
-            enumerator: "APF"
-            scalar_value: {
-                uint32_t: 1
-            }
-            enumerator: "BACKGROUND_SCAN"
-            scalar_value: {
-                uint32_t: 2
-            }
-            enumerator: "LINK_LAYER_STATS"
-            scalar_value: {
-                uint32_t: 4
-            }
-            enumerator: "RSSI_MONITOR"
-            scalar_value: {
-                uint32_t: 8
-            }
-            enumerator: "CONTROL_ROAMING"
-            scalar_value: {
-                uint32_t: 16
-            }
-            enumerator: "PROBE_IE_WHITELIST"
-            scalar_value: {
-                uint32_t: 32
-            }
-            enumerator: "SCAN_RAND"
-            scalar_value: {
-                uint32_t: 64
-            }
-            enumerator: "STA_5G"
-            scalar_value: {
-                uint32_t: 128
-            }
-            enumerator: "HOTSPOT"
-            scalar_value: {
-                uint32_t: 256
-            }
-            enumerator: "PNO"
-            scalar_value: {
-                uint32_t: 512
-            }
-            enumerator: "TDLS"
-            scalar_value: {
-                uint32_t: 1024
-            }
-            enumerator: "TDLS_OFFCHANNEL"
-            scalar_value: {
-                uint32_t: 2048
-            }
-            enumerator: "ND_OFFLOAD"
-            scalar_value: {
-                uint32_t: 4096
-            }
-            enumerator: "KEEP_ALIVE"
-            scalar_value: {
-                uint32_t: 8192
-            }
-            enumerator: "DEBUG_PACKET_FATE"
-            scalar_value: {
-                uint32_t: 16384
-            }
-        }
-    }
-
-    api: {
-        name: "getType"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::V1_0::IfaceType"
-        }
-    }
-
-    api: {
-        name: "getName"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "registerEventCallback"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_HIDL_CALLBACK
-            predefined_type: "::android::hardware::wifi::V1_0::IWifiStaIfaceEventCallback"
-        }
-    }
-
-    api: {
-        name: "getCapabilities"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_MASK
-            scalar_type: "uint32_t"
-            predefined_type: "::android::hardware::wifi::V1_0::IWifiStaIface::StaIfaceCapabilityMask"
-        }
-    }
-
-    api: {
-        name: "getApfPacketFilterCapabilities"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::StaApfPacketFilterCapabilities"
-        }
-    }
-
-    api: {
-        name: "installApfPacketFilter"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "getBackgroundScanCapabilities"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::StaBackgroundScanCapabilities"
-        }
-    }
-
-    api: {
-        name: "getValidFrequenciesForBackgroundScan"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint32_t"
-            }
-        }
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::V1_0::StaBackgroundScanBand"
-        }
-    }
-
-    api: {
-        name: "startBackgroundScan"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::StaBackgroundScanParameters"
-        }
-    }
-
-    api: {
-        name: "stopBackgroundScan"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "enableLinkLayerStatsCollection"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "disableLinkLayerStatsCollection"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-    }
-
-    api: {
-        name: "getLinkLayerStats"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::StaLinkLayerStats"
-        }
-    }
-
-    api: {
-        name: "startRssiMonitoring"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "int32_t"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "int32_t"
-        }
-    }
-
-    api: {
-        name: "stopRssiMonitoring"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "getRoamingCapabilities"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::StaRoamingCapabilities"
-        }
-    }
-
-    api: {
-        name: "configureRoaming"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::StaRoamingConfig"
-        }
-    }
-
-    api: {
-        name: "setRoamingState"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::V1_0::StaRoamingState"
-        }
-    }
-
-    api: {
-        name: "enableNdOffload"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "startSendingKeepAlivePackets"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "stopSendingKeepAlivePackets"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "setScanningMacOui"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 3
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "startDebugPacketFateMonitoring"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-    }
-
-    api: {
-        name: "getDebugTxPacketFates"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_STRUCT
-                predefined_type: "::android::hardware::wifi::V1_0::WifiDebugTxPacketFateReport"
-            }
-        }
-    }
-
-    api: {
-        name: "getDebugRxPacketFates"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_STRUCT
-                predefined_type: "::android::hardware::wifi::V1_0::WifiDebugRxPacketFateReport"
-            }
-        }
-    }
-
-}
diff --git a/wifi/1.0/vts/WifiStaIfaceEventCallback.vts b/wifi/1.0/vts/WifiStaIfaceEventCallback.vts
deleted file mode 100644
index 99bf03f..0000000
--- a/wifi/1.0/vts/WifiStaIfaceEventCallback.vts
+++ /dev/null
@@ -1,66 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "IWifiStaIfaceEventCallback"
-
-package: "android.hardware.wifi"
-
-import: "android.hardware.wifi@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    api: {
-        name: "onBackgroundScanFailure"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "onBackgroundFullScanResult"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::StaScanResult"
-        }
-    }
-
-    api: {
-        name: "onBackgroundScanResults"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_STRUCT
-                predefined_type: "::android::hardware::wifi::V1_0::StaScanData"
-            }
-        }
-    }
-
-    api: {
-        name: "onRssiThresholdBreached"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "int32_t"
-        }
-    }
-
-}
diff --git a/wifi/1.0/vts/functional/Android.bp b/wifi/1.0/vts/functional/Android.bp
index 01eeef5..dc36139 100644
--- a/wifi/1.0/vts/functional/Android.bp
+++ b/wifi/1.0/vts/functional/Android.bp
@@ -34,7 +34,6 @@
         "libcutils",
         "libhidlbase",
         "libhidltransport",
-        "libhwbinder",
         "libnativehelper",
         "libutils",
         "android.hardware.wifi@1.0",
diff --git a/wifi/1.0/vts/types.vts b/wifi/1.0/vts/types.vts
deleted file mode 100644
index 388dbc3..0000000
--- a/wifi/1.0/vts/types.vts
+++ /dev/null
@@ -1,2834 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "types"
-
-package: "android.hardware.wifi"
-
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::WifiStatusCode"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "SUCCESS"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "ERROR_WIFI_CHIP_INVALID"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "ERROR_WIFI_IFACE_INVALID"
-        scalar_value: {
-            uint32_t: 2
-        }
-        enumerator: "ERROR_WIFI_RTT_CONTROLLER_INVALID"
-        scalar_value: {
-            uint32_t: 3
-        }
-        enumerator: "ERROR_NOT_SUPPORTED"
-        scalar_value: {
-            uint32_t: 4
-        }
-        enumerator: "ERROR_NOT_AVAILABLE"
-        scalar_value: {
-            uint32_t: 5
-        }
-        enumerator: "ERROR_NOT_STARTED"
-        scalar_value: {
-            uint32_t: 6
-        }
-        enumerator: "ERROR_INVALID_ARGS"
-        scalar_value: {
-            uint32_t: 7
-        }
-        enumerator: "ERROR_BUSY"
-        scalar_value: {
-            uint32_t: 8
-        }
-        enumerator: "ERROR_UNKNOWN"
-        scalar_value: {
-            uint32_t: 9
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::WifiStatus"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "code"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::WifiStatusCode"
-    }
-    struct_value: {
-        name: "description"
-        type: TYPE_STRING
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::IfaceType"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "STA"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "AP"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "P2P"
-        scalar_value: {
-            uint32_t: 2
-        }
-        enumerator: "NAN"
-        scalar_value: {
-            uint32_t: 3
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::WifiChannelWidthInMhz"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "WIDTH_20"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "WIDTH_40"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "WIDTH_80"
-        scalar_value: {
-            uint32_t: 2
-        }
-        enumerator: "WIDTH_160"
-        scalar_value: {
-            uint32_t: 3
-        }
-        enumerator: "WIDTH_80P80"
-        scalar_value: {
-            uint32_t: 4
-        }
-        enumerator: "WIDTH_5"
-        scalar_value: {
-            uint32_t: 5
-        }
-        enumerator: "WIDTH_10"
-        scalar_value: {
-            uint32_t: 6
-        }
-        enumerator: "WIDTH_INVALID"
-        scalar_value: {
-            uint32_t: 4294967295
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::WifiChannelInfo"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "width"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::WifiChannelWidthInMhz"
-    }
-    struct_value: {
-        name: "centerFreq"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "centerFreq0"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "centerFreq1"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::WifiInformationElement"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "id"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "data"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::WifiRatePreamble"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "OFDM"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "CCK"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "HT"
-        scalar_value: {
-            uint32_t: 2
-        }
-        enumerator: "VHT"
-        scalar_value: {
-            uint32_t: 3
-        }
-        enumerator: "RESERVED"
-        scalar_value: {
-            uint32_t: 4
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::WifiRateNss"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "NSS_1x1"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "NSS_2x2"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "NSS_3x3"
-        scalar_value: {
-            uint32_t: 2
-        }
-        enumerator: "NSS_4x4"
-        scalar_value: {
-            uint32_t: 3
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::WifiRateInfo"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "preamble"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::WifiRatePreamble"
-    }
-    struct_value: {
-        name: "nss"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::WifiRateNss"
-    }
-    struct_value: {
-        name: "bw"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::WifiChannelWidthInMhz"
-    }
-    struct_value: {
-        name: "rateMcsIdx"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "bitRateInKbps"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::StaApfPacketFilterCapabilities"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "version"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "maxLength"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::StaBackgroundScanCapabilities"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "maxCacheSize"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "maxBuckets"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "maxApCachePerScan"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "maxReportingThreshold"
-        type: TYPE_SCALAR
-        scalar_type: "int32_t"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::StaBackgroundScanBand"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "BAND_UNSPECIFIED"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "BAND_24GHZ"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "BAND_5GHZ"
-        scalar_value: {
-            uint32_t: 2
-        }
-        enumerator: "BAND_5GHZ_DFS"
-        scalar_value: {
-            uint32_t: 4
-        }
-        enumerator: "BAND_5GHZ_WITH_DFS"
-        scalar_value: {
-            uint32_t: 6
-        }
-        enumerator: "BAND_24GHZ_5GHZ"
-        scalar_value: {
-            uint32_t: 3
-        }
-        enumerator: "BAND_24GHZ_5GHZ_WITH_DFS"
-        scalar_value: {
-            uint32_t: 7
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::StaBackgroundScanBucketEventReportSchemeMask"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "EACH_SCAN"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "FULL_RESULTS"
-        scalar_value: {
-            uint32_t: 2
-        }
-        enumerator: "NO_BATCH"
-        scalar_value: {
-            uint32_t: 4
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::StaBackgroundScanBucketParameters"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "band"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::StaBackgroundScanBand"
-    }
-    struct_value: {
-        name: "frequencies"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-    struct_value: {
-        name: "periodInMs"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "eventReportScheme"
-        type: TYPE_MASK
-        scalar_type: "uint32_t"
-        predefined_type: "::android::hardware::wifi::V1_0::StaBackgroundScanBucketEventReportSchemeMask"
-    }
-    struct_value: {
-        name: "exponentialMaxPeriodInMs"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "exponentialBase"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "exponentialStepCount"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::StaBackgroundScanParameters"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "basePeriodInMs"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "maxApPerScan"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "reportThresholdPercent"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "reportThresholdNumScans"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "buckets"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::StaBackgroundScanBucketParameters"
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::StaLinkLayerIfacePacketStats"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "rxMpdu"
-        type: TYPE_SCALAR
-        scalar_type: "uint64_t"
-    }
-    struct_value: {
-        name: "txMpdu"
-        type: TYPE_SCALAR
-        scalar_type: "uint64_t"
-    }
-    struct_value: {
-        name: "lostMpdu"
-        type: TYPE_SCALAR
-        scalar_type: "uint64_t"
-    }
-    struct_value: {
-        name: "retries"
-        type: TYPE_SCALAR
-        scalar_type: "uint64_t"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::StaLinkLayerIfaceStats"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "beaconRx"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "avgRssiMgmt"
-        type: TYPE_SCALAR
-        scalar_type: "int32_t"
-    }
-    struct_value: {
-        name: "wmeBePktStats"
-        type: TYPE_STRUCT
-        predefined_type: "::android::hardware::wifi::V1_0::StaLinkLayerIfacePacketStats"
-    }
-    struct_value: {
-        name: "wmeBkPktStats"
-        type: TYPE_STRUCT
-        predefined_type: "::android::hardware::wifi::V1_0::StaLinkLayerIfacePacketStats"
-    }
-    struct_value: {
-        name: "wmeViPktStats"
-        type: TYPE_STRUCT
-        predefined_type: "::android::hardware::wifi::V1_0::StaLinkLayerIfacePacketStats"
-    }
-    struct_value: {
-        name: "wmeVoPktStats"
-        type: TYPE_STRUCT
-        predefined_type: "::android::hardware::wifi::V1_0::StaLinkLayerIfacePacketStats"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::StaLinkLayerRadioStats"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "onTimeInMs"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "txTimeInMs"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "txTimeInMsPerLevel"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-    struct_value: {
-        name: "rxTimeInMs"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "onTimeInMsForScan"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::StaLinkLayerStats"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "iface"
-        type: TYPE_STRUCT
-        predefined_type: "::android::hardware::wifi::V1_0::StaLinkLayerIfaceStats"
-    }
-    struct_value: {
-        name: "radio"
-        type: TYPE_STRUCT
-        predefined_type: "::android::hardware::wifi::V1_0::StaLinkLayerRadioStats"
-    }
-    struct_value: {
-        name: "timeStampInMs"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::StaScanResult"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "timeStampInUs"
-        type: TYPE_SCALAR
-        scalar_type: "uint64_t"
-    }
-    struct_value: {
-        name: "ssid"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "bssid"
-        type: TYPE_ARRAY
-        vector_size: 6
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "rssi"
-        type: TYPE_SCALAR
-        scalar_type: "int32_t"
-    }
-    struct_value: {
-        name: "frequency"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "beaconPeriodInMs"
-        type: TYPE_SCALAR
-        scalar_type: "uint16_t"
-    }
-    struct_value: {
-        name: "capability"
-        type: TYPE_SCALAR
-        scalar_type: "uint16_t"
-    }
-    struct_value: {
-        name: "informationElements"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::WifiInformationElement"
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::StaScanDataFlagMask"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "int32_t"
-
-        enumerator: "INTERRUPTED"
-        scalar_value: {
-            int32_t: 1
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::StaScanData"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "flags"
-        type: TYPE_MASK
-        scalar_type: "int32_t"
-        predefined_type: "::android::hardware::wifi::V1_0::StaScanDataFlagMask"
-    }
-    struct_value: {
-        name: "bucketsScanned"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "results"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::StaScanResult"
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::StaRoamingCapabilities"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "maxBlacklistSize"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "maxWhitelistSize"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::StaRoamingConfig"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "bssidBlacklist"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-    struct_value: {
-        name: "ssidWhitelist"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_ARRAY
-            vector_size: 32
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::StaRoamingState"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint8_t"
-
-        enumerator: "DISABLED"
-        scalar_value: {
-            uint8_t: 0
-        }
-        enumerator: "ENABLED"
-        scalar_value: {
-            uint8_t: 1
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanStatusType"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "SUCCESS"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "INTERNAL_FAILURE"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "PROTOCOL_FAILURE"
-        scalar_value: {
-            uint32_t: 2
-        }
-        enumerator: "INVALID_SESSION_ID"
-        scalar_value: {
-            uint32_t: 3
-        }
-        enumerator: "NO_RESOURCES_AVAILABLE"
-        scalar_value: {
-            uint32_t: 4
-        }
-        enumerator: "INVALID_ARGS"
-        scalar_value: {
-            uint32_t: 5
-        }
-        enumerator: "INVALID_PEER_ID"
-        scalar_value: {
-            uint32_t: 6
-        }
-        enumerator: "INVALID_NDP_ID"
-        scalar_value: {
-            uint32_t: 7
-        }
-        enumerator: "NAN_NOT_ALLOWED"
-        scalar_value: {
-            uint32_t: 8
-        }
-        enumerator: "NO_OTA_ACK"
-        scalar_value: {
-            uint32_t: 9
-        }
-        enumerator: "ALREADY_ENABLED"
-        scalar_value: {
-            uint32_t: 10
-        }
-        enumerator: "FOLLOWUP_TX_QUEUE_FULL"
-        scalar_value: {
-            uint32_t: 11
-        }
-        enumerator: "UNSUPPORTED_CONCURRENCY_NAN_DISABLED"
-        scalar_value: {
-            uint32_t: 12
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanBandIndex"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "NAN_BAND_24GHZ"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "NAN_BAND_5GHZ"
-        scalar_value: {
-            uint32_t: 1
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::WifiNanStatus"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "status"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::NanStatusType"
-    }
-    struct_value: {
-        name: "description"
-        type: TYPE_STRING
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanMatchAlg"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "MATCH_ONCE"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "MATCH_CONTINUOUS"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "MATCH_NEVER"
-        scalar_value: {
-            uint32_t: 2
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanPublishType"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "UNSOLICITED"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "SOLICITED"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "UNSOLICITED_SOLICITED"
-        scalar_value: {
-            uint32_t: 2
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanTxType"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "BROADCAST"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "UNICAST"
-        scalar_value: {
-            uint32_t: 1
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanSubscribeType"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "PASSIVE"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "ACTIVE"
-        scalar_value: {
-            uint32_t: 1
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanSrfType"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "BLOOM_FILTER"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "PARTIAL_MAC_ADDR"
-        scalar_value: {
-            uint32_t: 1
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanDataPathChannelCfg"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "CHANNEL_NOT_REQUESTED"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "REQUEST_CHANNEL_SETUP"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "FORCE_CHANNEL_SETUP"
-        scalar_value: {
-            uint32_t: 2
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanBandSpecificConfig"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "rssiClose"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "rssiMiddle"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "rssiCloseProximity"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "dwellTimeMs"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "scanPeriodSec"
-        type: TYPE_SCALAR
-        scalar_type: "uint16_t"
-    }
-    struct_value: {
-        name: "validDiscoveryWindowIntervalVal"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "discoveryWindowIntervalVal"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanDebugConfig"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "validClusterIdVals"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "clusterIdBottomRangeVal"
-        type: TYPE_SCALAR
-        scalar_type: "uint16_t"
-    }
-    struct_value: {
-        name: "clusterIdTopRangeVal"
-        type: TYPE_SCALAR
-        scalar_type: "uint16_t"
-    }
-    struct_value: {
-        name: "validIntfAddrVal"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "intfAddrVal"
-        type: TYPE_ARRAY
-        vector_size: 6
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "validOuiVal"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "ouiVal"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "validRandomFactorForceVal"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "randomFactorForceVal"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "validHopCountForceVal"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "hopCountForceVal"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "validDiscoveryChannelVal"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "discoveryChannelMhzVal"
-        type: TYPE_ARRAY
-        vector_size: 2
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-    struct_value: {
-        name: "validUseBeaconsInBandVal"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "useBeaconsInBandVal"
-        type: TYPE_ARRAY
-        vector_size: 2
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-    struct_value: {
-        name: "validUseSdfInBandVal"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "useSdfInBandVal"
-        type: TYPE_ARRAY
-        vector_size: 2
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanConfigRequest"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "masterPref"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "disableDiscoveryAddressChangeIndication"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "disableStartedClusterIndication"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "disableJoinedClusterIndication"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "includePublishServiceIdsInBeacon"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "numberOfPublishServiceIdsInBeacon"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "includeSubscribeServiceIdsInBeacon"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "numberOfSubscribeServiceIdsInBeacon"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "rssiWindowSize"
-        type: TYPE_SCALAR
-        scalar_type: "uint16_t"
-    }
-    struct_value: {
-        name: "macAddressRandomizationIntervalSec"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "acceptRangingRequests"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "bandSpecificConfig"
-        type: TYPE_ARRAY
-        vector_size: 2
-        vector_value: {
-            name: "::android::hardware::wifi::V1_0::NanBandSpecificConfig"
-            type: TYPE_STRUCT
-            struct_value: {
-                name: "rssiClose"
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-            struct_value: {
-                name: "rssiMiddle"
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-            struct_value: {
-                name: "rssiCloseProximity"
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-            struct_value: {
-                name: "dwellTimeMs"
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-            struct_value: {
-                name: "scanPeriodSec"
-                type: TYPE_SCALAR
-                scalar_type: "uint16_t"
-            }
-            struct_value: {
-                name: "validDiscoveryWindowIntervalVal"
-                type: TYPE_SCALAR
-                scalar_type: "bool_t"
-            }
-            struct_value: {
-                name: "discoveryWindowIntervalVal"
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanEnableRequest"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "operateInBand"
-        type: TYPE_ARRAY
-        vector_size: 2
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-    struct_value: {
-        name: "hopCountMax"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "configParams"
-        type: TYPE_STRUCT
-        predefined_type: "::android::hardware::wifi::V1_0::NanConfigRequest"
-    }
-    struct_value: {
-        name: "debugConfigs"
-        type: TYPE_STRUCT
-        predefined_type: "::android::hardware::wifi::V1_0::NanDebugConfig"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanCipherSuiteType"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "SHARED_KEY_128_MASK"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "SHARED_KEY_256_MASK"
-        scalar_value: {
-            uint32_t: 2
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanRangingIndication"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "CONTINUOUS_INDICATION_MASK"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "INGRESS_MET_MASK"
-        scalar_value: {
-            uint32_t: 2
-        }
-        enumerator: "EGRESS_MET_MASK"
-        scalar_value: {
-            uint32_t: 4
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanDiscoveryCommonConfig"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "sessionId"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "ttlSec"
-        type: TYPE_SCALAR
-        scalar_type: "uint16_t"
-    }
-    struct_value: {
-        name: "discoveryWindowPeriod"
-        type: TYPE_SCALAR
-        scalar_type: "uint16_t"
-    }
-    struct_value: {
-        name: "discoveryCount"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "serviceName"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "discoveryMatchIndicator"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::NanMatchAlg"
-    }
-    struct_value: {
-        name: "serviceSpecificInfo"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "extendedServiceSpecificInfo"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "rxMatchFilter"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "txMatchFilter"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "useRssiThreshold"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "disableDiscoveryTerminationIndication"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "disableMatchExpirationIndication"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "disableFollowupReceivedIndication"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "supportedCipherTypes"
-        type: TYPE_MASK
-        scalar_type: "uint32_t"
-        predefined_type: "::android::hardware::wifi::V1_0::NanCipherSuiteType"
-    }
-    struct_value: {
-        name: "pmk"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "securityEnabledInNdp"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "rangingRequired"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "rangingIntervalMsec"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "configRangingIndications"
-        type: TYPE_MASK
-        scalar_type: "uint32_t"
-        predefined_type: "::android::hardware::wifi::V1_0::NanRangingIndication"
-    }
-    struct_value: {
-        name: "distanceIngressCm"
-        type: TYPE_SCALAR
-        scalar_type: "uint16_t"
-    }
-    struct_value: {
-        name: "distanceEgressCm"
-        type: TYPE_SCALAR
-        scalar_type: "uint16_t"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanPublishRequest"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "baseConfigs"
-        type: TYPE_STRUCT
-        predefined_type: "::android::hardware::wifi::V1_0::NanDiscoveryCommonConfig"
-    }
-    struct_value: {
-        name: "publishType"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::NanPublishType"
-    }
-    struct_value: {
-        name: "txType"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::NanTxType"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanSubscribeRequest"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "baseConfigs"
-        type: TYPE_STRUCT
-        predefined_type: "::android::hardware::wifi::V1_0::NanDiscoveryCommonConfig"
-    }
-    struct_value: {
-        name: "subscribeType"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::NanSubscribeType"
-    }
-    struct_value: {
-        name: "srfType"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::NanSrfType"
-    }
-    struct_value: {
-        name: "srfRespondIfInAddressSet"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "shouldUseSrf"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "isSsiRequiredForMatch"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "intfAddr"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanTransmitFollowupRequest"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "discoverySessionId"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "peerId"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "addr"
-        type: TYPE_ARRAY
-        vector_size: 6
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "isHighPriority"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "shouldUseDiscoveryWindow"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "serviceSpecificInfo"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "extendedServiceSpecificInfo"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "disableFollowupResultIndication"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanInitiateDataPathRequest"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "peerId"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "peerDiscMacAddr"
-        type: TYPE_ARRAY
-        vector_size: 6
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "channelRequestType"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::NanDataPathChannelCfg"
-    }
-    struct_value: {
-        name: "channel"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "ifaceName"
-        type: TYPE_STRING
-    }
-    struct_value: {
-        name: "securityRequired"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "appInfo"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "supportedCipherTypes"
-        type: TYPE_MASK
-        scalar_type: "uint32_t"
-        predefined_type: "::android::hardware::wifi::V1_0::NanCipherSuiteType"
-    }
-    struct_value: {
-        name: "pmk"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanRespondToDataPathIndicationRequest"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "acceptRequest"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "ndpInstanceId"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "ifaceName"
-        type: TYPE_STRING
-    }
-    struct_value: {
-        name: "securityRequired"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "appInfo"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "supportedCipherTypes"
-        type: TYPE_MASK
-        scalar_type: "uint32_t"
-        predefined_type: "::android::hardware::wifi::V1_0::NanCipherSuiteType"
-    }
-    struct_value: {
-        name: "pmk"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanCapabilities"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "maxConcurrentClusters"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "maxPublishes"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "maxSubscribes"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "maxServiceNameLen"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "maxMatchFilterLen"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "maxTotalMatchFilterLen"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "maxServiceSpecificInfoLen"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "maxExtendedServiceSpecificInfoLen"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "maxNdiInterfaces"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "maxNdpSessions"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "maxAppInfoLen"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "maxQueuedTransmitFollowupMsgs"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "maxSubscribeInterfaceAddresses"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "supportedCipherSuites"
-        type: TYPE_MASK
-        scalar_type: "uint32_t"
-        predefined_type: "::android::hardware::wifi::V1_0::NanCipherSuiteType"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanMatchInd"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "discoverySessionId"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "peerId"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "addr"
-        type: TYPE_ARRAY
-        vector_size: 6
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "serviceSpecificInfo"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "extendedServiceSpecificInfo"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "matchFilter"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "matchOccuredInBeaconFlag"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "outOfResourceFlag"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "rssiValue"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "peerSupportedCipherTypes"
-        type: TYPE_MASK
-        scalar_type: "uint32_t"
-        predefined_type: "::android::hardware::wifi::V1_0::NanCipherSuiteType"
-    }
-    struct_value: {
-        name: "peerRequiresSecurityEnabledInNdp"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "peerRequiresRanging"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "rangingMeasurementInCm"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "rangingIndicationType"
-        type: TYPE_MASK
-        scalar_type: "uint32_t"
-        predefined_type: "::android::hardware::wifi::V1_0::NanRangingIndication"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanFollowupReceivedInd"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "discoverySessionId"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "peerId"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "addr"
-        type: TYPE_ARRAY
-        vector_size: 6
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "receivedInFaw"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "serviceSpecificInfo"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "extendedServiceSpecificInfo"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanClusterEventType"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "DISCOVERY_MAC_ADDRESS_CHANGED"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "STARTED_CLUSTER"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "JOINED_CLUSTER"
-        scalar_value: {
-            uint32_t: 2
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanClusterEventInd"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "eventType"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::NanClusterEventType"
-    }
-    struct_value: {
-        name: "addr"
-        type: TYPE_ARRAY
-        vector_size: 6
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanDataPathRequestInd"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "discoverySessionId"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "peerDiscMacAddr"
-        type: TYPE_ARRAY
-        vector_size: 6
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "ndpInstanceId"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "securityRequired"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "appInfo"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::NanDataPathConfirmInd"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "ndpInstanceId"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "dataPathSetupSuccess"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "peerNdiMacAddr"
-        type: TYPE_ARRAY
-        vector_size: 6
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "appInfo"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "status"
-        type: TYPE_STRUCT
-        predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::RttStatus"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "SUCCESS"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "FAILURE"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "FAIL_NO_RSP"
-        scalar_value: {
-            uint32_t: 2
-        }
-        enumerator: "FAIL_REJECTED"
-        scalar_value: {
-            uint32_t: 3
-        }
-        enumerator: "FAIL_NOT_SCHEDULED_YET"
-        scalar_value: {
-            uint32_t: 4
-        }
-        enumerator: "FAIL_TM_TIMEOUT"
-        scalar_value: {
-            uint32_t: 5
-        }
-        enumerator: "FAIL_AP_ON_DIFF_CHANNEL"
-        scalar_value: {
-            uint32_t: 6
-        }
-        enumerator: "FAIL_NO_CAPABILITY"
-        scalar_value: {
-            uint32_t: 7
-        }
-        enumerator: "ABORTED"
-        scalar_value: {
-            uint32_t: 8
-        }
-        enumerator: "FAIL_INVALID_TS"
-        scalar_value: {
-            uint32_t: 9
-        }
-        enumerator: "FAIL_PROTOCOL"
-        scalar_value: {
-            uint32_t: 10
-        }
-        enumerator: "FAIL_SCHEDULE"
-        scalar_value: {
-            uint32_t: 11
-        }
-        enumerator: "FAIL_BUSY_TRY_LATER"
-        scalar_value: {
-            uint32_t: 12
-        }
-        enumerator: "INVALID_REQ"
-        scalar_value: {
-            uint32_t: 13
-        }
-        enumerator: "NO_WIFI"
-        scalar_value: {
-            uint32_t: 14
-        }
-        enumerator: "FAIL_FTM_PARAM_OVERRIDE"
-        scalar_value: {
-            uint32_t: 15
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::RttPeerType"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "AP"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "STA"
-        scalar_value: {
-            uint32_t: 2
-        }
-        enumerator: "P2P_GO"
-        scalar_value: {
-            uint32_t: 3
-        }
-        enumerator: "P2P_CLIENT"
-        scalar_value: {
-            uint32_t: 4
-        }
-        enumerator: "NAN"
-        scalar_value: {
-            uint32_t: 5
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::RttBw"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "BW_5MHZ"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "BW_10MHZ"
-        scalar_value: {
-            uint32_t: 2
-        }
-        enumerator: "BW_20MHZ"
-        scalar_value: {
-            uint32_t: 4
-        }
-        enumerator: "BW_40MHZ"
-        scalar_value: {
-            uint32_t: 8
-        }
-        enumerator: "BW_80MHZ"
-        scalar_value: {
-            uint32_t: 16
-        }
-        enumerator: "BW_160MHZ"
-        scalar_value: {
-            uint32_t: 32
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::RttPreamble"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "LEGACY"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "HT"
-        scalar_value: {
-            uint32_t: 2
-        }
-        enumerator: "VHT"
-        scalar_value: {
-            uint32_t: 4
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::RttType"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "ONE_SIDED"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "TWO_SIDED"
-        scalar_value: {
-            uint32_t: 2
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::RttConfig"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "addr"
-        type: TYPE_ARRAY
-        vector_size: 6
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "type"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::RttType"
-    }
-    struct_value: {
-        name: "peer"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::RttPeerType"
-    }
-    struct_value: {
-        name: "channel"
-        type: TYPE_STRUCT
-        predefined_type: "::android::hardware::wifi::V1_0::WifiChannelInfo"
-    }
-    struct_value: {
-        name: "burstPeriod"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "numBurst"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "numFramesPerBurst"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "numRetriesPerRttFrame"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "numRetriesPerFtmr"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "mustRequestLci"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "mustRequestLcr"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "burstDuration"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "preamble"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::RttPreamble"
-    }
-    struct_value: {
-        name: "bw"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::RttBw"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::RttResult"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "addr"
-        type: TYPE_ARRAY
-        vector_size: 6
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-    struct_value: {
-        name: "burstNum"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "measurementNumber"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "successNumber"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "numberPerBurstPeer"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "status"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::RttStatus"
-    }
-    struct_value: {
-        name: "retryAfterDuration"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "type"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::RttType"
-    }
-    struct_value: {
-        name: "rssi"
-        type: TYPE_SCALAR
-        scalar_type: "int32_t"
-    }
-    struct_value: {
-        name: "rssiSpread"
-        type: TYPE_SCALAR
-        scalar_type: "int32_t"
-    }
-    struct_value: {
-        name: "txRate"
-        type: TYPE_STRUCT
-        predefined_type: "::android::hardware::wifi::V1_0::WifiRateInfo"
-    }
-    struct_value: {
-        name: "rxRate"
-        type: TYPE_STRUCT
-        predefined_type: "::android::hardware::wifi::V1_0::WifiRateInfo"
-    }
-    struct_value: {
-        name: "rtt"
-        type: TYPE_SCALAR
-        scalar_type: "uint64_t"
-    }
-    struct_value: {
-        name: "rttSd"
-        type: TYPE_SCALAR
-        scalar_type: "uint64_t"
-    }
-    struct_value: {
-        name: "rttSpread"
-        type: TYPE_SCALAR
-        scalar_type: "uint64_t"
-    }
-    struct_value: {
-        name: "distanceInMm"
-        type: TYPE_SCALAR
-        scalar_type: "int32_t"
-    }
-    struct_value: {
-        name: "distanceSdInMm"
-        type: TYPE_SCALAR
-        scalar_type: "int32_t"
-    }
-    struct_value: {
-        name: "distanceSpreadInMm"
-        type: TYPE_SCALAR
-        scalar_type: "int32_t"
-    }
-    struct_value: {
-        name: "timeStampInUs"
-        type: TYPE_SCALAR
-        scalar_type: "uint64_t"
-    }
-    struct_value: {
-        name: "burstDurationInMs"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "negotiatedBurstNum"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "lci"
-        type: TYPE_STRUCT
-        predefined_type: "::android::hardware::wifi::V1_0::WifiInformationElement"
-    }
-    struct_value: {
-        name: "lcr"
-        type: TYPE_STRUCT
-        predefined_type: "::android::hardware::wifi::V1_0::WifiInformationElement"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::RttCapabilities"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "rttOneSidedSupported"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "rttFtmSupported"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "lciSupported"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "lcrSupported"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "responderSupported"
-        type: TYPE_SCALAR
-        scalar_type: "bool_t"
-    }
-    struct_value: {
-        name: "preambleSupport"
-        type: TYPE_MASK
-        scalar_type: "uint32_t"
-        predefined_type: "::android::hardware::wifi::V1_0::RttPreamble"
-    }
-    struct_value: {
-        name: "bwSupport"
-        type: TYPE_MASK
-        scalar_type: "uint32_t"
-        predefined_type: "::android::hardware::wifi::V1_0::RttBw"
-    }
-    struct_value: {
-        name: "mcVersion"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::RttMotionPattern"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "NOT_EXPECTED"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "EXPECTED"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "UNKNOWN"
-        scalar_value: {
-            uint32_t: 2
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::RttLciInformation"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "latitude"
-        type: TYPE_SCALAR
-        scalar_type: "int64_t"
-    }
-    struct_value: {
-        name: "longitude"
-        type: TYPE_SCALAR
-        scalar_type: "int64_t"
-    }
-    struct_value: {
-        name: "altitude"
-        type: TYPE_SCALAR
-        scalar_type: "int32_t"
-    }
-    struct_value: {
-        name: "latitudeUnc"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "longitudeUnc"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "altitudeUnc"
-        type: TYPE_SCALAR
-        scalar_type: "uint8_t"
-    }
-    struct_value: {
-        name: "motionPattern"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::RttMotionPattern"
-    }
-    struct_value: {
-        name: "floor"
-        type: TYPE_SCALAR
-        scalar_type: "int32_t"
-    }
-    struct_value: {
-        name: "heightAboveFloor"
-        type: TYPE_SCALAR
-        scalar_type: "int32_t"
-    }
-    struct_value: {
-        name: "heightUnc"
-        type: TYPE_SCALAR
-        scalar_type: "int32_t"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::RttLcrInformation"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "countryCode"
-        type: TYPE_ARRAY
-        vector_size: 2
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "int8_t"
-        }
-    }
-    struct_value: {
-        name: "civicInfo"
-        type: TYPE_STRING
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::RttResponder"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "channel"
-        type: TYPE_STRUCT
-        predefined_type: "::android::hardware::wifi::V1_0::WifiChannelInfo"
-    }
-    struct_value: {
-        name: "preamble"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::RttPreamble"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::WifiDebugRingBufferFlags"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "HAS_BINARY_ENTRIES"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "HAS_ASCII_ENTRIES"
-        scalar_value: {
-            uint32_t: 2
-        }
-        enumerator: "HAS_PER_PACKET_ENTRIES"
-        scalar_value: {
-            uint32_t: 4
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::WifiDebugRingBufferStatus"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "ringName"
-        type: TYPE_STRING
-    }
-    struct_value: {
-        name: "flags"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "ringId"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "sizeInBytes"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "freeSizeInBytes"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "verboseLevel"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::WifiDebugRingBufferVerboseLevel"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "NONE"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "DEFAULT"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "VERBOSE"
-        scalar_value: {
-            uint32_t: 2
-        }
-        enumerator: "EXCESSIVE"
-        scalar_value: {
-            uint32_t: 3
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::WifiDebugTxPacketFate"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "ACKED"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "SENT"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "FW_QUEUED"
-        scalar_value: {
-            uint32_t: 2
-        }
-        enumerator: "FW_DROP_INVALID"
-        scalar_value: {
-            uint32_t: 3
-        }
-        enumerator: "FW_DROP_NOBUFS"
-        scalar_value: {
-            uint32_t: 4
-        }
-        enumerator: "FW_DROP_OTHER"
-        scalar_value: {
-            uint32_t: 5
-        }
-        enumerator: "DRV_QUEUED"
-        scalar_value: {
-            uint32_t: 6
-        }
-        enumerator: "DRV_DROP_INVALID"
-        scalar_value: {
-            uint32_t: 7
-        }
-        enumerator: "DRV_DROP_NOBUFS"
-        scalar_value: {
-            uint32_t: 8
-        }
-        enumerator: "DRV_DROP_OTHER"
-        scalar_value: {
-            uint32_t: 9
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::WifiDebugRxPacketFate"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "SUCCESS"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "FW_QUEUED"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "FW_DROP_FILTER"
-        scalar_value: {
-            uint32_t: 2
-        }
-        enumerator: "FW_DROP_INVALID"
-        scalar_value: {
-            uint32_t: 3
-        }
-        enumerator: "FW_DROP_NOBUFS"
-        scalar_value: {
-            uint32_t: 4
-        }
-        enumerator: "FW_DROP_OTHER"
-        scalar_value: {
-            uint32_t: 5
-        }
-        enumerator: "DRV_QUEUED"
-        scalar_value: {
-            uint32_t: 6
-        }
-        enumerator: "DRV_DROP_FILTER"
-        scalar_value: {
-            uint32_t: 7
-        }
-        enumerator: "DRV_DROP_INVALID"
-        scalar_value: {
-            uint32_t: 8
-        }
-        enumerator: "DRV_DROP_NOBUFS"
-        scalar_value: {
-            uint32_t: 9
-        }
-        enumerator: "DRV_DROP_OTHER"
-        scalar_value: {
-            uint32_t: 10
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::WifiDebugPacketFateFrameType"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "UNKNOWN"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "ETHERNET_II"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "MGMT_80211"
-        scalar_value: {
-            uint32_t: 2
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::WifiDebugPacketFateFrameInfo"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "frameType"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::WifiDebugPacketFateFrameType"
-    }
-    struct_value: {
-        name: "frameLen"
-        type: TYPE_SCALAR
-        scalar_type: "uint64_t"
-    }
-    struct_value: {
-        name: "driverTimestampUsec"
-        type: TYPE_SCALAR
-        scalar_type: "uint64_t"
-    }
-    struct_value: {
-        name: "firmwareTimestampUsec"
-        type: TYPE_SCALAR
-        scalar_type: "uint64_t"
-    }
-    struct_value: {
-        name: "frameContent"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::WifiDebugTxPacketFateReport"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "fate"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::WifiDebugTxPacketFate"
-    }
-    struct_value: {
-        name: "frameInfo"
-        type: TYPE_STRUCT
-        predefined_type: "::android::hardware::wifi::V1_0::WifiDebugPacketFateFrameInfo"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::WifiDebugRxPacketFateReport"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "fate"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::V1_0::WifiDebugRxPacketFate"
-    }
-    struct_value: {
-        name: "frameInfo"
-        type: TYPE_STRUCT
-        predefined_type: "::android::hardware::wifi::V1_0::WifiDebugPacketFateFrameInfo"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::WifiDebugHostWakeReasonRxPacketDetails"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "rxUnicastCnt"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "rxMulticastCnt"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "rxBroadcastCnt"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::WifiDebugHostWakeReasonRxMulticastPacketDetails"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "ipv4RxMulticastAddrCnt"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "ipv6RxMulticastAddrCnt"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "otherRxMulticastAddrCnt"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::WifiDebugHostWakeReasonRxIcmpPacketDetails"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "icmpPkt"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "icmp6Pkt"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "icmp6Ra"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "icmp6Na"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "icmp6Ns"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::V1_0::WifiDebugHostWakeReasonStats"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "totalCmdEventWakeCnt"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "cmdEventWakeCntPerType"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-    struct_value: {
-        name: "totalDriverFwLocalWakeCnt"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "driverFwLocalWakeCntPerType"
-        type: TYPE_VECTOR
-        vector_value: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-    struct_value: {
-        name: "totalRxPacketWakeCnt"
-        type: TYPE_SCALAR
-        scalar_type: "uint32_t"
-    }
-    struct_value: {
-        name: "rxPktWakeDetails"
-        type: TYPE_STRUCT
-        predefined_type: "::android::hardware::wifi::V1_0::WifiDebugHostWakeReasonRxPacketDetails"
-    }
-    struct_value: {
-        name: "rxMulticastPkWakeDetails"
-        type: TYPE_STRUCT
-        predefined_type: "::android::hardware::wifi::V1_0::WifiDebugHostWakeReasonRxMulticastPacketDetails"
-    }
-    struct_value: {
-        name: "rxIcmpPkWakeDetails"
-        type: TYPE_STRUCT
-        predefined_type: "::android::hardware::wifi::V1_0::WifiDebugHostWakeReasonRxIcmpPacketDetails"
-    }
-}
-
diff --git a/wifi/supplicant/1.0/ISupplicantStaNetwork.hal b/wifi/supplicant/1.0/ISupplicantStaNetwork.hal
index b16fb39..37e8d3f 100644
--- a/wifi/supplicant/1.0/ISupplicantStaNetwork.hal
+++ b/wifi/supplicant/1.0/ISupplicantStaNetwork.hal
@@ -434,9 +434,11 @@
   setEapClientCert(string path) generates (SupplicantStatus status);
 
   /**
-   * Set EAP private key file path for this network.
+   * Set EAP private key Id for this network.
+   * This is used if private key operations for EAP-TLS are performed
+   * using a smartcard.
    *
-   * @param path value to set.
+   * @param id value to set.
    * @return status Status of the operation.
    *         Possible status codes:
    *         |SupplicantStatusCode.SUCCESS|,
@@ -444,7 +446,7 @@
    *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
    *         |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
    */
-  setEapPrivateKey(string path) generates (SupplicantStatus status);
+  setEapPrivateKeyId(string id) generates (SupplicantStatus status);
 
   /**
    * Set EAP subject match for this network.
@@ -810,16 +812,16 @@
   getEapClientCert() generates (SupplicantStatus status, string path);
 
   /**
-   * Get EAP private key file path set for this network.
+   * Get EAP private key Id set for this network.
    *
    * @return status Status of the operation.
    *         Possible status codes:
    *         |SupplicantStatusCode.SUCCESS|,
    *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
    *         |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
-   * @return path value set.
+   * @return id value set.
    */
-  getEapPrivateKey() generates (SupplicantStatus status, string path);
+  getEapPrivateKeyId() generates (SupplicantStatus status, string id);
 
   /**
    * Get EAP subject match set for this network.
diff --git a/wifi/supplicant/1.0/vts/Supplicant.vts b/wifi/supplicant/1.0/vts/Supplicant.vts
deleted file mode 100644
index 534b1cf..0000000
--- a/wifi/supplicant/1.0/vts/Supplicant.vts
+++ /dev/null
@@ -1,160 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "ISupplicant"
-
-package: "android.hardware.wifi.supplicant"
-
-import: "android.hardware.wifi.supplicant@1.0::ISupplicantCallback"
-import: "android.hardware.wifi.supplicant@1.0::ISupplicantIface"
-import: "android.hardware.wifi.supplicant@1.0::ISupplicantNetwork"
-import: "android.hardware.wifi.supplicant@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicant::DebugLevel"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint32_t"
-
-            enumerator: "EXCESSIVE"
-            scalar_value: {
-                uint32_t: 0
-            }
-            enumerator: "MSGDUMP"
-            scalar_value: {
-                uint32_t: 1
-            }
-            enumerator: "DEBUG"
-            scalar_value: {
-                uint32_t: 2
-            }
-            enumerator: "INFO"
-            scalar_value: {
-                uint32_t: 3
-            }
-            enumerator: "WARNING"
-            scalar_value: {
-                uint32_t: 4
-            }
-            enumerator: "ERROR"
-            scalar_value: {
-                uint32_t: 5
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicant::IfaceInfo"
-        type: TYPE_STRUCT
-        struct_value: {
-            name: "type"
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::IfaceType"
-        }
-        struct_value: {
-            name: "name"
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "getInterface"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_HIDL_INTERFACE
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantIface"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicant::IfaceInfo"
-        }
-    }
-
-    api: {
-        name: "listInterfaces"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_STRUCT
-                predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicant::IfaceInfo"
-            }
-        }
-    }
-
-    api: {
-        name: "registerCallback"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_HIDL_CALLBACK
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantCallback"
-        }
-    }
-
-    api: {
-        name: "setDebugParams"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicant::DebugLevel"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "getDebugLevel"
-        return_type_hidl: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicant::DebugLevel"
-        }
-    }
-
-    api: {
-        name: "isDebugShowTimestampEnabled"
-        return_type_hidl: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "isDebugShowKeysEnabled"
-        return_type_hidl: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "setConcurrencyPriority"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::IfaceType"
-        }
-    }
-
-}
diff --git a/wifi/supplicant/1.0/vts/SupplicantCallback.vts b/wifi/supplicant/1.0/vts/SupplicantCallback.vts
deleted file mode 100644
index 2d9e991..0000000
--- a/wifi/supplicant/1.0/vts/SupplicantCallback.vts
+++ /dev/null
@@ -1,28 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "ISupplicantCallback"
-
-package: "android.hardware.wifi.supplicant"
-
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    api: {
-        name: "onInterfaceCreated"
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "onInterfaceRemoved"
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "onTerminating"
-    }
-
-}
diff --git a/wifi/supplicant/1.0/vts/SupplicantIface.vts b/wifi/supplicant/1.0/vts/SupplicantIface.vts
deleted file mode 100644
index c703ec0..0000000
--- a/wifi/supplicant/1.0/vts/SupplicantIface.vts
+++ /dev/null
@@ -1,203 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "ISupplicantIface"
-
-package: "android.hardware.wifi.supplicant"
-
-import: "android.hardware.wifi.supplicant@1.0::ISupplicantNetwork"
-import: "android.hardware.wifi.supplicant@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantIface::ParamSizeLimits"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint32_t"
-
-            enumerator: "WPS_DEVICE_NAME_MAX_LEN"
-            scalar_value: {
-                uint32_t: 32
-            }
-            enumerator: "WPS_MANUFACTURER_MAX_LEN"
-            scalar_value: {
-                uint32_t: 64
-            }
-            enumerator: "WPS_MODEL_NAME_MAX_LEN"
-            scalar_value: {
-                uint32_t: 32
-            }
-            enumerator: "WPS_MODEL_NUMBER_MAX_LEN"
-            scalar_value: {
-                uint32_t: 32
-            }
-            enumerator: "WPS_SERIAL_NUMBER_MAX_LEN"
-            scalar_value: {
-                uint32_t: 32
-            }
-        }
-    }
-
-    api: {
-        name: "getName"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "getType"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::IfaceType"
-        }
-    }
-
-    api: {
-        name: "addNetwork"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_HIDL_INTERFACE
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantNetwork"
-        }
-    }
-
-    api: {
-        name: "removeNetwork"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "getNetwork"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_HIDL_INTERFACE
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantNetwork"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "listNetworks"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint32_t"
-            }
-        }
-    }
-
-    api: {
-        name: "setWpsDeviceName"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setWpsDeviceType"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 8
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "setWpsManufacturer"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setWpsModelName"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setWpsModelNumber"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setWpsSerialNumber"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setWpsConfigMethods"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_MASK
-            scalar_type: "uint16_t"
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::WpsConfigMethods"
-        }
-    }
-
-}
diff --git a/wifi/supplicant/1.0/vts/SupplicantNetwork.vts b/wifi/supplicant/1.0/vts/SupplicantNetwork.vts
deleted file mode 100644
index c90f396..0000000
--- a/wifi/supplicant/1.0/vts/SupplicantNetwork.vts
+++ /dev/null
@@ -1,46 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "ISupplicantNetwork"
-
-package: "android.hardware.wifi.supplicant"
-
-import: "android.hardware.wifi.supplicant@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    api: {
-        name: "getId"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "getInterfaceName"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "getType"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::IfaceType"
-        }
-    }
-
-}
diff --git a/wifi/supplicant/1.0/vts/SupplicantP2pIface.vts b/wifi/supplicant/1.0/vts/SupplicantP2pIface.vts
deleted file mode 100644
index 2515b60..0000000
--- a/wifi/supplicant/1.0/vts/SupplicantP2pIface.vts
+++ /dev/null
@@ -1,801 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "ISupplicantP2pIface"
-
-package: "android.hardware.wifi.supplicant"
-
-import: "android.hardware.wifi.supplicant@1.0::ISupplicantIface"
-import: "android.hardware.wifi.supplicant@1.0::ISupplicantNetwork"
-import: "android.hardware.wifi.supplicant@1.0::ISupplicantP2pIfaceCallback"
-import: "android.hardware.wifi.supplicant@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIface::WpsProvisionMethod"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint32_t"
-
-            enumerator: "PBC"
-            scalar_value: {
-                uint32_t: 0
-            }
-            enumerator: "DISPLAY"
-            scalar_value: {
-                uint32_t: 1
-            }
-            enumerator: "KEYPAD"
-            scalar_value: {
-                uint32_t: 2
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIface::FreqRange"
-        type: TYPE_STRUCT
-        struct_value: {
-            name: "min"
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        struct_value: {
-            name: "max"
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIface::MiracastMode"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint8_t"
-
-            enumerator: "DISABLED"
-            scalar_value: {
-                uint8_t: 0
-            }
-            enumerator: "SOURCE"
-            scalar_value: {
-                uint8_t: 1
-            }
-            enumerator: "SINK"
-            scalar_value: {
-                uint8_t: 2
-            }
-        }
-    }
-
-    api: {
-        name: "getName"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "getType"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::IfaceType"
-        }
-    }
-
-    api: {
-        name: "addNetwork"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_HIDL_INTERFACE
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantNetwork"
-        }
-    }
-
-    api: {
-        name: "removeNetwork"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "getNetwork"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_HIDL_INTERFACE
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantNetwork"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "listNetworks"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint32_t"
-            }
-        }
-    }
-
-    api: {
-        name: "setWpsDeviceName"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setWpsDeviceType"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 8
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "setWpsManufacturer"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setWpsModelName"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setWpsModelNumber"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setWpsSerialNumber"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setWpsConfigMethods"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_MASK
-            scalar_type: "uint16_t"
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::WpsConfigMethods"
-        }
-    }
-
-    api: {
-        name: "registerCallback"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_HIDL_CALLBACK
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIfaceCallback"
-        }
-    }
-
-    api: {
-        name: "getDeviceAddress"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "setSsidPostfix"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "setGroupIdle"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "setPowerSave"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "find"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "stopFind"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-    }
-
-    api: {
-        name: "flush"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-    }
-
-    api: {
-        name: "connect"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIface::WpsProvisionMethod"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "cancelConnect"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-    }
-
-    api: {
-        name: "provisionDiscovery"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIface::WpsProvisionMethod"
-        }
-    }
-
-    api: {
-        name: "addGroup"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "removeGroup"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "reject"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "invite"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "reinvoke"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "configureExtListen"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "setListenChannel"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "setDisallowedFrequencies"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_STRUCT
-                predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIface::FreqRange"
-            }
-        }
-    }
-
-    api: {
-        name: "getSsid"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "getGroupCapability"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_MASK
-            scalar_type: "uint32_t"
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::P2pGroupCapabilityMask"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "addBonjourService"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "removeBonjourService"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "addUpnpService"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "removeUpnpService"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "flushServices"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-    }
-
-    api: {
-        name: "requestServiceDiscovery"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_SCALAR
-            scalar_type: "uint64_t"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "cancelServiceDiscovery"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint64_t"
-        }
-    }
-
-    api: {
-        name: "setMiracastMode"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIface::MiracastMode"
-        }
-    }
-
-    api: {
-        name: "startWpsPbc"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "startWpsPinKeypad"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "startWpsPinDisplay"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "cancelWps"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "enableWfd"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "setWfdDeviceInfo"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 8
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-}
diff --git a/wifi/supplicant/1.0/vts/SupplicantP2pIfaceCallback.vts b/wifi/supplicant/1.0/vts/SupplicantP2pIfaceCallback.vts
deleted file mode 100644
index b3cf05b..0000000
--- a/wifi/supplicant/1.0/vts/SupplicantP2pIfaceCallback.vts
+++ /dev/null
@@ -1,524 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "ISupplicantP2pIfaceCallback"
-
-package: "android.hardware.wifi.supplicant"
-
-import: "android.hardware.wifi.supplicant@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIfaceCallback::WpsDevPasswordId"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint16_t"
-
-            enumerator: "DEFAULT"
-            scalar_value: {
-                uint16_t: 0
-            }
-            enumerator: "USER_SPECIFIED"
-            scalar_value: {
-                uint16_t: 1
-            }
-            enumerator: "MACHINE_SPECIFIED"
-            scalar_value: {
-                uint16_t: 2
-            }
-            enumerator: "REKEY"
-            scalar_value: {
-                uint16_t: 3
-            }
-            enumerator: "PUSHBUTTON"
-            scalar_value: {
-                uint16_t: 4
-            }
-            enumerator: "REGISTRAR_SPECIFIED"
-            scalar_value: {
-                uint16_t: 5
-            }
-            enumerator: "NFC_CONNECTION_HANDOVER"
-            scalar_value: {
-                uint16_t: 7
-            }
-            enumerator: "P2PS_DEFAULT"
-            scalar_value: {
-                uint16_t: 8
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIfaceCallback::P2pStatusCode"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint32_t"
-
-            enumerator: "SUCCESS"
-            scalar_value: {
-                uint32_t: 0
-            }
-            enumerator: "FAIL_INFO_CURRENTLY_UNAVAILABLE"
-            scalar_value: {
-                uint32_t: 1
-            }
-            enumerator: "FAIL_INCOMPATIBLE_PARAMS"
-            scalar_value: {
-                uint32_t: 2
-            }
-            enumerator: "FAIL_LIMIT_REACHED"
-            scalar_value: {
-                uint32_t: 3
-            }
-            enumerator: "FAIL_INVALID_PARAMS"
-            scalar_value: {
-                uint32_t: 4
-            }
-            enumerator: "FAIL_UNABLE_TO_ACCOMMODATE"
-            scalar_value: {
-                uint32_t: 5
-            }
-            enumerator: "FAIL_PREV_PROTOCOL_ERROR"
-            scalar_value: {
-                uint32_t: 6
-            }
-            enumerator: "FAIL_NO_COMMON_CHANNELS"
-            scalar_value: {
-                uint32_t: 7
-            }
-            enumerator: "FAIL_UNKNOWN_GROUP"
-            scalar_value: {
-                uint32_t: 8
-            }
-            enumerator: "FAIL_BOTH_GO_INTENT_15"
-            scalar_value: {
-                uint32_t: 9
-            }
-            enumerator: "FAIL_INCOMPATIBLE_PROV_METHOD"
-            scalar_value: {
-                uint32_t: 10
-            }
-            enumerator: "FAIL_REJECTED_BY_USER"
-            scalar_value: {
-                uint32_t: 11
-            }
-            enumerator: "SUCCESS_DEFERRED"
-            scalar_value: {
-                uint32_t: 12
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIfaceCallback::P2pProvDiscStatusCode"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint8_t"
-
-            enumerator: "SUCCESS"
-            scalar_value: {
-                uint8_t: 0
-            }
-            enumerator: "TIMEOUT"
-            scalar_value: {
-                uint8_t: 1
-            }
-            enumerator: "REJECTED"
-            scalar_value: {
-                uint8_t: 2
-            }
-            enumerator: "TIMEOUT_JOIN"
-            scalar_value: {
-                uint8_t: 3
-            }
-            enumerator: "INFO_UNAVAILABLE"
-            scalar_value: {
-                uint8_t: 4
-            }
-        }
-    }
-
-    api: {
-        name: "onNetworkAdded"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "onNetworkRemoved"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "onDeviceFound"
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 8
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-        arg: {
-            type: TYPE_MASK
-            scalar_type: "uint16_t"
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::WpsConfigMethods"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint8_t"
-        }
-        arg: {
-            type: TYPE_MASK
-            scalar_type: "uint32_t"
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::P2pGroupCapabilityMask"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 8
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "onDeviceLost"
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "onFindStopped"
-    }
-
-    api: {
-        name: "onGoNegotiationRequest"
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIfaceCallback::WpsDevPasswordId"
-        }
-    }
-
-    api: {
-        name: "onGoNegotiationCompleted"
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIfaceCallback::P2pStatusCode"
-        }
-    }
-
-    api: {
-        name: "onGroupFormationSuccess"
-    }
-
-    api: {
-        name: "onGroupFormationFailure"
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "onGroupStarted"
-        arg: {
-            type: TYPE_STRING
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 32
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "onGroupRemoved"
-        arg: {
-            type: TYPE_STRING
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "onInvitationReceived"
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "onInvitationResult"
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIfaceCallback::P2pStatusCode"
-        }
-    }
-
-    api: {
-        name: "onProvisionDiscoveryPbcRequest"
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "onProvisionDiscoveryPbcResponse"
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "onProvisionDiscoveryShowPin"
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "onProvisionDiscoveryEnterPin"
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "onProvisionDiscoveryFailure"
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "onProvisionDiscoveryCompleted"
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIfaceCallback::P2pProvDiscStatusCode"
-        }
-        arg: {
-            type: TYPE_MASK
-            scalar_type: "uint16_t"
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::WpsConfigMethods"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "onServiceDiscoveryResponse"
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint16_t"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "onStaAuthorized"
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "onStaDeauthorized"
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-}
diff --git a/wifi/supplicant/1.0/vts/SupplicantP2pNetwork.vts b/wifi/supplicant/1.0/vts/SupplicantP2pNetwork.vts
deleted file mode 100644
index 8d0b5a1..0000000
--- a/wifi/supplicant/1.0/vts/SupplicantP2pNetwork.vts
+++ /dev/null
@@ -1,127 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "ISupplicantP2pNetwork"
-
-package: "android.hardware.wifi.supplicant"
-
-import: "android.hardware.wifi.supplicant@1.0::ISupplicantNetwork"
-import: "android.hardware.wifi.supplicant@1.0::ISupplicantP2pNetworkCallback"
-import: "android.hardware.wifi.supplicant@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    api: {
-        name: "getId"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "getInterfaceName"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "getType"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::IfaceType"
-        }
-    }
-
-    api: {
-        name: "registerCallback"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_HIDL_CALLBACK
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pNetworkCallback"
-        }
-    }
-
-    api: {
-        name: "getSsid"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "getBssid"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "isCurrent"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "isPersistent"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "isGo"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-}
diff --git a/wifi/supplicant/1.0/vts/SupplicantP2pNetworkCallback.vts b/wifi/supplicant/1.0/vts/SupplicantP2pNetworkCallback.vts
deleted file mode 100644
index 9493c5e..0000000
--- a/wifi/supplicant/1.0/vts/SupplicantP2pNetworkCallback.vts
+++ /dev/null
@@ -1,10 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "ISupplicantP2pNetworkCallback"
-
-package: "android.hardware.wifi.supplicant"
-
-import: "android.hidl.base@1.0::types"
-
-interface: {
-}
diff --git a/wifi/supplicant/1.0/vts/SupplicantStaIface.vts b/wifi/supplicant/1.0/vts/SupplicantStaIface.vts
deleted file mode 100644
index cc52487..0000000
--- a/wifi/supplicant/1.0/vts/SupplicantStaIface.vts
+++ /dev/null
@@ -1,658 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "ISupplicantStaIface"
-
-package: "android.hardware.wifi.supplicant"
-
-import: "android.hardware.wifi.supplicant@1.0::ISupplicantIface"
-import: "android.hardware.wifi.supplicant@1.0::ISupplicantNetwork"
-import: "android.hardware.wifi.supplicant@1.0::ISupplicantStaIfaceCallback"
-import: "android.hardware.wifi.supplicant@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIface::AnqpInfoId"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint16_t"
-
-            enumerator: "VENUE_NAME"
-            scalar_value: {
-                uint16_t: 258
-            }
-            enumerator: "ROAMING_CONSORTIUM"
-            scalar_value: {
-                uint16_t: 261
-            }
-            enumerator: "IP_ADDR_TYPE_AVAILABILITY"
-            scalar_value: {
-                uint16_t: 262
-            }
-            enumerator: "NAI_REALM"
-            scalar_value: {
-                uint16_t: 263
-            }
-            enumerator: "ANQP_3GPP_CELLULAR_NETWORK"
-            scalar_value: {
-                uint16_t: 264
-            }
-            enumerator: "DOMAIN_NAME"
-            scalar_value: {
-                uint16_t: 268
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIface::Hs20AnqpSubtypes"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint32_t"
-
-            enumerator: "OPERATOR_FRIENDLY_NAME"
-            scalar_value: {
-                uint32_t: 3
-            }
-            enumerator: "WAN_METRICS"
-            scalar_value: {
-                uint32_t: 4
-            }
-            enumerator: "CONNECTION_CAPABILITY"
-            scalar_value: {
-                uint32_t: 5
-            }
-            enumerator: "OSU_PROVIDERS_LIST"
-            scalar_value: {
-                uint32_t: 8
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIface::RxFilterType"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint8_t"
-
-            enumerator: "V4_MULTICAST"
-            scalar_value: {
-                uint8_t: 0
-            }
-            enumerator: "V6_MULTICAST"
-            scalar_value: {
-                uint8_t: 1
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIface::BtCoexistenceMode"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint8_t"
-
-            enumerator: "ENABLED"
-            scalar_value: {
-                uint8_t: 0
-            }
-            enumerator: "DISABLED"
-            scalar_value: {
-                uint8_t: 1
-            }
-            enumerator: "SENSE"
-            scalar_value: {
-                uint8_t: 2
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIface::ExtRadioWorkDefaults"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint32_t"
-
-            enumerator: "TIMEOUT_IN_SECS"
-            scalar_value: {
-                uint32_t: 10
-            }
-        }
-    }
-
-    api: {
-        name: "getName"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "getType"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::IfaceType"
-        }
-    }
-
-    api: {
-        name: "addNetwork"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_HIDL_INTERFACE
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantNetwork"
-        }
-    }
-
-    api: {
-        name: "removeNetwork"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "getNetwork"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_HIDL_INTERFACE
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantNetwork"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "listNetworks"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint32_t"
-            }
-        }
-    }
-
-    api: {
-        name: "setWpsDeviceName"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setWpsDeviceType"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 8
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "setWpsManufacturer"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setWpsModelName"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setWpsModelNumber"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setWpsSerialNumber"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setWpsConfigMethods"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_MASK
-            scalar_type: "uint16_t"
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::WpsConfigMethods"
-        }
-    }
-
-    api: {
-        name: "registerCallback"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_HIDL_CALLBACK
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback"
-        }
-    }
-
-    api: {
-        name: "reassociate"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-    }
-
-    api: {
-        name: "reconnect"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-    }
-
-    api: {
-        name: "disconnect"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-    }
-
-    api: {
-        name: "setPowerSave"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "initiateTdlsDiscover"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "initiateTdlsSetup"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "initiateTdlsTeardown"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "initiateAnqpQuery"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_ENUM
-                predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIface::AnqpInfoId"
-            }
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_ENUM
-                predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIface::Hs20AnqpSubtypes"
-            }
-        }
-    }
-
-    api: {
-        name: "initiateHs20IconQuery"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "getMacAddress"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "startRxFilter"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-    }
-
-    api: {
-        name: "stopRxFilter"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-    }
-
-    api: {
-        name: "addRxFilter"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIface::RxFilterType"
-        }
-    }
-
-    api: {
-        name: "removeRxFilter"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIface::RxFilterType"
-        }
-    }
-
-    api: {
-        name: "setBtCoexistenceMode"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIface::BtCoexistenceMode"
-        }
-    }
-
-    api: {
-        name: "setBtCoexistenceScanModeEnabled"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "setSuspendModeEnabled"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "setCountryCode"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 2
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "int8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "startWpsRegistrar"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "startWpsPbc"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "startWpsPinKeypad"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "startWpsPinDisplay"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "cancelWps"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-    }
-
-    api: {
-        name: "setExternalSim"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "addExtRadioWork"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "removeExtRadioWork"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-}
diff --git a/wifi/supplicant/1.0/vts/SupplicantStaIfaceCallback.vts b/wifi/supplicant/1.0/vts/SupplicantStaIfaceCallback.vts
deleted file mode 100644
index 0a35848..0000000
--- a/wifi/supplicant/1.0/vts/SupplicantStaIfaceCallback.vts
+++ /dev/null
@@ -1,516 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "ISupplicantStaIfaceCallback"
-
-package: "android.hardware.wifi.supplicant"
-
-import: "android.hardware.wifi.supplicant@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::State"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint32_t"
-
-            enumerator: "DISCONNECTED"
-            scalar_value: {
-                uint32_t: 0
-            }
-            enumerator: "IFACE_DISABLED"
-            scalar_value: {
-                uint32_t: 1
-            }
-            enumerator: "INACTIVE"
-            scalar_value: {
-                uint32_t: 2
-            }
-            enumerator: "SCANNING"
-            scalar_value: {
-                uint32_t: 3
-            }
-            enumerator: "AUTHENTICATING"
-            scalar_value: {
-                uint32_t: 4
-            }
-            enumerator: "ASSOCIATING"
-            scalar_value: {
-                uint32_t: 5
-            }
-            enumerator: "ASSOCIATED"
-            scalar_value: {
-                uint32_t: 6
-            }
-            enumerator: "FOURWAY_HANDSHAKE"
-            scalar_value: {
-                uint32_t: 7
-            }
-            enumerator: "GROUP_HANDSHAKE"
-            scalar_value: {
-                uint32_t: 8
-            }
-            enumerator: "COMPLETED"
-            scalar_value: {
-                uint32_t: 9
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::OsuMethod"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint8_t"
-
-            enumerator: "OMA_DM"
-            scalar_value: {
-                uint8_t: 0
-            }
-            enumerator: "SOAP_XML_SPP"
-            scalar_value: {
-                uint8_t: 1
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::AnqpData"
-        type: TYPE_STRUCT
-        struct_value: {
-            name: "venueName"
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        struct_value: {
-            name: "roamingConsortium"
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        struct_value: {
-            name: "ipAddrTypeAvailability"
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        struct_value: {
-            name: "naiRealm"
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        struct_value: {
-            name: "anqp3gppCellularNetwork"
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        struct_value: {
-            name: "domainName"
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::Hs20AnqpData"
-        type: TYPE_STRUCT
-        struct_value: {
-            name: "operatorFriendlyName"
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        struct_value: {
-            name: "wanMetrics"
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        struct_value: {
-            name: "connectionCapability"
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        struct_value: {
-            name: "osuProvidersList"
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::WpsConfigError"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint16_t"
-
-            enumerator: "NO_ERROR"
-            scalar_value: {
-                uint16_t: 0
-            }
-            enumerator: "OOB_IFACE_READ_ERROR"
-            scalar_value: {
-                uint16_t: 1
-            }
-            enumerator: "DECRYPTION_CRC_FAILURE"
-            scalar_value: {
-                uint16_t: 2
-            }
-            enumerator: "CHAN_24_NOT_SUPPORTED"
-            scalar_value: {
-                uint16_t: 3
-            }
-            enumerator: "CHAN_50_NOT_SUPPORTED"
-            scalar_value: {
-                uint16_t: 4
-            }
-            enumerator: "SIGNAL_TOO_WEAK"
-            scalar_value: {
-                uint16_t: 5
-            }
-            enumerator: "NETWORK_AUTH_FAILURE"
-            scalar_value: {
-                uint16_t: 6
-            }
-            enumerator: "NETWORK_ASSOC_FAILURE"
-            scalar_value: {
-                uint16_t: 7
-            }
-            enumerator: "NO_DHCP_RESPONSE"
-            scalar_value: {
-                uint16_t: 8
-            }
-            enumerator: "FAILED_DHCP_CONFIG"
-            scalar_value: {
-                uint16_t: 9
-            }
-            enumerator: "IP_ADDR_CONFLICT"
-            scalar_value: {
-                uint16_t: 10
-            }
-            enumerator: "NO_CONN_TO_REGISTRAR"
-            scalar_value: {
-                uint16_t: 11
-            }
-            enumerator: "MULTIPLE_PBC_DETECTED"
-            scalar_value: {
-                uint16_t: 12
-            }
-            enumerator: "ROGUE_SUSPECTED"
-            scalar_value: {
-                uint16_t: 13
-            }
-            enumerator: "DEVICE_BUSY"
-            scalar_value: {
-                uint16_t: 14
-            }
-            enumerator: "SETUP_LOCKED"
-            scalar_value: {
-                uint16_t: 15
-            }
-            enumerator: "MSG_TIMEOUT"
-            scalar_value: {
-                uint16_t: 16
-            }
-            enumerator: "REG_SESS_TIMEOUT"
-            scalar_value: {
-                uint16_t: 17
-            }
-            enumerator: "DEV_PASSWORD_AUTH_FAILURE"
-            scalar_value: {
-                uint16_t: 18
-            }
-            enumerator: "CHAN_60G_NOT_SUPPORTED"
-            scalar_value: {
-                uint16_t: 19
-            }
-            enumerator: "PUBLIC_KEY_HASH_MISMATCH"
-            scalar_value: {
-                uint16_t: 20
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::WpsErrorIndication"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint16_t"
-
-            enumerator: "NO_ERROR"
-            scalar_value: {
-                uint16_t: 0
-            }
-            enumerator: "SECURITY_TKIP_ONLY_PROHIBITED"
-            scalar_value: {
-                uint16_t: 1
-            }
-            enumerator: "SECURITY_WEP_PROHIBITED"
-            scalar_value: {
-                uint16_t: 2
-            }
-            enumerator: "AUTH_FAILURE"
-            scalar_value: {
-                uint16_t: 3
-            }
-        }
-    }
-
-    api: {
-        name: "onNetworkAdded"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "onNetworkRemoved"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "onStateChanged"
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::State"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "onAnqpQueryDone"
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::AnqpData"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::Hs20AnqpData"
-        }
-    }
-
-    api: {
-        name: "onHs20IconQueryDone"
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "onHs20SubscriptionRemediation"
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::OsuMethod"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "onHs20DeauthImminentNotice"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "onConnected"
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "onDisconnected"
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "onAssociationCompleted"
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "onAssociationRejected"
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "onAuthenticationTimeout"
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "onEapFailure"
-    }
-
-    api: {
-        name: "onWpsEventSuccess"
-    }
-
-    api: {
-        name: "onWpsEventFail"
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::WpsConfigError"
-        }
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::WpsErrorIndication"
-        }
-    }
-
-    api: {
-        name: "onWpsEventPbcOverlap"
-    }
-
-    api: {
-        name: "onExtRadioWorkStart"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "onExtRadioWorkTimeout"
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-}
diff --git a/wifi/supplicant/1.0/vts/SupplicantStaNetwork.vts b/wifi/supplicant/1.0/vts/SupplicantStaNetwork.vts
deleted file mode 100644
index 8ad72f1..0000000
--- a/wifi/supplicant/1.0/vts/SupplicantStaNetwork.vts
+++ /dev/null
@@ -1,1156 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "ISupplicantStaNetwork"
-
-package: "android.hardware.wifi.supplicant"
-
-import: "android.hardware.wifi.supplicant@1.0::ISupplicantNetwork"
-import: "android.hardware.wifi.supplicant@1.0::ISupplicantStaNetworkCallback"
-import: "android.hardware.wifi.supplicant@1.0::types"
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::ParamSizeLimits"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint32_t"
-
-            enumerator: "SSID_MAX_LEN_IN_BYTES"
-            scalar_value: {
-                uint32_t: 32
-            }
-            enumerator: "PSK_PASSPHRASE_MIN_LEN_IN_BYTES"
-            scalar_value: {
-                uint32_t: 8
-            }
-            enumerator: "PSK_PASSPHRASE_MAX_LEN_IN_BYTES"
-            scalar_value: {
-                uint32_t: 63
-            }
-            enumerator: "WEP_KEYS_MAX_NUM"
-            scalar_value: {
-                uint32_t: 4
-            }
-            enumerator: "WEP40_KEY_LEN_IN_BYTES"
-            scalar_value: {
-                uint32_t: 5
-            }
-            enumerator: "WEP104_KEY_LEN_IN_BYTES"
-            scalar_value: {
-                uint32_t: 13
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::KeyMgmtMask"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint32_t"
-
-            enumerator: "WPA_EAP"
-            scalar_value: {
-                uint32_t: 1
-            }
-            enumerator: "WPA_PSK"
-            scalar_value: {
-                uint32_t: 2
-            }
-            enumerator: "NONE"
-            scalar_value: {
-                uint32_t: 4
-            }
-            enumerator: "IEEE8021X"
-            scalar_value: {
-                uint32_t: 8
-            }
-            enumerator: "FT_EAP"
-            scalar_value: {
-                uint32_t: 32
-            }
-            enumerator: "FT_PSK"
-            scalar_value: {
-                uint32_t: 64
-            }
-            enumerator: "OSEN"
-            scalar_value: {
-                uint32_t: 32768
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::ProtoMask"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint32_t"
-
-            enumerator: "WPA"
-            scalar_value: {
-                uint32_t: 1
-            }
-            enumerator: "RSN"
-            scalar_value: {
-                uint32_t: 2
-            }
-            enumerator: "OSEN"
-            scalar_value: {
-                uint32_t: 8
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::AuthAlgMask"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint32_t"
-
-            enumerator: "OPEN"
-            scalar_value: {
-                uint32_t: 1
-            }
-            enumerator: "SHARED"
-            scalar_value: {
-                uint32_t: 2
-            }
-            enumerator: "LEAP"
-            scalar_value: {
-                uint32_t: 4
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::GroupCipherMask"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint32_t"
-
-            enumerator: "WEP40"
-            scalar_value: {
-                uint32_t: 2
-            }
-            enumerator: "WEP104"
-            scalar_value: {
-                uint32_t: 4
-            }
-            enumerator: "TKIP"
-            scalar_value: {
-                uint32_t: 8
-            }
-            enumerator: "CCMP"
-            scalar_value: {
-                uint32_t: 16
-            }
-            enumerator: "GTK_NOT_USED"
-            scalar_value: {
-                uint32_t: 16384
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::PairwiseCipherMask"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint32_t"
-
-            enumerator: "NONE"
-            scalar_value: {
-                uint32_t: 1
-            }
-            enumerator: "TKIP"
-            scalar_value: {
-                uint32_t: 8
-            }
-            enumerator: "CCMP"
-            scalar_value: {
-                uint32_t: 16
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::EapMethod"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint32_t"
-
-            enumerator: "PEAP"
-            scalar_value: {
-                uint32_t: 0
-            }
-            enumerator: "TLS"
-            scalar_value: {
-                uint32_t: 1
-            }
-            enumerator: "TTLS"
-            scalar_value: {
-                uint32_t: 2
-            }
-            enumerator: "PWD"
-            scalar_value: {
-                uint32_t: 3
-            }
-            enumerator: "SIM"
-            scalar_value: {
-                uint32_t: 4
-            }
-            enumerator: "AKA"
-            scalar_value: {
-                uint32_t: 5
-            }
-            enumerator: "AKA_PRIME"
-            scalar_value: {
-                uint32_t: 6
-            }
-            enumerator: "WFA_UNAUTH_TLS"
-            scalar_value: {
-                uint32_t: 7
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::EapPhase2Method"
-        type: TYPE_ENUM
-        enum_value: {
-            scalar_type: "uint32_t"
-
-            enumerator: "NONE"
-            scalar_value: {
-                uint32_t: 0
-            }
-            enumerator: "PAP"
-            scalar_value: {
-                uint32_t: 1
-            }
-            enumerator: "MSPAP"
-            scalar_value: {
-                uint32_t: 2
-            }
-            enumerator: "MSPAPV2"
-            scalar_value: {
-                uint32_t: 3
-            }
-            enumerator: "GTC"
-            scalar_value: {
-                uint32_t: 4
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::NetworkResponseEapSimGsmAuthParams"
-        type: TYPE_STRUCT
-        struct_value: {
-            name: "kc"
-            type: TYPE_ARRAY
-            vector_size: 8
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        struct_value: {
-            name: "sres"
-            type: TYPE_ARRAY
-            vector_size: 4
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::NetworkResponseEapSimUmtsAuthParams"
-        type: TYPE_STRUCT
-        struct_value: {
-            name: "res"
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        struct_value: {
-            name: "ik"
-            type: TYPE_ARRAY
-            vector_size: 16
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        struct_value: {
-            name: "ck"
-            type: TYPE_ARRAY
-            vector_size: 16
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "getId"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "getInterfaceName"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "getType"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::IfaceType"
-        }
-    }
-
-    api: {
-        name: "registerCallback"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_HIDL_CALLBACK
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetworkCallback"
-        }
-    }
-
-    api: {
-        name: "setSsid"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "setBssid"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "setScanSsid"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "setKeyMgmt"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_MASK
-            scalar_type: "uint32_t"
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::KeyMgmtMask"
-        }
-    }
-
-    api: {
-        name: "setProto"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_MASK
-            scalar_type: "uint32_t"
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::ProtoMask"
-        }
-    }
-
-    api: {
-        name: "setAuthAlg"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_MASK
-            scalar_type: "uint32_t"
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::AuthAlgMask"
-        }
-    }
-
-    api: {
-        name: "setGroupCipher"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_MASK
-            scalar_type: "uint32_t"
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::GroupCipherMask"
-        }
-    }
-
-    api: {
-        name: "setPairwiseCipher"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_MASK
-            scalar_type: "uint32_t"
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::PairwiseCipherMask"
-        }
-    }
-
-    api: {
-        name: "setPskPassphrase"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setWepKey"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "setWepTxKeyIdx"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "setRequirePmf"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "setEapMethod"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::EapMethod"
-        }
-    }
-
-    api: {
-        name: "setEapPhase2Method"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::EapPhase2Method"
-        }
-    }
-
-    api: {
-        name: "setEapIdentity"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "setEapAnonymousIdentity"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "setEapPassword"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "setEapCACert"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setEapCAPath"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setEapClientCert"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setEapPrivateKey"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setEapSubjectMatch"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setEapAltSubjectMatch"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setEapEngine"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "setEapEngineID"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setEapDomainSuffixMatch"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setProactiveKeyCaching"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "setIdStr"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "setUpdateIdentifier"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "getSsid"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "getBssid"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_ARRAY
-            vector_size: 6
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "getScanSsid"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "getKeyMgmt"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_MASK
-            scalar_type: "uint32_t"
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::KeyMgmtMask"
-        }
-    }
-
-    api: {
-        name: "getProto"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_MASK
-            scalar_type: "uint32_t"
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::ProtoMask"
-        }
-    }
-
-    api: {
-        name: "getAuthAlg"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_MASK
-            scalar_type: "uint32_t"
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::AuthAlgMask"
-        }
-    }
-
-    api: {
-        name: "getGroupCipher"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_MASK
-            scalar_type: "uint32_t"
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::GroupCipherMask"
-        }
-    }
-
-    api: {
-        name: "getPairwiseCipher"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_MASK
-            scalar_type: "uint32_t"
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::PairwiseCipherMask"
-        }
-    }
-
-    api: {
-        name: "getPskPassphrase"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "getWepKey"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "getWepTxKeyIdx"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
-    }
-
-    api: {
-        name: "getRequirePmf"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "getEapMethod"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::EapMethod"
-        }
-    }
-
-    api: {
-        name: "getEapPhase2Method"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::EapPhase2Method"
-        }
-    }
-
-    api: {
-        name: "getEapIdentity"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "getEapAnonymousIdentity"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "getEapPassword"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "getEapCACert"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "getEapCAPath"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "getEapClientCert"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "getEapPrivateKey"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "getEapSubjectMatch"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "getEapAltSubjectMatch"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "getEapEngine"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "getEapEngineID"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "getEapDomainSuffixMatch"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "getIdStr"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        return_type_hidl: {
-            type: TYPE_STRING
-        }
-    }
-
-    api: {
-        name: "enable"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "bool_t"
-        }
-    }
-
-    api: {
-        name: "disable"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-    }
-
-    api: {
-        name: "select"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-    }
-
-    api: {
-        name: "sendNetworkEapSimGsmAuthResponse"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_STRUCT
-                predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::NetworkResponseEapSimGsmAuthParams"
-            }
-        }
-    }
-
-    api: {
-        name: "sendNetworkEapSimGsmAuthFailure"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-    }
-
-    api: {
-        name: "sendNetworkEapSimUmtsAuthResponse"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::NetworkResponseEapSimUmtsAuthParams"
-        }
-    }
-
-    api: {
-        name: "sendNetworkEapSimUmtsAutsResponse"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_ARRAY
-            vector_size: 14
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "sendNetworkEapSimUmtsAuthFailure"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-    }
-
-    api: {
-        name: "sendNetworkEapIdentityResponse"
-        return_type_hidl: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-        }
-        arg: {
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-}
diff --git a/wifi/supplicant/1.0/vts/SupplicantStaNetworkCallback.vts b/wifi/supplicant/1.0/vts/SupplicantStaNetworkCallback.vts
deleted file mode 100644
index 1c91d57..0000000
--- a/wifi/supplicant/1.0/vts/SupplicantStaNetworkCallback.vts
+++ /dev/null
@@ -1,70 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "ISupplicantStaNetworkCallback"
-
-package: "android.hardware.wifi.supplicant"
-
-import: "android.hidl.base@1.0::types"
-
-interface: {
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetworkCallback::NetworkRequestEapSimGsmAuthParams"
-        type: TYPE_STRUCT
-        struct_value: {
-            name: "rands"
-            type: TYPE_VECTOR
-            vector_value: {
-                type: TYPE_ARRAY
-                vector_size: 16
-                vector_value: {
-                    type: TYPE_SCALAR
-                    scalar_type: "uint8_t"
-                }
-            }
-        }
-    }
-
-    attribute: {
-        name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetworkCallback::NetworkRequestEapSimUmtsAuthParams"
-        type: TYPE_STRUCT
-        struct_value: {
-            name: "rand"
-            type: TYPE_ARRAY
-            vector_size: 16
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-        struct_value: {
-            name: "autn"
-            type: TYPE_ARRAY
-            vector_size: 16
-            vector_value: {
-                type: TYPE_SCALAR
-                scalar_type: "uint8_t"
-            }
-        }
-    }
-
-    api: {
-        name: "onNetworkEapSimGsmAuthRequest"
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetworkCallback::NetworkRequestEapSimGsmAuthParams"
-        }
-    }
-
-    api: {
-        name: "onNetworkEapSimUmtsAuthRequest"
-        arg: {
-            type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetworkCallback::NetworkRequestEapSimUmtsAuthParams"
-        }
-    }
-
-    api: {
-        name: "onNetworkEapIdentityRequest"
-    }
-
-}
diff --git a/wifi/supplicant/1.0/vts/functional/Android.mk b/wifi/supplicant/1.0/vts/functional/Android.mk
index 52fecc2..5d7c763 100644
--- a/wifi/supplicant/1.0/vts/functional/Android.mk
+++ b/wifi/supplicant/1.0/vts/functional/Android.mk
@@ -31,7 +31,6 @@
     libcutils \
     libhidlbase \
     libhidltransport \
-    libhwbinder \
     liblog \
     libutils \
     libwifi-hal \
diff --git a/wifi/supplicant/1.0/vts/types.vts b/wifi/supplicant/1.0/vts/types.vts
deleted file mode 100644
index b8b29b3..0000000
--- a/wifi/supplicant/1.0/vts/types.vts
+++ /dev/null
@@ -1,189 +0,0 @@
-component_class: HAL_HIDL
-component_type_version: 1.0
-component_name: "types"
-
-package: "android.hardware.wifi.supplicant"
-
-
-attribute: {
-    name: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatusCode"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "SUCCESS"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "FAILURE_UNKNOWN"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "FAILURE_ARGS_INVALID"
-        scalar_value: {
-            uint32_t: 2
-        }
-        enumerator: "FAILURE_IFACE_INVALID"
-        scalar_value: {
-            uint32_t: 3
-        }
-        enumerator: "FAILURE_IFACE_UNKNOWN"
-        scalar_value: {
-            uint32_t: 4
-        }
-        enumerator: "FAILURE_IFACE_EXISTS"
-        scalar_value: {
-            uint32_t: 5
-        }
-        enumerator: "FAILURE_IFACE_DISABLED"
-        scalar_value: {
-            uint32_t: 6
-        }
-        enumerator: "FAILURE_IFACE_NOT_DISCONNECTED"
-        scalar_value: {
-            uint32_t: 7
-        }
-        enumerator: "FAILURE_NETWORK_INVALID"
-        scalar_value: {
-            uint32_t: 8
-        }
-        enumerator: "FAILURE_NETWORK_UNKNOWN"
-        scalar_value: {
-            uint32_t: 9
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
-    type: TYPE_STRUCT
-    struct_value: {
-        name: "code"
-        type: TYPE_ENUM
-        predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatusCode"
-    }
-    struct_value: {
-        name: "debugMessage"
-        type: TYPE_STRING
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::supplicant::V1_0::IfaceType"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "STA"
-        scalar_value: {
-            uint32_t: 0
-        }
-        enumerator: "P2P"
-        scalar_value: {
-            uint32_t: 1
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::supplicant::V1_0::P2pGroupCapabilityMask"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint32_t"
-
-        enumerator: "GROUP_OWNER"
-        scalar_value: {
-            uint32_t: 1
-        }
-        enumerator: "PERSISTENT_GROUP"
-        scalar_value: {
-            uint32_t: 2
-        }
-        enumerator: "GROUP_LIMIT"
-        scalar_value: {
-            uint32_t: 4
-        }
-        enumerator: "INTRA_BSS_DIST"
-        scalar_value: {
-            uint32_t: 8
-        }
-        enumerator: "CROSS_CONN"
-        scalar_value: {
-            uint32_t: 16
-        }
-        enumerator: "PERSISTENT_RECONN"
-        scalar_value: {
-            uint32_t: 32
-        }
-        enumerator: "GROUP_FORMATION"
-        scalar_value: {
-            uint32_t: 64
-        }
-    }
-}
-
-attribute: {
-    name: "::android::hardware::wifi::supplicant::V1_0::WpsConfigMethods"
-    type: TYPE_ENUM
-    enum_value: {
-        scalar_type: "uint16_t"
-
-        enumerator: "USBA"
-        scalar_value: {
-            uint16_t: 1
-        }
-        enumerator: "ETHERNET"
-        scalar_value: {
-            uint16_t: 2
-        }
-        enumerator: "LABEL"
-        scalar_value: {
-            uint16_t: 4
-        }
-        enumerator: "DISPLAY"
-        scalar_value: {
-            uint16_t: 8
-        }
-        enumerator: "EXT_NFC_TOKEN"
-        scalar_value: {
-            uint16_t: 16
-        }
-        enumerator: "INT_NFC_TOKEN"
-        scalar_value: {
-            uint16_t: 32
-        }
-        enumerator: "NFC_INTERFACE"
-        scalar_value: {
-            uint16_t: 64
-        }
-        enumerator: "PUSHBUTTON"
-        scalar_value: {
-            uint16_t: 128
-        }
-        enumerator: "KEYPAD"
-        scalar_value: {
-            uint16_t: 256
-        }
-        enumerator: "VIRT_PUSHBUTTON"
-        scalar_value: {
-            uint16_t: 640
-        }
-        enumerator: "PHY_PUSHBUTTON"
-        scalar_value: {
-            uint16_t: 1152
-        }
-        enumerator: "P2PS"
-        scalar_value: {
-            uint16_t: 4096
-        }
-        enumerator: "VIRT_DISPLAY"
-        scalar_value: {
-            uint16_t: 8200
-        }
-        enumerator: "PHY_DISPLAY"
-        scalar_value: {
-            uint16_t: 16392
-        }
-    }
-}
-
