Skip to content

Instantly share code, notes, and snippets.

@MPeti1
Created March 20, 2018 20:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MPeti1/51a54071067d58b013cf2429be93a0b1 to your computer and use it in GitHub Desktop.
Save MPeti1/51a54071067d58b013cf2429be93a0b1 to your computer and use it in GitHub Desktop.
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