Browse Source

spoof carrierId

x1ongzhu 1 year ago
parent
commit
545b8978d0

+ 14 - 0
app/src/main/java/com/example/modifiermodule/BaseHook.java

@@ -41,4 +41,18 @@ public class BaseHook {
         }
         return value;
     }
+
+    static int getIntProperty(String key, int defaultValue) {
+        int value = defaultValue;
+        try {
+            String prop = getProperty(key, String.valueOf(defaultValue));
+            if (TextUtils.isEmpty(prop)) {
+                return defaultValue;
+            }
+            value = Integer.parseInt(prop);
+        } catch (NumberFormatException e) {
+            e.printStackTrace();
+        }
+        return value;
+    }
 }

+ 11 - 5
app/src/main/java/com/example/modifiermodule/Hook13.java

@@ -39,7 +39,7 @@ public class Hook13 extends BaseHook {
             XposedHelpers.findAndHookMethod(PhoneInterfaceManager, "getSubscriptionSpecificCarrierId", int.class, new XC_MethodHook() {
                 @Override
                 protected void beforeHookedMethod(MethodHookParam param) {
-                    int carrierId = Integer.parseInt(getProperty(PROP_CARRIER_ID, "-1"));
+                    int carrierId = getIntProperty(PROP_CARRIER_ID, -1);
                     if (carrierId != -1) {
                         log("spoof PhoneInterfaceManager.getSubscriptionSpecificCarrierId");
                         param.setResult(carrierId);
@@ -50,7 +50,10 @@ public class Hook13 extends BaseHook {
                 @Override
                 protected void beforeHookedMethod(MethodHookParam param) {
                     log("spoof PhoneInterfaceManager.getSubscriptionCarrierId");
-                    param.setResult(Integer.parseInt(getProperty(PROP_CARRIER_ID, "1187")));
+                    int carrierId = getIntProperty(PROP_CARRIER_ID, -1);
+                    if (carrierId != -1) {
+                        param.setResult(carrierId);
+                    }
                 }
             });
         } catch (Exception e) {
@@ -78,7 +81,7 @@ public class Hook13 extends BaseHook {
                         XposedHelpers.setObjectField(info, "mMnc", getProperty(PROP_MNC, ""));
                         XposedHelpers.setObjectField(info, "mCountryIso", getProperty(PROP_COUNTRY, ""));
                         XposedHelpers.setObjectField(info, "mIccId", getProperty(PROP_ICCID, ""));
-                        int carrierId = Integer.parseInt(getProperty(PROP_CARRIER_ID, "-1"));
+                        int carrierId = getIntProperty(PROP_CARRIER_ID, -1);
                         if (carrierId != -1) {
                             XposedHelpers.setObjectField(info, "mCarrierId", carrierId);
                         }
@@ -100,7 +103,7 @@ public class Hook13 extends BaseHook {
                         XposedHelpers.setObjectField(info, "mMnc", getProperty(PROP_MNC, ""));
                         XposedHelpers.setObjectField(info, "mCountryIso", getProperty(PROP_COUNTRY, ""));
                         XposedHelpers.setObjectField(info, "mIccId", getProperty(PROP_ICCID, ""));
-                        int carrierId = Integer.parseInt(getProperty(PROP_CARRIER_ID, "-1"));
+                        int carrierId = getIntProperty(PROP_CARRIER_ID, -1);
                         if (carrierId != -1) {
                             XposedHelpers.setObjectField(info, "mCarrierId", carrierId);
                         }
@@ -166,7 +169,10 @@ public class Hook13 extends BaseHook {
             @Override
             protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                 log("spoof CarrierResolver.getCarrierIdFromSimMccMnc");
-                param.setResult(Integer.parseInt(getProperty(PROP_CARRIER_ID, "1187")));
+                int carrierId = getIntProperty(PROP_CARRIER_ID, -1);
+                if (carrierId != -1) {
+                    param.setResult(carrierId);
+                }
             }
         });
     }