x1ongzhu 1 éve
szülő
commit
43a1ddbe92

+ 26 - 10
app/src/main/java/com/example/modifiermodule/Hook13.java

@@ -36,6 +36,18 @@ public class Hook13 extends BaseHook {
                     param.setResult(getProperty(PROP_IMEI, ""));
                 }
             });
+            XposedHelpers.findAndHookMethod(PhoneInterfaceManager, "getMeidForSlot", int.class, String.class, String.class, new XC_MethodHook() {
+                @Override
+                protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+                    log("spoof PhoneInterfaceManager.getMeidForSlot");
+                    String imei = getProperty(PROP_IMEI, "");
+                    String meid = imei;
+                    if (imei.length() > 14) {
+                        meid = imei.substring(0, 14);
+                    }
+                    param.setResult(meid);
+                }
+            });
             XposedHelpers.findAndHookMethod(PhoneInterfaceManager, "getSubscriptionSpecificCarrierId", int.class, new XC_MethodHook() {
                 @Override
                 protected void beforeHookedMethod(MethodHookParam param) {
@@ -164,16 +176,20 @@ public class Hook13 extends BaseHook {
             }
         });
 
-        Class<?> CarrierResolver = XposedHelpers.findClass("com.android.internal.telephony.CarrierResolver", lpparam.classLoader);
-        XposedHelpers.findAndHookMethod(CarrierResolver, "getCarrierIdFromSimMccMnc", String.class, String.class, new XC_MethodHook() {
-            @Override
-            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
-                log("spoof CarrierResolver.getCarrierIdFromSimMccMnc");
-                int carrierId = getIntProperty(PROP_CARRIER_ID, -1);
-                if (carrierId != -1) {
-                    param.setResult(carrierId);
+        try {
+            Class<?> CarrierResolver = XposedHelpers.findClass("com.android.internal.telephony.CarrierResolver", lpparam.classLoader);
+            XposedHelpers.findAndHookMethod(CarrierResolver, "getCarrierIdFromSimMccMnc", String.class, String.class, new XC_MethodHook() {
+                @Override
+                protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+                    log("spoof CarrierResolver.getCarrierIdFromSimMccMnc");
+                    int carrierId = getIntProperty(PROP_CARRIER_ID, -1);
+                    if (carrierId != -1) {
+                        param.setResult(carrierId);
+                    }
                 }
-            }
-        });
+            });
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 }

+ 140 - 142
app/src/main/java/com/example/modifiermodule/XposedInit.java

@@ -45,7 +45,7 @@ public class XposedInit extends BaseHook implements IXposedHookLoadPackage, IXpo
     @SuppressLint("UnspecifiedRegisterReceiverFlag")
     @Override
     public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
-        log("load package: " + lpparam.packageName + ", imsi=" + getProperty(PROP_IMSI, "unknown"));
+        log("load package: " + lpparam.packageName);
 
         if ("com.android.phone".equals(lpparam.packageName)) {
             executor.schedule(() -> {
@@ -82,153 +82,151 @@ public class XposedInit extends BaseHook implements IXposedHookLoadPackage, IXpo
                 }
 
             }, 5, TimeUnit.SECONDS);
+
+            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
+                Hook14.handleLoadPackage(lpparam);
+            } else {
+                Hook13.handleLoadPackage(lpparam);
+            }
         }
 
         if ("com.google.android.apps.messaging".equals(lpparam.packageName)) {
             HookMessage.handleLoadPackage(lpparam);
-            return;
-        }
-
-        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
-            Hook14.handleLoadPackage(lpparam);
-        } else {
-            Hook13.handleLoadPackage(lpparam);
         }
 
