diff --git a/libxposed/.gitignore b/libxposed/.gitignore
new file mode 100644
index 00000000..2ec908f3
--- /dev/null
+++ b/libxposed/.gitignore
@@ -0,0 +1,7 @@
+*.iml
+.DS_Store
+.gradle
+/.idea
+/captures
+/local.properties
+build
diff --git a/libxposed/.idea/.gitignore b/libxposed/.idea/.gitignore
deleted file mode 100644
index 26d33521..00000000
--- a/libxposed/.idea/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
diff --git a/libxposed/.idea/compiler.xml b/libxposed/.idea/compiler.xml
deleted file mode 100644
index fb7f4a8a..00000000
--- a/libxposed/.idea/compiler.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/libxposed/.idea/gradle.xml b/libxposed/.idea/gradle.xml
deleted file mode 100644
index b8fed381..00000000
--- a/libxposed/.idea/gradle.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/libxposed/.idea/jarRepositories.xml b/libxposed/.idea/jarRepositories.xml
deleted file mode 100644
index d2ce72d1..00000000
--- a/libxposed/.idea/jarRepositories.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/libxposed/.idea/misc.xml b/libxposed/.idea/misc.xml
deleted file mode 100644
index b1f8730f..00000000
--- a/libxposed/.idea/misc.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/libxposed/.idea/vcs.xml b/libxposed/.idea/vcs.xml
deleted file mode 100644
index 6c0b8635..00000000
--- a/libxposed/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/libxposed/api/.gitignore b/libxposed/api/.gitignore
deleted file mode 100644
index 42afabfd..00000000
--- a/libxposed/api/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/build
\ No newline at end of file
diff --git a/libxposed/service/build.gradle.kts b/libxposed/service/build.gradle.kts
new file mode 100644
index 00000000..508eab59
--- /dev/null
+++ b/libxposed/service/build.gradle.kts
@@ -0,0 +1,30 @@
+plugins {
+ id("com.android.library")
+}
+
+android {
+ compileSdk = 33
+ buildToolsVersion = "33.0.1"
+ namespace = "io.github.libxposed.service"
+
+ defaultConfig {
+ minSdk = 21
+ targetSdk = 33
+ consumerProguardFiles("proguard-rules.pro")
+ }
+
+ buildTypes {
+ release {
+ isMinifyEnabled = true
+ }
+ }
+
+ buildFeatures {
+ androidResources = false
+ }
+
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+}
diff --git a/libxposed/service/src/main/aidl/io/github/libxposed/service/IXposedService.aidl b/libxposed/service/src/main/aidl/io/github/libxposed/service/IXposedService.aidl
new file mode 100644
index 00000000..44392f87
--- /dev/null
+++ b/libxposed/service/src/main/aidl/io/github/libxposed/service/IXposedService.aidl
@@ -0,0 +1,5 @@
+package io.github.libxposed.service;
+
+interface IXposedService {
+ long getAPIVersion() = 1;
+}
diff --git a/daemon/src/main/java/io/github/libxposed/service/XposedService.java b/libxposed/service/src/main/java/io/github/libxposed/service/XposedService.java
similarity index 77%
rename from daemon/src/main/java/io/github/libxposed/service/XposedService.java
rename to libxposed/service/src/main/java/io/github/libxposed/service/XposedService.java
index 3bba97a6..7fcde5b5 100644
--- a/daemon/src/main/java/io/github/libxposed/service/XposedService.java
+++ b/libxposed/service/src/main/java/io/github/libxposed/service/XposedService.java
@@ -1,7 +1,5 @@
package io.github.libxposed.service;
-import io.github.xposed.xposedservice.IXposedService;
-
public abstract class XposedService extends IXposedService.Stub {
public static final int API = 100;
@@ -9,7 +7,7 @@ public abstract class XposedService extends IXposedService.Stub {
public static final String SEND_BINDER = "SendBinder";
@Override
- public final int getVersion() {
+ public final long getAPIVersion() {
return API;
}
}
diff --git a/services/manager-service/build.gradle.kts b/services/manager-service/build.gradle.kts
index f0a641e1..50cf9cea 100644
--- a/services/manager-service/build.gradle.kts
+++ b/services/manager-service/build.gradle.kts
@@ -35,5 +35,6 @@ android {
}
dependencies {
- api(projects.services.xposedService.`interface`)
+ api(projects.libxposed.service)
+ api("dev.rikka.rikkax.parcelablelist:parcelablelist:2.0.1")
}
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 2fce9a22..12b49bfd 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -31,6 +31,7 @@ rootProject.name = "LSPosed"
include(
":app",
":libxposed:api",
+ ":libxposed:service",
":stubs",
":core",
":daemon",
@@ -40,7 +41,6 @@ include(
":magisk-loader",
":services:manager-service",
":services:daemon-service",
- ":services:xposed-service:interface",
)
project(":stubs").projectDir = file("libxposed/stubs")