Commit b425610b authored by Administrator's avatar Administrator

部分情况钉钉入口定位失败,导致插件没有加载

parent 762fd143
......@@ -20,7 +20,6 @@ import android.app.Activity;
import android.app.ActivityThread;
import android.app.Application;
import android.content.Context;
import android.text.TextUtils;
import com.sky.xposed.common.util.Alog;
import com.sky.xposed.javax.MethodHook;
......@@ -77,25 +76,16 @@ public class Main implements IXposedHookLoadPackage, MethodHook.ThrowableCallbac
config.get(M.classz.class_dingtalkbase_multidexsupport_DDApplication),
config.get(M.method.method_dingtalkbase_multidexsupport_DDApplication_onCreate))
.before(param -> {
Alog.i("enter :" + param.method);
Application application = (Application) param.thisObject;
Context context = application.getApplicationContext();
if (TextUtils.equals(
config.get(M.classz.class_rimet_LauncherApplication),
application.getClass().getName())) {
Alog.i("enter pluginManager");
XPluginManager pluginManager = new PluginManager
.Build(context)
.setLoadPackageParam(lpParam)
.setVersionManager(versionManager)
.build();
// 开始处理加载的包
pluginManager.handleLoadPackage();
}
loadAfterApplicationOnCreate(param, versionManager, lpParam);
});
XposedHelpers.findAndHookMethod(Application.class, "onCreate", new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
loadAfterApplicationOnCreate(param, versionManager, lpParam);
}
});
XposedHelpers.findAndHookMethod(Activity.class, "onResume", new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) {
......@@ -103,4 +93,25 @@ public class Main implements IXposedHookLoadPackage, MethodHook.ThrowableCallbac
}
});
}
private static boolean load = false;
private static void loadAfterApplicationOnCreate(XC_MethodHook.MethodHookParam param, XVersionManager versionManager, XC_LoadPackage.LoadPackageParam lpParam) {
if (load) {
return;
}
load = true;
Alog.i("enter :" + param.method);
Application application = (Application) param.thisObject;
Context context = application.getApplicationContext();
Alog.i("enter pluginManager");
XPluginManager pluginManager = new PluginManager
.Build(context)
.setLoadPackageParam(lpParam)
.setVersionManager(versionManager)
.build();
// 开始处理加载的包
pluginManager.handleLoadPackage();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment