Fix Android 9 crash (#114)
This commit is contained in:
parent
2c7444b581
commit
eb870b593d
|
|
@ -102,9 +102,7 @@ public class LSPApplication {
|
||||||
LSPLoader.initModules(appLoadedApk);
|
LSPLoader.initModules(appLoadedApk);
|
||||||
Log.i(TAG, "Modules initialized");
|
Log.i(TAG, "Modules initialized");
|
||||||
|
|
||||||
switchClassLoader("mBaseClassLoader");
|
switchAllClassLoader();
|
||||||
switchClassLoader("mDefaultClassLoader");
|
|
||||||
switchClassLoader("mClassLoader");
|
|
||||||
doSigBypass(context);
|
doSigBypass(context);
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
throw new RuntimeException("Do hook", e);
|
throw new RuntimeException("Do hook", e);
|
||||||
|
|
@ -324,8 +322,13 @@ public class LSPApplication {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void switchClassLoader(String fieldName) {
|
private static void switchAllClassLoader() {
|
||||||
var obj = XposedHelpers.getObjectField(appLoadedApk, fieldName);
|
var fields = LoadedApk.class.getDeclaredFields();
|
||||||
XposedHelpers.setObjectField(stubLoadedApk, fieldName, obj);
|
for (Field field : fields) {
|
||||||
|
if (field.getType() == ClassLoader.class) {
|
||||||
|
var obj = XposedHelpers.getObjectField(appLoadedApk, field.getName());
|
||||||
|
XposedHelpers.setObjectField(stubLoadedApk, field.getName(), obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue