|
|
@@ -1,28 +1,28 @@
|
|
|
-const mcc = "302"
|
|
|
-const mnc = "299"
|
|
|
-const simOperator = "302299"
|
|
|
-const networkOperator = "302299"
|
|
|
-const simSerialNumber = "25343849204326395079"
|
|
|
-const iccId = "25343849204326395079"
|
|
|
-const number = "4305581376"
|
|
|
-const imei = "359028031160102"
|
|
|
-const imsi = "302299418648530"
|
|
|
-const countryIso = "ca"
|
|
|
-const subId = "45"
|
|
|
+const mcc = '310'
|
|
|
+const mnc = '160'
|
|
|
+const simOperator = '310160'
|
|
|
+const networkOperator = '310160'
|
|
|
+const simSerialNumber = '21116333706453551203'
|
|
|
+const iccId = '21116333706453551203'
|
|
|
+const number = '4014224597'
|
|
|
+const imei = '359294044823884'
|
|
|
+const imsi = '310160362935445'
|
|
|
+const countryIso = 'us'
|
|
|
+const subId = '60'
|
|
|
|
|
|
class Log {
|
|
|
- static TAG = "[SMS]"
|
|
|
+ static TAG = '[SMS]'
|
|
|
static Debug = false
|
|
|
static format(...msg) {
|
|
|
let m = []
|
|
|
for (let i = 0; i < msg.length; i++) {
|
|
|
- if (typeof msg[i] === "object") {
|
|
|
+ if (typeof msg[i] === 'object') {
|
|
|
m.push(JSON.stringify(msg[i]))
|
|
|
} else {
|
|
|
m.push(msg[i])
|
|
|
}
|
|
|
}
|
|
|
- m = m.join(" ")
|
|
|
+ m = m.join(' ')
|
|
|
return m
|
|
|
}
|
|
|
static i(...msg) {
|
|
|
@@ -42,10 +42,8 @@ class Log {
|
|
|
|
|
|
setImmediate(() => {
|
|
|
Java.perform(function () {
|
|
|
- const SmsManager = Java.use("android.telephony.SmsManager")
|
|
|
- SmsManager.getSmsManagerForSubscriptionId.overload(
|
|
|
- "int"
|
|
|
- ).implementation = function (i) {
|
|
|
+ const SmsManager = Java.use('android.telephony.SmsManager')
|
|
|
+ SmsManager.getSmsManagerForSubscriptionId.overload('int').implementation = function (i) {
|
|
|
const _smsManager = this.getSmsManagerForSubscriptionId(i)
|
|
|
Log.i(`SmsManager.getSmsManagerForSubscriptionId: ${i}`)
|
|
|
return _smsManager
|
|
|
@@ -57,184 +55,167 @@ setImmediate(() => {
|
|
|
return _smsManager
|
|
|
}
|
|
|
|
|
|
- SmsManager.getDefaultSmsSubscriptionId.overload().implementation =
|
|
|
- function () {
|
|
|
- const _subId = this.getDefaultSmsSubscriptionId()
|
|
|
- Log.i(
|
|
|
- `spoof SmsManager.getDefaultSmsSubscriptionId: ${_subId} -> ${subId}`
|
|
|
- )
|
|
|
- return parseInt(subId)
|
|
|
- }
|
|
|
-
|
|
|
- SmsManager.getSubscriptionId.overload().implementation = function () {
|
|
|
- const _subId = this.getSubscriptionId()
|
|
|
- Log.i(`SmsManager.getSubscriptionId: ${_subId} -> ${subId}`)
|
|
|
- return parseInt(subId)
|
|
|
+ // SmsManager.getDefaultSmsSubscriptionId.overload().implementation =
|
|
|
+ // function () {
|
|
|
+ // const _subId = this.getDefaultSmsSubscriptionId()
|
|
|
+ // Log.i(
|
|
|
+ // `spoof SmsManager.getDefaultSmsSubscriptionId: ${_subId} -> ${subId}`
|
|
|
+ // )
|
|
|
+ // return parseInt(subId)
|
|
|
+ // }
|
|
|
+
|
|
|
+ // SmsManager.getSubscriptionId.overload().implementation = function () {
|
|
|
+ // const _subId = this.getSubscriptionId()
|
|
|
+ // Log.i(`SmsManager.getSubscriptionId: ${_subId} -> ${subId}`)
|
|
|
+ // return parseInt(subId)
|
|
|
+ // }
|
|
|
+ SmsManager.getCarrierConfigValues.overload().implementation = function () {
|
|
|
+ const _config = this.getCarrierConfigValues()
|
|
|
+ Log.i(`SmsManager.getCarrierConfigValues: ${_config}`)
|
|
|
+ return _config
|
|
|
}
|
|
|
- SmsManager.getCarrierConfigValues.overload().implementation =
|
|
|
- function () {
|
|
|
- const _config = this.getCarrierConfigValues()
|
|
|
- Log.i(`SmsManager.getCarrierConfigValues: ${_config}`)
|
|
|
- return _config
|
|
|
- }
|
|
|
|
|
|
- const CarrierConfigManager = Java.use(
|
|
|
- "android.telephony.CarrierConfigManager"
|
|
|
- )
|
|
|
- CarrierConfigManager.getConfigForSubId.overload("int").implementation =
|
|
|
- function (i) {
|
|
|
- const _config = this.getConfigForSubId(i)
|
|
|
- Log.i(`CarrierConfigManager.getConfigForSubId: ${i}`)
|
|
|
- return _config
|
|
|
- }
|
|
|
-
|
|
|
- const SubscriptionManager = Java.use(
|
|
|
- "android.telephony.SubscriptionManager"
|
|
|
- )
|
|
|
- SubscriptionManager.getActiveSubscriptionInfoCount.overload().implementation =
|
|
|
- function () {
|
|
|
- const _count = this.getActiveSubscriptionInfoCount()
|
|
|
- Log.i(
|
|
|
- `SubscriptionManager.getActiveSubscriptionInfoCount: ${_count}`
|
|
|
- )
|
|
|
- return _count
|
|
|
- }
|
|
|
- SubscriptionManager.getDefaultSubscriptionId.overload().implementation =
|
|
|
- function () {
|
|
|
- const _subId = this.getDefaultSubscriptionId()
|
|
|
- Log.i(
|
|
|
- `spoof SubscriptionManager.getDefaultSubscriptionId: ${_subId} -> ${subId}`
|
|
|
- )
|
|
|
- return parseInt(subId)
|
|
|
- }
|
|
|
- SubscriptionManager.getDefaultSmsSubscriptionId.overload().implementation =
|
|
|
- function () {
|
|
|
- const _subId = this.getDefaultSmsSubscriptionId()
|
|
|
- Log.i(
|
|
|
- `spoof SubscriptionManager.getDefaultSmsSubscriptionId: ${_subId} -> ${subId}`
|
|
|
- )
|
|
|
- return parseInt(subId)
|
|
|
- }
|
|
|
- SubscriptionManager.getDefaultVoiceSubscriptionId.overload().implementation =
|
|
|
- function () {
|
|
|
- const _subId = this.getDefaultVoiceSubscriptionId()
|
|
|
- Log.i(
|
|
|
- `spoof SubscriptionManager.getDefaultVoiceSubscriptionId: ${_subId} -> ${subId}`
|
|
|
- )
|
|
|
- return parseInt(subId)
|
|
|
- }
|
|
|
- SubscriptionManager.getActiveDataSubscriptionId.overload().implementation =
|
|
|
- function () {
|
|
|
- const _subId = this.getActiveDataSubscriptionId()
|
|
|
- Log.i(
|
|
|
- `spoof SubscriptionManager.getActiveDataSubscriptionId: ${_subId} -> ${subId}`
|
|
|
- )
|
|
|
- return parseInt(subId)
|
|
|
- }
|
|
|
- SubscriptionManager.getSlotIndex.overload("int").implementation =
|
|
|
- function (i) {
|
|
|
- const _slotIndex = this.getSlotIndex(i)
|
|
|
- Log.i(
|
|
|
- `spoof SubscriptionManager.getSlotIndex: ${_slotIndex} -> 0`
|
|
|
- )
|
|
|
- return 0
|
|
|
- }
|
|
|
- SubscriptionManager.isUsableSubscriptionId.overload(
|
|
|
- "int"
|
|
|
- ).implementation = function (i) {
|
|
|
- const _isUsable = this.isUsableSubscriptionId(i)
|
|
|
- Log.i(`SubscriptionManager.isUsableSubscriptionId: ${_isUsable}`)
|
|
|
- return _isUsable
|
|
|
+ const CarrierConfigManager = Java.use('android.telephony.CarrierConfigManager')
|
|
|
+ CarrierConfigManager.getConfigForSubId.overload('int').implementation = function (i) {
|
|
|
+ const _config = this.getConfigForSubId(i)
|
|
|
+ Log.i(`CarrierConfigManager.getConfigForSubId: ${i}`)
|
|
|
+ return _config
|
|
|
}
|
|
|
- SubscriptionManager.isValidSubscriptionId.overload(
|
|
|
- "int"
|
|
|
- ).implementation = function (i) {
|
|
|
- const _isValid = this.isValidSubscriptionId(i)
|
|
|
- Log.i(
|
|
|
- `spoof SubscriptionManager.isValidSubscriptionId(${i}): ${_isValid} -> true`
|
|
|
- )
|
|
|
- return true
|
|
|
+
|
|
|
+ const SubscriptionManager = Java.use('android.telephony.SubscriptionManager')
|
|
|
+ SubscriptionManager.getActiveSubscriptionInfoCount.overload().implementation = function () {
|
|
|
+ const _count = this.getActiveSubscriptionInfoCount()
|
|
|
+ Log.i(`SubscriptionManager.getActiveSubscriptionInfoCount: ${_count}`)
|
|
|
+ return _count
|
|
|
}
|
|
|
- SubscriptionManager.getPhoneNumber.overload("int").implementation =
|
|
|
- function (i) {
|
|
|
- Log.i(
|
|
|
- `spoof SubscriptionManager.getPhoneNumber(${i}): -> ${number}`
|
|
|
- )
|
|
|
- return number
|
|
|
- }
|
|
|
- SubscriptionManager.getPhoneNumber.overload(
|
|
|
- "int",
|
|
|
- "int"
|
|
|
- ).implementation = function (i, i2) {
|
|
|
- Log.i(
|
|
|
- `spoof SubscriptionManager.getPhoneNumber(${i},${i2}): -> ${number}`
|
|
|
- )
|
|
|
+ // SubscriptionManager.getDefaultSubscriptionId.overload().implementation =
|
|
|
+ // function () {
|
|
|
+ // const _subId = this.getDefaultSubscriptionId()
|
|
|
+ // Log.i(
|
|
|
+ // `spoof SubscriptionManager.getDefaultSubscriptionId: ${_subId} -> ${subId}`
|
|
|
+ // )
|
|
|
+ // return parseInt(subId)
|
|
|
+ // }
|
|
|
+ // SubscriptionManager.getDefaultSmsSubscriptionId.overload().implementation =
|
|
|
+ // function () {
|
|
|
+ // const _subId = this.getDefaultSmsSubscriptionId()
|
|
|
+ // Log.i(
|
|
|
+ // `spoof SubscriptionManager.getDefaultSmsSubscriptionId: ${_subId} -> ${subId}`
|
|
|
+ // )
|
|
|
+ // return parseInt(subId)
|
|
|
+ // }
|
|
|
+ // SubscriptionManager.getDefaultVoiceSubscriptionId.overload().implementation =
|
|
|
+ // function () {
|
|
|
+ // const _subId = this.getDefaultVoiceSubscriptionId()
|
|
|
+ // Log.i(
|
|
|
+ // `spoof SubscriptionManager.getDefaultVoiceSubscriptionId: ${_subId} -> ${subId}`
|
|
|
+ // )
|
|
|
+ // return parseInt(subId)
|
|
|
+ // }
|
|
|
+ // SubscriptionManager.getActiveDataSubscriptionId.overload().implementation =
|
|
|
+ // function () {
|
|
|
+ // const _subId = this.getActiveDataSubscriptionId()
|
|
|
+ // Log.i(
|
|
|
+ // `spoof SubscriptionManager.getActiveDataSubscriptionId: ${_subId} -> ${subId}`
|
|
|
+ // )
|
|
|
+ // return parseInt(subId)
|
|
|
+ // }
|
|
|
+ // SubscriptionManager.getSlotIndex.overload("int").implementation =
|
|
|
+ // function (i) {
|
|
|
+ // const _slotIndex = this.getSlotIndex(i)
|
|
|
+ // Log.i(
|
|
|
+ // `spoof SubscriptionManager.getSlotIndex: ${_slotIndex} -> 0`
|
|
|
+ // )
|
|
|
+ // return 0
|
|
|
+ // }
|
|
|
+ // SubscriptionManager.isUsableSubscriptionId.overload(
|
|
|
+ // "int"
|
|
|
+ // ).implementation = function (i) {
|
|
|
+ // const _isUsable = this.isUsableSubscriptionId(i)
|
|
|
+ // Log.i(`SubscriptionManager.isUsableSubscriptionId: ${_isUsable}`)
|
|
|
+ // return _isUsable
|
|
|
+ // }
|
|
|
+ // SubscriptionManager.isValidSubscriptionId.overload(
|
|
|
+ // "int"
|
|
|
+ // ).implementation = function (i) {
|
|
|
+ // const _isValid = this.isValidSubscriptionId(i)
|
|
|
+ // Log.i(
|
|
|
+ // `spoof SubscriptionManager.isValidSubscriptionId(${i}): ${_isValid} -> true`
|
|
|
+ // )
|
|
|
+ // return true
|
|
|
+ // }
|
|
|
+ SubscriptionManager.getPhoneNumber.overload('int').implementation = function (i) {
|
|
|
+ Log.i(`spoof SubscriptionManager.getPhoneNumber(${i}): -> ${number}`)
|
|
|
return number
|
|
|
}
|
|
|
- SubscriptionManager.getActiveSubscriptionInfoList.overload().implementation =
|
|
|
- function () {
|
|
|
- const _list = this.getActiveSubscriptionInfoList()
|
|
|
- Log.i(
|
|
|
- `SubscriptionManager.getActiveSubscriptionInfoList ${_list.size()}`
|
|
|
- )
|
|
|
- return _list
|
|
|
- }
|
|
|
- SubscriptionManager.getActiveSubscriptionIdList.overload().implementation =
|
|
|
- function () {
|
|
|
- const _list = this.getActiveSubscriptionIdList()
|
|
|
- Log.i(
|
|
|
- `spoof SubscriptionManager.getActiveSubscriptionIdList ${_list} -> ${subId}`
|
|
|
- )
|
|
|
- return [parseInt(subId)]
|
|
|
- }
|
|
|
- SubscriptionManager.getActiveSubscriptionInfo.overload(
|
|
|
- "int"
|
|
|
- ).implementation = function (i) {
|
|
|
- const _info = this.getActiveSubscriptionInfo(i)
|
|
|
-
|
|
|
- const simCount = this.getActiveSubscriptionInfoCountMax()
|
|
|
-
|
|
|
- let subInfo = null
|
|
|
- try {
|
|
|
- for (let i = 0; i < simCount; i++) {
|
|
|
- subInfo = this.getActiveSubscriptionInfoForSimSlotIndex(i)
|
|
|
- if (subInfo) {
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
- Log.i(
|
|
|
- `spoof SubscriptionManager.getActiveSubscriptionInfo(${i})`
|
|
|
- )
|
|
|
- } catch (error) {
|
|
|
- console.error(
|
|
|
- `spoof error SubscriptionManager.getActiveSubscriptionInfo(${i})`
|
|
|
- )
|
|
|
- error.printStackTrace()
|
|
|
- }
|
|
|
- return subInfo
|
|
|
- }
|
|
|
- SubscriptionManager.getActiveSubscriptionInfoForSimSlotIndex.overload(
|
|
|
- "int"
|
|
|
- ).implementation = function (i) {
|
|
|
- const _info = this.getActiveSubscriptionInfoForSimSlotIndex(i)
|
|
|
- Log.i(
|
|
|
- `SubscriptionManager.getActiveSubscriptionInfoForSimSlotIndex(${i}): ${
|
|
|
- _info ? "ok" : "null"
|
|
|
- }`
|
|
|
- )
|
|
|
- return _info
|
|
|
- }
|
|
|
- SubscriptionManager.isActiveSubscriptionId.overload(
|
|
|
- "int"
|
|
|
- ).implementation = function (i) {
|
|
|
- const _isActive = this.isActiveSubscriptionId(i)
|
|
|
- Log.i(
|
|
|
- `spoof SubscriptionManager.isActiveSubscriptionId(${i}): ${_isActive} -> true`
|
|
|
- )
|
|
|
- return true
|
|
|
+ SubscriptionManager.getPhoneNumber.overload('int', 'int').implementation = function (i, i2) {
|
|
|
+ Log.i(`spoof SubscriptionManager.getPhoneNumber(${i},${i2}): -> ${number}`)
|
|
|
+ return number
|
|
|
}
|
|
|
+ // SubscriptionManager.getActiveSubscriptionInfoList.overload().implementation =
|
|
|
+ // function () {
|
|
|
+ // const _list = this.getActiveSubscriptionInfoList()
|
|
|
+ // Log.i(
|
|
|
+ // `SubscriptionManager.getActiveSubscriptionInfoList ${_list.size()}`
|
|
|
+ // )
|
|
|
+ // return _list
|
|
|
+ // }
|
|
|
+ // SubscriptionManager.getActiveSubscriptionIdList.overload().implementation =
|
|
|
+ // function () {
|
|
|
+ // const _list = this.getActiveSubscriptionIdList()
|
|
|
+ // Log.i(
|
|
|
+ // `spoof SubscriptionManager.getActiveSubscriptionIdList ${_list} -> ${subId}`
|
|
|
+ // )
|
|
|
+ // return [parseInt(subId)]
|
|
|
+ // }
|
|
|
+ // SubscriptionManager.getActiveSubscriptionInfo.overload(
|
|
|
+ // "int"
|
|
|
+ // ).implementation = function (i) {
|
|
|
+ // const _info = this.getActiveSubscriptionInfo(i)
|
|
|
+
|
|
|
+ // const simCount = this.getActiveSubscriptionInfoCountMax()
|
|
|
+
|
|
|
+ // let subInfo = null
|
|
|
+ // try {
|
|
|
+ // for (let i = 0; i < simCount; i++) {
|
|
|
+ // subInfo = this.getActiveSubscriptionInfoForSimSlotIndex(i)
|
|
|
+ // if (subInfo) {
|
|
|
+ // break
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // Log.i(
|
|
|
+ // `spoof SubscriptionManager.getActiveSubscriptionInfo(${i})`
|
|
|
+ // )
|
|
|
+ // } catch (error) {
|
|
|
+ // console.error(
|
|
|
+ // `spoof error SubscriptionManager.getActiveSubscriptionInfo(${i})`
|
|
|
+ // )
|
|
|
+ // error.printStackTrace()
|
|
|
+ // }
|
|
|
+ // return subInfo
|
|
|
+ // }
|
|
|
+ // SubscriptionManager.getActiveSubscriptionInfoForSimSlotIndex.overload(
|
|
|
+ // "int"
|
|
|
+ // ).implementation = function (i) {
|
|
|
+ // const _info = this.getActiveSubscriptionInfoForSimSlotIndex(i)
|
|
|
+ // Log.i(
|
|
|
+ // `SubscriptionManager.getActiveSubscriptionInfoForSimSlotIndex(${i}): ${
|
|
|
+ // _info ? "ok" : "null"
|
|
|
+ // }`
|
|
|
+ // )
|
|
|
+ // return _info
|
|
|
+ // }
|
|
|
+ // SubscriptionManager.isActiveSubscriptionId.overload(
|
|
|
+ // "int"
|
|
|
+ // ).implementation = function (i) {
|
|
|
+ // const _isActive = this.isActiveSubscriptionId(i)
|
|
|
+ // Log.i(
|
|
|
+ // `spoof SubscriptionManager.isActiveSubscriptionId(${i}): ${_isActive} -> true`
|
|
|
+ // )
|
|
|
+ // return true
|
|
|
+ // }
|
|
|
|
|
|
- const SubscriptionInfo = Java.use("android.telephony.SubscriptionInfo")
|
|
|
+ const SubscriptionInfo = Java.use('android.telephony.SubscriptionInfo')
|
|
|
SubscriptionInfo.getMcc.overload().implementation = function () {
|
|
|
const _mcc = this.getMcc()
|
|
|
Log.i(`spoof SubscriptionInfo.getMcc: ${_mcc} -> ${mcc}`)
|
|
|
@@ -249,17 +230,13 @@ setImmediate(() => {
|
|
|
|
|
|
SubscriptionInfo.getMccString.overload().implementation = function () {
|
|
|
const _mccString = this.getMccString()
|
|
|
- Log.i(
|
|
|
- `spoof SubscriptionInfo.getMccString: ${_mccString} -> ${mcc}`
|
|
|
- )
|
|
|
+ Log.i(`spoof SubscriptionInfo.getMccString: ${_mccString} -> ${mcc}`)
|
|
|
return mcc
|
|
|
}
|
|
|
|
|
|
SubscriptionInfo.getMncString.overload().implementation = function () {
|
|
|
const _mncString = this.getMncString()
|
|
|
- Log.i(
|
|
|
- `spoof SubscriptionInfo.getMncString: ${_mncString} -> ${mnc}`
|
|
|
- )
|
|
|
+ Log.i(`spoof SubscriptionInfo.getMncString: ${_mncString} -> ${mnc}`)
|
|
|
return mnc
|
|
|
}
|
|
|
|
|
|
@@ -277,76 +254,59 @@ setImmediate(() => {
|
|
|
|
|
|
SubscriptionInfo.getCountryIso.overload().implementation = function () {
|
|
|
const _countryIso = this.getCountryIso()
|
|
|
- Log.i(
|
|
|
- `spoof SubscriptionInfo.getCountryIso: ${_countryIso} -> ${countryIso}`
|
|
|
- )
|
|
|
+ Log.i(`spoof SubscriptionInfo.getCountryIso: ${_countryIso} -> ${countryIso}`)
|
|
|
return countryIso
|
|
|
}
|
|
|
|
|
|
- SubscriptionInfo.getSubscriptionId.overload().implementation =
|
|
|
- function () {
|
|
|
- const _subId = this.getSubscriptionId()
|
|
|
- if (!subId) {
|
|
|
- Log.i(_subId)
|
|
|
- return _subId
|
|
|
- }
|
|
|
- Log.i(
|
|
|
- `spoof SubscriptionInfo.getSubscriptionId: ${_subId} -> ${subId}`
|
|
|
- )
|
|
|
- return parseInt(subId)
|
|
|
- }
|
|
|
-
|
|
|
- const TelephonyManager = Java.use("android.telephony.TelephonyManager")
|
|
|
- TelephonyManager.createForSubscriptionId.overload(
|
|
|
- "int"
|
|
|
- ).implementation = function (i) {
|
|
|
- Log.i(`spoof TelephonyManager.createForSubscriptionId: ${i}`)
|
|
|
- return this
|
|
|
+ // SubscriptionInfo.getSubscriptionId.overload().implementation =
|
|
|
+ // function () {
|
|
|
+ // const _subId = this.getSubscriptionId()
|
|
|
+ // if (!subId) {
|
|
|
+ // Log.i(_subId)
|
|
|
+ // return _subId
|
|
|
+ // }
|
|
|
+ // Log.i(
|
|
|
+ // `spoof SubscriptionInfo.getSubscriptionId: ${_subId} -> ${subId}`
|
|
|
+ // )
|
|
|
+ // return parseInt(subId)
|
|
|
+ // }
|
|
|
+
|
|
|
+ const TelephonyManager = Java.use('android.telephony.TelephonyManager')
|
|
|
+ // TelephonyManager.createForSubscriptionId.overload(
|
|
|
+ // "int"
|
|
|
+ // ).implementation = function (i) {
|
|
|
+ // Log.i(`spoof TelephonyManager.createForSubscriptionId: ${i}`)
|
|
|
+ // return this
|
|
|
+ // }
|
|
|
+ TelephonyManager.getLine1Number.overload().implementation = function () {
|
|
|
+ const _number = this.getLine1Number()
|
|
|
+ Log.i(`spoof TelephonyManager.getLine1Number: ${_number} -> ${number}`)
|
|
|
+ return number
|
|
|
}
|
|
|
- TelephonyManager.getLine1Number.overload().implementation =
|
|
|
- function () {
|
|
|
- const _number = this.getLine1Number()
|
|
|
- Log.i(
|
|
|
- `spoof TelephonyManager.getLine1Number: ${_number} -> ${number}`
|
|
|
- )
|
|
|
- return number
|
|
|
- }
|
|
|
|
|
|
- TelephonyManager.getSimOperator.overload().implementation =
|
|
|
- function () {
|
|
|
- const _simOperator = this.getSimOperator()
|
|
|
- Log.i(
|
|
|
- `spoof TelephonyManager.getSimOperator: ${_simOperator} -> ${simOperator}`
|
|
|
- )
|
|
|
- return simOperator
|
|
|
- }
|
|
|
+ TelephonyManager.getSimOperator.overload().implementation = function () {
|
|
|
+ const _simOperator = this.getSimOperator()
|
|
|
+ Log.i(`spoof TelephonyManager.getSimOperator: ${_simOperator} -> ${simOperator}`)
|
|
|
+ return simOperator
|
|
|
+ }
|
|
|
|
|
|
- TelephonyManager.getNetworkOperator.overload().implementation =
|
|
|
- function () {
|
|
|
- const _networkOperator = this.getNetworkOperator()
|
|
|
- Log.i(
|
|
|
- `spoof TelephonyManager.getNetworkOperator: ${_networkOperator} -> ${networkOperator}`
|
|
|
- )
|
|
|
- return networkOperator
|
|
|
- }
|
|
|
+ TelephonyManager.getNetworkOperator.overload().implementation = function () {
|
|
|
+ const _networkOperator = this.getNetworkOperator()
|
|
|
+ Log.i(`spoof TelephonyManager.getNetworkOperator: ${_networkOperator} -> ${networkOperator}`)
|
|
|
+ return networkOperator
|
|
|
+ }
|
|
|
|
|
|
- TelephonyManager.getSimSerialNumber.overload().implementation =
|
|
|
- function () {
|
|
|
- const _simSerialNumber = this.getSimSerialNumber()
|
|
|
- Log.i(
|
|
|
- `spoof TelephonyManager.getSimSerialNumber: ${_simSerialNumber} -> ${simSerialNumber}`
|
|
|
- )
|
|
|
- return simSerialNumber
|
|
|
- }
|
|
|
+ TelephonyManager.getSimSerialNumber.overload().implementation = function () {
|
|
|
+ const _simSerialNumber = this.getSimSerialNumber()
|
|
|
+ Log.i(`spoof TelephonyManager.getSimSerialNumber: ${_simSerialNumber} -> ${simSerialNumber}`)
|
|
|
+ return simSerialNumber
|
|
|
+ }
|
|
|
|
|
|
- TelephonyManager.getSubscriberId.overload().implementation =
|
|
|
- function () {
|
|
|
- const _imsi = this.getSubscriberId()
|
|
|
- Log.i(
|
|
|
- `spoof TelephonyManager.getSubscriberId: ${_imsi} -> ${imsi}`
|
|
|
- )
|
|
|
- return imsi
|
|
|
- }
|
|
|
+ TelephonyManager.getSubscriberId.overload().implementation = function () {
|
|
|
+ const _imsi = this.getSubscriberId()
|
|
|
+ Log.i(`spoof TelephonyManager.getSubscriberId: ${_imsi} -> ${imsi}`)
|
|
|
+ return imsi
|
|
|
+ }
|
|
|
|
|
|
TelephonyManager.getImei.overload().implementation = function () {
|
|
|
const _imei = this.getImei()
|
|
|
@@ -354,36 +314,30 @@ setImmediate(() => {
|
|
|
return imei
|
|
|
}
|
|
|
|
|
|
- TelephonyManager.getNetworkCountryIso.overload().implementation =
|
|
|
- function () {
|
|
|
- const _countryIso = this.getNetworkCountryIso()
|
|
|
- Log.i(
|
|
|
- `spoof TelephonyManager.getNetworkCountryIso: ${_countryIso} -> ${countryIso}`
|
|
|
- )
|
|
|
- return countryIso
|
|
|
- }
|
|
|
+ TelephonyManager.getNetworkCountryIso.overload().implementation = function () {
|
|
|
+ const _countryIso = this.getNetworkCountryIso()
|
|
|
+ Log.i(`spoof TelephonyManager.getNetworkCountryIso: ${_countryIso} -> ${countryIso}`)
|
|
|
+ return countryIso
|
|
|
+ }
|
|
|
|
|
|
- TelephonyManager.getSimCountryIso.overload().implementation =
|
|
|
- function () {
|
|
|
- const _countryIso = this.getSimCountryIso()
|
|
|
- Log.i(
|
|
|
- `spoof TelephonyManager.getSimCountryIso: ${_countryIso} -> ${countryIso}`
|
|
|
- )
|
|
|
- return countryIso
|
|
|
- }
|
|
|
+ TelephonyManager.getSimCountryIso.overload().implementation = function () {
|
|
|
+ const _countryIso = this.getSimCountryIso()
|
|
|
+ Log.i(`spoof TelephonyManager.getSimCountryIso: ${_countryIso} -> ${countryIso}`)
|
|
|
+ return countryIso
|
|
|
+ }
|
|
|
|
|
|
- TelephonyManager.getSubscriptionId.overload().implementation =
|
|
|
- function () {
|
|
|
- const _subId = this.getSubscriptionId()
|
|
|
- if (!subId) {
|
|
|
- Log.i(_subId)
|
|
|
- return _subId
|
|
|
- }
|
|
|
- Log.i(
|
|
|
- `spoof TelephonyManager.getSubscriptionId: ${_subId} -> ${subId}`
|
|
|
- )
|
|
|
- return parseInt(subId)
|
|
|
- }
|
|
|
+ // TelephonyManager.getSubscriptionId.overload().implementation =
|
|
|
+ // function () {
|
|
|
+ // const _subId = this.getSubscriptionId()
|
|
|
+ // if (!subId) {
|
|
|
+ // Log.i(_subId)
|
|
|
+ // return _subId
|
|
|
+ // }
|
|
|
+ // Log.i(
|
|
|
+ // `spoof TelephonyManager.getSubscriptionId: ${_subId} -> ${subId}`
|
|
|
+ // )
|
|
|
+ // return parseInt(subId)
|
|
|
+ // }
|
|
|
|
|
|
TelephonyManager.getSimState.overload().implementation = function () {
|
|
|
const _simState = this.getSimState()
|
|
|
@@ -391,149 +345,283 @@ setImmediate(() => {
|
|
|
return 5
|
|
|
}
|
|
|
|
|
|
- const PhoneNumberVerification = Java.use(
|
|
|
- "com.google.android.gms.constellation.PhoneNumberVerification"
|
|
|
- )
|
|
|
- PhoneNumberVerification.$init.overload(
|
|
|
- "java.lang.String",
|
|
|
- "long",
|
|
|
- "int",
|
|
|
- "int",
|
|
|
- "java.lang.String",
|
|
|
- "android.os.Bundle",
|
|
|
- "int",
|
|
|
- "long"
|
|
|
- ).implementation = function (str, l, i, i2, str2, bundle, i3, l2) {
|
|
|
- Log.i("PhoneNumberVerification.$init")
|
|
|
-
|
|
|
- Log.i(
|
|
|
- `str: ${str}, l: ${l}, i: ${i}, i2: ${i2}, str2: ${str2}, i3: ${i3}, l2: ${l2}`
|
|
|
- )
|
|
|
- // print bundle
|
|
|
- if (bundle) {
|
|
|
- const keySet = bundle.keySet().toArray()
|
|
|
- for (let i = 0; i < keySet.length; i++) {
|
|
|
- const key = keySet[i]
|
|
|
- Log.i(`key: ${key}, value: ${bundle.get(key)}`)
|
|
|
- }
|
|
|
- }
|
|
|
+ // const PhoneNumberVerification = Java.use(
|
|
|
+ // "com.google.android.gms.constellation.PhoneNumberVerification"
|
|
|
+ // )
|
|
|
+ // PhoneNumberVerification.$init.overload(
|
|
|
+ // "java.lang.String",
|
|
|
+ // "long",
|
|
|
+ // "int",
|
|
|
+ // "int",
|
|
|
+ // "java.lang.String",
|
|
|
+ // "android.os.Bundle",
|
|
|
+ // "int",
|
|
|
+ // "long"
|
|
|
+ // ).implementation = function (str, l, i, i2, str2, bundle, i3, l2) {
|
|
|
+ // Log.i("PhoneNumberVerification.$init")
|
|
|
+
|
|
|
+ // Log.i(
|
|
|
+ // `str: ${str}, l: ${l}, i: ${i}, i2: ${i2}, str2: ${str2}, i3: ${i3}, l2: ${l2}`
|
|
|
+ // )
|
|
|
+ // // print bundle
|
|
|
+ // if (bundle) {
|
|
|
+ // const keySet = bundle.keySet().toArray()
|
|
|
+ // for (let i = 0; i < keySet.length; i++) {
|
|
|
+ // const key = keySet[i]
|
|
|
+ // Log.i(`key: ${key}, value: ${bundle.get(key)}`)
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+
|
|
|
+ // return this.$init(str, l, i, i2, str2, bundle, i3, l2)
|
|
|
+ // }
|
|
|
|
|
|
- return this.$init(str, l, i, i2, str2, bundle, i3, l2)
|
|
|
- }
|
|
|
+ // // const aays = Java.use("aays")
|
|
|
+ // // aays.d.overload("int", "boolean").implementation = function (i, z) {
|
|
|
+ // // Log.i("aays.d", i, z, Object.keys(this.f.value))
|
|
|
+
|
|
|
+ // // return number
|
|
|
+ // // }
|
|
|
+
|
|
|
+ // const SetAsterismConsentRequest = Java.use(
|
|
|
+ // "com.google.android.gms.asterism.SetAsterismConsentRequest"
|
|
|
+ // )
|
|
|
+ // SetAsterismConsentRequest.$init.overload(
|
|
|
+ // "int",
|
|
|
+ // "int",
|
|
|
+ // "int",
|
|
|
+ // "[I",
|
|
|
+ // "java.lang.Long",
|
|
|
+ // "int",
|
|
|
+ // "android.os.Bundle",
|
|
|
+ // "int",
|
|
|
+ // "java.lang.String",
|
|
|
+ // "java.lang.String",
|
|
|
+ // "java.lang.String",
|
|
|
+ // "java.lang.String",
|
|
|
+ // "java.lang.String",
|
|
|
+ // "java.lang.String",
|
|
|
+ // "java.lang.String",
|
|
|
+ // "java.lang.String"
|
|
|
+ // ).implementation = function (
|
|
|
+ // i,
|
|
|
+ // i2,
|
|
|
+ // i3,
|
|
|
+ // iArr,
|
|
|
+ // l,
|
|
|
+ // i4,
|
|
|
+ // bundle,
|
|
|
+ // i5,
|
|
|
+ // str,
|
|
|
+ // str2,
|
|
|
+ // str3,
|
|
|
+ // str4,
|
|
|
+ // str5,
|
|
|
+ // str6,
|
|
|
+ // str7,
|
|
|
+ // str8
|
|
|
+ // ) {
|
|
|
+ // Log.i(
|
|
|
+ // Java.use("android.util.Log").getStackTraceString(
|
|
|
+ // Java.use("java.lang.Throwable").$new()
|
|
|
+ // )
|
|
|
+ // )
|
|
|
+ // Log.i("SetAsterismConsentRequest.$init")
|
|
|
+
|
|
|
+ // Log.i(
|
|
|
+ // `i: ${i}, i2: ${i2}, i3: ${i3}, iArr: ${iArr}, l: ${l}, i4: ${i4}, i5: ${i5}, str: ${str}, str2: ${str2}, str3: ${str3}, str4: ${str4}, str5: ${str5}, str6: ${str6}, str7: ${str7}, str8: ${str8}`
|
|
|
+ // )
|
|
|
+ // // print bundle
|
|
|
+ // const keySet = bundle.keySet().toArray()
|
|
|
+ // for (let i = 0; i < keySet.length; i++) {
|
|
|
+ // const key = keySet[i]
|
|
|
+ // Log.i(`key: ${key}, value: ${bundle.get(key)}`)
|
|
|
+ // }
|
|
|
+
|
|
|
+ // return this.$init(
|
|
|
+ // i,
|
|
|
+ // i2,
|
|
|
+ // i3,
|
|
|
+ // iArr,
|
|
|
+ // l,
|
|
|
+ // i4,
|
|
|
+ // bundle,
|
|
|
+ // i5,
|
|
|
+ // str,
|
|
|
+ // str2,
|
|
|
+ // str3,
|
|
|
+ // str4,
|
|
|
+ // str5,
|
|
|
+ // str6,
|
|
|
+ // str7,
|
|
|
+ // str8
|
|
|
+ // )
|
|
|
+ // }
|
|
|
|
|
|
- // const aays = Java.use("aays")
|
|
|
- // aays.d.overload("int", "boolean").implementation = function (i, z) {
|
|
|
- // Log.i("aays.d", i, z, Object.keys(this.f.value))
|
|
|
+ // const SetAsterismConsentResponse = Java.use(
|
|
|
+ // "com.google.android.gms.asterism.SetAsterismConsentResponse"
|
|
|
+ // )
|
|
|
+ // SetAsterismConsentResponse.$init.overload(
|
|
|
+ // "int",
|
|
|
+ // "java.lang.String",
|
|
|
+ // "java.lang.String"
|
|
|
+ // ).implementation = function (i, str, str2) {
|
|
|
+ // Log.i(
|
|
|
+ // Java.use("android.util.Log").getStackTraceString(
|
|
|
+ // Java.use("java.lang.Throwable").$new()
|
|
|
+ // )
|
|
|
+ // )
|
|
|
+
|
|
|
+ // Log.i("SetAsterismConsentResponse.$init")
|
|
|
+ // Log.i(`i: ${i}, str: ${str}, str2: ${str2}`)
|
|
|
+ // // return this.$init(
|
|
|
+ // // 1,
|
|
|
+ // // "c4q5zP5Ft4A:APA91bEASr50HwwOY789LSZrcHPT8aG_fT19xlelS35qgIJeC3UBYypAHmmL9IygzlphzTKKz0wCdiQwuoPZMJKvgKPmGi3_imdr1CY0s7fs8qa_LMgNDFfvWEnpTCReAYc7IjThhFQq",
|
|
|
+ // // "c4q5zP5Ft4A"
|
|
|
+ // // )
|
|
|
+ // return this.$init(i, str, str2)
|
|
|
+ // }
|
|
|
|
|
|
- // return number
|
|
|
+ // // spoof sim to exist
|
|
|
+ // const bjsf = Java.use("bjsf")
|
|
|
+ // bjsf.s.overload("android.content.Context").implementation = function (
|
|
|
+ // c
|
|
|
+ // ) {
|
|
|
+ // Log.i("bjsf.s spoof sim to exist")
|
|
|
+ // return true
|
|
|
// }
|
|
|
|
|
|
- const SetAsterismConsentRequest = Java.use(
|
|
|
- "com.google.android.gms.asterism.SetAsterismConsentRequest"
|
|
|
- )
|
|
|
- SetAsterismConsentRequest.$init.overload(
|
|
|
- "int",
|
|
|
- "int",
|
|
|
- "int",
|
|
|
- "[I",
|
|
|
- "java.lang.Long",
|
|
|
- "int",
|
|
|
- "android.os.Bundle",
|
|
|
- "int",
|
|
|
- "java.lang.String",
|
|
|
- "java.lang.String",
|
|
|
- "java.lang.String",
|
|
|
- "java.lang.String",
|
|
|
- "java.lang.String",
|
|
|
- "java.lang.String",
|
|
|
- "java.lang.String",
|
|
|
- "java.lang.String"
|
|
|
- ).implementation = function (
|
|
|
- i,
|
|
|
- i2,
|
|
|
- i3,
|
|
|
- iArr,
|
|
|
- l,
|
|
|
- i4,
|
|
|
- bundle,
|
|
|
- i5,
|
|
|
- str,
|
|
|
- str2,
|
|
|
- str3,
|
|
|
- str4,
|
|
|
- str5,
|
|
|
- str6,
|
|
|
- str7,
|
|
|
- str8
|
|
|
- ) {
|
|
|
- Log.i(
|
|
|
- Java.use("android.util.Log").getStackTraceString(
|
|
|
- Java.use("java.lang.Throwable").$new()
|
|
|
- )
|
|
|
- )
|
|
|
- Log.i("SetAsterismConsentRequest.$init")
|
|
|
+ function printConfiguration(config) {
|
|
|
+ JSON.stringify({
|
|
|
+ mDeviceId: config.mDeviceId.value,
|
|
|
+ mTachyonAuthToken: config.mTachyonAuthToken.value,
|
|
|
+ mVerifiedSmsToken: config.mVerifiedSmsToken.value,
|
|
|
+ tachygramEnabled: config.tachygramEnabled.value,
|
|
|
+ tachyonUrl: config.tachyonUrl.value,
|
|
|
+ mConfigState: config.mConfigState.value,
|
|
|
+ mToken: {
|
|
|
+ mValue: config.mToken.value.mValue.value,
|
|
|
+ mExpirationTime: config.mToken.value.mExpirationTime.value
|
|
|
+ },
|
|
|
+ mType: config.mType.value,
|
|
|
+ mImsConfiguration: {
|
|
|
+ mAuthDigestPassword: config.mImsConfiguration.value.mAuthDigestPassword.value,
|
|
|
+ mAuthDigestRealm: config.mImsConfiguration.value.mAuthDigestRealm.value,
|
|
|
+ mAuthDigestUsername: config.mImsConfiguration.value.mAuthDigestUsername.value,
|
|
|
+ mAuthenticationScheme: config.mImsConfiguration.value.mAuthenticationScheme.value,
|
|
|
+ mDomain: config.mImsConfiguration.value.mDomain.value,
|
|
|
+ mPcscfAddress: config.mImsConfiguration.value.mPcscfAddress.value,
|
|
|
+ mPcsfPort: config.mImsConfiguration.value.mPcsfPort.value,
|
|
|
+ mPrivateIdentity: config.mImsConfiguration.value.mPrivateIdentity.value,
|
|
|
+ mPsMediaTransport: config.mImsConfiguration.value.mPsMediaTransport.value,
|
|
|
+ mPsRtpTransport: config.mImsConfiguration.value.mPsRtpTransport.value,
|
|
|
+ mPsSipTransport: config.mImsConfiguration.value.mPsSipTransport.value,
|
|
|
+ mPublicIdentity: config.mImsConfiguration.value.mPublicIdentity.value,
|
|
|
+ mUserName: config.mImsConfiguration.value.mUserName.value,
|
|
|
+ mWifiMediaTransport: config.mImsConfiguration.value.mWifiMediaTransport.value,
|
|
|
+ mWifiRtpTransport: config.mImsConfiguration.value.mWifiRtpTransport.value,
|
|
|
+ mWifiSipTransport: config.mImsConfiguration.value.mWifiSipTransport.value,
|
|
|
+ mT1: config.mImsConfiguration.value.mT1.value,
|
|
|
+ mT2: config.mImsConfiguration.value.mT2.value,
|
|
|
+ mT4: config.mImsConfiguration.value.mT4.value,
|
|
|
+ mLocalSipPort: config.mImsConfiguration.value.mLocalSipPort.value,
|
|
|
+ mQ: config.mImsConfiguration.value.mQ.value,
|
|
|
+ mKeepAlive: config.mImsConfiguration.value.mKeepAlive.value,
|
|
|
+ mPhoneContext: config.mImsConfiguration.value.mPhoneContext.value,
|
|
|
+ mRegRetryBaseTime: config.mImsConfiguration.value.mRegRetryBaseTime.value,
|
|
|
+ mRegRetryMaxTime: config.mImsConfiguration.value.mRegRetryMaxTime.value,
|
|
|
+ mNatUrlFmt: config.mImsConfiguration.value.mNatUrlFmt.value,
|
|
|
+ mIntUrlFmt: config.mImsConfiguration.value.mIntUrlFmt.value,
|
|
|
+ rcsVolteSingleRegistration: config.mImsConfiguration.value.rcsVolteSingleRegistration.value
|
|
|
+ },
|
|
|
+ mInstantMessageConfiguration: {
|
|
|
+ mAutoAccept: config.mInstantMessageConfiguration.value.mAutoAccept.value,
|
|
|
+ mAutoAcceptGroupChat: config.mInstantMessageConfiguration.value.mAutoAcceptGroupChat.value,
|
|
|
+ mChatAuth: config.mInstantMessageConfiguration.value.mChatAuth.value,
|
|
|
+ mChatRevokeTimer: config.mInstantMessageConfiguration.value.mChatRevokeTimer.value,
|
|
|
+ mConferenceFactoryUri: config.mInstantMessageConfiguration.value.mConferenceFactoryUri.value,
|
|
|
+ mDeferredMessageFunctionUri:
|
|
|
+ config.mInstantMessageConfiguration.value.mDeferredMessageFunctionUri.value,
|
|
|
+ mExploderUri: config.mInstantMessageConfiguration.value.mExploderUri.value,
|
|
|
+ mFileTransferAutoAcceptSupported:
|
|
|
+ config.mInstantMessageConfiguration.value.mFileTransferAutoAcceptSupported.value,
|
|
|
+ mFtCapAlwaysOn: config.mInstantMessageConfiguration.value.mFtCapAlwaysOn.value,
|
|
|
+ mFtHttpCapAlwaysOn: config.mInstantMessageConfiguration.value.mFtHttpCapAlwaysOn.value,
|
|
|
+ mFtHttpContentServerPassword:
|
|
|
+ config.mInstantMessageConfiguration.value.mFtHttpContentServerPassword.value,
|
|
|
+ mFtHttpContentServerUri: config.mInstantMessageConfiguration.value.mFtHttpContentServerUri.value,
|
|
|
+ mFtHttpContentServerUser: config.mInstantMessageConfiguration.value.mFtHttpContentServerUser.value,
|
|
|
+ mFtStoreAndForwardEnabled:
|
|
|
+ config.mInstantMessageConfiguration.value.mFtStoreAndForwardEnabled.value,
|
|
|
+ mFullGroupSandFSupported: config.mInstantMessageConfiguration.value.mFullGroupSandFSupported.value,
|
|
|
+ mImCapAlwaysOn: config.mInstantMessageConfiguration.value.mImCapAlwaysOn.value,
|
|
|
+ mImSessionStart: config.mInstantMessageConfiguration.value.mImSessionStart.value,
|
|
|
+ mImWarnSF: config.mInstantMessageConfiguration.value.mImWarnSF.value,
|
|
|
+ mMaxAdhocGroupSize: config.mInstantMessageConfiguration.value.mMaxAdhocGroupSize.value,
|
|
|
+ mPublishPresenceCap: config.mInstantMessageConfiguration.value.mPublishPresenceCap.value,
|
|
|
+ mReconnectGuardTimer: config.mInstantMessageConfiguration.value.mReconnectGuardTimer.value,
|
|
|
+ mSmsFallBackAuth: config.mInstantMessageConfiguration.value.mSmsFallBackAuth.value,
|
|
|
+ mMaxSize1to1: config.mInstantMessageConfiguration.value.mMaxSize1to1.value,
|
|
|
+ mMaxSize1toM: config.mInstantMessageConfiguration.value.mMaxSize1toM.value,
|
|
|
+ mMaxSizeFileTransfer: config.mInstantMessageConfiguration.value.mMaxSizeFileTransfer.value,
|
|
|
+ mWarnSizeFileTransfer: config.mInstantMessageConfiguration.value.mWarnSizeFileTransfer.value,
|
|
|
+ mFtThumbnailSupported: config.mInstantMessageConfiguration.value.mFtThumbnailSupported.value,
|
|
|
+ mFtDefaultMechanism: config.mInstantMessageConfiguration.value.mFtDefaultMechanism.value,
|
|
|
+ mMessageTech: config.mInstantMessageConfiguration.value.mMessageTech.value,
|
|
|
+ mDefaultSharingMethod: config.mInstantMessageConfiguration.value.mDefaultSharingMethod.value,
|
|
|
+ mTimerIdleSecs: config.mInstantMessageConfiguration.value.mTimerIdleSecs.value,
|
|
|
+ mDeliveryReportTimeout: config.mInstantMessageConfiguration.value.mDeliveryReportTimeout.value,
|
|
|
+ mAnonymousChat: config.mInstantMessageConfiguration.value.mAnonymousChat.value,
|
|
|
+ mMaxConcurrentSession: config.mInstantMessageConfiguration.value.mMaxConcurrentSession.value,
|
|
|
+ mSwitchoverSize: config.mInstantMessageConfiguration.value.mSwitchoverSize.value
|
|
|
+ },
|
|
|
+ mReconfigRequested: config.mReconfigRequested.value,
|
|
|
+ mMessageTech: config.mMessageTech.value,
|
|
|
+ rcsState: config.rcsState.value,
|
|
|
+ iccids: config.iccids.value,
|
|
|
+ mValiditySecs: config.mValiditySecs.value,
|
|
|
+ mLastUpdateSecs: config.mLastUpdateSecs.value,
|
|
|
+ mVersion: config.mVersion.value
|
|
|
+ })
|
|
|
+ }
|
|
|
|
|
|
- Log.i(
|
|
|
- `i: ${i}, i2: ${i2}, i3: ${i3}, iArr: ${iArr}, l: ${l}, i4: ${i4}, i5: ${i5}, str: ${str}, str2: ${str2}, str3: ${str3}, str4: ${str4}, str5: ${str5}, str6: ${str6}, str7: ${str7}, str8: ${str8}`
|
|
|
- )
|
|
|
- // print bundle
|
|
|
- const keySet = bundle.keySet().toArray()
|
|
|
- for (let i = 0; i < keySet.length; i++) {
|
|
|
- const key = keySet[i]
|
|
|
- Log.i(`key: ${key}, value: ${bundle.get(key)}`)
|
|
|
- }
|
|
|
+ // const Configuration = Java.use('com.google.android.ims.provisioning.config.Configuration')
|
|
|
+ // Configuration.k.overload().implementation = function () {
|
|
|
+ // Log.e(`Configuration.k()`)
|
|
|
+ // printConfiguration(this)
|
|
|
+ // return this.k()
|
|
|
+ // }
|
|
|
|
|
|
- return this.$init(
|
|
|
- i,
|
|
|
- i2,
|
|
|
- i3,
|
|
|
- iArr,
|
|
|
- l,
|
|
|
- i4,
|
|
|
- bundle,
|
|
|
- i5,
|
|
|
- str,
|
|
|
- str2,
|
|
|
- str3,
|
|
|
- str4,
|
|
|
- str5,
|
|
|
- str6,
|
|
|
- str7,
|
|
|
- str8
|
|
|
- )
|
|
|
+ function dumpList(list) {
|
|
|
+ if (list) {
|
|
|
+ let res = []
|
|
|
+ for (let i = 0; i < list.size(); i++) {
|
|
|
+ res.push('' + list.get(i))
|
|
|
+ }
|
|
|
+ return res
|
|
|
+ }
|
|
|
+ return []
|
|
|
}
|
|
|
|
|
|
- const SetAsterismConsentResponse = Java.use(
|
|
|
- "com.google.android.gms.asterism.SetAsterismConsentResponse"
|
|
|
- )
|
|
|
- SetAsterismConsentResponse.$init.overload(
|
|
|
- "int",
|
|
|
- "java.lang.String",
|
|
|
- "java.lang.String"
|
|
|
- ).implementation = function (i, str, str2) {
|
|
|
- Log.i(
|
|
|
- Java.use("android.util.Log").getStackTraceString(
|
|
|
- Java.use("java.lang.Throwable").$new()
|
|
|
- )
|
|
|
+ const bjaq = Java.use('bjaq')
|
|
|
+ bjaq.f.overload('java.io.InputStream').implementation = function (inputStream) {
|
|
|
+ const res = this.f(inputStream)
|
|
|
+ Log.e(
|
|
|
+ `bjaq.f() => ${JSON.stringify({
|
|
|
+ a: dumpList(res._a.value),
|
|
|
+ b: dumpList(res._b.value),
|
|
|
+ c: res._c.value
|
|
|
+ })}`
|
|
|
)
|
|
|
-
|
|
|
- Log.i("SetAsterismConsentResponse.$init")
|
|
|
- Log.i(`i: ${i}, str: ${str}, str2: ${str2}`)
|
|
|
- // return this.$init(
|
|
|
- // 1,
|
|
|
- // "c4q5zP5Ft4A:APA91bEASr50HwwOY789LSZrcHPT8aG_fT19xlelS35qgIJeC3UBYypAHmmL9IygzlphzTKKz0wCdiQwuoPZMJKvgKPmGi3_imdr1CY0s7fs8qa_LMgNDFfvWEnpTCReAYc7IjThhFQq",
|
|
|
- // "c4q5zP5Ft4A"
|
|
|
- // )
|
|
|
- return this.$init(i, str, str2)
|
|
|
+ return res
|
|
|
}
|
|
|
-
|
|
|
- // spoof sim to exist
|
|
|
- const bjsf = Java.use("bjsf")
|
|
|
- bjsf.s.overload("android.content.Context").implementation = function (
|
|
|
- c
|
|
|
- ) {
|
|
|
- Log.i("bjsf.s spoof sim to exist")
|
|
|
- return true
|
|
|
+ bjaq.a.overload(
|
|
|
+ 'java.io.InputStream',
|
|
|
+ 'com.google.android.ims.provisioning.config.Configuration',
|
|
|
+ 'boolean'
|
|
|
+ ).implementation = function (inputStream, configuration, z) {
|
|
|
+ Log.e(`bjaq.a()`)
|
|
|
+ printConfiguration(configuration)
|
|
|
+ return this.a(inputStream, configuration, z)
|
|
|
}
|
|
|
})
|
|
|
})
|