From 39178b1dadeb10f1e185ebdaafd071a9bb76dfad Mon Sep 17 00:00:00 2001 From: LoveSy Date: Tue, 27 Dec 2022 21:42:04 +0800 Subject: [PATCH] Refine XposedResources --- .../java/android/content/res/XResources.java | 4 ++-- .../java/de/robv/android/xposed/XposedInit.java | 4 +--- .../github/libxposed/XposedModuleInterface.java | 2 +- .../java/io/github/libxposed/XposedResource.java | 9 --------- .../io/github/libxposed/XposedResources.java | 16 ++++++++++++++++ 5 files changed, 20 insertions(+), 15 deletions(-) delete mode 100644 core/src/main/java/io/github/libxposed/XposedResource.java create mode 100644 core/src/main/java/io/github/libxposed/XposedResources.java diff --git a/core/src/main/java/android/content/res/XResources.java b/core/src/main/java/android/content/res/XResources.java index cca3da47..75fd3ccf 100644 --- a/core/src/main/java/android/content/res/XResources.java +++ b/core/src/main/java/android/content/res/XResources.java @@ -66,7 +66,7 @@ import de.robv.android.xposed.XposedInit; import de.robv.android.xposed.callbacks.XC_LayoutInflated; import de.robv.android.xposed.callbacks.XC_LayoutInflated.LayoutInflatedParam; import de.robv.android.xposed.callbacks.XCallback; -import xposed.dummy.XResourcesSuperClass; +import io.github.libxposed.XposedResources; import xposed.dummy.XTypedArraySuperClass; /** @@ -77,7 +77,7 @@ import xposed.dummy.XTypedArraySuperClass; * be set using the methods made available via the API methods in this class. */ @SuppressWarnings("JniMissingFunction") -public class XResources extends XResourcesSuperClass { +public class XResources extends XposedResources { private static final SparseArray> sReplacements = new SparseArray<>(); private static final SparseArray> sResourceNames = new SparseArray<>(); diff --git a/core/src/main/java/de/robv/android/xposed/XposedInit.java b/core/src/main/java/de/robv/android/xposed/XposedInit.java index a601e7dc..7de2e1fb 100644 --- a/core/src/main/java/de/robv/android/xposed/XposedInit.java +++ b/core/src/main/java/de/robv/android/xposed/XposedInit.java @@ -58,9 +58,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import de.robv.android.xposed.callbacks.XC_InitPackageResources; import de.robv.android.xposed.callbacks.XCallback; import hidden.HiddenApiBridge; -import io.github.libxposed.XposedInterface; import io.github.libxposed.XposedModuleInterface; -import io.github.libxposed.XposedResource; public final class XposedInit { private static final String TAG = XposedBridge.TAG; @@ -200,7 +198,7 @@ public final class XposedInit { } // Replace the returned resources with our subclass. - var newRes = new XposedResource( + var newRes = new XResources( (ClassLoader) XposedHelpers.getObjectField(param.getResult(), "mClassLoader")); HiddenApiBridge.Resources_setImpl(newRes, (ResourcesImpl) XposedHelpers.getObjectField(param.getResult(), "mResourcesImpl")); newRes.initObject(resDir); diff --git a/core/src/main/java/io/github/libxposed/XposedModuleInterface.java b/core/src/main/java/io/github/libxposed/XposedModuleInterface.java index 8abf3a5d..6eafa329 100644 --- a/core/src/main/java/io/github/libxposed/XposedModuleInterface.java +++ b/core/src/main/java/io/github/libxposed/XposedModuleInterface.java @@ -18,7 +18,7 @@ public interface XposedModuleInterface { class ResourceLoadedParam { public String packageName; - public XposedResource res; + public XposedResources res; } default void onPackageLoaded(@NonNull PackageLoadedParam param, @Nullable Bundle extra) { diff --git a/core/src/main/java/io/github/libxposed/XposedResource.java b/core/src/main/java/io/github/libxposed/XposedResource.java deleted file mode 100644 index de4c0af6..00000000 --- a/core/src/main/java/io/github/libxposed/XposedResource.java +++ /dev/null @@ -1,9 +0,0 @@ -package io.github.libxposed; - -import android.content.res.XResources; - -public class XposedResource extends XResources { - public XposedResource(ClassLoader classLoader) { - super(classLoader); - } -} diff --git a/core/src/main/java/io/github/libxposed/XposedResources.java b/core/src/main/java/io/github/libxposed/XposedResources.java new file mode 100644 index 00000000..5e3cf5a6 --- /dev/null +++ b/core/src/main/java/io/github/libxposed/XposedResources.java @@ -0,0 +1,16 @@ +package io.github.libxposed; + +import xposed.dummy.XResourcesSuperClass; + +public abstract class XposedResources extends XResourcesSuperClass { + /** Dummy, will never be called (objects are transferred to this class only). */ + protected XposedResources() { + super(); + throw new UnsupportedOperationException(); + } + + protected XposedResources(ClassLoader classLoader) { + super(classLoader); + throw new UnsupportedOperationException(); + } +}