diff --git a/.gitignore b/.gitignore index b4a5eabf..9be6d25c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +apache/local/generated .project .settings .cache diff --git a/apache/build.gradle.kts b/apache/build.gradle.kts index af805591..30af6ab2 100644 --- a/apache/build.gradle.kts +++ b/apache/build.gradle.kts @@ -14,3 +14,25 @@ java { } } } + +val lang3Src = "commons-lang/src/main/java/org/apache/commons/lang3" +val localDir = "local/generated" + +task("ClassUtilsX") { + from("$lang3Src/ClassUtils.java") + into(localDir) + filter { line: String -> line.replace("ClassUtils", "ClassUtilsX") } + rename("(.+).java", "$1X.java") +} + +task("SerializationUtilsX") { + from("$lang3Src/SerializationUtils.java") + into(localDir) + filter { line: String -> line.replace("SerializationUtils", "SerializationUtilsX") } + rename("(.+).java", "$1X.java") +} + +tasks.compileJava { + dependsOn("ClassUtilsX") + dependsOn("SerializationUtilsX") +} diff --git a/apache/local/org/apache/commons/lang3/reflect/MemberUtilsX.java b/apache/local/MemberUtilsX.java similarity index 100% rename from apache/local/org/apache/commons/lang3/reflect/MemberUtilsX.java rename to apache/local/MemberUtilsX.java diff --git a/core/src/main/java/de/robv/android/xposed/XposedHelpers.java b/core/src/main/java/de/robv/android/xposed/XposedHelpers.java index a0495fbf..592be83d 100644 --- a/core/src/main/java/de/robv/android/xposed/XposedHelpers.java +++ b/core/src/main/java/de/robv/android/xposed/XposedHelpers.java @@ -26,7 +26,7 @@ import android.content.res.Resources; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.apache.commons.lang3.ClassUtils; +import org.apache.commons.lang3.ClassUtilsX; import org.apache.commons.lang3.reflect.MemberUtilsX; import java.io.ByteArrayOutputStream; @@ -202,7 +202,7 @@ public final class XposedHelpers { if (classLoader == null) classLoader = XposedBridge.BOOTCLASSLOADER; try { - return ClassUtils.getClass(classLoader, className, false); + return ClassUtilsX.getClass(classLoader, className, false); } catch (ClassNotFoundException e) { throw new ClassNotFoundError(e); } @@ -540,7 +540,7 @@ public final class XposedHelpers { continue; // compare name and parameters - if (method.getName().equals(k.name) && ClassUtils.isAssignable( + if (method.getName().equals(k.name) && ClassUtilsX.isAssignable( k.parameters, method.getParameterTypes(), true)) { @@ -763,7 +763,7 @@ public final class XposedHelpers { Constructor[] constructors = k.clazz.getDeclaredConstructors(); for (Constructor constructor : constructors) { // compare name and parameters - if (ClassUtils.isAssignable( + if (ClassUtilsX.isAssignable( k.parameters, constructor.getParameterTypes(), true)) { diff --git a/daemon/src/main/java/org/lsposed/lspd/service/ConfigManager.java b/daemon/src/main/java/org/lsposed/lspd/service/ConfigManager.java index 77b8ee94..c4308768 100644 --- a/daemon/src/main/java/org/lsposed/lspd/service/ConfigManager.java +++ b/daemon/src/main/java/org/lsposed/lspd/service/ConfigManager.java @@ -51,7 +51,7 @@ import android.util.Pair; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.apache.commons.lang3.SerializationUtils; +import org.apache.commons.lang3.SerializationUtilsX; import org.lsposed.daemon.BuildConfig; import org.lsposed.lspd.models.Application; import org.lsposed.lspd.models.Module; @@ -464,7 +464,7 @@ public class ConfigManager { var group = cursor.getString(groupIdx); var key = cursor.getString(keyIdx); var data = cursor.getBlob(dataIdx); - var object = SerializationUtils.deserialize(data); + var object = SerializationUtilsX.deserialize(data); if (object == null) continue; config.computeIfAbsent(group, g -> new HashMap<>()).put(key, object); } @@ -491,7 +491,7 @@ public class ConfigManager { var contents = new ContentValues(); contents.put("`group`", group); contents.put("`key`", key); - contents.put("data", SerializationUtils.serialize((Serializable) value)); + contents.put("data", SerializationUtilsX.serialize((Serializable) value)); contents.put("module_pkg_name", moduleName); contents.put("user_id", String.valueOf(userId)); db.insertWithOnConflict("configs", null, contents, SQLiteDatabase.CONFLICT_REPLACE);