Merge "AIDL interface for servicetracker"
diff --git a/servicetracker/aidl/Android.bp b/servicetracker/aidl/Android.bp
new file mode 100644
index 0000000..e48aaa7
--- /dev/null
+++ b/servicetracker/aidl/Android.bp
@@ -0,0 +1,28 @@
+aidl_interface {
+    name: "vendor.qti.hardware.servicetrackeraidl",
+    vendor_available: true,
+    host_supported: true,
+    system_ext_specific: true,
+    srcs: ["vendor/qti/hardware/servicetrackeraidl/*.aidl"],
+    stability: "vintf",
+    backend: {
+        cpp: {
+            enabled: false,
+        },
+        ndk: {
+            enabled: true,
+        },
+        java: {
+            enabled: true,
+            sdk_version: "module_current",
+        },
+    },
+    versions_with_info: [
+        {
+            version: "1",
+            imports: [],
+        },
+    ],
+    frozen: true,
+
+}
diff --git a/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/.hash b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/.hash
new file mode 100644
index 0000000..1322f38
--- /dev/null
+++ b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/.hash
@@ -0,0 +1 @@
+fd4771abe6e1c694687c871ee5d888b6e9cbf7b0
diff --git a/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/ClientConnection.aidl b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/ClientConnection.aidl
new file mode 100644
index 0000000..0d1bdc4
--- /dev/null
+++ b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/ClientConnection.aidl
@@ -0,0 +1,29 @@
+/*
+*Copyright (c) 2023 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.servicetrackeraidl;
+@VintfStability
+parcelable ClientConnection {
+  String serviceName;
+  int servicePid;
+  int count;
+}
diff --git a/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/ClientData.aidl b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/ClientData.aidl
new file mode 100644
index 0000000..9bb311f
--- /dev/null
+++ b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/ClientData.aidl
@@ -0,0 +1,28 @@
+/*
+*Copyright (c) 2023 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.servicetrackeraidl;
+@VintfStability
+parcelable ClientData {
+  String processName;
+  int pid;
+}
diff --git a/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/ClientRecord.aidl b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/ClientRecord.aidl
new file mode 100644
index 0000000..3c58118
--- /dev/null
+++ b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/ClientRecord.aidl
@@ -0,0 +1,29 @@
+/*
+*Copyright (c) 2023 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.servicetrackeraidl;
+@VintfStability
+parcelable ClientRecord {
+  String processName;
+  int pid;
+  vendor.qti.hardware.servicetrackeraidl.ClientConnection[] conn;
+}
diff --git a/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/IServicetracker.aidl b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/IServicetracker.aidl
new file mode 100644
index 0000000..a8f753e
--- /dev/null
+++ b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/IServicetracker.aidl
@@ -0,0 +1,40 @@
+/*
+*Copyright (c) 2023 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.servicetrackeraidl;
+@VintfStability
+interface IServicetracker {
+  oneway void bindService(in vendor.qti.hardware.servicetrackeraidl.ServiceData serviceData, in vendor.qti.hardware.servicetrackeraidl.ClientData clientData);
+  oneway void destroyService(in vendor.qti.hardware.servicetrackeraidl.ServiceData serviceData);
+  vendor.qti.hardware.servicetrackeraidl.ClientConnection[] getClientConnections(in String clientName);
+  int getPid(in String processName);
+  int[] getPids(in String[] serviceList);
+  int[] getRunningServicePid();
+  int getServiceBCount(out vendor.qti.hardware.servicetrackeraidl.ServiceRecord[] bServiceList);
+  vendor.qti.hardware.servicetrackeraidl.ServiceConnection[] getServiceConnections(in String serviceName);
+  vendor.qti.hardware.servicetrackeraidl.ClientRecord getclientInfo(in String clientName);
+  vendor.qti.hardware.servicetrackeraidl.ServiceRecord getserviceInfo(in String serviceName);
+  boolean isServiceB(in String serviceName);
+  oneway void killProcess(in int pid);
+  oneway void startService(in vendor.qti.hardware.servicetrackeraidl.ServiceData serviceData);
+  oneway void unbindService(in vendor.qti.hardware.servicetrackeraidl.ServiceData serviceData, in vendor.qti.hardware.servicetrackeraidl.ClientData clientData);
+}
diff --git a/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/ServiceConnection.aidl b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/ServiceConnection.aidl
new file mode 100644
index 0000000..519d0b6
--- /dev/null
+++ b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/ServiceConnection.aidl
@@ -0,0 +1,29 @@
+/*
+*Copyright (c) 2023 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.servicetrackeraidl;
+@VintfStability
+parcelable ServiceConnection {
+  String clientName;
+  int clientPid;
+  int count;
+}
diff --git a/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/ServiceData.aidl b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/ServiceData.aidl
new file mode 100644
index 0000000..68d6678
--- /dev/null
+++ b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/ServiceData.aidl
@@ -0,0 +1,31 @@
+/*
+*Copyright (c) 2023 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.servicetrackeraidl;
+@VintfStability
+parcelable ServiceData {
+  String packageName;
+  String processName;
+  int pid;
+  double lastActivity;
+  boolean serviceB;
+}
diff --git a/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/ServiceRecord.aidl b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/ServiceRecord.aidl
new file mode 100644
index 0000000..20dba44
--- /dev/null
+++ b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/ServiceRecord.aidl
@@ -0,0 +1,32 @@
+/*
+*Copyright (c) 2023 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.servicetrackeraidl;
+@VintfStability
+parcelable ServiceRecord {
+  String packageName;
+  String processName;
+  int pid;
+  boolean serviceB;
+  double lastActivity;
+  vendor.qti.hardware.servicetrackeraidl.ServiceConnection[] conn;
+}
diff --git a/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/Status.aidl b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/Status.aidl
new file mode 100644
index 0000000..26ccd87
--- /dev/null
+++ b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/1/vendor/qti/hardware/servicetrackeraidl/Status.aidl
@@ -0,0 +1,31 @@
+/*
+*Copyright (c) 2023 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.servicetrackeraidl;
+@Backing(type="int") @VintfStability
+enum Status {
+  SUCCESS = 0,
+  ERROR_NOT_AVAILABLE = 1,
+  ERROR_INVALID_ARGS = 2,
+  ERROR_NOT_SUPPORTED = 3,
+  ERROR_UNKNOWN = 4,
+}
diff --git a/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/ClientConnection.aidl b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/ClientConnection.aidl
new file mode 100644
index 0000000..0d1bdc4
--- /dev/null
+++ b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/ClientConnection.aidl
@@ -0,0 +1,29 @@
+/*
+*Copyright (c) 2023 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.servicetrackeraidl;
+@VintfStability
+parcelable ClientConnection {
+  String serviceName;
+  int servicePid;
+  int count;
+}
diff --git a/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/ClientData.aidl b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/ClientData.aidl
new file mode 100644
index 0000000..9bb311f
--- /dev/null
+++ b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/ClientData.aidl
@@ -0,0 +1,28 @@
+/*
+*Copyright (c) 2023 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.servicetrackeraidl;
+@VintfStability
+parcelable ClientData {
+  String processName;
+  int pid;
+}
diff --git a/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/ClientRecord.aidl b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/ClientRecord.aidl
new file mode 100644
index 0000000..3c58118
--- /dev/null
+++ b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/ClientRecord.aidl
@@ -0,0 +1,29 @@
+/*
+*Copyright (c) 2023 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.servicetrackeraidl;
+@VintfStability
+parcelable ClientRecord {
+  String processName;
+  int pid;
+  vendor.qti.hardware.servicetrackeraidl.ClientConnection[] conn;
+}
diff --git a/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/IServicetracker.aidl b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/IServicetracker.aidl
new file mode 100644
index 0000000..a8f753e
--- /dev/null
+++ b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/IServicetracker.aidl
@@ -0,0 +1,40 @@
+/*
+*Copyright (c) 2023 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.servicetrackeraidl;
+@VintfStability
+interface IServicetracker {
+  oneway void bindService(in vendor.qti.hardware.servicetrackeraidl.ServiceData serviceData, in vendor.qti.hardware.servicetrackeraidl.ClientData clientData);
+  oneway void destroyService(in vendor.qti.hardware.servicetrackeraidl.ServiceData serviceData);
+  vendor.qti.hardware.servicetrackeraidl.ClientConnection[] getClientConnections(in String clientName);
+  int getPid(in String processName);
+  int[] getPids(in String[] serviceList);
+  int[] getRunningServicePid();
+  int getServiceBCount(out vendor.qti.hardware.servicetrackeraidl.ServiceRecord[] bServiceList);
+  vendor.qti.hardware.servicetrackeraidl.ServiceConnection[] getServiceConnections(in String serviceName);
+  vendor.qti.hardware.servicetrackeraidl.ClientRecord getclientInfo(in String clientName);
+  vendor.qti.hardware.servicetrackeraidl.ServiceRecord getserviceInfo(in String serviceName);
+  boolean isServiceB(in String serviceName);
+  oneway void killProcess(in int pid);
+  oneway void startService(in vendor.qti.hardware.servicetrackeraidl.ServiceData serviceData);
+  oneway void unbindService(in vendor.qti.hardware.servicetrackeraidl.ServiceData serviceData, in vendor.qti.hardware.servicetrackeraidl.ClientData clientData);
+}
diff --git a/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/ServiceConnection.aidl b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/ServiceConnection.aidl
new file mode 100644
index 0000000..519d0b6
--- /dev/null
+++ b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/ServiceConnection.aidl
@@ -0,0 +1,29 @@
+/*
+*Copyright (c) 2023 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.servicetrackeraidl;
+@VintfStability
+parcelable ServiceConnection {
+  String clientName;
+  int clientPid;
+  int count;
+}
diff --git a/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/ServiceData.aidl b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/ServiceData.aidl
new file mode 100644
index 0000000..68d6678
--- /dev/null
+++ b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/ServiceData.aidl
@@ -0,0 +1,31 @@
+/*
+*Copyright (c) 2023 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.servicetrackeraidl;
+@VintfStability
+parcelable ServiceData {
+  String packageName;
+  String processName;
+  int pid;
+  double lastActivity;
+  boolean serviceB;
+}
diff --git a/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/ServiceRecord.aidl b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/ServiceRecord.aidl
new file mode 100644
index 0000000..20dba44
--- /dev/null
+++ b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/ServiceRecord.aidl
@@ -0,0 +1,32 @@
+/*
+*Copyright (c) 2023 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.servicetrackeraidl;
+@VintfStability
+parcelable ServiceRecord {
+  String packageName;
+  String processName;
+  int pid;
+  boolean serviceB;
+  double lastActivity;
+  vendor.qti.hardware.servicetrackeraidl.ServiceConnection[] conn;
+}
diff --git a/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/Status.aidl b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/Status.aidl
new file mode 100644
index 0000000..26ccd87
--- /dev/null
+++ b/servicetracker/aidl/aidl_api/vendor.qti.hardware.servicetrackeraidl/current/vendor/qti/hardware/servicetrackeraidl/Status.aidl
@@ -0,0 +1,31 @@
+/*
+*Copyright (c) 2023 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.servicetrackeraidl;
+@Backing(type="int") @VintfStability
+enum Status {
+  SUCCESS = 0,
+  ERROR_NOT_AVAILABLE = 1,
+  ERROR_INVALID_ARGS = 2,
+  ERROR_NOT_SUPPORTED = 3,
+  ERROR_UNKNOWN = 4,
+}
diff --git a/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/ClientConnection.aidl b/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/ClientConnection.aidl
new file mode 100644
index 0000000..e6822bd
--- /dev/null
+++ b/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/ClientConnection.aidl
@@ -0,0 +1,16 @@
+/*
+*Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+*SPDX-License-Identifier: BSD-3-Clause-Clear
+*/
+
+package vendor.qti.hardware.servicetrackeraidl;
+
+/**
+ * structure to define client to service connection
+ */
+@VintfStability
+parcelable ClientConnection {
+    String serviceName;
+    int servicePid;
+    int count;
+}
diff --git a/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/ClientData.aidl b/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/ClientData.aidl
new file mode 100644
index 0000000..b10aa41
--- /dev/null
+++ b/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/ClientData.aidl
@@ -0,0 +1,15 @@
+/*
+*Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+*SPDX-License-Identifier: BSD-3-Clause-Clear
+*/
+
+package vendor.qti.hardware.servicetrackeraidl;
+
+/**
+ * Client information recieved by AMS
+ */
+@VintfStability
+parcelable ClientData {
+    String processName;
+    int pid;
+}
diff --git a/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/ClientRecord.aidl b/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/ClientRecord.aidl
new file mode 100644
index 0000000..abe31ef
--- /dev/null
+++ b/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/ClientRecord.aidl
@@ -0,0 +1,18 @@
+/*
+*Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+*SPDX-License-Identifier: BSD-3-Clause-Clear
+*/
+
+package vendor.qti.hardware.servicetrackeraidl;
+
+import vendor.qti.hardware.servicetrackeraidl.ClientConnection;
+
+/**
+ * Client information
+ */
+@VintfStability
+parcelable ClientRecord {
+    String processName;
+    int pid;
+    ClientConnection[] conn;
+}
diff --git a/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/IServicetracker.aidl b/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/IServicetracker.aidl
new file mode 100644
index 0000000..d90be3b
--- /dev/null
+++ b/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/IServicetracker.aidl
@@ -0,0 +1,102 @@
+/*
+*Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+*SPDX-License-Identifier: BSD-3-Clause-Clear
+*/
+
+package vendor.qti.hardware.servicetrackeraidl;
+
+import vendor.qti.hardware.servicetrackeraidl.ClientConnection;
+import vendor.qti.hardware.servicetrackeraidl.ClientData;
+import vendor.qti.hardware.servicetrackeraidl.ClientRecord;
+import vendor.qti.hardware.servicetrackeraidl.ServiceConnection;
+import vendor.qti.hardware.servicetrackeraidl.ServiceData;
+import vendor.qti.hardware.servicetrackeraidl.ServiceRecord;
+import vendor.qti.hardware.servicetrackeraidl.Status;
+
+// Interface inherits from vendor.qti.hardware.servicetrackeraidl@1.0::IServicetracker but AIDL does not support interface inheritance (methods have been flattened).
+@VintfStability
+interface IServicetracker {
+    /**
+     * Collect and update  the information for the service which is just bound to
+     * @param clientData
+     * @param serviceData
+     */
+    oneway void bindService(in ServiceData serviceData, in ClientData clientData);
+
+    /**
+     * Update the service information when service specified by
+     * @param serviceData has been destroyed
+     */
+    oneway void destroyService(in ServiceData serviceData);
+
+    /**
+     * Return the list of services associated with the client
+     * specified by @param clientName
+     */
+    ClientConnection[] getClientConnections(in String clientName);
+
+
+    /**
+     * Return the pid of the process specified by @param processName
+     */
+    int getPid(in String processName);
+
+    /**
+     * Return the pid of the services listed in @param serviceList
+     */
+    int[]  getPids(in String[] serviceList);
+
+    /**
+     * Return Pids of all the running Android Services.
+     */
+    int[] getRunningServicePid();
+
+
+    /**
+     * generate the list of b services running in system
+     */
+    int  getServiceBCount(out ServiceRecord[] bServiceList);
+
+    /**
+     * Return list of clients associated with the service specified by
+     * @param serviceName
+     */
+    ServiceConnection[] getServiceConnections(in String serviceName);
+
+    /**
+     * Return all the details related to Client specified by @param
+     * clientName
+     */
+    ClientRecord getclientInfo(in String clientName);
+
+    /**
+     * Return all the details related to Service specified by @param
+     * serviceName
+     */
+    ServiceRecord getserviceInfo(in String serviceName);
+
+    /**
+     * Return whether a service specified by @param serviceName is
+     * B-Service or not
+     */
+    boolean isServiceB(in String serviceName);
+
+    /**
+     * Update the service and client information when process
+     * specified by @param pid got killed
+     */
+    oneway void killProcess(in int pid);
+
+    /**
+     * Collect the information related to service that is just started
+     * @param serviceData contains details of the service,@param clientData
+     * contains the details of client which has started the service
+     */
+    oneway void startService(in ServiceData serviceData);
+
+    /**
+     * Update the bind information of sevice,client pair specified
+     * by @param serviceData and @param clientData
+     */
+    oneway void unbindService(in ServiceData serviceData, in ClientData clientData);
+}
diff --git a/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/ServiceConnection.aidl b/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/ServiceConnection.aidl
new file mode 100644
index 0000000..6badfed
--- /dev/null
+++ b/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/ServiceConnection.aidl
@@ -0,0 +1,16 @@
+/*
+*Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+*SPDX-License-Identifier: BSD-3-Clause-Clear
+*/
+
+package vendor.qti.hardware.servicetrackeraidl;
+
+/**
+ * structure to define service to client connection
+ */
+@VintfStability
+parcelable ServiceConnection {
+    String clientName;
+    int clientPid;
+    int count;
+}
diff --git a/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/ServiceData.aidl b/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/ServiceData.aidl
new file mode 100644
index 0000000..32a4422
--- /dev/null
+++ b/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/ServiceData.aidl
@@ -0,0 +1,18 @@
+/*
+*Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+*SPDX-License-Identifier: BSD-3-Clause-Clear
+*/
+
+package vendor.qti.hardware.servicetrackeraidl;
+
+/**
+ * Service information recieved by AMS
+ */
+@VintfStability
+parcelable ServiceData {
+    String packageName;
+    String processName;
+    int pid;
+    double lastActivity;
+    boolean serviceB;
+}
diff --git a/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/ServiceRecord.aidl b/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/ServiceRecord.aidl
new file mode 100644
index 0000000..7400b17
--- /dev/null
+++ b/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/ServiceRecord.aidl
@@ -0,0 +1,21 @@
+/*
+*Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+*SPDX-License-Identifier: BSD-3-Clause-Clear
+*/
+
+package vendor.qti.hardware.servicetrackeraidl;
+
+import vendor.qti.hardware.servicetrackeraidl.ServiceConnection;
+
+/**
+ * Service information
+ */
+@VintfStability
+parcelable ServiceRecord {
+    String packageName;
+    String processName;
+    int pid;
+    boolean serviceB;
+    double lastActivity;
+    ServiceConnection[] conn;
+}
diff --git a/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/Status.aidl b/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/Status.aidl
new file mode 100644
index 0000000..d1d826a
--- /dev/null
+++ b/servicetracker/aidl/vendor/qti/hardware/servicetrackeraidl/Status.aidl
@@ -0,0 +1,33 @@
+/*
+*Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+*SPDX-License-Identifier: BSD-3-Clause-Clear
+*/
+
+package vendor.qti.hardware.servicetrackeraidl;
+
+/**
+ * Enum Values indicating the result of operation
+ */
+@VintfStability
+@Backing(type="int")
+enum Status {
+    /**
+     * No errors.
+     */
+    SUCCESS,
+    /**
+     * the component for which the query is made
+     * is not yet available
+     */
+    ERROR_NOT_AVAILABLE,
+    /**
+     * the arguments passed are invalid
+     */
+    ERROR_INVALID_ARGS,
+    /**
+     * the information asked for the componenent
+     * is not supported
+     */
+    ERROR_NOT_SUPPORTED,
+    ERROR_UNKNOWN,
+}