Merge "Basic target VTS test for broadcast radio HAL"
diff --git a/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/host/passthrough/NfcHidlPassthroughBasicTest.config b/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/host/passthrough/NfcHidlPassthroughBasicTest.config
index be540a5..3e957e3 100644
--- a/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/host/passthrough/NfcHidlPassthroughBasicTest.config
+++ b/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/host/passthrough/NfcHidlPassthroughBasicTest.config
@@ -1,6 +1,6 @@
 {
     "passthrough_mode": True,
     "modules": ["system/lib64/hw/nfc_nci.bullhead"],
-    "git_project_path": "external/libnfc-nci",
-    "git_project_name": "platform/external/libnfc-nci"
+    "git_project_path": "system/nfc",
+    "git_project_name": "platform/system/nfc"
 }
diff --git a/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target/AndroidTest.xml b/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target/AndroidTest.xml
index f692011..ee02488 100644
--- a/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target/AndroidTest.xml
+++ b/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target/AndroidTest.xml
@@ -26,6 +26,6 @@
             "/>
         <option name="test-config-path" value="vts/testcases/hal/nfc/hidl/target/HalNfcHidlTargetBasicTest.config" />
         <option name="binary-test-type" value="gtest" />
-        <option name="test-timeout" value="1m" />
+        <option name="test-timeout" value="10m" />
     </test>
 </configuration>
diff --git a/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target/HalNfcHidlTargetBasicTest.config b/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target/HalNfcHidlTargetBasicTest.config
index 65009e4..60623b1 100644
--- a/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target/HalNfcHidlTargetBasicTest.config
+++ b/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target/HalNfcHidlTargetBasicTest.config
@@ -1,5 +1,5 @@
 {
     "modules": ["system/lib64/hw/nfc_nci.bullhead"],
-    "git_project_path": "external/libnfc-nci",
-    "git_project_name": "platform/external/libnfc-nci"
-}
\ No newline at end of file
+    "git_project_path": "system/nfc",
+    "git_project_name": "platform/system/nfc"
+}
diff --git a/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target_profiling/AndroidTest.xml b/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target_profiling/AndroidTest.xml
index 11aa88f..da6cf22 100644
--- a/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target_profiling/AndroidTest.xml
+++ b/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target_profiling/AndroidTest.xml
@@ -25,7 +25,7 @@
             _64bit::DATA/nativetest64/nfc_hidl_hal_test/nfc_hidl_hal_test,
             "/>
         <option name="binary-test-type" value="gtest" />
-        <option name="test-timeout" value="1m" />
+        <option name="test-timeout" value="10m" />
     <option name="enable-profiling" value="true" />
     </test>
 </configuration>
