Fix make class inheritable (#1777)
This commit is contained in:
parent
416167a226
commit
ac704e5704
|
|
@ -115,8 +115,8 @@ public final class XposedBridge {
|
||||||
} catch (Resources.NotFoundException nfe) {
|
} catch (Resources.NotFoundException nfe) {
|
||||||
XposedBridge.log(nfe);
|
XposedBridge.log(nfe);
|
||||||
}
|
}
|
||||||
ResourcesHook.makeInheritable(resClass, resClass.getDeclaredConstructors());
|
ResourcesHook.makeInheritable(resClass);
|
||||||
ResourcesHook.makeInheritable(taClass, taClass.getDeclaredConstructors());
|
ResourcesHook.makeInheritable(taClass);
|
||||||
ClassLoader myCL = XposedBridge.class.getClassLoader();
|
ClassLoader myCL = XposedBridge.class.getClassLoader();
|
||||||
dummyClassLoader = ResourcesHook.buildDummyClassLoader(myCL.getParent(), resClass.getName(), taClass.getName());
|
dummyClassLoader = ResourcesHook.buildDummyClassLoader(myCL.getParent(), resClass.getName(), taClass.getName());
|
||||||
dummyClassLoader.loadClass("xposed.dummy.XResourcesSuperClass");
|
dummyClassLoader.loadClass("xposed.dummy.XResourcesSuperClass");
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ public class ResourcesHook {
|
||||||
|
|
||||||
public static native boolean initXResourcesNative();
|
public static native boolean initXResourcesNative();
|
||||||
|
|
||||||
public static native boolean makeInheritable(Class<?> clazz, Constructor<?>[] constructors);
|
public static native boolean makeInheritable(Class<?> clazz);
|
||||||
|
|
||||||
public static native ClassLoader buildDummyClassLoader(ClassLoader parent, String resourceSuperClass, String typedArraySuperClass);
|
public static native ClassLoader buildDummyClassLoader(ClassLoader parent, String resourceSuperClass, String typedArraySuperClass);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -98,8 +98,7 @@ namespace lspd {
|
||||||
}
|
}
|
||||||
|
|
||||||
// @ApiSensitive(Level.MIDDLE)
|
// @ApiSensitive(Level.MIDDLE)
|
||||||
LSP_DEF_NATIVE_METHOD(jboolean, ResourcesHook, makeInheritable, jclass target_class,
|
LSP_DEF_NATIVE_METHOD(jboolean, ResourcesHook, makeInheritable, jclass target_class) {
|
||||||
jobjectArray constructors) {
|
|
||||||
if (lsplant::MakeClassInheritable(env, target_class)) {
|
if (lsplant::MakeClassInheritable(env, target_class)) {
|
||||||
return JNI_TRUE;
|
return JNI_TRUE;
|
||||||
}
|
}
|
||||||
|
|
@ -203,8 +202,7 @@ namespace lspd {
|
||||||
|
|
||||||
static JNINativeMethod gMethods[] = {
|
static JNINativeMethod gMethods[] = {
|
||||||
LSP_NATIVE_METHOD(ResourcesHook, initXResourcesNative, "()Z"),
|
LSP_NATIVE_METHOD(ResourcesHook, initXResourcesNative, "()Z"),
|
||||||
LSP_NATIVE_METHOD(ResourcesHook, makeInheritable,
|
LSP_NATIVE_METHOD(ResourcesHook, makeInheritable,"(Ljava/lang/Class;)Z"),
|
||||||
"(Ljava/lang/Class;[Ljava/lang/reflect/Constructor;)Z"),
|
|
||||||
LSP_NATIVE_METHOD(ResourcesHook, buildDummyClassLoader,
|
LSP_NATIVE_METHOD(ResourcesHook, buildDummyClassLoader,
|
||||||
"(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/ClassLoader;"),
|
"(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/ClassLoader;"),
|
||||||
LSP_NATIVE_METHOD(ResourcesHook, rewriteXmlReferencesNative,
|
LSP_NATIVE_METHOD(ResourcesHook, rewriteXmlReferencesNative,
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 2bd70518410ccd6a25adc876a3619d0b23f92e5a
|
Subproject commit 050561ac9ae5e900c649896a1d3ddc6d2b1188de
|
||||||
Loading…
Reference in New Issue