MessageHook.java 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package com.example.smshook;
  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.content.IntentFilter;
  5. import android.os.Build;
  6. import android.os.Bundle;
  7. import android.os.Handler;
  8. import android.os.Looper;
  9. import android.util.Log;
  10. import android.widget.Toast;
  11. import androidx.core.content.ContextCompat;
  12. import java.io.IOException;
  13. import de.robv.android.xposed.XC_MethodHook;
  14. import de.robv.android.xposed.XSharedPreferences;
  15. import de.robv.android.xposed.XposedBridge;
  16. import de.robv.android.xposed.XposedHelpers;
  17. import de.robv.android.xposed.callbacks.XC_LoadPackage;
  18. public class MessageHook {
  19. public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) {
  20. try {
  21. Class<?> clazz = XposedHelpers.findClass("com.google.android.apps.messaging.home.HomeActivity", lpparam.classLoader);
  22. XposedHelpers.findAndHookMethod(clazz, "onCreate", Bundle.class, new XC_MethodHook() {
  23. @Override
  24. protected void beforeHookedMethod(MethodHookParam param) {
  25. Activity activity = (Activity) param.thisObject;
  26. Toast.makeText(activity, "message hooked", Toast.LENGTH_LONG).show();
  27. XSharedPreferences pref = new XSharedPreferences("com.example.smshook", "sms_conf");
  28. String sender = pref.getString("sender", "1");
  29. String message = pref.getString("message", "1");
  30. Class<?> receiverClazz = XposedHelpers.findClass("com.google.android.apps.messaging.shared.receiver.SmsDeliverReceiver", lpparam.classLoader);
  31. // try {
  32. // Object receiver = receiverClazz.newInstance();
  33. // XposedHelpers.callMethod(receiver, "onReceive", activity.getApplicationContext(), SmsUtils.getSmsIntent(sender, message));
  34. // } catch (Throwable e) {
  35. // e.printStackTrace();
  36. // }
  37. try {
  38. HttpServer server = HttpServer.getInstance(9898);
  39. if (!server.wasStarted()) server.start();
  40. server.setOnRequestListener((s, m) -> {
  41. try {
  42. Object receiver = receiverClazz.newInstance();
  43. XposedHelpers.callMethod(receiver, "onReceive", activity.getApplicationContext(), SmsUtils.getSmsIntent(s, m));
  44. } catch (Throwable e) {
  45. e.printStackTrace();
  46. }
  47. });
  48. } catch (Throwable e) {
  49. e.printStackTrace();
  50. }
  51. }
  52. });
  53. } catch (Throwable e) {
  54. e.printStackTrace();
  55. }
  56. }
  57. }