diff --git a/tv/cec/1.0/vts/Android.mk b/tv/cec/1.0/vts/Android.mk
new file mode 100644
index 0000000..2666ca6
--- /dev/null
+++ b/tv/cec/1.0/vts/Android.mk
@@ -0,0 +1,118 @@
+#
+# Copyright (C) 2016 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+LOCAL_PATH := $(call my-dir)
+
+# build VTS driver for TvCec v1.0.
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libvts_driver_hidl_tv_hdmi_cec@1.0
+
+LOCAL_SRC_FILES := \
+  HdmiCec.vts \
+  HdmiCecCallback.vts \
+  types.vts \
+
+LOCAL_SHARED_LIBRARIES += \
+  android.hardware.tv.cec@1.0 \
+  libbase \
+  libutils \
+  libcutils \
+  liblog \
+  libhidlbase \
+  libhidltransport \
+  libhwbinder \
+  libprotobuf-cpp-full \
+  libvts_common \
+  libvts_datatype \
+  libvts_measurement \
+  libvts_multidevice_proto \
+
+LOCAL_PROTOC_OPTIMIZE_TYPE := full
+
+LOCAL_MULTILIB := both
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+# build VTS profiler for HdmiCec
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libvts_profiler_hidl_tv_hdmi_cec@1.0
+
+LOCAL_SRC_FILES := \
+  HdmiCec.vts \
+  types.vts \
+
+LOCAL_C_INCLUDES += \
+  test/vts/drivers/libprofiling \
+
+LOCAL_VTS_MODE := PROFILER
+
+LOCAL_SHARED_LIBRARIES += \
+  android.hardware.tv.cec@1.0 \
+  libbase \
+  libcutils \
+  liblog \
+  libhidlbase \
+  libhidltransport \
+  libhwbinder \
+  libprotobuf-cpp-full \
+  libvts_common \
+  libvts_multidevice_proto \
+  libvts_profiling \
+  libutils \
+
+LOCAL_PROTOC_OPTIMIZE_TYPE := full
+
+LOCAL_MULTILIB := both
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+# build VTS profiler for HdmiCecCallback
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libvts_profiler_hidl_tv_hdmi_cec_callback_@1.0
+
+LOCAL_SRC_FILES := \
+  HdmiCecCallback.vts \
+  types.vts \
+
+LOCAL_C_INCLUDES += \
+  test/vts/drivers/libprofiling \
+
+LOCAL_VTS_MODE := PROFILER
+
+LOCAL_SHARED_LIBRARIES += \
+  android.hardware.tv.cec@1.0 \
+  libbase \
+  libcutils \
+  liblog \
+  libhidlbase \
+  libhidltransport \
+  libhwbinder \
+  libprotobuf-cpp-full \
+  libvts_common \
+  libvts_multidevice_proto \
+  libvts_profiling \
+  libutils \
+
+LOCAL_PROTOC_OPTIMIZE_TYPE := full
+
+LOCAL_MULTILIB := both
+
+include $(BUILD_SHARED_LIBRARY)
\ No newline at end of file
diff --git a/tv/cec/1.0/vts/HdmiCec.vts b/tv/cec/1.0/vts/HdmiCec.vts
new file mode 100644
index 0000000..d7d09de
--- /dev/null
+++ b/tv/cec/1.0/vts/HdmiCec.vts
@@ -0,0 +1,172 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "IHdmiCec"
+
+package: "android.hardware.tv.cec"
+
+import: "android.hardware.tv.cec@1.0::IHdmiCecCallback"
+import: "android.hardware.tv.cec@1.0::types"
+
+interface: {
+    api: {
+        name: "addLogicalAddress"
+        return_type_hidl: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::tv::cec::V1_0::Result"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::tv::cec::V1_0::CecLogicalAddress"
+        }
+        callflow: {
+            next: "*"
+        }
+    }
+
+    api: {
+        name: "clearLogicalAddress"
+        callflow: {
+            next: "addLogicalAddress"
+        }
+        callflow: {
+            exit: true
+        }
+    }
+
+    api: {
+        name: "getPhysicalAddress"
+        return_type_hidl: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::tv::cec::V1_0::Result"
+        }
+        return_type_hidl: {
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        callflow: {
+            next: "*"
+        }
+    }
+
+    api: {
+        name: "sendMessage"
+        return_type_hidl: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::tv::cec::V1_0::SendMessageResult"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::tv::cec::V1_0::CecMessage"
+        }
+        callflow: {
+            next: "*"
+        }
+    }
+
+    api: {
+        name: "setCallback"
+        arg: {
+            type: TYPE_HIDL_CALLBACK
+            predefined_type: "IHdmiCecCallback"
+            is_callback: true
+        }
+        callflow: {
+            next: "addLogicalAddress"
+        }
+        callflow: {
+            entry: true
+        }
+    }
+
+    api: {
+        name: "getCecVersion"
+        return_type_hidl: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        callflow: {
+            next: "*"
+        }
+    }
+
+    api: {
+        name: "getVendorId"
+        return_type_hidl: {
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        callflow: {
+            next: "*"
+        }
+    }
+
+    api: {
+        name: "getPortInfo"
+        return_type_hidl: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRUCT
+                predefined_type: "::android::hardware::tv::cec::V1_0::HdmiPortInfo"
+            }
+        }
+        callflow: {
+            next: "*"
+        }
+    }
+
+    api: {
+        name: "setOption"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::tv::cec::V1_0::OptionKey"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        callflow: {
+            next: "*"
+        }
+    }
+
+    api: {
+        name: "setLanguage"
+        arg: {
+            type: TYPE_STRING
+        }
+        callflow: {
+            next: "*"
+        }
+    }
+
+    api: {
+        name: "enableAudioReturnChannel"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        callflow: {
+            next: "*"
+        }
+    }
+
+    api: {
+        name: "isConnected"
+        return_type_hidl: {
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        callflow: {
+            next: "*"
+        }
+    }
+
+}
diff --git a/tv/cec/1.0/vts/HdmiCecCallback.vts b/tv/cec/1.0/vts/HdmiCecCallback.vts
new file mode 100644
index 0000000..864e6f5
--- /dev/null
+++ b/tv/cec/1.0/vts/HdmiCecCallback.vts
@@ -0,0 +1,26 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "IHdmiCecCallback"
+
+package: "android.hardware.tv.cec"
+
+import: "android.hardware.tv.cec@1.0::types"
+
+interface: {
+    api: {
+        name: "onCecMessage"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::tv::cec::V1_0::CecMessage"
+        }
+    }
+
+    api: {
+        name: "onHotplugEvent"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::tv::cec::V1_0::HotplugEvent"
+        }
+    }
+
+}
diff --git a/tv/cec/1.0/vts/types.vts b/tv/cec/1.0/vts/types.vts
new file mode 100644
index 0000000..ae972a5
--- /dev/null
+++ b/tv/cec/1.0/vts/types.vts
@@ -0,0 +1,604 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "types"
+
+package: "android.hardware.tv.cec"
+
+
+attribute: {
+    name: "::android::hardware::tv::cec::V1_0::MaxLength"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "MESSAGE_BODY"
+        scalar_value: {
+            int32_t: 15
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::tv::cec::V1_0::CecDeviceType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "INACTIVE"
+        scalar_value: {
+            int32_t: -1
+        }
+        enumerator: "TV"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "RECORDER"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "TUNER"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "PLAYBACK"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "AUDIO_SYSTEM"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "MAX"
+        scalar_value: {
+            int32_t: 5
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::tv::cec::V1_0::CecLogicalAddress"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "TV"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "RECORDER_1"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "RECORDER_2"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "TUNER_1"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "PLAYBACK_1"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "AUDIO_SYSTEM"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "TUNER_2"
+        scalar_value: {
+            int32_t: 6
+        }
+        enumerator: "TUNER_3"
+        scalar_value: {
+            int32_t: 7
+        }
+        enumerator: "PLAYBACK_2"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "RECORDER_3"
+        scalar_value: {
+            int32_t: 9
+        }
+        enumerator: "TUNER_4"
+        scalar_value: {
+            int32_t: 10
+        }
+        enumerator: "PLAYBACK_3"
+        scalar_value: {
+            int32_t: 11
+        }
+        enumerator: "FREE_USE"
+        scalar_value: {
+            int32_t: 14
+        }
+        enumerator: "UNREGISTERED"
+        scalar_value: {
+            int32_t: 15
+        }
+        enumerator: "BROADCAST"
+        scalar_value: {
+            int32_t: 15
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::tv::cec::V1_0::CecMessageType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "FEATURE_ABORT"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "IMAGE_VIEW_ON"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "TUNER_STEP_INCREMENT"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "TUNER_STEP_DECREMENT"
+        scalar_value: {
+            int32_t: 6
+        }
+        enumerator: "TUNER_DEVICE_STATUS"
+        scalar_value: {
+            int32_t: 7
+        }
+        enumerator: "GIVE_TUNER_DEVICE_STATUS"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "RECORD_ON"
+        scalar_value: {
+            int32_t: 9
+        }
+        enumerator: "RECORD_STATUS"
+        scalar_value: {
+            int32_t: 10
+        }
+        enumerator: "RECORD_OFF"
+        scalar_value: {
+            int32_t: 11
+        }
+        enumerator: "TEXT_VIEW_ON"
+        scalar_value: {
+            int32_t: 13
+        }
+        enumerator: "RECORD_TV_SCREEN"
+        scalar_value: {
+            int32_t: 15
+        }
+        enumerator: "GIVE_DECK_STATUS"
+        scalar_value: {
+            int32_t: 26
+        }
+        enumerator: "DECK_STATUS"
+        scalar_value: {
+            int32_t: 27
+        }
+        enumerator: "SET_MENU_LANGUAGE"
+        scalar_value: {
+            int32_t: 50
+        }
+        enumerator: "CLEAR_ANALOG_TIMER"
+        scalar_value: {
+            int32_t: 51
+        }
+        enumerator: "SET_ANALOG_TIMER"
+        scalar_value: {
+            int32_t: 52
+        }
+        enumerator: "TIMER_STATUS"
+        scalar_value: {
+            int32_t: 53
+        }
+        enumerator: "STANDBY"
+        scalar_value: {
+            int32_t: 54
+        }
+        enumerator: "PLAY"
+        scalar_value: {
+            int32_t: 65
+        }
+        enumerator: "DECK_CONTROL"
+        scalar_value: {
+            int32_t: 66
+        }
+        enumerator: "TIMER_CLEARED_STATUS"
+        scalar_value: {
+            int32_t: 67
+        }
+        enumerator: "USER_CONTROL_PRESSED"
+        scalar_value: {
+            int32_t: 68
+        }
+        enumerator: "USER_CONTROL_RELEASED"
+        scalar_value: {
+            int32_t: 69
+        }
+        enumerator: "GIVE_OSD_NAME"
+        scalar_value: {
+            int32_t: 70
+        }
+        enumerator: "SET_OSD_NAME"
+        scalar_value: {
+            int32_t: 71
+        }
+        enumerator: "SET_OSD_STRING"
+        scalar_value: {
+            int32_t: 100
+        }
+        enumerator: "SET_TIMER_PROGRAM_TITLE"
+        scalar_value: {
+            int32_t: 103
+        }
+        enumerator: "SYSTEM_AUDIO_MODE_REQUEST"
+        scalar_value: {
+            int32_t: 112
+        }
+        enumerator: "GIVE_AUDIO_STATUS"
+        scalar_value: {
+            int32_t: 113
+        }
+        enumerator: "SET_SYSTEM_AUDIO_MODE"
+        scalar_value: {
+            int32_t: 114
+        }
+        enumerator: "REPORT_AUDIO_STATUS"
+        scalar_value: {
+            int32_t: 122
+        }
+        enumerator: "GIVE_SYSTEM_AUDIO_MODE_STATUS"
+        scalar_value: {
+            int32_t: 125
+        }
+        enumerator: "SYSTEM_AUDIO_MODE_STATUS"
+        scalar_value: {
+            int32_t: 126
+        }
+        enumerator: "ROUTING_CHANGE"
+        scalar_value: {
+            int32_t: 128
+        }
+        enumerator: "ROUTING_INFORMATION"
+        scalar_value: {
+            int32_t: 129
+        }
+        enumerator: "ACTIVE_SOURCE"
+        scalar_value: {
+            int32_t: 130
+        }
+        enumerator: "GIVE_PHYSICAL_ADDRESS"
+        scalar_value: {
+            int32_t: 131
+        }
+        enumerator: "REPORT_PHYSICAL_ADDRESS"
+        scalar_value: {
+            int32_t: 132
+        }
+        enumerator: "REQUEST_ACTIVE_SOURCE"
+        scalar_value: {
+            int32_t: 133
+        }
+        enumerator: "SET_STREAM_PATH"
+        scalar_value: {
+            int32_t: 134
+        }
+        enumerator: "DEVICE_VENDOR_ID"
+        scalar_value: {
+            int32_t: 135
+        }
+        enumerator: "VENDOR_COMMAND"
+        scalar_value: {
+            int32_t: 137
+        }
+        enumerator: "VENDOR_REMOTE_BUTTON_DOWN"
+        scalar_value: {
+            int32_t: 138
+        }
+        enumerator: "VENDOR_REMOTE_BUTTON_UP"
+        scalar_value: {
+            int32_t: 139
+        }
+        enumerator: "GIVE_DEVICE_VENDOR_ID"
+        scalar_value: {
+            int32_t: 140
+        }
+        enumerator: "MENU_REQUEST"
+        scalar_value: {
+            int32_t: 141
+        }
+        enumerator: "MENU_STATUS"
+        scalar_value: {
+            int32_t: 142
+        }
+        enumerator: "GIVE_DEVICE_POWER_STATUS"
+        scalar_value: {
+            int32_t: 143
+        }
+        enumerator: "REPORT_POWER_STATUS"
+        scalar_value: {
+            int32_t: 144
+        }
+        enumerator: "GET_MENU_LANGUAGE"
+        scalar_value: {
+            int32_t: 145
+        }
+        enumerator: "SELECT_ANALOG_SERVICE"
+        scalar_value: {
+            int32_t: 146
+        }
+        enumerator: "SELECT_DIGITAL_SERVICE"
+        scalar_value: {
+            int32_t: 147
+        }
+        enumerator: "SET_DIGITAL_TIMER"
+        scalar_value: {
+            int32_t: 151
+        }
+        enumerator: "CLEAR_DIGITAL_TIMER"
+        scalar_value: {
+            int32_t: 153
+        }
+        enumerator: "SET_AUDIO_RATE"
+        scalar_value: {
+            int32_t: 154
+        }
+        enumerator: "INACTIVE_SOURCE"
+        scalar_value: {
+            int32_t: 157
+        }
+        enumerator: "CEC_VERSION"
+        scalar_value: {
+            int32_t: 158
+        }
+        enumerator: "GET_CEC_VERSION"
+        scalar_value: {
+            int32_t: 159
+        }
+        enumerator: "VENDOR_COMMAND_WITH_ID"
+        scalar_value: {
+            int32_t: 160
+        }
+        enumerator: "CLEAR_EXTERNAL_TIMER"
+        scalar_value: {
+            int32_t: 161
+        }
+        enumerator: "SET_EXTERNAL_TIMER"
+        scalar_value: {
+            int32_t: 162
+        }
+        enumerator: "INITIATE_ARC"
+        scalar_value: {
+            int32_t: 192
+        }
+        enumerator: "REPORT_ARC_INITIATED"
+        scalar_value: {
+            int32_t: 193
+        }
+        enumerator: "REPORT_ARC_TERMINATED"
+        scalar_value: {
+            int32_t: 194
+        }
+        enumerator: "REQUEST_ARC_INITIATION"
+        scalar_value: {
+            int32_t: 195
+        }
+        enumerator: "REQUEST_ARC_TERMINATION"
+        scalar_value: {
+            int32_t: 196
+        }
+        enumerator: "TERMINATE_ARC"
+        scalar_value: {
+            int32_t: 197
+        }
+        enumerator: "ABORT"
+        scalar_value: {
+            int32_t: 255
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::tv::cec::V1_0::AbortReason"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "UNRECOGNIZED_MODE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "NOT_IN_CORRECT_MODE"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "CANNOT_PROVIDE_SOURCE"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "INVALID_OPERAND"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "REFUSED"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "UNABLE_TO_DETERMINE"
+        scalar_value: {
+            int32_t: 5
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::tv::cec::V1_0::Result"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "SUCCESS"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "FAILURE_UNKNOWN"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "FAILURE_INVALID_ARGS"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "FAILURE_INVALID_STATE"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "FAILURE_NOT_SUPPORTED"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "FAILURE_BUSY"
+        scalar_value: {
+            int32_t: 5
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::tv::cec::V1_0::SendMessageResult"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "SUCCESS"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "NACK"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "BUSY"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "FAIL"
+        scalar_value: {
+            int32_t: 3
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::tv::cec::V1_0::HdmiPortType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "INPUT"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "OUTPUT"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::tv::cec::V1_0::OptionKey"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "WAKEUP"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "ENABLE_CEC"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "SYSTEM_CEC_CONTROL"
+        scalar_value: {
+            int32_t: 3
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::tv::cec::V1_0::CecMessage"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "initiator"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::tv::cec::V1_0::CecLogicalAddress"
+    }
+    struct_value: {
+        name: "destination"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::tv::cec::V1_0::CecLogicalAddress"
+    }
+    struct_value: {
+        name: "body"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::tv::cec::V1_0::HotplugEvent"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "connected"
+        type: TYPE_SCALAR
+        scalar_type: "bool_t"
+    }
+    struct_value: {
+        name: "portId"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::tv::cec::V1_0::HdmiPortInfo"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "type"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::tv::cec::V1_0::HdmiPortType"
+    }
+    struct_value: {
+        name: "portId"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "cecSupported"
+        type: TYPE_SCALAR
+        scalar_type: "bool_t"
+    }
+    struct_value: {
+        name: "arcSupported"
+        type: TYPE_SCALAR
+        scalar_type: "bool_t"
+    }
+    struct_value: {
+        name: "physicalAddress"
+        type: TYPE_SCALAR
+        scalar_type: "uint16_t"
+    }
+}
+
diff --git a/tv/input/1.0/vts/Android.mk b/tv/input/1.0/vts/Android.mk
new file mode 100644
index 0000000..f8610dd
--- /dev/null
+++ b/tv/input/1.0/vts/Android.mk
@@ -0,0 +1,122 @@
+#
+# Copyright (C) 2016 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+LOCAL_PATH := $(call my-dir)
+
+# build VTS driver for TvInput v1.0.
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libvts_driver_hidl_tv_input@1.0
+
+LOCAL_SRC_FILES := \
+  TvInput.vts \
+  TvInputCallback.vts \
+  types.vts \
+  ../../../../audio/common/2.0/vts/types.vts \
+
+LOCAL_SHARED_LIBRARIES += \
+  android.hardware.tv.input@1.0 \
+  libbase \
+  libutils \
+  libcutils \
+  liblog \
+  libhidlbase \
+  libhidltransport \
+  libhwbinder \
+  libprotobuf-cpp-full \
+  libvts_common \
+  libvts_datatype \
+  libvts_measurement \
+  libvts_multidevice_proto \
+
+LOCAL_PROTOC_OPTIMIZE_TYPE := full
+
+LOCAL_MULTILIB := both
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+# build VTS profiler for TvInput
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libvts_profiler_hidl_tv_input@1.0
+
+LOCAL_SRC_FILES := \
+  TvInput.vts \
+  types.vts \
+  ../../../../audio/common/2.0/vts/types.vts \
+
+LOCAL_C_INCLUDES += \
+  test/vts/drivers/libprofiling \
+
+LOCAL_VTS_MODE := PROFILER
+
+LOCAL_SHARED_LIBRARIES += \
+  android.hardware.tv.input@1.0 \
+  libbase \
+  libcutils \
+  liblog \
+  libhidlbase \
+  libhidltransport \
+  libhwbinder \
+  libprotobuf-cpp-full \
+  libvts_common \
+  libvts_multidevice_proto \
+  libvts_profiling \
+  libutils \
+
+LOCAL_PROTOC_OPTIMIZE_TYPE := full
+
+LOCAL_MULTILIB := both
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+# build VTS profiler for TvInputCallback
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libvts_profiler_hidl_tv_input_callback_@1.0
+
+LOCAL_SRC_FILES := \
+  TvInputCallback.vts \
+  types.vts \
+  ../../../../audio/common/2.0/vts/types.vts \
+
+LOCAL_C_INCLUDES += \
+  test/vts/drivers/libprofiling \
+
+LOCAL_VTS_MODE := PROFILER
+
+LOCAL_SHARED_LIBRARIES += \
+  android.hardware.tv.input@1.0 \
+  libbase \
+  libcutils \
+  liblog \
+  libhidlbase \
+  libhidltransport \
+  libhwbinder \
+  libprotobuf-cpp-full \
+  libvts_common \
+  libvts_multidevice_proto \
+  libvts_profiling \
+  libutils \
+
+LOCAL_PROTOC_OPTIMIZE_TYPE := full
+
+LOCAL_MULTILIB := both
+
+include $(BUILD_SHARED_LIBRARY)
+
diff --git a/tv/input/1.0/vts/TvInput.vts b/tv/input/1.0/vts/TvInput.vts
new file mode 100644
index 0000000..638fd08
--- /dev/null
+++ b/tv/input/1.0/vts/TvInput.vts
@@ -0,0 +1,97 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "ITvInput"
+
+package: "android.hardware.tv.input"
+
+import: "android.hardware.tv.input@1.0::ITvInputCallback"
+import: "android.hardware.tv.input@1.0::types"
+
+interface: {
+    api: {
+        name: "setCallback"
+        arg: {
+            type: TYPE_HIDL_CALLBACK
+            predefined_type: "ITvInputCallback"
+            is_callback: true
+        }
+        callflow: {
+            entry: true
+        }
+        callflow: {
+            exit: true
+        }
+        callflow: {
+            next: "getStreamConfigurations"
+        }
+    }
+
+    api: {
+        name: "getStreamConfigurations"
+        return_type_hidl: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::tv::input::V1_0::Result"
+        }
+        return_type_hidl: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRUCT
+                predefined_type: "::android::hardware::tv::input::V1_0::TvStreamConfig"
+            }
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        callflow: {
+            next: "openStream"
+            next: "getStreamConfigurations"
+            next: "closeStream"
+        }
+    }
+
+    api: {
+        name: "openStream"
+        return_type_hidl: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::tv::input::V1_0::Result"
+        }
+        return_type_hidl: {
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        callflow: {
+            next: "closeStream"
+            next: "getStreamConfigurations"
+            next: "openStream"
+        }
+    }
+
+    api: {
+        name: "closeStream"
+        return_type_hidl: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::tv::input::V1_0::Result"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        callflow: {
+            next: "getStreamConfigurations"
+            next: "openStream"
+            next: "closeStream"
+        }
+    }
+
+}
diff --git a/tv/input/1.0/vts/TvInputCallback.vts b/tv/input/1.0/vts/TvInputCallback.vts
new file mode 100644
index 0000000..b1738a8
--- /dev/null
+++ b/tv/input/1.0/vts/TvInputCallback.vts
@@ -0,0 +1,18 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "ITvInputCallback"
+
+package: "android.hardware.tv.input"
+
+import: "android.hardware.tv.input@1.0::types"
+
+interface: {
+    api: {
+        name: "notify"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::tv::input::V1_0::TvInputEvent"
+        }
+    }
+
+}
diff --git a/tv/input/1.0/vts/types.vts b/tv/input/1.0/vts/types.vts
new file mode 100644
index 0000000..67d84db
--- /dev/null
+++ b/tv/input/1.0/vts/types.vts
@@ -0,0 +1,1836 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "types"
+
+package: "android.hardware.tv.input"
+
+import: "android.hardware.audio.common@2.0::types"
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioHandleConsts"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "AUDIO_IO_HANDLE_NONE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "AUDIO_MODULE_HANDLE_NONE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "AUDIO_PORT_HANDLE_NONE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "AUDIO_PATCH_HANDLE_NONE"
+        scalar_value: {
+            int32_t: 0
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::Uuid"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "timeLow"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "timeMid"
+        type: TYPE_SCALAR
+        scalar_type: "uint16_t"
+    }
+    struct_value: {
+        name: "versionAndTimeHigh"
+        type: TYPE_SCALAR
+        scalar_type: "uint16_t"
+    }
+    struct_value: {
+        name: "variantAndClockSeqHigh"
+        type: TYPE_SCALAR
+        scalar_type: "uint16_t"
+    }
+    struct_value: {
+        name: "node"
+        type: TYPE_ARRAY
+        vector_value: {
+            vector_size: 6
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioStreamType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "DEFAULT"
+        scalar_value: {
+            int32_t: -1
+        }
+        enumerator: "MIN"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "VOICE_CALL"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "SYSTEM"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "RING"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "MUSIC"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "ALARM"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "NOTIFICATION"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "BLUETOOTH_SCO"
+        scalar_value: {
+            int32_t: 6
+        }
+        enumerator: "ENFORCED_AUDIBLE"
+        scalar_value: {
+            int32_t: 7
+        }
+        enumerator: "DTMF"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "TTS"
+        scalar_value: {
+            int32_t: 9
+        }
+        enumerator: "ACCESSIBILITY"
+        scalar_value: {
+            int32_t: 10
+        }
+        enumerator: "REROUTING"
+        scalar_value: {
+            int32_t: 11
+        }
+        enumerator: "PATCH"
+        scalar_value: {
+            int32_t: 12
+        }
+        enumerator: "PUBLIC_CNT"
+        scalar_value: {
+            int32_t: 10
+        }
+        enumerator: "FOR_POLICY_CNT"
+        scalar_value: {
+            int32_t: 12
+        }
+        enumerator: "CNT"
+        scalar_value: {
+            int32_t: 13
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioSource"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "DEFAULT"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "MIC"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "VOICE_UPLINK"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "VOICE_DOWNLINK"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "VOICE_CALL"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "CAMCORDER"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "VOICE_RECOGNITION"
+        scalar_value: {
+            int32_t: 6
+        }
+        enumerator: "VOICE_COMMUNICATION"
+        scalar_value: {
+            int32_t: 7
+        }
+        enumerator: "REMOTE_SUBMIX"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "UNPROCESSED"
+        scalar_value: {
+            int32_t: 9
+        }
+        enumerator: "CNT"
+        scalar_value: {
+            int32_t: 10
+        }
+        enumerator: "MAX"
+        scalar_value: {
+            int32_t: 9
+        }
+        enumerator: "FM_TUNER"
+        scalar_value: {
+            int32_t: 1998
+        }
+        enumerator: "HOTWORD"
+        scalar_value: {
+            int32_t: 1999
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioSessionConsts"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "OUTPUT_STAGE"
+        scalar_value: {
+            int32_t: -1
+        }
+        enumerator: "OUTPUT_MIX"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "ALLOCATE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "NONE"
+        scalar_value: {
+            int32_t: 0
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioFormat"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "uint32_t"
+
+        enumerator: "INVALID"
+        scalar_value: {
+            uint32_t: 4294967295
+        }
+        enumerator: "DEFAULT"
+        scalar_value: {
+            uint32_t: 0
+        }
+        enumerator: "PCM"
+        scalar_value: {
+            uint32_t: 0
+        }
+        enumerator: "MP3"
+        scalar_value: {
+            uint32_t: 16777216
+        }
+        enumerator: "AMR_NB"
+        scalar_value: {
+            uint32_t: 33554432
+        }
+        enumerator: "AMR_WB"
+        scalar_value: {
+            uint32_t: 50331648
+        }
+        enumerator: "AAC"
+        scalar_value: {
+            uint32_t: 67108864
+        }
+        enumerator: "HE_AAC_V1"
+        scalar_value: {
+            uint32_t: 83886080
+        }
+        enumerator: "HE_AAC_V2"
+        scalar_value: {
+            uint32_t: 100663296
+        }
+        enumerator: "VORBIS"
+        scalar_value: {
+            uint32_t: 117440512
+        }
+        enumerator: "OPUS"
+        scalar_value: {
+            uint32_t: 134217728
+        }
+        enumerator: "AC3"
+        scalar_value: {
+            uint32_t: 150994944
+        }
+        enumerator: "E_AC3"
+        scalar_value: {
+            uint32_t: 167772160
+        }
+        enumerator: "DTS"
+        scalar_value: {
+            uint32_t: 184549376
+        }
+        enumerator: "DTS_HD"
+        scalar_value: {
+            uint32_t: 201326592
+        }
+        enumerator: "IEC61937"
+        scalar_value: {
+            uint32_t: 218103808
+        }
+        enumerator: "DOLBY_TRUEHD"
+        scalar_value: {
+            uint32_t: 234881024
+        }
+        enumerator: "MAIN_MASK"
+        scalar_value: {
+            uint32_t: 4278190080
+        }
+        enumerator: "SUB_MASK"
+        scalar_value: {
+            uint32_t: 16777215
+        }
+        enumerator: "PCM_SUB_16_BIT"
+        scalar_value: {
+            uint32_t: 1
+        }
+        enumerator: "PCM_SUB_8_BIT"
+        scalar_value: {
+            uint32_t: 2
+        }
+        enumerator: "PCM_SUB_32_BIT"
+        scalar_value: {
+            uint32_t: 3
+        }
+        enumerator: "PCM_SUB_8_24_BIT"
+        scalar_value: {
+            uint32_t: 4
+        }
+        enumerator: "PCM_SUB_FLOAT"
+        scalar_value: {
+            uint32_t: 5
+        }
+        enumerator: "PCM_SUB_24_BIT_PACKED"
+        scalar_value: {
+            uint32_t: 6
+        }
+        enumerator: "MP3_SUB_NONE"
+        scalar_value: {
+            uint32_t: 0
+        }
+        enumerator: "AMR_SUB_NONE"
+        scalar_value: {
+            uint32_t: 0
+        }
+        enumerator: "AAC_SUB_MAIN"
+        scalar_value: {
+            uint32_t: 1
+        }
+        enumerator: "AAC_SUB_LC"
+        scalar_value: {
+            uint32_t: 2
+        }
+        enumerator: "AAC_SUB_SSR"
+        scalar_value: {
+            uint32_t: 4
+        }
+        enumerator: "AAC_SUB_LTP"
+        scalar_value: {
+            uint32_t: 8
+        }
+        enumerator: "AAC_SUB_HE_V1"
+        scalar_value: {
+            uint32_t: 16
+        }
+        enumerator: "AAC_SUB_SCALABLE"
+        scalar_value: {
+            uint32_t: 32
+        }
+        enumerator: "AAC_SUB_ERLC"
+        scalar_value: {
+            uint32_t: 64
+        }
+        enumerator: "AAC_SUB_LD"
+        scalar_value: {
+            uint32_t: 128
+        }
+        enumerator: "AAC_SUB_HE_V2"
+        scalar_value: {
+            uint32_t: 256
+        }
+        enumerator: "AAC_SUB_ELD"
+        scalar_value: {
+            uint32_t: 512
+        }
+        enumerator: "VORBIS_SUB_NONE"
+        scalar_value: {
+            uint32_t: 0
+        }
+        enumerator: "PCM_16_BIT"
+        scalar_value: {
+            uint32_t: 1
+        }
+        enumerator: "PCM_8_BIT"
+        scalar_value: {
+            uint32_t: 2
+        }
+        enumerator: "PCM_32_BIT"
+        scalar_value: {
+            uint32_t: 3
+        }
+        enumerator: "PCM_8_24_BIT"
+        scalar_value: {
+            uint32_t: 4
+        }
+        enumerator: "PCM_FLOAT"
+        scalar_value: {
+            uint32_t: 5
+        }
+        enumerator: "PCM_24_BIT_PACKED"
+        scalar_value: {
+            uint32_t: 6
+        }
+        enumerator: "AAC_MAIN"
+        scalar_value: {
+            uint32_t: 67108865
+        }
+        enumerator: "AAC_LC"
+        scalar_value: {
+            uint32_t: 67108866
+        }
+        enumerator: "AAC_SSR"
+        scalar_value: {
+            uint32_t: 67108868
+        }
+        enumerator: "AAC_LTP"
+        scalar_value: {
+            uint32_t: 67108872
+        }
+        enumerator: "AAC_HE_V1"
+        scalar_value: {
+            uint32_t: 67108880
+        }
+        enumerator: "AAC_SCALABLE"
+        scalar_value: {
+            uint32_t: 67108896
+        }
+        enumerator: "AAC_ERLC"
+        scalar_value: {
+            uint32_t: 67108928
+        }
+        enumerator: "AAC_LD"
+        scalar_value: {
+            uint32_t: 67108992
+        }
+        enumerator: "AAC_HE_V2"
+        scalar_value: {
+            uint32_t: 67109120
+        }
+        enumerator: "AAC_ELD"
+        scalar_value: {
+            uint32_t: 67109376
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::FixedChannelCount"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "FCC_2"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "FCC_8"
+        scalar_value: {
+            int32_t: 8
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioChannelMask"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "uint32_t"
+
+        enumerator: "REPRESENTATION_POSITION"
+        scalar_value: {
+            uint32_t: 0
+        }
+        enumerator: "REPRESENTATION_INDEX"
+        scalar_value: {
+            uint32_t: 2
+        }
+        enumerator: "NONE"
+        scalar_value: {
+            uint32_t: 0
+        }
+        enumerator: "INVALID"
+        scalar_value: {
+            uint32_t: 3221225472
+        }
+        enumerator: "OUT_FRONT_LEFT"
+        scalar_value: {
+            uint32_t: 1
+        }
+        enumerator: "OUT_FRONT_RIGHT"
+        scalar_value: {
+            uint32_t: 2
+        }
+        enumerator: "OUT_FRONT_CENTER"
+        scalar_value: {
+            uint32_t: 4
+        }
+        enumerator: "OUT_LOW_FREQUENCY"
+        scalar_value: {
+            uint32_t: 8
+        }
+        enumerator: "OUT_BACK_LEFT"
+        scalar_value: {
+            uint32_t: 16
+        }
+        enumerator: "OUT_BACK_RIGHT"
+        scalar_value: {
+            uint32_t: 32
+        }
+        enumerator: "OUT_FRONT_LEFT_OF_CENTER"
+        scalar_value: {
+            uint32_t: 64
+        }
+        enumerator: "OUT_FRONT_RIGHT_OF_CENTER"
+        scalar_value: {
+            uint32_t: 128
+        }
+        enumerator: "OUT_BACK_CENTER"
+        scalar_value: {
+            uint32_t: 256
+        }
+        enumerator: "OUT_SIDE_LEFT"
+        scalar_value: {
+            uint32_t: 512
+        }
+        enumerator: "OUT_SIDE_RIGHT"
+        scalar_value: {
+            uint32_t: 1024
+        }
+        enumerator: "OUT_TOP_CENTER"
+        scalar_value: {
+            uint32_t: 2048
+        }
+        enumerator: "OUT_TOP_FRONT_LEFT"
+        scalar_value: {
+            uint32_t: 4096
+        }
+        enumerator: "OUT_TOP_FRONT_CENTER"
+        scalar_value: {
+            uint32_t: 8192
+        }
+        enumerator: "OUT_TOP_FRONT_RIGHT"
+        scalar_value: {
+            uint32_t: 16384
+        }
+        enumerator: "OUT_TOP_BACK_LEFT"
+        scalar_value: {
+            uint32_t: 32768
+        }
+        enumerator: "OUT_TOP_BACK_CENTER"
+        scalar_value: {
+            uint32_t: 65536
+        }
+        enumerator: "OUT_TOP_BACK_RIGHT"
+        scalar_value: {
+            uint32_t: 131072
+        }
+        enumerator: "OUT_MONO"
+        scalar_value: {
+            uint32_t: 1
+        }
+        enumerator: "OUT_STEREO"
+        scalar_value: {
+            uint32_t: 3
+        }
+        enumerator: "OUT_QUAD"
+        scalar_value: {
+            uint32_t: 51
+        }
+        enumerator: "OUT_QUAD_BACK"
+        scalar_value: {
+            uint32_t: 51
+        }
+        enumerator: "OUT_QUAD_SIDE"
+        scalar_value: {
+            uint32_t: 1539
+        }
+        enumerator: "OUT_5POINT1"
+        scalar_value: {
+            uint32_t: 63
+        }
+        enumerator: "OUT_5POINT1_BACK"
+        scalar_value: {
+            uint32_t: 63
+        }
+        enumerator: "OUT_5POINT1_SIDE"
+        scalar_value: {
+            uint32_t: 1551
+        }
+        enumerator: "OUT_7POINT1"
+        scalar_value: {
+            uint32_t: 1599
+        }
+        enumerator: "OUT_ALL"
+        scalar_value: {
+            uint32_t: 262143
+        }
+        enumerator: "IN_LEFT"
+        scalar_value: {
+            uint32_t: 4
+        }
+        enumerator: "IN_RIGHT"
+        scalar_value: {
+            uint32_t: 8
+        }
+        enumerator: "IN_FRONT"
+        scalar_value: {
+            uint32_t: 16
+        }
+        enumerator: "IN_BACK"
+        scalar_value: {
+            uint32_t: 32
+        }
+        enumerator: "IN_LEFT_PROCESSED"
+        scalar_value: {
+            uint32_t: 64
+        }
+        enumerator: "IN_RIGHT_PROCESSED"
+        scalar_value: {
+            uint32_t: 128
+        }
+        enumerator: "IN_FRONT_PROCESSED"
+        scalar_value: {
+            uint32_t: 256
+        }
+        enumerator: "IN_BACK_PROCESSED"
+        scalar_value: {
+            uint32_t: 512
+        }
+        enumerator: "IN_PRESSURE"
+        scalar_value: {
+            uint32_t: 1024
+        }
+        enumerator: "IN_X_AXIS"
+        scalar_value: {
+            uint32_t: 2048
+        }
+        enumerator: "IN_Y_AXIS"
+        scalar_value: {
+            uint32_t: 4096
+        }
+        enumerator: "IN_Z_AXIS"
+        scalar_value: {
+            uint32_t: 8192
+        }
+        enumerator: "IN_VOICE_UPLINK"
+        scalar_value: {
+            uint32_t: 16384
+        }
+        enumerator: "IN_VOICE_DNLINK"
+        scalar_value: {
+            uint32_t: 32768
+        }
+        enumerator: "IN_MONO"
+        scalar_value: {
+            uint32_t: 16
+        }
+        enumerator: "IN_STEREO"
+        scalar_value: {
+            uint32_t: 12
+        }
+        enumerator: "IN_FRONT_BACK"
+        scalar_value: {
+            uint32_t: 48
+        }
+        enumerator: "IN_ALL"
+        scalar_value: {
+            uint32_t: 65532
+        }
+        enumerator: "COUNT_MAX"
+        scalar_value: {
+            uint32_t: 30
+        }
+        enumerator: "INDEX_HDR"
+        scalar_value: {
+            uint32_t: 2147483648
+        }
+        enumerator: "INDEX_MASK_1"
+        scalar_value: {
+            uint32_t: 2147483649
+        }
+        enumerator: "INDEX_MASK_2"
+        scalar_value: {
+            uint32_t: 2147483651
+        }
+        enumerator: "INDEX_MASK_3"
+        scalar_value: {
+            uint32_t: 2147483655
+        }
+        enumerator: "INDEX_MASK_4"
+        scalar_value: {
+            uint32_t: 2147483663
+        }
+        enumerator: "INDEX_MASK_5"
+        scalar_value: {
+            uint32_t: 2147483679
+        }
+        enumerator: "INDEX_MASK_6"
+        scalar_value: {
+            uint32_t: 2147483711
+        }
+        enumerator: "INDEX_MASK_7"
+        scalar_value: {
+            uint32_t: 2147483775
+        }
+        enumerator: "INDEX_MASK_8"
+        scalar_value: {
+            uint32_t: 2147483903
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioInterleave"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "LEFT"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "RIGHT"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioMode"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "INVALID"
+        scalar_value: {
+            int32_t: -2
+        }
+        enumerator: "CURRENT"
+        scalar_value: {
+            int32_t: -1
+        }
+        enumerator: "NORMAL"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "RINGTONE"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "IN_CALL"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "IN_COMMUNICATION"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "CNT"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "MAX"
+        scalar_value: {
+            int32_t: 3
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioDevice"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "uint32_t"
+
+        enumerator: "NONE"
+        scalar_value: {
+            uint32_t: 0
+        }
+        enumerator: "BIT_IN"
+        scalar_value: {
+            uint32_t: 2147483648
+        }
+        enumerator: "BIT_DEFAULT"
+        scalar_value: {
+            uint32_t: 1073741824
+        }
+        enumerator: "OUT_EARPIECE"
+        scalar_value: {
+            uint32_t: 1
+        }
+        enumerator: "OUT_SPEAKER"
+        scalar_value: {
+            uint32_t: 2
+        }
+        enumerator: "OUT_WIRED_HEADSET"
+        scalar_value: {
+            uint32_t: 4
+        }
+        enumerator: "OUT_WIRED_HEADPHONE"
+        scalar_value: {
+            uint32_t: 8
+        }
+        enumerator: "OUT_BLUETOOTH_SCO"
+        scalar_value: {
+            uint32_t: 16
+        }
+        enumerator: "OUT_BLUETOOTH_SCO_HEADSET"
+        scalar_value: {
+            uint32_t: 32
+        }
+        enumerator: "OUT_BLUETOOTH_SCO_CARKIT"
+        scalar_value: {
+            uint32_t: 64
+        }
+        enumerator: "OUT_BLUETOOTH_A2DP"
+        scalar_value: {
+            uint32_t: 128
+        }
+        enumerator: "OUT_BLUETOOTH_A2DP_HEADPHONES"
+        scalar_value: {
+            uint32_t: 256
+        }
+        enumerator: "OUT_BLUETOOTH_A2DP_SPEAKER"
+        scalar_value: {
+            uint32_t: 512
+        }
+        enumerator: "OUT_AUX_DIGITAL"
+        scalar_value: {
+            uint32_t: 1024
+        }
+        enumerator: "OUT_HDMI"
+        scalar_value: {
+            uint32_t: 1024
+        }
+        enumerator: "OUT_ANLG_DOCK_HEADSET"
+        scalar_value: {
+            uint32_t: 2048
+        }
+        enumerator: "OUT_DGTL_DOCK_HEADSET"
+        scalar_value: {
+            uint32_t: 4096
+        }
+        enumerator: "OUT_USB_ACCESSORY"
+        scalar_value: {
+            uint32_t: 8192
+        }
+        enumerator: "OUT_USB_DEVICE"
+        scalar_value: {
+            uint32_t: 16384
+        }
+        enumerator: "OUT_REMOTE_SUBMIX"
+        scalar_value: {
+            uint32_t: 32768
+        }
+        enumerator: "OUT_TELEPHONY_TX"
+        scalar_value: {
+            uint32_t: 65536
+        }
+        enumerator: "OUT_LINE"
+        scalar_value: {
+            uint32_t: 131072
+        }
+        enumerator: "OUT_HDMI_ARC"
+        scalar_value: {
+            uint32_t: 262144
+        }
+        enumerator: "OUT_SPDIF"
+        scalar_value: {
+            uint32_t: 524288
+        }
+        enumerator: "OUT_FM"
+        scalar_value: {
+            uint32_t: 1048576
+        }
+        enumerator: "OUT_AUX_LINE"
+        scalar_value: {
+            uint32_t: 2097152
+        }
+        enumerator: "OUT_SPEAKER_SAFE"
+        scalar_value: {
+            uint32_t: 4194304
+        }
+        enumerator: "OUT_IP"
+        scalar_value: {
+            uint32_t: 8388608
+        }
+        enumerator: "OUT_BUS"
+        scalar_value: {
+            uint32_t: 16777216
+        }
+        enumerator: "OUT_DEFAULT"
+        scalar_value: {
+            uint32_t: 1073741824
+        }
+        enumerator: "OUT_ALL"
+        scalar_value: {
+            uint32_t: 1107296255
+        }
+        enumerator: "OUT_ALL_A2DP"
+        scalar_value: {
+            uint32_t: 896
+        }
+        enumerator: "OUT_ALL_SCO"
+        scalar_value: {
+            uint32_t: 112
+        }
+        enumerator: "OUT_ALL_USB"
+        scalar_value: {
+            uint32_t: 24576
+        }
+        enumerator: "IN_COMMUNICATION"
+        scalar_value: {
+            uint32_t: 2147483649
+        }
+        enumerator: "IN_AMBIENT"
+        scalar_value: {
+            uint32_t: 2147483650
+        }
+        enumerator: "IN_BUILTIN_MIC"
+        scalar_value: {
+            uint32_t: 2147483652
+        }
+        enumerator: "IN_BLUETOOTH_SCO_HEADSET"
+        scalar_value: {
+            uint32_t: 2147483656
+        }
+        enumerator: "IN_WIRED_HEADSET"
+        scalar_value: {
+            uint32_t: 2147483664
+        }
+        enumerator: "IN_AUX_DIGITAL"
+        scalar_value: {
+            uint32_t: 2147483680
+        }
+        enumerator: "IN_HDMI"
+        scalar_value: {
+            uint32_t: 2147483680
+        }
+        enumerator: "IN_VOICE_CALL"
+        scalar_value: {
+            uint32_t: 2147483712
+        }
+        enumerator: "IN_TELEPHONY_RX"
+        scalar_value: {
+            uint32_t: 2147483712
+        }
+        enumerator: "IN_BACK_MIC"
+        scalar_value: {
+            uint32_t: 2147483776
+        }
+        enumerator: "IN_REMOTE_SUBMIX"
+        scalar_value: {
+            uint32_t: 2147483904
+        }
+        enumerator: "IN_ANLG_DOCK_HEADSET"
+        scalar_value: {
+            uint32_t: 2147484160
+        }
+        enumerator: "IN_DGTL_DOCK_HEADSET"
+        scalar_value: {
+            uint32_t: 2147484672
+        }
+        enumerator: "IN_USB_ACCESSORY"
+        scalar_value: {
+            uint32_t: 2147485696
+        }
+        enumerator: "IN_USB_DEVICE"
+        scalar_value: {
+            uint32_t: 2147487744
+        }
+        enumerator: "IN_FM_TUNER"
+        scalar_value: {
+            uint32_t: 2147491840
+        }
+        enumerator: "IN_TV_TUNER"
+        scalar_value: {
+            uint32_t: 2147500032
+        }
+        enumerator: "IN_LINE"
+        scalar_value: {
+            uint32_t: 2147516416
+        }
+        enumerator: "IN_SPDIF"
+        scalar_value: {
+            uint32_t: 2147549184
+        }
+        enumerator: "IN_BLUETOOTH_A2DP"
+        scalar_value: {
+            uint32_t: 2147614720
+        }
+        enumerator: "IN_LOOPBACK"
+        scalar_value: {
+            uint32_t: 2147745792
+        }
+        enumerator: "IN_IP"
+        scalar_value: {
+            uint32_t: 2148007936
+        }
+        enumerator: "IN_BUS"
+        scalar_value: {
+            uint32_t: 2148532224
+        }
+        enumerator: "IN_DEFAULT"
+        scalar_value: {
+            uint32_t: 3221225472
+        }
+        enumerator: "IN_ALL"
+        scalar_value: {
+            uint32_t: 3223322623
+        }
+        enumerator: "IN_ALL_SCO"
+        scalar_value: {
+            uint32_t: 2147483656
+        }
+        enumerator: "IN_ALL_USB"
+        scalar_value: {
+            uint32_t: 2147489792
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioOutputFlag"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "NONE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "DIRECT"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "PRIMARY"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "FAST"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "DEEP_BUFFER"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "COMPRESS_OFFLOAD"
+        scalar_value: {
+            int32_t: 16
+        }
+        enumerator: "NON_BLOCKING"
+        scalar_value: {
+            int32_t: 32
+        }
+        enumerator: "HW_AV_SYNC"
+        scalar_value: {
+            int32_t: 64
+        }
+        enumerator: "TTS"
+        scalar_value: {
+            int32_t: 128
+        }
+        enumerator: "RAW"
+        scalar_value: {
+            int32_t: 256
+        }
+        enumerator: "SYNC"
+        scalar_value: {
+            int32_t: 512
+        }
+        enumerator: "IEC958_NONAUDIO"
+        scalar_value: {
+            int32_t: 1024
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioInputFlag"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "NONE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "FAST"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "HW_HOTWORD"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "RAW"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "SYNC"
+        scalar_value: {
+            int32_t: 8
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioOffloadInfo"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "sampleRateHz"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "channelMask"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioChannelMask"
+    }
+    struct_value: {
+        name: "format"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioFormat"
+    }
+    struct_value: {
+        name: "streamType"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioStreamType"
+    }
+    struct_value: {
+        name: "bitRatePerSecond"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "durationMicroseconds"
+        type: TYPE_SCALAR
+        scalar_type: "int64_t"
+    }
+    struct_value: {
+        name: "hasVideo"
+        type: TYPE_SCALAR
+        scalar_type: "bool_t"
+    }
+    struct_value: {
+        name: "isStreaming"
+        type: TYPE_SCALAR
+        scalar_type: "bool_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioConfig"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "sampleRateHz"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "channelMask"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioChannelMask"
+    }
+    struct_value: {
+        name: "format"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioFormat"
+    }
+    struct_value: {
+        name: "offloadInfo"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioOffloadInfo"
+    }
+    struct_value: {
+        name: "frameCount"
+        type: TYPE_SCALAR
+        scalar_type: "uint64_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioGainMode"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "uint32_t"
+
+        enumerator: "JOINT"
+        scalar_value: {
+            uint32_t: 1
+        }
+        enumerator: "CHANNELS"
+        scalar_value: {
+            uint32_t: 2
+        }
+        enumerator: "RAMP"
+        scalar_value: {
+            uint32_t: 4
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioGain"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "mode"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioGainMode"
+    }
+    struct_value: {
+        name: "channelMask"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioChannelMask"
+    }
+    struct_value: {
+        name: "minValue"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "maxValue"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "defaultValue"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "stepValue"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "minRampMs"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "maxRampMs"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioGainConfig"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "index"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "mode"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioGainMode"
+    }
+    struct_value: {
+        name: "channelMask"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioChannelMask"
+    }
+    struct_value: {
+        name: "values"
+        type: TYPE_ARRAY
+        vector_value: {
+            vector_size: 32
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+    struct_value: {
+        name: "rampDurationMs"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioPortRole"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "NONE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "SOURCE"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "SINK"
+        scalar_value: {
+            int32_t: 2
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioPortType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "NONE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "DEVICE"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "MIX"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "SESSION"
+        scalar_value: {
+            int32_t: 3
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioPortConfigDeviceExt"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "hwModule"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "type"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioDevice"
+    }
+    struct_value: {
+        name: "address"
+        type: TYPE_ARRAY
+        vector_value: {
+            vector_size: 32
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioPortConfigSessionExt"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "session"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioPortConfigMask"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "uint32_t"
+
+        enumerator: "SAMPLE_RATE"
+        scalar_value: {
+            uint32_t: 1
+        }
+        enumerator: "CHANNEL_MASK"
+        scalar_value: {
+            uint32_t: 2
+        }
+        enumerator: "FORMAT"
+        scalar_value: {
+            uint32_t: 4
+        }
+        enumerator: "GAIN"
+        scalar_value: {
+            uint32_t: 8
+        }
+        enumerator: "ALL"
+        scalar_value: {
+            uint32_t: 15
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioPortConfig"
+    type: TYPE_STRUCT
+    sub_struct: {
+        name: "::android::hardware::audio::common::V2_0::AudioPortConfig::Ext"
+        type: TYPE_UNION
+        sub_union: {
+            name: "::android::hardware::audio::common::V2_0::AudioPortConfig::Ext::AudioPortConfigMixExt"
+            type: TYPE_STRUCT
+            sub_struct: {
+                name: "::android::hardware::audio::common::V2_0::AudioPortConfig::Ext::AudioPortConfigMixExt::UseCase"
+                type: TYPE_UNION
+                union_value: {
+                    name: "stream"
+                    type: TYPE_ENUM
+                    predefined_type: "::android::hardware::audio::common::V2_0::AudioStreamType"
+                }
+                union_value: {
+                    name: "source"
+                    type: TYPE_ENUM
+                    predefined_type: "::android::hardware::audio::common::V2_0::AudioSource"
+                }
+            }
+            struct_value: {
+                name: "hwModule"
+                type: TYPE_SCALAR
+                scalar_type: "int32_t"
+            }
+            struct_value: {
+                name: "ioHandle"
+                type: TYPE_SCALAR
+                scalar_type: "int32_t"
+            }
+            struct_value: {
+                name: "useCase"
+                type: TYPE_UNION
+                predefined_type: "::android::hardware::audio::common::V2_0::AudioPortConfig::Ext::AudioPortConfigMixExt::UseCase"
+            }
+        }
+        union_value: {
+            name: "device"
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::audio::common::V2_0::AudioPortConfigDeviceExt"
+        }
+        union_value: {
+            name: "mix"
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::audio::common::V2_0::AudioPortConfig::Ext::AudioPortConfigMixExt"
+        }
+        union_value: {
+            name: "session"
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::audio::common::V2_0::AudioPortConfigSessionExt"
+        }
+    }
+    struct_value: {
+        name: "id"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "configMask"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioPortConfigMask"
+    }
+    struct_value: {
+        name: "sampleRateHz"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "channelMask"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioChannelMask"
+    }
+    struct_value: {
+        name: "format"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioFormat"
+    }
+    struct_value: {
+        name: "gain"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioGainConfig"
+    }
+    struct_value: {
+        name: "type"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioPortType"
+    }
+    struct_value: {
+        name: "role"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioPortRole"
+    }
+    struct_value: {
+        name: "ext"
+        type: TYPE_UNION
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioPortConfig::Ext"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioPortDeviceExt"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "hwModule"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "type"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioDevice"
+    }
+    struct_value: {
+        name: "address"
+        type: TYPE_ARRAY
+        vector_value: {
+            vector_size: 32
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioMixLatencyClass"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "LOW"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "NORMAL"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioPortMixExt"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "hwModule"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "ioHandle"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "latencyClass"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioMixLatencyClass"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioPortSessionExt"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "session"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::audio::common::V2_0::AudioPort"
+    type: TYPE_STRUCT
+    sub_struct: {
+        name: "::android::hardware::audio::common::V2_0::AudioPort::Ext"
+        type: TYPE_UNION
+        union_value: {
+            name: "device"
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::audio::common::V2_0::AudioPortDeviceExt"
+        }
+        union_value: {
+            name: "mix"
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::audio::common::V2_0::AudioPortMixExt"
+        }
+        union_value: {
+            name: "session"
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::audio::common::V2_0::AudioPortSessionExt"
+        }
+    }
+    struct_value: {
+        name: "id"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "role"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioPortRole"
+    }
+    struct_value: {
+        name: "name"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "sampleRates"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+    }
+    struct_value: {
+        name: "channelMasks"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::audio::common::V2_0::AudioChannelMask"
+        }
+    }
+    struct_value: {
+        name: "formats"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::audio::common::V2_0::AudioFormat"
+        }
+    }
+    struct_value: {
+        name: "gains"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::audio::common::V2_0::AudioGain"
+        }
+    }
+    struct_value: {
+        name: "activeConfig"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioPortConfig"
+    }
+    struct_value: {
+        name: "type"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioPortType"
+    }
+    struct_value: {
+        name: "ext"
+        type: TYPE_UNION
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioPort::Ext"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::tv::input::V1_0::Result"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "OK"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "UNKNOWN"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "NO_RESOURCE"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "INVALID_ARGUMENTS"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "INVALID_STATE"
+        scalar_value: {
+            int32_t: 4
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::tv::input::V1_0::TvInputType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "OTHER"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "TUNER"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "COMPOSITE"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "SVIDEO"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "SCART"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "COMPONENT"
+        scalar_value: {
+            int32_t: 6
+        }
+        enumerator: "VGA"
+        scalar_value: {
+            int32_t: 7
+        }
+        enumerator: "DVI"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "HDMI"
+        scalar_value: {
+            int32_t: 9
+        }
+        enumerator: "DISPLAY_PORT"
+        scalar_value: {
+            int32_t: 10
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::tv::input::V1_0::TvInputDeviceInfo"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "deviceId"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "type"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::tv::input::V1_0::TvInputType"
+    }
+    struct_value: {
+        name: "portId"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "audioType"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::audio::common::V2_0::AudioDevice"
+    }
+    struct_value: {
+        name: "audioAddress"
+        type: TYPE_ARRAY
+        vector_value: {
+            vector_size: 32
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::tv::input::V1_0::TvInputEventType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "DEVICE_AVAILABLE"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "DEVICE_UNAVAILABLE"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "STREAM_CONFIGURATIONS_CHANGED"
+        scalar_value: {
+            int32_t: 3
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::tv::input::V1_0::TvInputEvent"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "type"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::tv::input::V1_0::TvInputEventType"
+    }
+    struct_value: {
+        name: "deviceInfo"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::tv::input::V1_0::TvInputDeviceInfo"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::tv::input::V1_0::TvStreamConfig"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "streamId"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "maxVideoWidth"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "maxVideoHeight"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+}
+
diff --git a/vehicle/2.0/vts/Android.mk b/vehicle/2.0/vts/Android.mk
new file mode 100644
index 0000000..8370067
--- /dev/null
+++ b/vehicle/2.0/vts/Android.mk
@@ -0,0 +1,120 @@
+#
+# Copyright (C) 2016 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+LOCAL_PATH := $(call my-dir)
+
+# build VTS driver for Vehicle v2.0.
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libvts_driver_hidl_vehicle@2.0
+
+LOCAL_SRC_FILES := \
+  Vehicle.vts \
+  VehicleCallback.vts \
+  types.vts \
+
+LOCAL_SHARED_LIBRARIES += \
+  android.hardware.vehicle@2.0 \
+  libbase \
+  libutils \
+  libcutils \
+  liblog \
+  libhidlbase \
+  libhidltransport \
+  libhwbinder \
+  libprotobuf-cpp-full \
+  libvts_common \
+  libvts_datatype \
+  libvts_measurement \
+  libvts_multidevice_proto \
+
+LOCAL_PROTOC_OPTIMIZE_TYPE := full
+
+LOCAL_MULTILIB := both
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+# build profiler for Vehicle.
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libvts_profiler_hidl_vehicle@2.0
+
+LOCAL_SRC_FILES := \
+  Vehicle.vts \
+  types.vts \
+
+LOCAL_C_INCLUDES += \
+  test/vts/drivers/libprofiling \
+
+LOCAL_VTS_MODE := PROFILER
+
+LOCAL_SHARED_LIBRARIES := \
+  android.hardware.vehicle@2.0 \
+  libbase \
+  libcutils \
+  liblog \
+  libhidlbase \
+  libhidltransport \
+  libhwbinder \
+  libprotobuf-cpp-full \
+  libvts_common \
+  libvts_multidevice_proto \
+  libvts_profiling \
+  libutils \
+
+LOCAL_PROTOC_OPTIMIZE_TYPE := full
+
+LOCAL_MULTILIB := both
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+# build profiler for VehicleCallback.
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libvts_profiler_hidl_vehicle_callback_@2.0
+
+LOCAL_SRC_FILES := \
+  Vehicle.vts \
+  types.vts \
+
+LOCAL_C_INCLUDES += \
+  test/vts/drivers/libprofiling \
+
+LOCAL_VTS_MODE := PROFILER
+
+LOCAL_SHARED_LIBRARIES := \
+  android.hardware.vehicle@2.0 \
+  libbase \
+  libcutils \
+  liblog \
+  libhidlbase \
+  libhidltransport \
+  libhwbinder \
+  libprotobuf-cpp-full \
+  libvts_common \
+  libvts_multidevice_proto \
+  libvts_profiling \
+  libutils \
+
+LOCAL_PROTOC_OPTIMIZE_TYPE := full
+
+LOCAL_MULTILIB := both
+
+include $(BUILD_SHARED_LIBRARY)
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
\ No newline at end of file
diff --git a/vehicle/2.0/vts/Vehicle.vts b/vehicle/2.0/vts/Vehicle.vts
new file mode 100644
index 0000000..7fecfa9
--- /dev/null
+++ b/vehicle/2.0/vts/Vehicle.vts
@@ -0,0 +1,116 @@
+component_class: HAL_HIDL
+component_type_version: 2.0
+component_name: "IVehicle"
+
+package: "android.hardware.vehicle"
+
+import: "android.hardware.vehicle@2.0::IVehicleCallback"
+import: "android.hardware.vehicle@2.0::types"
+
+interface: {
+    api: {
+        name: "getAllPropConfigs"
+        return_type_hidl: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRUCT
+                predefined_type: "::android::hardware::vehicle::V2_0::VehiclePropConfig"
+            }
+        }
+    }
+
+    api: {
+        name: "getPropConfigs"
+        return_type_hidl: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::vehicle::V2_0::StatusCode"
+        }
+        return_type_hidl: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRUCT
+                predefined_type: "::android::hardware::vehicle::V2_0::VehiclePropConfig"
+            }
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_ENUM
+                predefined_type: "::android::hardware::vehicle::V2_0::VehicleProperty"
+            }
+        }
+    }
+
+    api: {
+        name: "get"
+        return_type_hidl: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::vehicle::V2_0::StatusCode"
+        }
+        return_type_hidl: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::vehicle::V2_0::VehiclePropValue"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::vehicle::V2_0::VehiclePropValue"
+        }
+    }
+
+    api: {
+        name: "set"
+        return_type_hidl: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::vehicle::V2_0::StatusCode"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::vehicle::V2_0::VehiclePropValue"
+        }
+    }
+
+    api: {
+        name: "subscribe"
+        return_type_hidl: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::vehicle::V2_0::StatusCode"
+        }
+        arg: {
+            type: TYPE_HIDL_CALLBACK
+            predefined_type: "IVehicleCallback"
+            is_callback: true
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRUCT
+                predefined_type: "::android::hardware::vehicle::V2_0::SubscribeOptions"
+            }
+        }
+    }
+
+    api: {
+        name: "unsubscribe"
+        return_type_hidl: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::vehicle::V2_0::StatusCode"
+        }
+        arg: {
+            type: TYPE_HIDL_CALLBACK
+            predefined_type: "IVehicleCallback"
+            is_callback: true
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::vehicle::V2_0::VehicleProperty"
+        }
+    }
+
+    api: {
+        name: "debugDump"
+        return_type_hidl: {
+            type: TYPE_STRING
+        }
+    }
+
+}
diff --git a/vehicle/2.0/vts/VehicleCallback.vts b/vehicle/2.0/vts/VehicleCallback.vts
new file mode 100644
index 0000000..b5ee152
--- /dev/null
+++ b/vehicle/2.0/vts/VehicleCallback.vts
@@ -0,0 +1,45 @@
+component_class: HAL_HIDL
+component_type_version: 2.0
+component_name: "IVehicleCallback"
+
+package: "android.hardware.vehicle"
+
+import: "android.hardware.vehicle@2.0::types"
+
+interface: {
+    api: {
+        name: "onPropertyEvent"
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_STRUCT
+                predefined_type: "::android::hardware::vehicle::V2_0::VehiclePropValue"
+            }
+        }
+    }
+
+    api: {
+        name: "onPropertySet"
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::vehicle::V2_0::VehiclePropValue"
+        }
+    }
+
+    api: {
+        name: "onPropertySetError"
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::vehicle::V2_0::StatusCode"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::vehicle::V2_0::VehicleProperty"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+}
diff --git a/vehicle/2.0/vts/types.vts b/vehicle/2.0/vts/types.vts
new file mode 100644
index 0000000..fc63add
--- /dev/null
+++ b/vehicle/2.0/vts/types.vts
@@ -0,0 +1,1821 @@
+component_class: HAL_HIDL
+component_type_version: 2.0
+component_name: "types"
+
+package: "android.hardware.vehicle"
+
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehiclePropertyType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "STRING"
+        scalar_value: {
+            int32_t: 1048576
+        }
+        enumerator: "BOOLEAN"
+        scalar_value: {
+            int32_t: 2097152
+        }
+        enumerator: "INT32"
+        scalar_value: {
+            int32_t: 4194304
+        }
+        enumerator: "INT32_VEC"
+        scalar_value: {
+            int32_t: 4259840
+        }
+        enumerator: "INT64"
+        scalar_value: {
+            int32_t: 5242880
+        }
+        enumerator: "FLOAT"
+        scalar_value: {
+            int32_t: 6291456
+        }
+        enumerator: "FLOAT_VEC"
+        scalar_value: {
+            int32_t: 6356992
+        }
+        enumerator: "BYTES"
+        scalar_value: {
+            int32_t: 7340032
+        }
+        enumerator: "MASK"
+        scalar_value: {
+            int32_t: 16711680
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleArea"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "GLOBAL"
+        scalar_value: {
+            int32_t: 16777216
+        }
+        enumerator: "ZONE"
+        scalar_value: {
+            int32_t: 33554432
+        }
+        enumerator: "WINDOW"
+        scalar_value: {
+            int32_t: 50331648
+        }
+        enumerator: "MIRROR"
+        scalar_value: {
+            int32_t: 67108864
+        }
+        enumerator: "SEAT"
+        scalar_value: {
+            int32_t: 83886080
+        }
+        enumerator: "DOOR"
+        scalar_value: {
+            int32_t: 100663296
+        }
+        enumerator: "MASK"
+        scalar_value: {
+            int32_t: 251658240
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehiclePropertyGroup"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "SYSTEM"
+        scalar_value: {
+            int32_t: 268435456
+        }
+        enumerator: "VENDOR"
+        scalar_value: {
+            int32_t: 536870912
+        }
+        enumerator: "MASK"
+        scalar_value: {
+            int32_t: -268435456
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleProperty"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "INVALID"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "INFO_VIN"
+        scalar_value: {
+            int32_t: 286261504
+        }
+        enumerator: "INFO_MAKE"
+        scalar_value: {
+            int32_t: 286261505
+        }
+        enumerator: "INFO_MODEL"
+        scalar_value: {
+            int32_t: 286261506
+        }
+        enumerator: "INFO_MODEL_YEAR"
+        scalar_value: {
+            int32_t: 289407235
+        }
+        enumerator: "INFO_FUEL_CAPACITY"
+        scalar_value: {
+            int32_t: 291504388
+        }
+        enumerator: "PERF_ODOMETER"
+        scalar_value: {
+            int32_t: 291504644
+        }
+        enumerator: "PERF_VEHICLE_SPEED"
+        scalar_value: {
+            int32_t: 291504647
+        }
+        enumerator: "ENGINE_COOLANT_TEMP"
+        scalar_value: {
+            int32_t: 291504897
+        }
+        enumerator: "ENGINE_OIL_TEMP"
+        scalar_value: {
+            int32_t: 291504900
+        }
+        enumerator: "ENGINE_RPM"
+        scalar_value: {
+            int32_t: 291504901
+        }
+        enumerator: "GEAR_SELECTION"
+        scalar_value: {
+            int32_t: 289408000
+        }
+        enumerator: "CURRENT_GEAR"
+        scalar_value: {
+            int32_t: 289408001
+        }
+        enumerator: "PARKING_BRAKE_ON"
+        scalar_value: {
+            int32_t: 287310850
+        }
+        enumerator: "DRIVING_STATUS"
+        scalar_value: {
+            int32_t: 289408004
+        }
+        enumerator: "FUEL_LEVEL_LOW"
+        scalar_value: {
+            int32_t: 287310853
+        }
+        enumerator: "NIGHT_MODE"
+        scalar_value: {
+            int32_t: 287310855
+        }
+        enumerator: "TURN_SIGNAL_STATE"
+        scalar_value: {
+            int32_t: 289408008
+        }
+        enumerator: "HVAC_FAN_SPEED"
+        scalar_value: {
+            int32_t: 306185472
+        }
+        enumerator: "HVAC_FAN_DIRECTION"
+        scalar_value: {
+            int32_t: 306185473
+        }
+        enumerator: "HVAC_TEMPERATURE_CURRENT"
+        scalar_value: {
+            int32_t: 308282626
+        }
+        enumerator: "HVAC_TEMPERATURE_SET"
+        scalar_value: {
+            int32_t: 308282627
+        }
+        enumerator: "HVAC_DEFROSTER"
+        scalar_value: {
+            int32_t: 320865540
+        }
+        enumerator: "HVAC_AC_ON"
+        scalar_value: {
+            int32_t: 304088325
+        }
+        enumerator: "HVAC_MAX_AC_ON"
+        scalar_value: {
+            int32_t: 304088326
+        }
+        enumerator: "HVAC_MAX_DEFROST_ON"
+        scalar_value: {
+            int32_t: 304088327
+        }
+        enumerator: "HVAC_RECIRC_ON"
+        scalar_value: {
+            int32_t: 304088328
+        }
+        enumerator: "HVAC_DUAL_ON"
+        scalar_value: {
+            int32_t: 304088329
+        }
+        enumerator: "HVAC_AUTO_ON"
+        scalar_value: {
+            int32_t: 304088330
+        }
+        enumerator: "HVAC_SEAT_TEMPERATURE"
+        scalar_value: {
+            int32_t: 356517131
+        }
+        enumerator: "HVAC_SIDE_MIRROR_HEAT"
+        scalar_value: {
+            int32_t: 339739916
+        }
+        enumerator: "HVAC_STEERING_WHEEL_TEMP"
+        scalar_value: {
+            int32_t: 289408269
+        }
+        enumerator: "HVAC_TEMPERATURE_UNITS"
+        scalar_value: {
+            int32_t: 306185486
+        }
+        enumerator: "HVAC_ACTUAL_FAN_SPEED_RPM"
+        scalar_value: {
+            int32_t: 306185487
+        }
+        enumerator: "HVAC_FAN_DIRECTION_AVAILABLE"
+        scalar_value: {
+            int32_t: 306185489
+        }
+        enumerator: "HVAC_POWER_ON"
+        scalar_value: {
+            int32_t: 304088336
+        }
+        enumerator: "ENV_OUTSIDE_TEMPERATURE"
+        scalar_value: {
+            int32_t: 291505923
+        }
+        enumerator: "ENV_CABIN_TEMPERATURE"
+        scalar_value: {
+            int32_t: 291505924
+        }
+        enumerator: "RADIO_PRESET"
+        scalar_value: {
+            int32_t: 289474561
+        }
+        enumerator: "AUDIO_FOCUS"
+        scalar_value: {
+            int32_t: 289474816
+        }
+        enumerator: "AUDIO_VOLUME"
+        scalar_value: {
+            int32_t: 289474817
+        }
+        enumerator: "AUDIO_VOLUME_LIMIT"
+        scalar_value: {
+            int32_t: 289474818
+        }
+        enumerator: "AUDIO_ROUTING_POLICY"
+        scalar_value: {
+            int32_t: 289474819
+        }
+        enumerator: "AUDIO_HW_VARIANT"
+        scalar_value: {
+            int32_t: 289409284
+        }
+        enumerator: "AUDIO_EXT_ROUTING_HINT"
+        scalar_value: {
+            int32_t: 289474821
+        }
+        enumerator: "AP_POWER_STATE"
+        scalar_value: {
+            int32_t: 2560
+        }
+        enumerator: "DISPLAY_BRIGHTNESS"
+        scalar_value: {
+            int32_t: 289409537
+        }
+        enumerator: "AP_POWER_BOOTUP_REASON"
+        scalar_value: {
+            int32_t: 289409538
+        }
+        enumerator: "HW_KEY_INPUT"
+        scalar_value: {
+            int32_t: 289475088
+        }
+        enumerator: "INSTRUMENT_CLUSTER_INFO"
+        scalar_value: {
+            int32_t: 289475104
+        }
+        enumerator: "UNIX_TIME"
+        scalar_value: {
+            int32_t: 290458160
+        }
+        enumerator: "CURRENT_TIME_IN_SECONDS"
+        scalar_value: {
+            int32_t: 289409585
+        }
+        enumerator: "DOOR_POS"
+        scalar_value: {
+            int32_t: 373295872
+        }
+        enumerator: "DOOR_MOVE"
+        scalar_value: {
+            int32_t: 373295873
+        }
+        enumerator: "DOOR_LOCK"
+        scalar_value: {
+            int32_t: 371198722
+        }
+        enumerator: "MIRROR_Z_POS"
+        scalar_value: {
+            int32_t: 339741504
+        }
+        enumerator: "MIRROR_Z_MOVE"
+        scalar_value: {
+            int32_t: 339741505
+        }
+        enumerator: "MIRROR_Y_POS"
+        scalar_value: {
+            int32_t: 339741506
+        }
+        enumerator: "MIRROR_Y_MOVE"
+        scalar_value: {
+            int32_t: 339741507
+        }
+        enumerator: "MIRROR_LOCK"
+        scalar_value: {
+            int32_t: 287312708
+        }
+        enumerator: "MIRROR_FOLD"
+        scalar_value: {
+            int32_t: 287312709
+        }
+        enumerator: "SEAT_MEMORY_SELECT"
+        scalar_value: {
+            int32_t: 356518784
+        }
+        enumerator: "SEAT_MEMORY_SET"
+        scalar_value: {
+            int32_t: 356518785
+        }
+        enumerator: "SEAT_BELT_BUCKLED"
+        scalar_value: {
+            int32_t: 354421634
+        }
+        enumerator: "SEAT_BELT_HEIGHT_POS"
+        scalar_value: {
+            int32_t: 356518787
+        }
+        enumerator: "SEAT_BELT_HEIGHT_MOVE"
+        scalar_value: {
+            int32_t: 356518788
+        }
+        enumerator: "SEAT_FORE_AFT_POS"
+        scalar_value: {
+            int32_t: 356518789
+        }
+        enumerator: "SEAT_FORE_AFT_MOVE"
+        scalar_value: {
+            int32_t: 356518790
+        }
+        enumerator: "SEAT_BACKREST_ANGLE_1_POS"
+        scalar_value: {
+            int32_t: 356518791
+        }
+        enumerator: "SEAT_BACKREST_ANGLE_1_MOVE"
+        scalar_value: {
+            int32_t: 356518792
+        }
+        enumerator: "SEAT_BACKREST_ANGLE_2_POS"
+        scalar_value: {
+            int32_t: 356518793
+        }
+        enumerator: "SEAT_BACKREST_ANGLE_2_MOVE"
+        scalar_value: {
+            int32_t: 356518794
+        }
+        enumerator: "SEAT_HEIGHT_POS"
+        scalar_value: {
+            int32_t: 356518795
+        }
+        enumerator: "SEAT_HEIGHT_MOVE"
+        scalar_value: {
+            int32_t: 356518796
+        }
+        enumerator: "SEAT_DEPTH_POS"
+        scalar_value: {
+            int32_t: 356518797
+        }
+        enumerator: "SEAT_DEPTH_MOVE"
+        scalar_value: {
+            int32_t: 356518798
+        }
+        enumerator: "SEAT_TILT_POS"
+        scalar_value: {
+            int32_t: 356518799
+        }
+        enumerator: "SEAT_TILT_MOVE"
+        scalar_value: {
+            int32_t: 356518800
+        }
+        enumerator: "SEAT_LUMBAR_FORE_AFT_POS"
+        scalar_value: {
+            int32_t: 356518801
+        }
+        enumerator: "SEAT_LUMBAR_FORE_AFT_MOVE"
+        scalar_value: {
+            int32_t: 356518802
+        }
+        enumerator: "SEAT_LUMBAR_SIDE_SUPPORT_POS"
+        scalar_value: {
+            int32_t: 356518803
+        }
+        enumerator: "SEAT_LUMBAR_SIDE_SUPPORT_MOVE"
+        scalar_value: {
+            int32_t: 356518804
+        }
+        enumerator: "SEAT_HEADREST_HEIGHT_POS"
+        scalar_value: {
+            int32_t: 289409941
+        }
+        enumerator: "SEAT_HEADREST_HEIGHT_MOVE"
+        scalar_value: {
+            int32_t: 356518806
+        }
+        enumerator: "SEAT_HEADREST_ANGLE_POS"
+        scalar_value: {
+            int32_t: 356518807
+        }
+        enumerator: "SEAT_HEADREST_ANGLE_MOVE"
+        scalar_value: {
+            int32_t: 356518808
+        }
+        enumerator: "SEAT_HEADREST_FORE_AFT_POS"
+        scalar_value: {
+            int32_t: 356518809
+        }
+        enumerator: "SEAT_HEADREST_FORE_AFT_MOVE"
+        scalar_value: {
+            int32_t: 356518810
+        }
+        enumerator: "WINDOW_POS"
+        scalar_value: {
+            int32_t: 289409984
+        }
+        enumerator: "WINDOW_MOVE"
+        scalar_value: {
+            int32_t: 289409985
+        }
+        enumerator: "WINDOW_VENT_POS"
+        scalar_value: {
+            int32_t: 289409986
+        }
+        enumerator: "WINDOW_VENT_MOVE"
+        scalar_value: {
+            int32_t: 289409987
+        }
+        enumerator: "WINDOW_LOCK"
+        scalar_value: {
+            int32_t: 287312836
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleHvacFanDirection"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "FACE"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "FLOOR"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "FACE_AND_FLOOR"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "DEFROST"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "DEFROST_AND_FLOOR"
+        scalar_value: {
+            int32_t: 5
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleRadioConstants"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "VEHICLE_RADIO_PRESET_MIN_VALUE"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleAudioFocusRequest"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "REQUEST_GAIN"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "REQUEST_GAIN_TRANSIENT"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "REQUEST_GAIN_TRANSIENT_MAY_DUCK"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "REQUEST_GAIN_TRANSIENT_NO_DUCK"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "REQUEST_RELEASE"
+        scalar_value: {
+            int32_t: 5
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleAudioFocusState"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "STATE_GAIN"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "STATE_GAIN_TRANSIENT"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "STATE_LOSS_TRANSIENT_CAN_DUCK"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "STATE_LOSS_TRANSIENT"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "STATE_LOSS"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "STATE_LOSS_TRANSIENT_EXLCUSIVE"
+        scalar_value: {
+            int32_t: 6
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleAudioStreamFlag"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "STREAM0_FLAG"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "STREAM1_FLAG"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "STREAM2_FLAG"
+        scalar_value: {
+            int32_t: 4
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleAudioStream"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "STREAM0"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "STREAM1"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleAudioExtFocusFlag"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "NONE_FLAG"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "PERMANENT_FLAG"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "TRANSIENT_FLAG"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "PLAY_ONLY_FLAG"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "MUTE_MEDIA_FLAG"
+        scalar_value: {
+            int32_t: 8
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleAudioFocusIndex"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "FOCUS"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "STREAMS"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "EXTERNAL_FOCUS_STATE"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "AUDIO_CONTEXTS"
+        scalar_value: {
+            int32_t: 3
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleAudioContextFlag"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "MUSIC_FLAG"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "NAVIGATION_FLAG"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "VOICE_COMMAND_FLAG"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "CALL_FLAG"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "ALARM_FLAG"
+        scalar_value: {
+            int32_t: 16
+        }
+        enumerator: "NOTIFICATION_FLAG"
+        scalar_value: {
+            int32_t: 32
+        }
+        enumerator: "UNKNOWN_FLAG"
+        scalar_value: {
+            int32_t: 64
+        }
+        enumerator: "SAFETY_ALERT_FLAG"
+        scalar_value: {
+            int32_t: 128
+        }
+        enumerator: "CD_ROM_FLAG"
+        scalar_value: {
+            int32_t: 256
+        }
+        enumerator: "AUX_AUDIO_FLAG"
+        scalar_value: {
+            int32_t: 512
+        }
+        enumerator: "SYSTEM_SOUND_FLAG"
+        scalar_value: {
+            int32_t: 1024
+        }
+        enumerator: "RADIO_FLAG"
+        scalar_value: {
+            int32_t: 2048
+        }
+        enumerator: "EXT_SOURCE_FLAG"
+        scalar_value: {
+            int32_t: 4096
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleAudioVolumeCapabilityFlag"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "PERSISTENT_STORAGE"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "MASTER_VOLUME_ONLY"
+        scalar_value: {
+            int32_t: 2
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleAudioVolumeState"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "STATE_OK"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "LIMIT_REACHED"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleAudioVolumeIndex"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "INDEX_STREAM"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "INDEX_VOLUME"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "INDEX_STATE"
+        scalar_value: {
+            int32_t: 2
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleAudioVolumeLimitIndex"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "STREAM"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "MAX_VOLUME"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleAudioRoutingPolicyIndex"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "STREAM"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "CONTEXTS"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleAudioHwVariantConfigFlag"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "INTERNAL_RADIO_FLAG"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleApPowerStateConfigFlag"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "ENABLE_DEEP_SLEEP_FLAG"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "CONFIG_SUPPORT_TIMER_POWER_ON_FLAG"
+        scalar_value: {
+            int32_t: 2
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleApPowerState"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "OFF"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "DEEP_SLEEP"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "ON_DISP_OFF"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "ON_FULL"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "SHUTDOWN_PREPARE"
+        scalar_value: {
+            int32_t: 4
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleApPowerStateShutdownParam"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "SHUTDOWN_IMMEDIATELY"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "CAN_SLEEP"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "SHUTDOWN_ONLY"
+        scalar_value: {
+            int32_t: 3
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleApPowerSetState"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "BOOT_COMPLETE"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "DEEP_SLEEP_ENTRY"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "DEEP_SLEEP_EXIT"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "SHUTDOWN_POSTPONE"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "SHUTDOWN_START"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "DISPLAY_OFF"
+        scalar_value: {
+            int32_t: 6
+        }
+        enumerator: "DISPLAY_ON"
+        scalar_value: {
+            int32_t: 7
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleApPowerStateIndex"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "STATE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "ADDITIONAL"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleApPowerBootupReason"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "USER_POWER_ON"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "USER_UNLOCK"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "TIMER"
+        scalar_value: {
+            int32_t: 2
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleHwKeyInputAction"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "ACTION_DOWN"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "ACTION_UP"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleDisplay"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "MAIN"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "INSTRUMENT_CLUSTER"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleInstrumentClusterType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "NONE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "HAL_INTERFACE"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "EXTERNAL_DISPLAY"
+        scalar_value: {
+            int32_t: 2
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleUnit"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "SHOULD_NOT_USE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "METER_PER_SEC"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "RPM"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "HERTZ"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "PERCENTILE"
+        scalar_value: {
+            int32_t: 16
+        }
+        enumerator: "MILLIMETER"
+        scalar_value: {
+            int32_t: 32
+        }
+        enumerator: "METER"
+        scalar_value: {
+            int32_t: 33
+        }
+        enumerator: "KILOMETER"
+        scalar_value: {
+            int32_t: 35
+        }
+        enumerator: "CELSIUS"
+        scalar_value: {
+            int32_t: 48
+        }
+        enumerator: "FAHRENHEIT"
+        scalar_value: {
+            int32_t: 49
+        }
+        enumerator: "KELVIN"
+        scalar_value: {
+            int32_t: 50
+        }
+        enumerator: "MILLILITER"
+        scalar_value: {
+            int32_t: 64
+        }
+        enumerator: "NANO_SECS"
+        scalar_value: {
+            int32_t: 80
+        }
+        enumerator: "SECS"
+        scalar_value: {
+            int32_t: 83
+        }
+        enumerator: "YEAR"
+        scalar_value: {
+            int32_t: 89
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehiclePropertyChangeMode"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "STATIC"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "ON_CHANGE"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "CONTINUOUS"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "POLL"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "ON_SET"
+        scalar_value: {
+            int32_t: 4
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehiclePropertyAccess"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "READ"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "WRITE"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "READ_WRITE"
+        scalar_value: {
+            int32_t: 3
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehiclePermissionModel"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "NO_RESTRICTION"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "OEM_ONLY"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "SYSTEM_APP_ONLY"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "OEM_OR_SYSTEM_APP"
+        scalar_value: {
+            int32_t: 3
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleDrivingStatus"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "UNRESTRICTED"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "NO_VIDEO"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "NO_KEYBOARD_INPUT"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "NO_VOICE_INPUT"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "NO_CONFIG"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "LIMIT_MESSAGE_LEN"
+        scalar_value: {
+            int32_t: 16
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleGear"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "GEAR_NEUTRAL"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "GEAR_REVERSE"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "GEAR_PARK"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "GEAR_DRIVE"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "GEAR_LOW"
+        scalar_value: {
+            int32_t: 16
+        }
+        enumerator: "GEAR_1"
+        scalar_value: {
+            int32_t: 16
+        }
+        enumerator: "GEAR_2"
+        scalar_value: {
+            int32_t: 32
+        }
+        enumerator: "GEAR_3"
+        scalar_value: {
+            int32_t: 64
+        }
+        enumerator: "GEAR_4"
+        scalar_value: {
+            int32_t: 128
+        }
+        enumerator: "GEAR_5"
+        scalar_value: {
+            int32_t: 256
+        }
+        enumerator: "GEAR_6"
+        scalar_value: {
+            int32_t: 512
+        }
+        enumerator: "GEAR_7"
+        scalar_value: {
+            int32_t: 1024
+        }
+        enumerator: "GEAR_8"
+        scalar_value: {
+            int32_t: 2048
+        }
+        enumerator: "GEAR_9"
+        scalar_value: {
+            int32_t: 4096
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleAreaZone"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "ROW_1_LEFT"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "ROW_1_CENTER"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "ROW_1_RIGHT"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "ROW_1"
+        scalar_value: {
+            int32_t: 8
+        }
+        enumerator: "ROW_2_LEFT"
+        scalar_value: {
+            int32_t: 16
+        }
+        enumerator: "ROW_2_CENTER"
+        scalar_value: {
+            int32_t: 32
+        }
+        enumerator: "ROW_2_RIGHT"
+        scalar_value: {
+            int32_t: 64
+        }
+        enumerator: "ROW_2"
+        scalar_value: {
+            int32_t: 128
+        }
+        enumerator: "ROW_3_LEFT"
+        scalar_value: {
+            int32_t: 256
+        }
+        enumerator: "ROW_3_CENTER"
+        scalar_value: {
+            int32_t: 512
+        }
+        enumerator: "ROW_3_RIGHT"
+        scalar_value: {
+            int32_t: 1024
+        }
+        enumerator: "ROW_3"
+        scalar_value: {
+            int32_t: 2048
+        }
+        enumerator: "ROW_4_LEFT"
+        scalar_value: {
+            int32_t: 4096
+        }
+        enumerator: "ROW_4_CENTER"
+        scalar_value: {
+            int32_t: 8192
+        }
+        enumerator: "ROW_4_RIGHT"
+        scalar_value: {
+            int32_t: 16384
+        }
+        enumerator: "ROW_4"
+        scalar_value: {
+            int32_t: 32768
+        }
+        enumerator: "WHOLE_CABIN"
+        scalar_value: {
+            int32_t: -2147483648
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleAreaSeat"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "ROW_1_LEFT"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "ROW_1_CENTER"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "ROW_1_RIGHT"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "ROW_2_LEFT"
+        scalar_value: {
+            int32_t: 16
+        }
+        enumerator: "ROW_2_CENTER"
+        scalar_value: {
+            int32_t: 32
+        }
+        enumerator: "ROW_2_RIGHT"
+        scalar_value: {
+            int32_t: 64
+        }
+        enumerator: "ROW_3_LEFT"
+        scalar_value: {
+            int32_t: 256
+        }
+        enumerator: "ROW_3_CENTER"
+        scalar_value: {
+            int32_t: 512
+        }
+        enumerator: "ROW_3_RIGHT"
+        scalar_value: {
+            int32_t: 1024
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleAreaWindow"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "FRONT_WINDSHIELD"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "REAR_WINDSHIELD"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "ROOF_TOP"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "ROW_1_LEFT"
+        scalar_value: {
+            int32_t: 16
+        }
+        enumerator: "ROW_1_RIGHT"
+        scalar_value: {
+            int32_t: 32
+        }
+        enumerator: "ROW_2_LEFT"
+        scalar_value: {
+            int32_t: 256
+        }
+        enumerator: "ROW_2_RIGHT"
+        scalar_value: {
+            int32_t: 512
+        }
+        enumerator: "ROW_3_LEFT"
+        scalar_value: {
+            int32_t: 4096
+        }
+        enumerator: "ROW_3_RIGHT"
+        scalar_value: {
+            int32_t: 8192
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleAreaDoor"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "ROW_1_LEFT"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "ROW_1_RIGHT"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "ROW_2_LEFT"
+        scalar_value: {
+            int32_t: 16
+        }
+        enumerator: "ROW_2_RIGHT"
+        scalar_value: {
+            int32_t: 64
+        }
+        enumerator: "ROW_3_LEFT"
+        scalar_value: {
+            int32_t: 256
+        }
+        enumerator: "ROW_3_RIGHT"
+        scalar_value: {
+            int32_t: 1024
+        }
+        enumerator: "HOOD"
+        scalar_value: {
+            int32_t: 268435456
+        }
+        enumerator: "REAR"
+        scalar_value: {
+            int32_t: 536870912
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleAreaMirror"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "DRIVER_LEFT"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "DRIVER_RIGHT"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "DRIVER_CENTER"
+        scalar_value: {
+            int32_t: 4
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleTurnSignal"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "NONE"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "RIGHT"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "LEFT"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "EMERGENCY"
+        scalar_value: {
+            int32_t: 4
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehicleAreaConfig"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "areaId"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "minInt32Value"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "maxInt32Value"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "minInt64Value"
+        type: TYPE_SCALAR
+        scalar_type: "int64_t"
+    }
+    struct_value: {
+        name: "maxInt64Value"
+        type: TYPE_SCALAR
+        scalar_type: "int64_t"
+    }
+    struct_value: {
+        name: "minFloatValue"
+        type: TYPE_SCALAR
+        scalar_type: "float_t"
+    }
+    struct_value: {
+        name: "maxFloatValue"
+        type: TYPE_SCALAR
+        scalar_type: "float_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehiclePropConfig"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "prop"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::vehicle::V2_0::VehicleProperty"
+    }
+    struct_value: {
+        name: "access"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::vehicle::V2_0::VehiclePropertyAccess"
+    }
+    struct_value: {
+        name: "changeMode"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::vehicle::V2_0::VehiclePropertyChangeMode"
+    }
+    struct_value: {
+        name: "permissionModel"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::vehicle::V2_0::VehiclePermissionModel"
+    }
+    struct_value: {
+        name: "supportedAreas"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "areaConfigs"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::vehicle::V2_0::VehicleAreaConfig"
+        }
+    }
+    struct_value: {
+        name: "configFlags"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "configArray"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+    struct_value: {
+        name: "configString"
+        type: TYPE_STRING
+    }
+    struct_value: {
+        name: "minSampleRate"
+        type: TYPE_SCALAR
+        scalar_type: "float_t"
+    }
+    struct_value: {
+        name: "maxSampleRate"
+        type: TYPE_SCALAR
+        scalar_type: "float_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehiclePropValue"
+    type: TYPE_STRUCT
+    sub_struct: {
+        name: "::android::hardware::vehicle::V2_0::VehiclePropValue::RawValue"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "int32Values"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "int32_t"
+            }
+        }
+        struct_value: {
+            name: "floatValues"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "float_t"
+            }
+        }
+        struct_value: {
+            name: "int64Values"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "int64_t"
+            }
+        }
+        struct_value: {
+            name: "bytes"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "stringValue"
+            type: TYPE_STRING
+        }
+    }
+    struct_value: {
+        name: "prop"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::vehicle::V2_0::VehicleProperty"
+    }
+    struct_value: {
+        name: "timestamp"
+        type: TYPE_SCALAR
+        scalar_type: "int64_t"
+    }
+    struct_value: {
+        name: "areaId"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "value"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::vehicle::V2_0::VehiclePropValue::RawValue"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::VehiclePropertyOperation"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "GENERIC"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "SET"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "GET"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "SUBSCRIBE"
+        scalar_value: {
+            int32_t: 3
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::SubscribeFlags"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "UNDEFINED"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "HAL_EVENT"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "SET_CALL"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "DEFAULT"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::SubscribeOptions"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "propId"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::vehicle::V2_0::VehicleProperty"
+    }
+    struct_value: {
+        name: "vehicleAreas"
+        type: TYPE_SCALAR
+        scalar_type: "int32_t"
+    }
+    struct_value: {
+        name: "sampleRate"
+        type: TYPE_SCALAR
+        scalar_type: "float_t"
+    }
+    struct_value: {
+        name: "flags"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::vehicle::V2_0::SubscribeFlags"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::vehicle::V2_0::StatusCode"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "OK"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "TRY_AGAIN"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "INVALID_ARG"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "NOT_AVAILABLE"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "ACCESS_DENIED"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "INTERNAL_ERROR"
+        scalar_value: {
+            int32_t: 5
+        }
+    }
+}
+
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
deleted file mode 100644
index b6ee3a3..0000000
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ /dev/null
@@ -1,33 +0,0 @@
-#
-# Copyright (C) 2016 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-include $(call all-subdir-makefiles)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
-  @echo "VTS host-driven test target: $(LOCAL_MODULE)"
-  $(hide) touch $@
diff --git a/wifi/1.0/default/Android.mk b/wifi/1.0/default/Android.mk
index 646613b..62d2e0b 100644
--- a/wifi/1.0/default/Android.mk
+++ b/wifi/1.0/default/Android.mk
@@ -16,7 +16,7 @@
 include $(CLEAR_VARS)
 LOCAL_MODULE := android.hardware.wifi@1.0-service
 LOCAL_MODULE_RELATIVE_PATH := hw
-LOCAL_CPPFLAGS := -std=c++11 -Wall -Wno-unused-parameter -Werror -Wextra
+LOCAL_CPPFLAGS := -Wall -Wno-unused-parameter -Werror -Wextra
 LOCAL_SRC_FILES := \
     service.cpp \
     wifi.cpp \