-
-        Class<?> SubscriptionManager = XposedHelpers.findClass("android.telephony.SubscriptionManager", lpparam.classLoader);
-        XposedHelpers.findAndHookMethod(SubscriptionManager, "getPhoneNumber", int.class, new XC_MethodHook() {
-            @Override
-            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
-                log("spoof SubscriptionManager.getPhoneNumber");
-                param.setResult(getProperty(PROP_NUMBER, ""));
-            }
-        });
-        XposedHelpers.findAndHookMethod(SubscriptionManager, "getPhoneNumber", int.class, int.class, new XC_MethodHook() {
-            @Override
-            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
-                log("spoof SubscriptionManager.getPhoneNumber");
-                param.setResult(getProperty(PROP_NUMBER, ""));
-            }
-        });
-
-        Class<?> SubscriptionInfo = XposedHelpers.findClass("android.telephony.SubscriptionInfo", lpparam.classLoader);
-        XposedHelpers.findAndHookMethod(SubscriptionInfo, "getMcc", new XC_MethodHook() {
-            @Override
-            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
-                log("spoof SubscriptionInfo.getMcc -> " + getProperty(PROP_MCC, ""));
-                param.setResult(Integer.parseInt(getProperty(PROP_MCC, "")));
-            }
-        });
-        XposedHelpers.findAndHookMethod(SubscriptionInfo, "getMnc", new XC_MethodHook() {
-            @Override
-            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
-                log("spoof SubscriptionInfo.getMnc -> " + getProperty(PROP_MNC, ""));
-                param.setResult(Integer.parseInt(getProperty(PROP_MNC, "")));
-            }
-        });
-        XposedHelpers.findAndHookMethod(SubscriptionInfo, "getMccString", new XC_MethodHook() {
-            @Override
-            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
-                log("spoof SubscriptionInfo.getMccString -> " + getProperty(PROP_MCC, ""));
-                param.setResult(getProperty(PROP_MCC, ""));
-            }
-        });
-        XposedHelpers.findAndHookMethod(SubscriptionInfo, "getMncString", new XC_MethodHook() {
-            @Override
-            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
-                log("spoof SubscriptionInfo.getMncString -> " + getProperty(PROP_MNC, ""));
-                param.setResult(getProperty(PROP_MNC, ""));
-            }
-        });
-        XposedHelpers.findAndHookMethod(SubscriptionInfo, "getNumber", new XC_MethodHook() {
-            @Override
-            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
-                log("spoof SubscriptionInfo.getNumber -> " + getProperty(PROP_NUMBER, ""));
-                param.setResult(getProperty(PROP_NUMBER, ""));
-            }
-        });
-        XposedHelpers.findAndHookMethod(SubscriptionInfo, "getIccId", new XC_MethodHook() {
-            @Override
-            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
-                log("spoof SubscriptionInfo.getIccId -> " + getProperty(PROP_ICCID, ""));
-                param.setResult(getProperty(PROP_ICCID, ""));
-            }
-        });
-        XposedHelpers.findAndHookMethod(SubscriptionInfo, "getCountryIso", new XC_MethodHook() {
-            @Override
-            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
-                log("spoof SubscriptionInfo.getCountryIso -> " + getProperty(PROP_COUNTRY, ""));
-                param.setResult(getProperty(PROP_COUNTRY, ""));
-            }
-        });
-
-
-        Class<?> TelephonyManager = XposedHelpers.findClass("android.telephony.TelephonyManager", lpparam.classLoader);
-        XposedHelpers.findAndHookMethod(TelephonyManager, "getLine1Number", new XC_MethodHook() {
-            @Override
-            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
-                log("spoof TelephonyManager.getLine1Number -> " + getProperty(PROP_NUMBER, ""));
-                param.setResult(getProperty(PROP_NUMBER, ""));
-            }
-        });
-        XposedHelpers.findAndHookMethod(TelephonyManager, "getSimOperator", new XC_MethodHook() {
-            @Override
-            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
-                log("spoof TelephonyManager.getSimOperator -> " + getProperty(PROP_MCC, "") + getProperty(PROP_MNC, ""));
-                param.setResult(getProperty(PROP_MCC, "") + getProperty(PROP_MNC, ""));
-            }
-        });
-        XposedHelpers.findAndHookMethod(TelephonyManager, "getNetworkOperator", new XC_MethodHook() {
-            @Override
-            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
-                log("spoof TelephonyManager.getNetworkOperator -> " + getProperty(PROP_MCC, "") + getProperty(PROP_MNC, ""));
-                param.setResult(getProperty(PROP_MCC, "") + getProperty(PROP_MNC, ""));
-            }
-        });
-        XposedHelpers.findAndHookMethod(TelephonyManager, "getSimSerialNumber", new XC_MethodHook() {
-            @Override
-            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
-                log("spoof TelephonyManager.getSimSerialNumber -> " + getProperty(PROP_ICCID, ""));
-                param.setResult(getProperty(PROP_ICCID, ""));
-            }
-        });
-        XposedHelpers.findAndHookMethod(TelephonyManager, "getSubscriberId", new XC_MethodHook() {
-            @Override
-            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
-                log("spoof TelephonyManager.getSubscriberId -> " + getProperty(PROP_IMSI, ""));
-                param.setResult(getProperty(PROP_IMSI, ""));
-            }
-        });
-        XposedHelpers.findAndHookMethod(TelephonyManager, "getImei", new XC_MethodHook() {
-            @Override
-            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
-                log("spoof TelephonyManager.getImei -> " + getProperty(PROP_IMEI, ""));
-                param.setResult(getProperty(PROP_IMEI, ""));
-            }
-        });
-        XposedHelpers.findAndHookMethod(TelephonyManager, "getNetworkCountryIso", new XC_MethodHook() {
-            @Override
-            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
-                log("spoof TelephonyManager.getNetworkCountryIso -> " + getProperty(PROP_COUNTRY, ""));
-                param.setResult(getProperty(PROP_COUNTRY, ""));
-            }
-        });
-        XposedHelpers.findAndHookMethod(TelephonyManager, "getSimCountryIso", new XC_MethodHook() {
-            @Override
-            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
-                log("spoof TelephonyManager.getSimCountryIso -> " + getProperty(PROP_COUNTRY, ""));
-                param.setResult(getProperty(PROP_COUNTRY, ""));
-            }
-        });
-        //getSimState
-        XposedHelpers.findAndHookMethod(TelephonyManager, "getSimState", new XC_MethodHook() {
-            @Override
-            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
-                log("spoof TelephonyManager.getSimState -> 5");
-                param.setResult(5);
-            }
-        });
+//        Class<?> SubscriptionManager = XposedHelpers.findClass("android.telephony.SubscriptionManager", lpparam.classLoader);
+//        XposedHelpers.findAndHookMethod(SubscriptionManager, "getPhoneNumber", int.class, new XC_MethodHook() {
+//            @Override
+//            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+//                log("spoof SubscriptionManager.getPhoneNumber");
+//                param.setResult(getProperty(PROP_NUMBER, ""));
+//            }
+//        });
+//        XposedHelpers.findAndHookMethod(SubscriptionManager, "getPhoneNumber", int.class, int.class, new XC_MethodHook() {
+//            @Override
+//            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+//                log("spoof SubscriptionManager.getPhoneNumber");
+//                param.setResult(getProperty(PROP_NUMBER, ""));
+//            }
+//        });
+//
+//        Class<?> SubscriptionInfo = XposedHelpers.findClass("android.telephony.SubscriptionInfo", lpparam.classLoader);
+//        XposedHelpers.findAndHookMethod(SubscriptionInfo, "getMcc", new XC_MethodHook() {
+//            @Override
+//            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+//                log("spoof SubscriptionInfo.getMcc -> " + getProperty(PROP_MCC, ""));
+//                param.setResult(Integer.parseInt(getProperty(PROP_MCC, "")));
+//            }
+//        });
+//        XposedHelpers.findAndHookMethod(SubscriptionInfo, "getMnc", new XC_MethodHook() {
+//            @Override
+//            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+//                log("spoof SubscriptionInfo.getMnc -> " + getProperty(PROP_MNC, ""));
+//                param.setResult(Integer.parseInt(getProperty(PROP_MNC, "")));
+//            }
+//        });
+//        XposedHelpers.findAndHookMethod(SubscriptionInfo, "getMccString", new XC_MethodHook() {
+//            @Override
+//            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+//                log("spoof SubscriptionInfo.getMccString -> " + getProperty(PROP_MCC, ""));
+//                param.setResult(getProperty(PROP_MCC, ""));
+//            }
+//        });
+//        XposedHelpers.findAndHookMethod(SubscriptionInfo, "getMncString", new XC_MethodHook() {
+//            @Override
+//            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+//                log("spoof SubscriptionInfo.getMncString -> " + getProperty(PROP_MNC, ""));
+//                param.setResult(getProperty(PROP_MNC, ""));
+//            }
+//        });
+//        XposedHelpers.findAndHookMethod(SubscriptionInfo, "getNumber", new XC_MethodHook() {
+//            @Override
+//            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+//                log("spoof SubscriptionInfo.getNumber -> " + getProperty(PROP_NUMBER, ""));
+//                param.setResult(getProperty(PROP_NUMBER, ""));
+//            }
+//        });
+//        XposedHelpers.findAndHookMethod(SubscriptionInfo, "getIccId", new XC_MethodHook() {
+//            @Override
+//            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+//                log("spoof SubscriptionInfo.getIccId -> " + getProperty(PROP_ICCID, ""));
+//                param.setResult(getProperty(PROP_ICCID, ""));
+//            }
+//        });
+//        XposedHelpers.findAndHookMethod(SubscriptionInfo, "getCountryIso", new XC_MethodHook() {
+//            @Override
+//            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+//                log("spoof SubscriptionInfo.getCountryIso -> " + getProperty(PROP_COUNTRY, ""));
+//                param.setResult(getProperty(PROP_COUNTRY, ""));
+//            }
+//        });
+//
+//
+//        Class<?> TelephonyManager = XposedHelpers.findClass("android.telephony.TelephonyManager", lpparam.classLoader);
+//        XposedHelpers.findAndHookMethod(TelephonyManager, "getLine1Number", new XC_MethodHook() {
+//            @Override
+//            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+//                log("spoof TelephonyManager.getLine1Number -> " + getProperty(PROP_NUMBER, ""));
+//                param.setResult(getProperty(PROP_NUMBER, ""));
+//            }
+//        });
+//        XposedHelpers.findAndHookMethod(TelephonyManager, "getSimOperator", new XC_MethodHook() {
+//            @Override
+//            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+//                log("spoof TelephonyManager.getSimOperator -> " + getProperty(PROP_MCC, "") + getProperty(PROP_MNC, ""));
+//                param.setResult(getProperty(PROP_MCC, "") + getProperty(PROP_MNC, ""));
+//            }
+//        });
+//        XposedHelpers.findAndHookMethod(TelephonyManager, "getNetworkOperator", new XC_MethodHook() {
+//            @Override
+//            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+//                log("spoof TelephonyManager.getNetworkOperator -> " + getProperty(PROP_MCC, "") + getProperty(PROP_MNC, ""));
+//                param.setResult(getProperty(PROP_MCC, "") + getProperty(PROP_MNC, ""));
+//            }
+//        });
+//        XposedHelpers.findAndHookMethod(TelephonyManager, "getSimSerialNumber", new XC_MethodHook() {
+//            @Override
+//            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+//                log("spoof TelephonyManager.getSimSerialNumber -> " + getProperty(PROP_ICCID, ""));
+//                param.setResult(getProperty(PROP_ICCID, ""));
+//            }
+//        });
+//        XposedHelpers.findAndHookMethod(TelephonyManager, "getSubscriberId", new XC_MethodHook() {
+//            @Override
+//            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+//                log("spoof TelephonyManager.getSubscriberId -> " + getProperty(PROP_IMSI, ""));
+//                param.setResult(getProperty(PROP_IMSI, ""));
+//            }
+//        });
+//        XposedHelpers.findAndHookMethod(TelephonyManager, "getImei", new XC_MethodHook() {
+//            @Override
+//            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+//                log("spoof TelephonyManager.getImei -> " + getProperty(PROP_IMEI, ""));
+//                param.setResult(getProperty(PROP_IMEI, ""));
+//            }
+//        });
+//        XposedHelpers.findAndHookMethod(TelephonyManager, "getNetworkCountryIso", new XC_MethodHook() {
+//            @Override
+//            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+//                log("spoof TelephonyManager.getNetworkCountryIso -> " + getProperty(PROP_COUNTRY, ""));
+//                param.setResult(getProperty(PROP_COUNTRY, ""));
+//            }
+//        });
+//        XposedHelpers.findAndHookMethod(TelephonyManager, "getSimCountryIso", new XC_MethodHook() {
+//            @Override
+//            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+//                log("spoof TelephonyManager.getSimCountryIso -> " + getProperty(PROP_COUNTRY, ""));
+//                param.setResult(getProperty(PROP_COUNTRY, ""));
+//            }
+//        });
+//        //getSimState
+//        XposedHelpers.findAndHookMethod(TelephonyManager, "getSimState", new XC_MethodHook() {
+//            @Override
+//            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+//                log("spoof TelephonyManager.getSimState -> 5");
+//                param.setResult(5);
+//            }
+//        });
     }
 
     @Override

+ 1 - 1
app/src/test/java/com/example/modifiermodule/ExampleUnitTest.java

@@ -12,6 +12,6 @@ import static org.junit.Assert.*;
 public class ExampleUnitTest {
     @Test
     public void addition_isCorrect() {
-        assertEquals(4, 2 + 2);
+        System.out.println("".substring(0, 15));
     }
 }