Introduce vendor stable aidl for wpa_supplicant

This commit introduces new vendor stable aidl for wpa_supplicant.

Adding supplicant vendor stable AIDL to allow doDriverCmd which is used
by System service module (QtiWifiService).
This was earlier done through HIDL interface.

Change-Id: I271994ab4be58976fe564ada887bccfbf3876be9
CRs-Fixed: 3196761
diff --git a/wifi/supplicant/aidl/Android.bp b/wifi/supplicant/aidl/Android.bp
new file mode 100644
index 0000000..5d72439
--- /dev/null
+++ b/wifi/supplicant/aidl/Android.bp
@@ -0,0 +1,23 @@
+aidl_interface {
+    name: "vendor.qti.hardware.wifi.supplicant",
+    system_ext_specific: true,
+    vendor_available: true,
+
+    srcs: [
+        "vendor/qti/hardware/wifi/supplicant/*.aidl",
+    ],
+    stability: "vintf",
+    backend: {
+        java: {
+            sdk_version: "module_current",
+            min_sdk_version: "Tiramisu",
+        },
+    },
+    versions_with_info: [
+        {
+            version: "1",
+            imports: [],
+        },
+    ],
+
+}
diff --git a/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/1/.hash b/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/1/.hash
new file mode 100644
index 0000000..ad414d5
--- /dev/null
+++ b/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/1/.hash
@@ -0,0 +1 @@
+42bd698acab7cceeb5125af52c0b8fd730f354da
diff --git a/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/1/vendor/qti/hardware/wifi/supplicant/ISupplicantVendor.aidl b/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/1/vendor/qti/hardware/wifi/supplicant/ISupplicantVendor.aidl
new file mode 100644
index 0000000..bf1dd5e
--- /dev/null
+++ b/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/1/vendor/qti/hardware/wifi/supplicant/ISupplicantVendor.aidl
@@ -0,0 +1,28 @@
+/* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.qti.hardware.wifi.supplicant;
+@VintfStability
+interface ISupplicantVendor {
+  vendor.qti.hardware.wifi.supplicant.ISupplicantVendorStaIface getVendorInterface(in vendor.qti.hardware.wifi.supplicant.IVendorIfaceInfo ifaceInfo);
+  vendor.qti.hardware.wifi.supplicant.IVendorIfaceInfo[] listVendorInterfaces();
+}
diff --git a/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/1/vendor/qti/hardware/wifi/supplicant/ISupplicantVendorStaIface.aidl b/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/1/vendor/qti/hardware/wifi/supplicant/ISupplicantVendorStaIface.aidl
new file mode 100644
index 0000000..31e1ac4
--- /dev/null
+++ b/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/1/vendor/qti/hardware/wifi/supplicant/ISupplicantVendorStaIface.aidl
@@ -0,0 +1,27 @@
+/* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.qti.hardware.wifi.supplicant;
+@VintfStability
+interface ISupplicantVendorStaIface {
+  String doDriverCmd(in String command);
+}
diff --git a/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/1/vendor/qti/hardware/wifi/supplicant/IVendorIfaceInfo.aidl b/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/1/vendor/qti/hardware/wifi/supplicant/IVendorIfaceInfo.aidl
new file mode 100644
index 0000000..3b5d712
--- /dev/null
+++ b/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/1/vendor/qti/hardware/wifi/supplicant/IVendorIfaceInfo.aidl
@@ -0,0 +1,28 @@
+/* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.qti.hardware.wifi.supplicant;
+@VintfStability
+parcelable IVendorIfaceInfo {
+  vendor.qti.hardware.wifi.supplicant.IVendorIfaceType type;
+  String name;
+}
diff --git a/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/1/vendor/qti/hardware/wifi/supplicant/IVendorIfaceType.aidl b/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/1/vendor/qti/hardware/wifi/supplicant/IVendorIfaceType.aidl
new file mode 100644
index 0000000..1b5bf91
--- /dev/null
+++ b/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/1/vendor/qti/hardware/wifi/supplicant/IVendorIfaceType.aidl
@@ -0,0 +1,27 @@
+/* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.qti.hardware.wifi.supplicant;
+@Backing(type="int") @VintfStability
+enum IVendorIfaceType {
+  STA = 0,
+}
diff --git a/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/1/vendor/qti/hardware/wifi/supplicant/SupplicantVendorStatusCode.aidl b/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/1/vendor/qti/hardware/wifi/supplicant/SupplicantVendorStatusCode.aidl
new file mode 100644
index 0000000..6ddcf4d
--- /dev/null
+++ b/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/1/vendor/qti/hardware/wifi/supplicant/SupplicantVendorStatusCode.aidl
@@ -0,0 +1,31 @@
+/* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.qti.hardware.wifi.supplicant;
+@VintfStability
+enum SupplicantVendorStatusCode {
+  SUCCESS = 0,
+  FAILURE_UNKNOWN = 1,
+  FAILURE_ARGS_INVALID = 2,
+  FAILURE_IFACE_INVALID = 3,
+  FAILURE_UNSUPPORTED = 4,
+}
diff --git a/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/current/vendor/qti/hardware/wifi/supplicant/ISupplicantVendor.aidl b/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/current/vendor/qti/hardware/wifi/supplicant/ISupplicantVendor.aidl
new file mode 100644
index 0000000..bf1dd5e
--- /dev/null
+++ b/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/current/vendor/qti/hardware/wifi/supplicant/ISupplicantVendor.aidl
@@ -0,0 +1,28 @@
+/* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.qti.hardware.wifi.supplicant;
+@VintfStability
+interface ISupplicantVendor {
+  vendor.qti.hardware.wifi.supplicant.ISupplicantVendorStaIface getVendorInterface(in vendor.qti.hardware.wifi.supplicant.IVendorIfaceInfo ifaceInfo);
+  vendor.qti.hardware.wifi.supplicant.IVendorIfaceInfo[] listVendorInterfaces();
+}
diff --git a/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/current/vendor/qti/hardware/wifi/supplicant/ISupplicantVendorStaIface.aidl b/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/current/vendor/qti/hardware/wifi/supplicant/ISupplicantVendorStaIface.aidl
new file mode 100644
index 0000000..31e1ac4
--- /dev/null
+++ b/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/current/vendor/qti/hardware/wifi/supplicant/ISupplicantVendorStaIface.aidl
@@ -0,0 +1,27 @@
+/* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.qti.hardware.wifi.supplicant;
+@VintfStability
+interface ISupplicantVendorStaIface {
+  String doDriverCmd(in String command);
+}
diff --git a/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/current/vendor/qti/hardware/wifi/supplicant/IVendorIfaceInfo.aidl b/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/current/vendor/qti/hardware/wifi/supplicant/IVendorIfaceInfo.aidl
new file mode 100644
index 0000000..3b5d712
--- /dev/null
+++ b/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/current/vendor/qti/hardware/wifi/supplicant/IVendorIfaceInfo.aidl
@@ -0,0 +1,28 @@
+/* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.qti.hardware.wifi.supplicant;
+@VintfStability
+parcelable IVendorIfaceInfo {
+  vendor.qti.hardware.wifi.supplicant.IVendorIfaceType type;
+  String name;
+}
diff --git a/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/current/vendor/qti/hardware/wifi/supplicant/IVendorIfaceType.aidl b/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/current/vendor/qti/hardware/wifi/supplicant/IVendorIfaceType.aidl
new file mode 100644
index 0000000..1b5bf91
--- /dev/null
+++ b/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/current/vendor/qti/hardware/wifi/supplicant/IVendorIfaceType.aidl
@@ -0,0 +1,27 @@
+/* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.qti.hardware.wifi.supplicant;
+@Backing(type="int") @VintfStability
+enum IVendorIfaceType {
+  STA = 0,
+}
diff --git a/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/current/vendor/qti/hardware/wifi/supplicant/SupplicantVendorStatusCode.aidl b/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/current/vendor/qti/hardware/wifi/supplicant/SupplicantVendorStatusCode.aidl
new file mode 100644
index 0000000..6ddcf4d
--- /dev/null
+++ b/wifi/supplicant/aidl/aidl_api/vendor.qti.hardware.wifi.supplicant/current/vendor/qti/hardware/wifi/supplicant/SupplicantVendorStatusCode.aidl
@@ -0,0 +1,31 @@
+/* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+//     the interface (from the latest frozen version), the build system will
+//     prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.qti.hardware.wifi.supplicant;
+@VintfStability
+enum SupplicantVendorStatusCode {
+  SUCCESS = 0,
+  FAILURE_UNKNOWN = 1,
+  FAILURE_ARGS_INVALID = 2,
+  FAILURE_IFACE_INVALID = 3,
+  FAILURE_UNSUPPORTED = 4,
+}
diff --git a/wifi/supplicant/aidl/vendor/qti/hardware/wifi/supplicant/ISupplicantVendor.aidl b/wifi/supplicant/aidl/vendor/qti/hardware/wifi/supplicant/ISupplicantVendor.aidl
new file mode 100644
index 0000000..a411541
--- /dev/null
+++ b/wifi/supplicant/aidl/vendor/qti/hardware/wifi/supplicant/ISupplicantVendor.aidl
@@ -0,0 +1,42 @@
+/* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ */
+
+package vendor.qti.hardware.wifi.supplicant;
+import vendor.qti.hardware.wifi.supplicant.IVendorIfaceInfo;
+import vendor.qti.hardware.wifi.supplicant.ISupplicantVendorStaIface;
+
+/**
+ * Interface exposed by the supplicant vendor AIDL service registered
+ * with the service manager. This is the root level object for
+ * any of the vendor supplicant interactions.
+ */
+@VintfStability
+interface ISupplicantVendor {
+    /**
+     * Gets a AIDL interface object for the interface corresponding to iface
+     * name which the supplicant already controls.
+     *
+     * @param ifaceInfo Combination of the iface type and name retrieved
+     *        using |listVendorInterfaces|.
+     * @return iface AIDL sta interface object representing the interface if
+     *         successful, null otherwise.
+     * @throws ServiceSpecificException with one of the following values:
+     *         |SupplicantVendorStatusCode.FAILURE_UNKNOWN|
+     */
+    ISupplicantVendorStaIface getVendorInterface(in IVendorIfaceInfo ifaceInfo);
+
+    /**
+     * Retrieve a list of all the vendor interfaces controlled by the supplicant.
+     *
+     * The corresponding |ISupplicantStaIface| object for any interface can be
+     * retrieved using |getVendorInterface| method.
+     *
+     * @return ifaces List of all interfaces controlled by the supplicant.
+     * @throws ServiceSpecificException with one of the following values:
+     *         |SupplicantVendorStatusCode.FAILURE_UNKNOWN|
+     */
+    IVendorIfaceInfo[] listVendorInterfaces();
+}
+
diff --git a/wifi/supplicant/aidl/vendor/qti/hardware/wifi/supplicant/ISupplicantVendorStaIface.aidl b/wifi/supplicant/aidl/vendor/qti/hardware/wifi/supplicant/ISupplicantVendorStaIface.aidl
new file mode 100644
index 0000000..7bf820b
--- /dev/null
+++ b/wifi/supplicant/aidl/vendor/qti/hardware/wifi/supplicant/ISupplicantVendorStaIface.aidl
@@ -0,0 +1,22 @@
+/* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ */
+
+package vendor.qti.hardware.wifi.supplicant;
+
+/**
+ * Vendor StaIface Interface
+ */
+@VintfStability
+interface ISupplicantVendorStaIface {
+    /**
+     * run Driver Commands
+     *
+     * @param command Driver Command
+     * @return status supplicant status/reply for driver command
+     * @throws ServiceSpecificException with one of the following values:
+     *         |SupplicantVendorStatusCode.FAILURE_UNKNOWN|
+     */
+    String doDriverCmd(in String command);
+}
diff --git a/wifi/supplicant/aidl/vendor/qti/hardware/wifi/supplicant/IVendorIfaceInfo.aidl b/wifi/supplicant/aidl/vendor/qti/hardware/wifi/supplicant/IVendorIfaceInfo.aidl
new file mode 100644
index 0000000..53f0c57
--- /dev/null
+++ b/wifi/supplicant/aidl/vendor/qti/hardware/wifi/supplicant/IVendorIfaceInfo.aidl
@@ -0,0 +1,23 @@
+/* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ */
+
+package vendor.qti.hardware.wifi.supplicant;
+import vendor.qti.hardware.wifi.supplicant.IVendorIfaceType;
+
+/**
+ * Structure describing the type and name of an vendor iface
+ * controlled by the supplicant.
+ */
+@VintfStability
+parcelable IVendorIfaceInfo {
+    /**
+     * Type of the interface.
+     */
+    IVendorIfaceType type;
+    /**
+     * Name of the interface, e.g., wlan0
+     */
+    String name;
+}
diff --git a/wifi/supplicant/aidl/vendor/qti/hardware/wifi/supplicant/IVendorIfaceType.aidl b/wifi/supplicant/aidl/vendor/qti/hardware/wifi/supplicant/IVendorIfaceType.aidl
new file mode 100644
index 0000000..a15b597
--- /dev/null
+++ b/wifi/supplicant/aidl/vendor/qti/hardware/wifi/supplicant/IVendorIfaceType.aidl
@@ -0,0 +1,15 @@
+/* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ */
+
+package vendor.qti.hardware.wifi.supplicant;
+
+/**
+ * List of IVendorIface types supported.
+ */
+@VintfStability
+@Backing(type="int")
+enum IVendorIfaceType {
+    STA,
+}
diff --git a/wifi/supplicant/aidl/vendor/qti/hardware/wifi/supplicant/SupplicantVendorStatusCode.aidl b/wifi/supplicant/aidl/vendor/qti/hardware/wifi/supplicant/SupplicantVendorStatusCode.aidl
new file mode 100644
index 0000000..394e668
--- /dev/null
+++ b/wifi/supplicant/aidl/vendor/qti/hardware/wifi/supplicant/SupplicantVendorStatusCode.aidl
@@ -0,0 +1,30 @@
+/* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ */
+
+package vendor.qti.hardware.wifi.supplicant;
+
+/**
+ * Enum values indicating the status of any supplicant operation.
+ */
+@VintfStability
+enum SupplicantVendorStatusCode {
+    /**
+     * No errors.
+     */
+    SUCCESS,
+    /**
+     * Unknown failure occurred.
+     */
+    FAILURE_UNKNOWN,
+    /**
+     * One of the incoming args is invalid.
+     */
+    FAILURE_ARGS_INVALID,
+    /**
+     * |ISupplicantVendorStaIface| AIDL interface object is no longer valid.
+     */
+    FAILURE_IFACE_INVALID,
+    FAILURE_UNSUPPORTED,
+}