Refine XposedResources

This commit is contained in:
LoveSy 2022-12-27 21:42:04 +08:00 committed by LoveSy
parent a922ae9e6c
commit 39178b1dad
5 changed files with 20 additions and 15 deletions

View File

@ -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<HashMap<String, Object>> sReplacements = new SparseArray<>();
private static final SparseArray<HashMap<String, ResourceNames>> sResourceNames = new SparseArray<>();

View File

@ -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);

View File

@ -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) {

View File

@ -1,9 +0,0 @@
package io.github.libxposed;
import android.content.res.XResources;
public class XposedResource extends XResources {
public XposedResource(ClassLoader classLoader) {
super(classLoader);
}
}

View File

@ -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();
}
}