Fix parasitic manager state restore on 8.1 (#1725)

This commit is contained in:
LoveSy 2022-02-25 20:34:36 +08:00 committed by GitHub
parent bc8b4c69a5
commit 2ba199d68c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 13 additions and 11 deletions

View File

@ -142,8 +142,9 @@ public class ParasiticManagerHooker {
@Override
protected void afterHookedMethod(MethodHookParam param) {
if (activityClientRecordClass.isInstance(param.thisObject)) {
var aInfo = (ActivityInfo) XposedHelpers.getObjectField(param.thisObject, "activityInfo");
for (var i = 0; i < param.args.length; ++i) {
if (param.args[i] instanceof ActivityInfo) {
var aInfo = (ActivityInfo) param.args[i];
Hookers.logD("loading state of " + aInfo.name);
states.computeIfPresent(aInfo.name, (k, v) -> {
XposedHelpers.setObjectField(param.thisObject, "state", v);
@ -155,6 +156,7 @@ public class ParasiticManagerHooker {
});
}
}
}
};
XposedBridge.hookAllConstructors(activityClientRecordClass, activityHooker);