xiongzhu 1 рік тому
батько
коміт
876a7da36e
2 змінених файлів з 80 додано та 7 видалено
  1. 28 0
      scripts/carrierid.js
  2. 52 7
      scripts/spoof_phone.js

+ 28 - 0
scripts/carrierid.js

@@ -0,0 +1,28 @@
+Java.perform(() => {
+    const TelephonyManager = Java.use('android.telephony.TelephonyManager')
+    TelephonyManager.getSimCarrierId.overload().implementation = function () {
+        const carrierId = this.getSimCarrierId()
+        console.log('TelephonyManager.getSimCarrierId() =>', carrierId)
+        return carrierId
+    }
+    TelephonyManager.getCarrierIdFromSimMccMnc.overload().implementation = function () {
+        const carrierId = this.getCarrierIdFromSimMccMnc()
+        console.log('TelephonyManager.getCarrierIdFromSimMccMnc() =>', carrierId)
+        return carrierId
+    }
+    TelephonyManager.getSimSpecificCarrierId.overload().implementation = function () {
+        const carrierId = this.getSimSpecificCarrierId()
+        console.log('TelephonyManager.getSimSpecificCarrierId() =>', carrierId)
+        return carrierId
+    }
+    TelephonyManager.getCarrierConfig.overload().implementation = function () {
+        const carrierConfig = this.getCarrierConfig()
+        console.log('TelephonyManager.getCarrierConfig() =>', carrierConfig)
+        return carrierConfig
+    }
+    TelephonyManager.getMsisdn.overload('int').implementation = function (subId) {
+        const msisdn = this.getMsisdn(subId)
+        console.log('TelephonyManager.getMsisdn() =>', msisdn)
+        return msisdn
+    }
+})

+ 52 - 7
scripts/spoof_phone.js

@@ -33,13 +33,13 @@ function trace(tag) {
 }
 
 const config = {
-    "mcc": "310",
-    "mnc": "240",
-    "iccid": "15003704960405101503",
-    "number": "4432486416",
-    "imei": "359028036674149",
-    "imsi": "310240158368215",
-    "country": "us"
+    mcc: '310',
+    mnc: '240',
+    iccid: '15003704960405101503',
+    number: '4432486416',
+    imei: '359028036674149',
+    imsi: '310240158368215',
+    country: 'us'
 }
 setImmediate(() => {
     Java.perform(function () {
@@ -124,7 +124,51 @@ setImmediate(() => {
             )
             return config.number
         }
+        const CharSequence = Java.use('java.lang.CharSequence')
+        const stringClzz = Java.use('java.lang.String')
         const SubscriptionInfo = Java.use('android.telephony.SubscriptionInfo')
+        const name = Java.cast(stringClzz.$new('T-Mobile'), CharSequence)
+        const uicc = Java.array('android.telephony.UiccAccessRule', [])
+
+        const BitmapConfig = Java.use('android.graphics.Bitmap$Config')
+        const Bitmap = Java.use('android.graphics.Bitmap')
+
+        console.log(
+            Java.use('java.lang.Integer').valueOf(1), 
+            config.iccid,
+            0,
+            name,
+            name,
+            0,
+            0,
+            config.number,
+            0,
+            Bitmap.createBitmap(1, 1, BitmapConfig.ARGB_8888.value),
+            config.mcc,
+            config.mnc,
+            config.country,
+            false,
+            Java.cast(uicc.$w, Java.use('[Landroid.telephony.UiccAccessRule;')),
+            config.iccid
+        )
+        SubscriptionInfo.$init(
+            1,
+            config.iccid,
+            0,
+            name,
+            name,
+            0,
+            0,
+            config.number,
+            0,
+            Bitmap.createBitmap(1, 1, BitmapConfig.ARGB_8888.value),
+            config.mcc,
+            config.mnc,
+            config.country,
+            false,
+            Java.cast(uicc.$w, Java.use('[Landroid.telephony.UiccAccessRule;')),
+            config.iccid
+        )
         SubscriptionController.getActiveSubscriptionInfoList.overload('java.lang.String').implementation = function (
             callingPackage
         ) {
@@ -165,6 +209,7 @@ setImmediate(() => {
             SystemProperties.set('gsm.sim.operator.iso-country', config.country)
             SystemProperties.set('gsm.sim.operator.numeric', config.mcc + config.mnc)
             SystemProperties.set('gsm.operator.numeric', config.mcc + config.mnc)
+
             return res
         }