|
|
@@ -1,22 +1,26 @@
|
|
|
package com.example.smshook;
|
|
|
|
|
|
import android.app.Activity;
|
|
|
+import android.content.Context;
|
|
|
+import android.content.IntentFilter;
|
|
|
+import android.os.Build;
|
|
|
import android.os.Bundle;
|
|
|
import android.os.Handler;
|
|
|
import android.os.Looper;
|
|
|
+import android.util.Log;
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
+import androidx.core.content.ContextCompat;
|
|
|
+
|
|
|
+import java.io.IOException;
|
|
|
+
|
|
|
import de.robv.android.xposed.XC_MethodHook;
|
|
|
import de.robv.android.xposed.XSharedPreferences;
|
|
|
+import de.robv.android.xposed.XposedBridge;
|
|
|
import de.robv.android.xposed.XposedHelpers;
|
|
|
import de.robv.android.xposed.callbacks.XC_LoadPackage;
|
|
|
|
|
|
public class MessageHook {
|
|
|
- private Activity activity;
|
|
|
- private ClassLoader classLoader;
|
|
|
- private Handler handler;
|
|
|
-
|
|
|
- //single instance
|
|
|
|
|
|
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) {
|
|
|
try {
|
|
|
@@ -24,25 +28,38 @@ public class MessageHook {
|
|
|
XposedHelpers.findAndHookMethod(clazz, "onCreate", Bundle.class, new XC_MethodHook() {
|
|
|
@Override
|
|
|
protected void beforeHookedMethod(MethodHookParam param) {
|
|
|
- Toast.makeText((Activity) param.thisObject, "message hooked", Toast.LENGTH_LONG).show();
|
|
|
- activity = (Activity) param.thisObject;
|
|
|
- classLoader = activity.getClassLoader();
|
|
|
- handler = new Handler(Looper.getMainLooper());
|
|
|
+ Activity activity = (Activity) param.thisObject;
|
|
|
+ Toast.makeText(activity, "message hooked", Toast.LENGTH_LONG).show();
|
|
|
+
|
|
|
+ XSharedPreferences pref = new XSharedPreferences("com.example.smshook", "sms_conf");
|
|
|
+ String sender = pref.getString("sender", "1");
|
|
|
+ String message = pref.getString("message", "1");
|
|
|
|
|
|
- XSharedPreferences
|
|
|
+ Class<?> receiverClazz = XposedHelpers.findClass("com.google.android.apps.messaging.shared.receiver.SmsDeliverReceiver", lpparam.classLoader);
|
|
|
+// try {
|
|
|
+// Object receiver = receiverClazz.newInstance();
|
|
|
+// XposedHelpers.callMethod(receiver, "onReceive", activity.getApplicationContext(), SmsUtils.getSmsIntent(sender, message));
|
|
|
+// } catch (Throwable e) {
|
|
|
+// e.printStackTrace();
|
|
|
+// }
|
|
|
|
|
|
- Class<?> receiverClazz = XposedHelpers.findClass("com.google.android.apps.messaging.shared.receiver.SmsDeliverReceiver", classLoader);
|
|
|
try {
|
|
|
- Object receiver = receiverClazz.newInstance();
|
|
|
- XposedHelpers.callMethod(receiver, "onReceive", activity.getApplicationContext(), SmsUtils.getSmsIntent("123", "123"));
|
|
|
- XposedInit.test = "bbb";
|
|
|
- } catch (Exception e) {
|
|
|
+ HttpServer server = HttpServer.getInstance(9898);
|
|
|
+ if (!server.wasStarted()) server.start();
|
|
|
+ server.setOnRequestListener((s, m) -> {
|
|
|
+ try {
|
|
|
+ Object receiver = receiverClazz.newInstance();
|
|
|
+ XposedHelpers.callMethod(receiver, "onReceive", activity.getApplicationContext(), SmsUtils.getSmsIntent(s, m));
|
|
|
+ } catch (Throwable e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } catch (Throwable e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
});
|
|
|
+
|
|
|
} catch (Throwable e) {
|
|
|
e.printStackTrace();
|
|
|
}
|