Disable resources hooking when initialization failed

This commit is contained in:
solohsu 2019-04-22 22:54:27 +08:00
parent 6e6327bec8
commit 3930799086
5 changed files with 23 additions and 0 deletions

View File

@ -36,6 +36,11 @@ public abstract class BaseHookProvider implements HookProvider {
}
@Override
public boolean initXResourcesNative() {
return false;
}
@Override
public void rewriteXmlReferencesNative(long parserPtr, XResources origRes, Resources repRes) {

View File

@ -29,6 +29,11 @@ public class YahfaHookProvider extends BaseHookProvider {
return DexMakerUtils.findMethodNative(hookMethod);
}
@Override
public boolean initXResourcesNative() {
return Main.initXResourcesNative();
}
@Override
public void rewriteXmlReferencesNative(long parserPtr, XResources origRes, Resources repRes) {
Main.rewriteXmlReferencesNative(parserPtr, origRes, repRes);

View File

@ -92,6 +92,11 @@ public class EdXpConfigGlobal {
}
@Override
public boolean initXResourcesNative() {
return false;
}
@Override
public void rewriteXmlReferencesNative(long parserPtr, XResources origRes, Resources repRes) {

View File

@ -25,5 +25,7 @@ public interface HookProvider {
void deoptMethodNative(Object method);
boolean initXResourcesNative();
void rewriteXmlReferencesNative(long parserPtr, XResources origRes, Resources repRes);
}

View File

@ -105,6 +105,12 @@ public final class XposedInit {
return;
}
if (!EdXpConfigGlobal.getHookProvider().initXResourcesNative()) {
Log.e(TAG, "Cannot hook resources");
disableResources = true;
return;
}
/*
* getTopLevelResources(a)
* -> getTopLevelResources(b)