Add resources hooking support for all variants

This commit is contained in:
solohsu 2019-04-23 00:18:06 +08:00
parent 4ee0db8734
commit bc8b2bc16b
5 changed files with 39 additions and 1 deletions

View File

@ -1,6 +1,8 @@
package com.elderdrivers.riru.edxp;
import android.annotation.SuppressLint;
import android.content.res.Resources;
import android.content.res.XResources;
import android.os.Build;
import android.os.Process;
@ -147,4 +149,8 @@ public class Main implements KeepAll {
public static native void resumeAllThreads(long obj);
public static native int waitForGcToComplete(long thread);
public static native boolean initXResourcesNative();
public static native void rewriteXmlReferencesNative(long parserPtr, XResources origRes, Resources repRes);
}

View File

@ -1,7 +1,10 @@
package com.elderdrivers.riru.edxp.sandhook.config;
import android.content.res.Resources;
import android.content.res.XResources;
import android.util.Log;
import com.elderdrivers.riru.edxp.Main;
import com.elderdrivers.riru.edxp.config.BaseHookProvider;
import com.elderdrivers.riru.edxp.deopt.PrebuiltMethodsDeopter;
import com.elderdrivers.riru.edxp.sandhook.dexmaker.DynamicBridge;
@ -53,4 +56,14 @@ public class SandHookProvider extends BaseHookProvider {
public long getMethodId(Member member) {
return 0;
}
@Override
public boolean initXResourcesNative() {
return Main.initXResourcesNative();
}
@Override
public void rewriteXmlReferencesNative(long parserPtr, XResources origRes, Resources repRes) {
Main.rewriteXmlReferencesNative(parserPtr, origRes, repRes);
}
}

View File

@ -1,6 +1,8 @@
package com.elderdrivers.riru.edxp;
import android.annotation.SuppressLint;
import android.content.res.Resources;
import android.content.res.XResources;
import android.os.Build;
import android.os.Process;
@ -138,4 +140,8 @@ public class Main implements KeepAll {
public static native void resumeAllThreads(long obj);
public static native int waitForGcToComplete(long thread);
public static native boolean initXResourcesNative();
public static native void rewriteXmlReferencesNative(long parserPtr, XResources origRes, Resources repRes);
}

View File

@ -1,5 +1,9 @@
package com.elderdrivers.riru.edxp.whale.config;
import android.content.res.Resources;
import android.content.res.XResources;
import com.elderdrivers.riru.edxp.Main;
import com.elderdrivers.riru.edxp.config.BaseHookProvider;
import com.lody.whale.WhaleRuntime;
@ -43,4 +47,14 @@ public class WhaleHookProvider extends BaseHookProvider {
public long getMethodId(Member member) {
return WhaleRuntime.getMethodSlot(member);
}
@Override
public boolean initXResourcesNative() {
return Main.initXResourcesNative();
}
@Override
public void rewriteXmlReferencesNative(long parserPtr, XResources origRes, Resources repRes) {
Main.rewriteXmlReferencesNative(parserPtr, origRes, repRes);
}
}

View File

@ -58,7 +58,6 @@ public class Router {
}
Router.startBootstrapHook(isSystem);
XposedInit.initForZygote(isSystem);
Main.initXResourcesNative();
} catch (Throwable t) {
Utils.logE("error during Xposed initialization", t);
XposedBridge.disableHooks = true;