如题,想hook第三个app,可以从第三个app的activity中调用我的应用activity。所以想获取第三个app的上下文,怎么办?
第三个应用的包是com.ss.android.gallery.heavy
,我的项目的包是com.example.hao.hookstartupinterfacetest
;
我的 Xposed Module.java(这里的 MainActivity 是我项目的活动)
XposedHelpers.findAndHookMethod("com.ss.android.gallery.heavy.activity.SplashActivity",
loadPackageParam.classLoader, "getMainIntent", new XC_MethodReplacement() {
@Override
protected Object replaceHookedMethod(MethodHookParam methodHookParam) throws Throwable {
Context context = (Activity)methodHookParam.getResult();
return new Intent(context, MainActivity.class);
}
});
SplashActivity.class(它在第三个应用程序中,这里的MainActivity属于第三个应用程序。)
public class SplashActivity extends BaseSplashActivity{
protected Intent getMainIntent(){
return new Intent(this, MainActivity.class);
}
}
错误
01-18 20:38:23.669 4730-4730/com.ss.android.gallery.heavy E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.ss.android.gallery.heavy, PID: 4730
android.content.ActivityNotFoundException: Unable to find explicit activity class {com.ss.android.gallery.heavy/com.example.hao.hookstartupinterfacetest.MainActivity}; have you declared this activity in your AndroidManifest.xml?
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1777)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1501)
at android.app.Activity.startActivityForResult(Activity.java:3745)
at android.app.Activity.startActivityForResult(Activity.java:3706)
at android.app.Activity.startActivity(Activity.java:4016)
at android.app.Activity.startActivity(Activity.java:3984)
at com.ss.android.gallery.base.activity.BaseSplashActivity.goMainActivity(BaseSplashActivity.java:61)
at com.ss.android.gallery.base.activity.BaseSplashActivity.access$000(BaseSplashActivity.java:17)
at com.ss.android.gallery.base.activity.BaseSplashActivity$1.run(BaseSplashActivity.java:76)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:102)