-
-
Save MPeti1/51a54071067d58b013cf2429be93a0b1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.mpeter.asd; | |
import android.widget.TextView; | |
import de.robv.android.xposed.IXposedHookLoadPackage; | |
import de.robv.android.xposed.XC_MethodHook; | |
import de.robv.android.xposed.XposedBridge; | |
import de.robv.android.xposed.XposedHelpers; | |
import de.robv.android.xposed.callbacks.XC_LoadPackage; | |
/** | |
* Created by masap on 2018. 03. 19.. | |
*/ | |
public class Tutorial implements IXposedHookLoadPackage { | |
@Override | |
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable { | |
// XposedBridge.log("Xposed első projektem: Package is loading: " + lpparam.packageName); | |
if (!lpparam.packageName.equals("com.john.xmessengerprivacypremium") | |
|| !lpparam.packageName.equals("com.mpeter.asd")) | |
return; | |
XposedBridge.log("Hooking package " + lpparam.packageName); | |
switch (lpparam.packageName){ | |
case "com.john.xmessengerprivacypremium": | |
XposedBridge.log("xMessenger xDebug: We are in xMessenger!"); | |
XposedHelpers.findAndHookMethod("com.john.xmessengerprivacypremium.MainActivity", lpparam.classLoader, "onCreate", new XC_MethodHook() { | |
@Override | |
protected void beforeHookedMethod(MethodHookParam param) throws Throwable { | |
XposedBridge.log("xMessenger xDebug: onCreate called"); | |
super.beforeHookedMethod(param); | |
} | |
}); | |
XposedHelpers.findAndHookMethod("com.john.xmessengerprivacypremium.PrefsIntenceService", lpparam.classLoader, "a", new XC_MethodHook() { | |
@Override | |
protected void afterHookedMethod(MethodHookParam param) throws Throwable { | |
StringBuilder log = new StringBuilder("xMessenger xDebug: PrefsIntentService\n"); | |
log.append("thisObject is: ").append(param.thisObject.toString()); | |
log.append("arguments: \n"); | |
for (int i = 0; i < param.args.length; i++) { | |
log.append(param.args[i].toString()).append("\n"); | |
} | |
log.append("result: ").append(param.getResultOrThrowable().toString()); | |
log.append("method name: ").append(param.method.getName()); | |
log.append("method class: ").append(param.method.getDeclaringClass()); | |
log.append("method isSynthetic: ").append(param.method.isSynthetic()); | |
XposedBridge.log(log.toString()); | |
super.afterHookedMethod(param); | |
} | |
}); | |
break; | |
case "com.mpeter.asd": | |
XposedHelpers.findAndHookMethod(MainActivity.class, "onResume", new XC_MethodHook() { | |
@Override | |
protected void beforeHookedMethod(MethodHookParam param) throws Throwable { | |
XposedBridge.log("xMessenger xDebug: MainActivity of self is resumed"); | |
super.afterHookedMethod(param); | |
} | |
}); | |
XposedHelpers.findAndHookMethod(MainActivity.class, "onCreate", new XC_MethodHook() { | |
@Override | |
protected void afterHookedMethod(MethodHookParam param) throws Throwable { | |
TextView textView = (TextView) XposedHelpers.getObjectField(TextView.class, "moduleCheckTV"); | |
textView.setText("Module enabled"); | |
super.afterHookedMethod(param); | |
} | |
}); | |
break; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment