diff --git a/powershare/aidl/Android.bp b/powershare/aidl/Android.bp
new file mode 100644
index 0000000..cab2900
--- /dev/null
+++ b/powershare/aidl/Android.bp
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2024 The LineageOS Project
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+aidl_interface {
+    name: "vendor.lineage.powershare",
+    vendor_available: true,
+    srcs: ["vendor/lineage/powershare/*.aidl"],
+    stability: "vintf",
+    owner: "lineage",
+
+    backend: {
+        cpp: {
+            enabled: false,
+        },
+        java: {
+            sdk_version: "module_current",
+        },
+    },
+    versions_with_info: [
+        {
+            version: "1",
+            imports: [],
+        },
+    ],
+    frozen: true,
+
+}
diff --git a/powershare/aidl/aidl_api/vendor.lineage.powershare/1/.hash b/powershare/aidl/aidl_api/vendor.lineage.powershare/1/.hash
new file mode 100644
index 0000000..dfd09e4
--- /dev/null
+++ b/powershare/aidl/aidl_api/vendor.lineage.powershare/1/.hash
@@ -0,0 +1 @@
+51334c5421d753046afd1489a3a08d0dee5dea9f
diff --git a/powershare/aidl/aidl_api/vendor.lineage.powershare/1/vendor/lineage/powershare/IPowerShare.aidl b/powershare/aidl/aidl_api/vendor.lineage.powershare/1/vendor/lineage/powershare/IPowerShare.aidl
new file mode 100644
index 0000000..ac7b1f3
--- /dev/null
+++ b/powershare/aidl/aidl_api/vendor.lineage.powershare/1/vendor/lineage/powershare/IPowerShare.aidl
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2024 The LineageOS Project
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// 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.lineage.powershare;
+@VintfStability
+interface IPowerShare {
+  boolean isEnabled();
+  boolean setEnabled(boolean enable);
+  int getMinBattery();
+  int setMinBattery(int minBattery);
+}
diff --git a/powershare/aidl/aidl_api/vendor.lineage.powershare/current/vendor/lineage/powershare/IPowerShare.aidl b/powershare/aidl/aidl_api/vendor.lineage.powershare/current/vendor/lineage/powershare/IPowerShare.aidl
new file mode 100644
index 0000000..ac7b1f3
--- /dev/null
+++ b/powershare/aidl/aidl_api/vendor.lineage.powershare/current/vendor/lineage/powershare/IPowerShare.aidl
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2024 The LineageOS Project
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// 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.lineage.powershare;
+@VintfStability
+interface IPowerShare {
+  boolean isEnabled();
+  boolean setEnabled(boolean enable);
+  int getMinBattery();
+  int setMinBattery(int minBattery);
+}
diff --git a/powershare/aidl/vendor/lineage/powershare/IPowerShare.aidl b/powershare/aidl/vendor/lineage/powershare/IPowerShare.aidl
new file mode 100644
index 0000000..7d45eac
--- /dev/null
+++ b/powershare/aidl/vendor/lineage/powershare/IPowerShare.aidl
@@ -0,0 +1,15 @@
+/*
+ * Copyright (C) 2024 The LineageOS Project
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package vendor.lineage.powershare;
+
+@VintfStability
+interface IPowerShare {
+    boolean isEnabled();
+    boolean setEnabled(boolean enable);
+    int getMinBattery();
+    int setMinBattery(int minBattery);
+}
