|
|
@@ -2,39 +2,90 @@ const mcc = "255"
|
|
|
const mnc = "06"
|
|
|
const simOperator = "25506"
|
|
|
const networkOperator = "25506"
|
|
|
-const simSerialNumber = "89380062300689132983"
|
|
|
-const iccId = "89380062300689132983"
|
|
|
-const number = "969379250"
|
|
|
-const imei = "860114061248785"
|
|
|
-const imsi = "255065209546456"
|
|
|
+const simSerialNumber = "10478987647236535281"
|
|
|
+const iccId = "10478987647236535281"
|
|
|
+const number = "973322992"
|
|
|
+const imei = "359514062220386"
|
|
|
+const imsi = "255065662833592"
|
|
|
const countryIso = "ua"
|
|
|
-const subId = "8"
|
|
|
-function trace() {
|
|
|
- console.log(
|
|
|
- Java.use("android.util.Log").getStackTraceString(
|
|
|
- Java.use("java.lang.Throwable").$new()
|
|
|
- )
|
|
|
+const subId = "58"
|
|
|
+const androidId = "06d0942fad5b996a"
|
|
|
+const serialNumber = "8008ed1b"
|
|
|
+
|
|
|
+function trace(tag) {
|
|
|
+ Log.e(
|
|
|
+ (tag || "") +
|
|
|
+ Java.use("android.util.Log").getStackTraceString(
|
|
|
+ Java.use("java.lang.Throwable").$new()
|
|
|
+ )
|
|
|
)
|
|
|
}
|
|
|
+
|
|
|
+function dump(obj) {
|
|
|
+ const gson = Java.use("com.google.gson.Gson").$new()
|
|
|
+ const json = gson.toJson(obj)
|
|
|
+ return json
|
|
|
+}
|
|
|
+
|
|
|
+class Log {
|
|
|
+ static TAG = "[GMS]"
|
|
|
+ static Debug = false
|
|
|
+ static format(...msg) {
|
|
|
+ let m = []
|
|
|
+ for (let i = 0; i < msg.length; i++) {
|
|
|
+ if (typeof msg[i] === "object") {
|
|
|
+ m.push(msg[i] + "")
|
|
|
+ } else {
|
|
|
+ m.push(msg[i])
|
|
|
+ }
|
|
|
+ }
|
|
|
+ m = m.join(" ")
|
|
|
+ return m
|
|
|
+ }
|
|
|
+ static i(...msg) {
|
|
|
+ if (!this.Debug) return
|
|
|
+ console.log(`\x1b[30m${this.TAG} ${this.format(...msg)}\x1b[0m`)
|
|
|
+ }
|
|
|
+ static w(...msg) {
|
|
|
+ console.log(`\x1b[33m${this.TAG} ${this.format(...msg)}\x1b[0m`)
|
|
|
+ }
|
|
|
+ static e(...msg) {
|
|
|
+ console.log(`\x1b[31m${this.TAG} ${this.format(...msg)}\x1b[0m`)
|
|
|
+ }
|
|
|
+ static s(...msg) {
|
|
|
+ console.log(`\x1b[32m${this.TAG} ${this.format(...msg)}\x1b[0m`)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
Java.perform(function () {
|
|
|
+ try {
|
|
|
+ const GsonClass = Java.openClassFile(
|
|
|
+ "/sdcard/Android/data/com.google.android.gms/gson.dex"
|
|
|
+ )
|
|
|
+ GsonClass.load()
|
|
|
+ Log.s("gson class loaded")
|
|
|
+ } catch (error) {
|
|
|
+ Log.e("load gson error", error)
|
|
|
+ }
|
|
|
+
|
|
|
const SmsManager = Java.use("android.telephony.SmsManager")
|
|
|
SmsManager.getSmsManagerForSubscriptionId.overload("int").implementation =
|
|
|
function (i) {
|
|
|
const _smsManager = this.getSmsManagerForSubscriptionId(i)
|
|
|
- console.log(`SmsManager.getSmsManagerForSubscriptionId: ${i}`)
|
|
|
+ Log.i(`SmsManager.getSmsManagerForSubscriptionId: ${i}`)
|
|
|
return _smsManager
|
|
|
}
|
|
|
|
|
|
SmsManager.getDefault.overload().implementation = function () {
|
|
|
const _smsManager = this.getDefault(i)
|
|
|
- console.log(`SmsManager.getDefault`)
|
|
|
+ Log.i(`SmsManager.getDefault`)
|
|
|
return _smsManager
|
|
|
}
|
|
|
|
|
|
SmsManager.getDefaultSmsSubscriptionId.overload().implementation =
|
|
|
function () {
|
|
|
const _subId = this.getDefaultSmsSubscriptionId()
|
|
|
- console.log(
|
|
|
+ Log.i(
|
|
|
`spoof SmsManager.getDefaultSmsSubscriptionId: ${_subId} -> ${subId}`
|
|
|
)
|
|
|
return parseInt(subId)
|
|
|
@@ -42,12 +93,12 @@ Java.perform(function () {
|
|
|
|
|
|
SmsManager.getSubscriptionId.overload().implementation = function () {
|
|
|
const _subId = this.getSubscriptionId()
|
|
|
- console.log(`SmsManager.getSubscriptionId: ${_subId} -> ${subId}`)
|
|
|
+ Log.i(`SmsManager.getSubscriptionId: ${_subId} -> ${subId}`)
|
|
|
return parseInt(subId)
|
|
|
}
|
|
|
SmsManager.getCarrierConfigValues.overload().implementation = function () {
|
|
|
const _config = this.getCarrierConfigValues()
|
|
|
- console.log(`SmsManager.getCarrierConfigValues: ${_config}`)
|
|
|
+ Log.i(`SmsManager.getCarrierConfigValues: ${_config}`)
|
|
|
return _config
|
|
|
}
|
|
|
|
|
|
@@ -57,7 +108,7 @@ Java.perform(function () {
|
|
|
CarrierConfigManager.getConfigForSubId.overload("int").implementation =
|
|
|
function (i) {
|
|
|
const _config = this.getConfigForSubId(i)
|
|
|
- console.log(`CarrierConfigManager.getConfigForSubId: ${i}`)
|
|
|
+ Log.i(`CarrierConfigManager.getConfigForSubId: ${i}`)
|
|
|
return _config
|
|
|
}
|
|
|
|
|
|
@@ -67,7 +118,7 @@ Java.perform(function () {
|
|
|
SubscriptionManager.getActiveSubscriptionInfoCount.overload().implementation =
|
|
|
function () {
|
|
|
const _count = this.getActiveSubscriptionInfoCount()
|
|
|
- console.log(
|
|
|
+ Log.i(
|
|
|
`SubscriptionManager.getActiveSubscriptionInfoCount: ${_count}`
|
|
|
)
|
|
|
return _count
|
|
|
@@ -75,7 +126,7 @@ Java.perform(function () {
|
|
|
SubscriptionManager.getDefaultSubscriptionId.overload().implementation =
|
|
|
function () {
|
|
|
const _subId = this.getDefaultSubscriptionId()
|
|
|
- console.log(
|
|
|
+ Log.i(
|
|
|
`spoof SubscriptionManager.getDefaultSubscriptionId: ${_subId} -> ${subId}`
|
|
|
)
|
|
|
return parseInt(subId)
|
|
|
@@ -83,7 +134,7 @@ Java.perform(function () {
|
|
|
SubscriptionManager.getDefaultSmsSubscriptionId.overload().implementation =
|
|
|
function () {
|
|
|
const _subId = this.getDefaultSmsSubscriptionId()
|
|
|
- console.log(
|
|
|
+ Log.i(
|
|
|
`spoof SubscriptionManager.getDefaultSmsSubscriptionId: ${_subId} -> ${subId}`
|
|
|
)
|
|
|
return parseInt(subId)
|
|
|
@@ -91,7 +142,7 @@ Java.perform(function () {
|
|
|
SubscriptionManager.getDefaultVoiceSubscriptionId.overload().implementation =
|
|
|
function () {
|
|
|
const _subId = this.getDefaultVoiceSubscriptionId()
|
|
|
- console.log(
|
|
|
+ Log.i(
|
|
|
`spoof SubscriptionManager.getDefaultVoiceSubscriptionId: ${_subId} -> ${subId}`
|
|
|
)
|
|
|
return parseInt(subId)
|
|
|
@@ -99,7 +150,7 @@ Java.perform(function () {
|
|
|
SubscriptionManager.getActiveDataSubscriptionId.overload().implementation =
|
|
|
function () {
|
|
|
const _subId = this.getActiveDataSubscriptionId()
|
|
|
- console.log(
|
|
|
+ Log.i(
|
|
|
`spoof SubscriptionManager.getActiveDataSubscriptionId: ${_subId} -> ${subId}`
|
|
|
)
|
|
|
return parseInt(subId)
|
|
|
@@ -108,37 +159,33 @@ Java.perform(function () {
|
|
|
i
|
|
|
) {
|
|
|
const _slotIndex = this.getSlotIndex(i)
|
|
|
- console.log(
|
|
|
- `spoof SubscriptionManager.getSlotIndex: ${_slotIndex} -> 0`
|
|
|
- )
|
|
|
+ Log.i(`spoof SubscriptionManager.getSlotIndex: ${_slotIndex} -> 0`)
|
|
|
return 0
|
|
|
}
|
|
|
SubscriptionManager.isUsableSubscriptionId.overload("int").implementation =
|
|
|
function (i) {
|
|
|
const _isUsable = this.isUsableSubscriptionId(i)
|
|
|
- console.log(
|
|
|
- `SubscriptionManager.isUsableSubscriptionId: ${_isUsable}`
|
|
|
- )
|
|
|
+ Log.i(`SubscriptionManager.isUsableSubscriptionId: ${_isUsable}`)
|
|
|
return _isUsable
|
|
|
}
|
|
|
SubscriptionManager.isValidSubscriptionId.overload("int").implementation =
|
|
|
function (i) {
|
|
|
const _isValid = this.isValidSubscriptionId(i)
|
|
|
- console.log(
|
|
|
+ Log.i(
|
|
|
`spoof SubscriptionManager.isValidSubscriptionId(${i}): ${_isValid} -> true`
|
|
|
)
|
|
|
return true
|
|
|
}
|
|
|
SubscriptionManager.getPhoneNumber.overload("int").implementation =
|
|
|
function (i) {
|
|
|
- console.log(
|
|
|
+ Log.i(
|
|
|
`spoof SubscriptionManager.getPhoneNumber(${i}): -> ${number}`
|
|
|
)
|
|
|
return number
|
|
|
}
|
|
|
SubscriptionManager.getPhoneNumber.overload("int", "int").implementation =
|
|
|
function (i, i2) {
|
|
|
- console.log(
|
|
|
+ Log.i(
|
|
|
`spoof SubscriptionManager.getPhoneNumber(${i},${i2}): -> ${number}`
|
|
|
)
|
|
|
return number
|
|
|
@@ -146,7 +193,7 @@ Java.perform(function () {
|
|
|
SubscriptionManager.getActiveSubscriptionInfoList.overload().implementation =
|
|
|
function () {
|
|
|
const _list = this.getActiveSubscriptionInfoList()
|
|
|
- console.log(
|
|
|
+ Log.i(
|
|
|
`SubscriptionManager.getActiveSubscriptionInfoList ${_list.size()}`
|
|
|
)
|
|
|
return _list
|
|
|
@@ -155,7 +202,7 @@ Java.perform(function () {
|
|
|
"int"
|
|
|
).implementation = function (i) {
|
|
|
const _info = this.getActiveSubscriptionInfoForSimSlotIndex(i)
|
|
|
- console.log(
|
|
|
+ Log.i(
|
|
|
`SubscriptionManager.getActiveSubscriptionInfoForSimSlotIndex(${i}): ${
|
|
|
_info ? "ok" : "null"
|
|
|
}`
|
|
|
@@ -165,7 +212,7 @@ Java.perform(function () {
|
|
|
SubscriptionManager.getActiveSubscriptionIdList.overload().implementation =
|
|
|
function () {
|
|
|
const _list = this.getActiveSubscriptionIdList()
|
|
|
- console.log(
|
|
|
+ Log.i(
|
|
|
`spoof SubscriptionManager.getActiveSubscriptionIdList ${_list} -> ${subId}`
|
|
|
)
|
|
|
return [parseInt(subId)]
|
|
|
@@ -185,9 +232,7 @@ Java.perform(function () {
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
- console.log(
|
|
|
- `spoof SubscriptionManager.getActiveSubscriptionInfo(${i})`
|
|
|
- )
|
|
|
+ Log.i(`spoof SubscriptionManager.getActiveSubscriptionInfo(${i})`)
|
|
|
} catch (error) {
|
|
|
console.error(
|
|
|
`spoof error SubscriptionManager.getActiveSubscriptionInfo(${i})`
|
|
|
@@ -198,9 +243,9 @@ Java.perform(function () {
|
|
|
}
|
|
|
SubscriptionManager.getActiveSubscriptionInfoForSimSlotIndex.overload(
|
|
|
"int"
|
|
|
- ).implementation = function (s) {
|
|
|
+ ).implementation = function (i) {
|
|
|
const _info = this.getActiveSubscriptionInfoForSimSlotIndex(i)
|
|
|
- console.log(
|
|
|
+ Log.i(
|
|
|
`SubscriptionManager.getActiveSubscriptionInfoForSimSlotIndex: ${_info}`
|
|
|
)
|
|
|
return _info
|
|
|
@@ -208,7 +253,7 @@ Java.perform(function () {
|
|
|
SubscriptionManager.isActiveSubscriptionId.overload("int").implementation =
|
|
|
function (i) {
|
|
|
const _isActive = this.isActiveSubscriptionId(i)
|
|
|
- console.log(
|
|
|
+ Log.i(
|
|
|
`spoof SubscriptionManager.isActiveSubscriptionId(${i}): ${_isActive} -> true`
|
|
|
)
|
|
|
return true
|
|
|
@@ -217,47 +262,43 @@ Java.perform(function () {
|
|
|
const SubscriptionInfo = Java.use("android.telephony.SubscriptionInfo")
|
|
|
SubscriptionInfo.getMcc.overload().implementation = function () {
|
|
|
const _mcc = this.getMcc()
|
|
|
- console.log(`spoof SubscriptionInfo.getMcc: ${_mcc} -> ${mcc}`)
|
|
|
+ Log.i(`spoof SubscriptionInfo.getMcc: ${_mcc} -> ${mcc}`)
|
|
|
return parseInt(mcc)
|
|
|
}
|
|
|
|
|
|
SubscriptionInfo.getMnc.overload().implementation = function () {
|
|
|
const _mnc = this.getMnc()
|
|
|
- console.log(`spoof SubscriptionInfo.getMnc: ${_mnc} -> ${mnc}`)
|
|
|
+ Log.i(`spoof SubscriptionInfo.getMnc: ${_mnc} -> ${mnc}`)
|
|
|
return parseInt(mnc)
|
|
|
}
|
|
|
|
|
|
SubscriptionInfo.getMccString.overload().implementation = function () {
|
|
|
const _mccString = this.getMccString()
|
|
|
- console.log(
|
|
|
- `spoof SubscriptionInfo.getMccString: ${_mccString} -> ${mcc}`
|
|
|
- )
|
|
|
+ Log.i(`spoof SubscriptionInfo.getMccString: ${_mccString} -> ${mcc}`)
|
|
|
return mcc
|
|
|
}
|
|
|
|
|
|
SubscriptionInfo.getMncString.overload().implementation = function () {
|
|
|
const _mncString = this.getMncString()
|
|
|
- console.log(
|
|
|
- `spoof SubscriptionInfo.getMncString: ${_mncString} -> ${mnc}`
|
|
|
- )
|
|
|
+ Log.i(`spoof SubscriptionInfo.getMncString: ${_mncString} -> ${mnc}`)
|
|
|
return mnc
|
|
|
}
|
|
|
|
|
|
SubscriptionInfo.getNumber.overload().implementation = function () {
|
|
|
const _number = this.getNumber()
|
|
|
- console.log(`spoof SubscriptionInfo.getNumber: ${_number} -> ${number}`)
|
|
|
+ Log.i(`spoof SubscriptionInfo.getNumber: ${_number} -> ${number}`)
|
|
|
return number
|
|
|
}
|
|
|
|
|
|
SubscriptionInfo.getIccId.overload().implementation = function () {
|
|
|
const _iccId = this.getIccId()
|
|
|
- console.log(`spoof SubscriptionInfo.getIccId: ${_iccId} -> ${iccId}`)
|
|
|
+ Log.i(`spoof SubscriptionInfo.getIccId: ${_iccId} -> ${iccId}`)
|
|
|
return iccId
|
|
|
}
|
|
|
|
|
|
SubscriptionInfo.getCountryIso.overload().implementation = function () {
|
|
|
const _countryIso = this.getCountryIso()
|
|
|
- console.log(
|
|
|
+ Log.i(
|
|
|
`spoof SubscriptionInfo.getCountryIso: ${_countryIso} -> ${countryIso}`
|
|
|
)
|
|
|
return countryIso
|
|
|
@@ -266,33 +307,29 @@ Java.perform(function () {
|
|
|
SubscriptionInfo.getSubscriptionId.overload().implementation = function () {
|
|
|
const _subId = this.getSubscriptionId()
|
|
|
if (!subId) {
|
|
|
- console.log(_subId)
|
|
|
+ Log.i(_subId)
|
|
|
return _subId
|
|
|
}
|
|
|
- console.log(
|
|
|
- `spoof SubscriptionInfo.getSubscriptionId: ${_subId} -> ${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) {
|
|
|
- console.log(`spoof TelephonyManager.createForSubscriptionId: ${i}`)
|
|
|
+ Log.i(`spoof TelephonyManager.createForSubscriptionId: ${i}`)
|
|
|
return this
|
|
|
}
|
|
|
|
|
|
TelephonyManager.getLine1Number.overload().implementation = function () {
|
|
|
const _number = this.getLine1Number()
|
|
|
- console.log(
|
|
|
- `spoof TelephonyManager.getLine1Number: ${_number} -> ${number}`
|
|
|
- )
|
|
|
+ Log.i(`spoof TelephonyManager.getLine1Number: ${_number} -> ${number}`)
|
|
|
return number
|
|
|
}
|
|
|
|
|
|
TelephonyManager.getSimOperator.overload().implementation = function () {
|
|
|
const _simOperator = this.getSimOperator()
|
|
|
- console.log(
|
|
|
+ Log.i(
|
|
|
`spoof TelephonyManager.getSimOperator: ${_simOperator} -> ${simOperator}`
|
|
|
)
|
|
|
return simOperator
|
|
|
@@ -301,7 +338,7 @@ Java.perform(function () {
|
|
|
TelephonyManager.getNetworkOperator.overload().implementation =
|
|
|
function () {
|
|
|
const _networkOperator = this.getNetworkOperator()
|
|
|
- console.log(
|
|
|
+ Log.i(
|
|
|
`spoof TelephonyManager.getNetworkOperator: ${_networkOperator} -> ${networkOperator}`
|
|
|
)
|
|
|
return networkOperator
|
|
|
@@ -310,7 +347,7 @@ Java.perform(function () {
|
|
|
TelephonyManager.getSimSerialNumber.overload().implementation =
|
|
|
function () {
|
|
|
const _simSerialNumber = this.getSimSerialNumber()
|
|
|
- console.log(
|
|
|
+ Log.i(
|
|
|
`spoof TelephonyManager.getSimSerialNumber: ${_simSerialNumber} -> ${simSerialNumber}`
|
|
|
)
|
|
|
return simSerialNumber
|
|
|
@@ -318,22 +355,20 @@ Java.perform(function () {
|
|
|
|
|
|
TelephonyManager.getSubscriberId.overload().implementation = function () {
|
|
|
const _imsi = this.getSubscriberId()
|
|
|
- console.log(
|
|
|
- `spoof TelephonyManager.getSubscriberId: ${_imsi} -> ${imsi}`
|
|
|
- )
|
|
|
+ Log.i(`spoof TelephonyManager.getSubscriberId: ${_imsi} -> ${imsi}`)
|
|
|
return imsi
|
|
|
}
|
|
|
|
|
|
TelephonyManager.getImei.overload().implementation = function () {
|
|
|
const _imei = this.getImei()
|
|
|
- console.log(`spoof TelephonyManager.getImei: ${_imei} -> ${imei}`)
|
|
|
+ Log.i(`spoof TelephonyManager.getImei: ${_imei} -> ${imei}`)
|
|
|
return imei
|
|
|
}
|
|
|
|
|
|
TelephonyManager.getNetworkCountryIso.overload().implementation =
|
|
|
function () {
|
|
|
const _countryIso = this.getNetworkCountryIso()
|
|
|
- console.log(
|
|
|
+ Log.i(
|
|
|
`spoof TelephonyManager.getNetworkCountryIso: ${_countryIso} -> ${countryIso}`
|
|
|
)
|
|
|
return countryIso
|
|
|
@@ -341,7 +376,7 @@ Java.perform(function () {
|
|
|
|
|
|
TelephonyManager.getSimCountryIso.overload().implementation = function () {
|
|
|
const _countryIso = this.getSimCountryIso()
|
|
|
- console.log(
|
|
|
+ Log.i(
|
|
|
`spoof TelephonyManager.getSimCountryIso: ${_countryIso} -> ${countryIso}`
|
|
|
)
|
|
|
return countryIso
|
|
|
@@ -350,18 +385,16 @@ Java.perform(function () {
|
|
|
TelephonyManager.getSubscriptionId.overload().implementation = function () {
|
|
|
const _subId = this.getSubscriptionId()
|
|
|
if (!subId) {
|
|
|
- console.log(_subId)
|
|
|
+ Log.i(_subId)
|
|
|
return _subId
|
|
|
}
|
|
|
- console.log(
|
|
|
- `spoof TelephonyManager.getSubscriptionId: ${_subId} -> ${subId}`
|
|
|
- )
|
|
|
+ Log.i(`spoof TelephonyManager.getSubscriptionId: ${_subId} -> ${subId}`)
|
|
|
return parseInt(subId)
|
|
|
}
|
|
|
|
|
|
TelephonyManager.getSimState.overload().implementation = function () {
|
|
|
const _simState = this.getSimState()
|
|
|
- console.log(`spoof TelephonyManager.getSimState: ${_simState} -> 5`)
|
|
|
+ Log.i(`spoof TelephonyManager.getSimState: ${_simState} -> 5`)
|
|
|
return 5
|
|
|
}
|
|
|
|
|
|
@@ -378,20 +411,22 @@ Java.perform(function () {
|
|
|
"int",
|
|
|
"long"
|
|
|
).implementation = function (str, j, i, i2, str2, bundle, i3, l) {
|
|
|
- console.log("PhoneNumberVerification.$init")
|
|
|
-
|
|
|
- console.log(
|
|
|
- `str: ${str}, j: ${j}, i: ${i}, i2: ${i2}, str2: ${str2}, i3: ${i3}, l: ${l}`
|
|
|
+ Log.e(
|
|
|
+ `PhoneNumberVerification.$init(str=${str}, j=${j}, i=${i}, i2=${i2}, str2=${str2}, i3=${i3}, l=${l}`
|
|
|
)
|
|
|
// print bundle
|
|
|
const keySet = bundle.keySet().toArray()
|
|
|
|
|
|
for (let i = 0; i < keySet.length; i++) {
|
|
|
const key = keySet[i]
|
|
|
- console.log(`key: ${key}, value: ${bundle.get(key)}`)
|
|
|
+ Log.i(
|
|
|
+ `PhoneNumberVerification(key: ${key}, value: ${bundle.get(
|
|
|
+ key
|
|
|
+ )})`
|
|
|
+ )
|
|
|
}
|
|
|
|
|
|
- return this.$init(str, j, i, i2, str2, bundle)
|
|
|
+ return this.$init(str, j, i, i2, str2, bundle, i3, l)
|
|
|
}
|
|
|
|
|
|
const SetAsterismConsentRequest = Java.use(
|
|
|
@@ -434,16 +469,22 @@ Java.perform(function () {
|
|
|
str8,
|
|
|
i6
|
|
|
) {
|
|
|
- console.log("SetAsterismConsentRequest.$init")
|
|
|
-
|
|
|
- console.log(
|
|
|
- `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}, i6: ${i6}`
|
|
|
+ Log.i(
|
|
|
+ `SetAsterismConsentRequest.$init(
|
|
|
+ i=${i}, i2=${i2}, i3=${i3}, iArr=${iArr}, l=${l},
|
|
|
+ i4=${i4}, bundle=${bundle}, i5=${i5}, str=${str},
|
|
|
+ str2=${str2}, str3=${str3}, str4=${str4}, str5=${str5},
|
|
|
+ str6=${str6}, str7=${str7}, str8=${str8}, i6=${i6})`
|
|
|
)
|
|
|
// print bundle
|
|
|
const keySet = bundle.keySet().toArray()
|
|
|
for (let i = 0; i < keySet.length; i++) {
|
|
|
const key = keySet[i]
|
|
|
- console.log(`key: ${key}, value: ${bundle.get(key)}`)
|
|
|
+ Log.i(
|
|
|
+ `SetAsterismConsentRequest.Bundle(key=${key}, value=${bundle.get(
|
|
|
+ key
|
|
|
+ )})`
|
|
|
+ )
|
|
|
}
|
|
|
|
|
|
return this.$init(
|
|
|
@@ -475,201 +516,305 @@ Java.perform(function () {
|
|
|
"java.lang.String",
|
|
|
"java.lang.String"
|
|
|
).implementation = function (i, str, str2) {
|
|
|
- console.log("SetAsterismConsentResponse.$init")
|
|
|
- console.log(`i: ${i}, str: ${str}, str2: ${str2}`)
|
|
|
+ Log.i(
|
|
|
+ `SetAsterismConsentResponse.$init(i=${i}, str=${str}, str2=${str2})`
|
|
|
+ )
|
|
|
return this.$init(i, str, str2)
|
|
|
}
|
|
|
|
|
|
- const amac = Java.use("amac")
|
|
|
- const amlo = Java.use("amlo")
|
|
|
- const emiy = Java.use("emiy")
|
|
|
- const emiz = Java.use("emiz")
|
|
|
- const emis = Java.use("emis")
|
|
|
- const fiwu = Java.use("fiwu")
|
|
|
- const ambs = Java.use("ambs")
|
|
|
- const emkm = Java.use("emkm")
|
|
|
- const fivh = Java.use("fivh")
|
|
|
- const fivk = Java.use("fivk")
|
|
|
- const fivn = Java.use("fivn")
|
|
|
- const emjr = Java.use("emjr")
|
|
|
- const amag = Java.use("amag")
|
|
|
- const ftha = Java.use("ftha")
|
|
|
- const ftgy = Java.use("ftgy")
|
|
|
- const fuem = Java.use("fuem")
|
|
|
- const fiwt = Java.use("fiwt")
|
|
|
- const TimeUnit = Java.use("java.util.concurrent.TimeUnit")
|
|
|
- const ambi = Java.use("ambi")
|
|
|
- const fivj = Java.use("fivj")
|
|
|
- amac.o.overload("amlu", "boolean", "boolean", "fiwt").implementation =
|
|
|
- function (amluVar, z, z2, fiwtVar) {
|
|
|
- console.log("amac.o", amluVar, z, z2, fiwtVar)
|
|
|
- try {
|
|
|
- var z3
|
|
|
- var z4
|
|
|
- const eq = fiwtVar.eQ()
|
|
|
- const arr0 = Java.array("java.lang.Object", [this.z(eq)])
|
|
|
- this._a.value.d("SetConsentRequest: %s", arr0)
|
|
|
-
|
|
|
- var amloVar = this._d.value
|
|
|
- var emiyVar = Java.cast(emiz.h.value.eV(), emiy)
|
|
|
-
|
|
|
- if (!emiyVar._b.value.fm()) {
|
|
|
- emiyVar.O()
|
|
|
- }
|
|
|
- var emizVar = Java.cast(emiyVar._b.value, emiz)
|
|
|
- emizVar.b = emkm.a(10)
|
|
|
- console.log(emizVar, emizVar.b, emizVar.a)
|
|
|
-
|
|
|
- emizVar.a = emizVar.a | 1
|
|
|
- var eV = emis.d.value.eV()
|
|
|
-
|
|
|
- if ((fiwtVar.a.value & 2) != 0) {
|
|
|
- var fivnVar = fiwtVar.e.value
|
|
|
- if (fivnVar == null) {
|
|
|
- fivnVar = fivn.c.value
|
|
|
+ try {
|
|
|
+ const amac = Java.use("amac")
|
|
|
+ const amlo = Java.use("amlo")
|
|
|
+ const emiy = Java.use("emiy")
|
|
|
+ const emiz = Java.use("emiz")
|
|
|
+ const emis = Java.use("emis")
|
|
|
+ const fiwu = Java.use("fiwu")
|
|
|
+ const ambs = Java.use("ambs")
|
|
|
+ const emkm = Java.use("emkm")
|
|
|
+ const fivh = Java.use("fivh")
|
|
|
+ const fivk = Java.use("fivk")
|
|
|
+ const fivn = Java.use("fivn")
|
|
|
+ const emjr = Java.use("emjr")
|
|
|
+ const amag = Java.use("amag")
|
|
|
+ const ftha = Java.use("ftha")
|
|
|
+ const ftgy = Java.use("ftgy")
|
|
|
+ const fuem = Java.use("fuem")
|
|
|
+ const fiwt = Java.use("fiwt")
|
|
|
+ const TimeUnit = Java.use("java.util.concurrent.TimeUnit")
|
|
|
+ const ambi = Java.use("ambi")
|
|
|
+ const fivj = Java.use("fivj")
|
|
|
+ amac.o.overload("amlu", "boolean", "boolean", "fiwt").implementation =
|
|
|
+ function (amluVar, z, z2, fiwtVar) {
|
|
|
+ Log.i("amac.o", amluVar, z, z2, fiwtVar)
|
|
|
+ try {
|
|
|
+ var z3
|
|
|
+ var z4
|
|
|
+ const eq = fiwtVar.eQ()
|
|
|
+ const arr0 = Java.array("java.lang.Object", [this.z(eq)])
|
|
|
+ this._a.value.d("SetConsentRequest: %s", arr0)
|
|
|
+
|
|
|
+ var amloVar = this._d.value
|
|
|
+ var emiyVar = Java.cast(emiz.h.value.eV(), emiy)
|
|
|
+
|
|
|
+ if (!emiyVar._b.value.fm()) {
|
|
|
+ emiyVar.O()
|
|
|
}
|
|
|
- var b = fivh.b(fivnVar.a.value)
|
|
|
- if (b == 0) {
|
|
|
- z3 = false
|
|
|
- } else if (b == 3) {
|
|
|
- z3 = true
|
|
|
- } else {
|
|
|
- z3 = false
|
|
|
+ var emizVar = Java.cast(emiyVar._b.value, emiz)
|
|
|
+ emizVar.b = emkm.a(10)
|
|
|
+ Log.i(emizVar, emizVar.b, emizVar.a)
|
|
|
+
|
|
|
+ emizVar.a = emizVar.a | 1
|
|
|
+ var eV = emis.d.value.eV()
|
|
|
+
|
|
|
+ if ((fiwtVar.a.value & 2) != 0) {
|
|
|
+ var fivnVar = fiwtVar.e.value
|
|
|
+ if (fivnVar == null) {
|
|
|
+ fivnVar = fivn.c.value
|
|
|
+ }
|
|
|
+ var b = fivh.b(fivnVar.a.value)
|
|
|
+ if (b == 0) {
|
|
|
+ z3 = false
|
|
|
+ } else if (b == 3) {
|
|
|
+ z3 = true
|
|
|
+ } else {
|
|
|
+ z3 = false
|
|
|
+ }
|
|
|
+ if (!eV._b.value.fm()) {
|
|
|
+ eV.O()
|
|
|
+ }
|
|
|
+ var fbzbVar = eV._b.value
|
|
|
+ var emisVar = Java.cast(fbzbVar, emis)
|
|
|
+ emisVar.a |= 1
|
|
|
+ emisVar.b = z3
|
|
|
+ var fivnVar2 = fiwtVar.e.value
|
|
|
+ if (fivnVar2 == null) {
|
|
|
+ fivnVar2 = fivn.c.value
|
|
|
+ }
|
|
|
+ var a2 = fivk.a(fivnVar2.b.value)
|
|
|
+ if (a2 == 0) {
|
|
|
+ z4 = false
|
|
|
+ } else if (a2 == 3) {
|
|
|
+ z4 = true
|
|
|
+ } else {
|
|
|
+ z4 = false
|
|
|
+ }
|
|
|
+ if (!fbzbVar.fm()) {
|
|
|
+ eV.O()
|
|
|
+ }
|
|
|
+ var emisVar2 = Java.cast(eV._b.value, emis)
|
|
|
+ emisVar2.a |= 2
|
|
|
+ emisVar2.c = z4
|
|
|
}
|
|
|
- if (!eV._b.value.fm()) {
|
|
|
- eV.O()
|
|
|
+ if (!emiyVar._b.value.fm()) {
|
|
|
+ emiyVar.O()
|
|
|
}
|
|
|
- var fbzbVar = eV._b.value
|
|
|
- var emisVar = Java.cast(fbzbVar, emis)
|
|
|
- emisVar.a |= 1
|
|
|
- emisVar.b = z3
|
|
|
- var fivnVar2 = fiwtVar.e.value
|
|
|
- if (fivnVar2 == null) {
|
|
|
- fivnVar2 = fivn.c.value
|
|
|
+ var emizVar2 = Java.cast(emiyVar._b.value, emiz)
|
|
|
+ var emisVar3 = Java.cast(eV.K(), emis)
|
|
|
+ emisVar3.getClass()
|
|
|
+ emizVar2.c = emisVar3
|
|
|
+ emizVar2.a |= 2
|
|
|
+ amloVar.A(amluVar, emjr.b(5), Java.cast(emiyVar.K(), emiz))
|
|
|
+
|
|
|
+ var v = this.v()
|
|
|
+ var akxiVar = this._c.value
|
|
|
+ var j = this._e.value
|
|
|
+ if (amag._a.value == null) {
|
|
|
+ amag._a.value = ftha.b(
|
|
|
+ ftgy._a.value,
|
|
|
+ "google.internal.communications.phonedeviceverification.v1.PhoneDeviceVerification/SetConsent",
|
|
|
+ fuem.a(fiwt.k.value),
|
|
|
+ fuem.a(fiwu.a.value)
|
|
|
+ )
|
|
|
}
|
|
|
- var a2 = fivk.a(fivnVar2.b.value)
|
|
|
- if (a2 == 0) {
|
|
|
- z4 = false
|
|
|
- } else if (a2 == 3) {
|
|
|
- z4 = true
|
|
|
- } else {
|
|
|
- z4 = false
|
|
|
+ // const vdg = v.d.value.g(
|
|
|
+ // amag._a.value,
|
|
|
+ // akxiVar,
|
|
|
+ // fiwtVar,
|
|
|
+ // Java.use('java.lang.Long').valueOf(j).longValue(),
|
|
|
+ // TimeUnit.MILLISECONDS.value,
|
|
|
+ // v.e.value
|
|
|
+ // )
|
|
|
+ // Log.i("aaaaa")
|
|
|
+ // const eqres = Java.cast(vdg, fiwu).eQ()
|
|
|
+ // Log.i("bbbbb")
|
|
|
+ // const res = this.z(eqres)
|
|
|
+ // Log.i("SetConsentResponse: ", res)
|
|
|
+ // const arr = Java.array("java.lang.Object", [res])
|
|
|
+ // this._a.value.d("SetConsentResponse: %s", arr)
|
|
|
+ var amloVar2 = this._d.value
|
|
|
+ var emiyVar2 = Java.cast(emiz.h.value.eV(), emiy)
|
|
|
+ if (!emiyVar2._b.value.fm()) {
|
|
|
+ emiyVar2.O()
|
|
|
}
|
|
|
- if (!fbzbVar.fm()) {
|
|
|
- eV.O()
|
|
|
- }
|
|
|
- var emisVar2 = Java.cast(eV._b.value, emis)
|
|
|
- emisVar2.a |= 2
|
|
|
- emisVar2.c = z4
|
|
|
- }
|
|
|
- if (!emiyVar._b.value.fm()) {
|
|
|
- emiyVar.O()
|
|
|
- }
|
|
|
- var emizVar2 = Java.cast(emiyVar._b.value, emiz)
|
|
|
- var emisVar3 = Java.cast(eV.K(), emis)
|
|
|
- emisVar3.getClass()
|
|
|
- emizVar2.c = emisVar3
|
|
|
- emizVar2.a |= 2
|
|
|
- amloVar.A(amluVar, emjr.b(5), Java.cast(emiyVar.K(), emiz))
|
|
|
-
|
|
|
- var v = this.v()
|
|
|
- var akxiVar = this._c.value
|
|
|
- var j = this._e.value
|
|
|
- if (amag._a.value == null) {
|
|
|
- amag._a.value = ftha.b(
|
|
|
- ftgy._a.value,
|
|
|
- "google.internal.communications.phonedeviceverification.v1.PhoneDeviceVerification/SetConsent",
|
|
|
- fuem.a(fiwt.k.value),
|
|
|
- fuem.a(fiwu.a.value)
|
|
|
+ var emizVar3 = Java.cast(emiyVar2._b.value, emiz)
|
|
|
+
|
|
|
+ emizVar3.b = emkm.a(10)
|
|
|
+ emizVar3.a |= 1
|
|
|
+ amloVar2.A(
|
|
|
+ amluVar,
|
|
|
+ emjr.b(6),
|
|
|
+ Java.cast(emiyVar2.K(), emiz)
|
|
|
)
|
|
|
+ var a3 = ambi.b().a(this._b.value.getApplicationContext())
|
|
|
+ a3.n(z)
|
|
|
+ a3.m(Java.use("java.lang.Boolean").valueOf(z2))
|
|
|
+ var b2 = fivj.b(fiwtVar.g.value)
|
|
|
+ if (b2 == 0) {
|
|
|
+ b2 = 1
|
|
|
+ }
|
|
|
+ var a4 = fivj.a(b2)
|
|
|
+ var edit = Java.cast(a3, ambs)._c.value.edit()
|
|
|
+ edit.putInt("device_consent_version", a4)
|
|
|
+ edit.apply()
|
|
|
+ Log.i("oooooooooo")
|
|
|
+ } catch (e) {
|
|
|
+ Log.i("2222222", e)
|
|
|
+ trace()
|
|
|
}
|
|
|
- // const vdg = v.d.value.g(
|
|
|
- // amag._a.value,
|
|
|
- // akxiVar,
|
|
|
- // fiwtVar,
|
|
|
- // Java.use('java.lang.Long').valueOf(j).longValue(),
|
|
|
- // TimeUnit.MILLISECONDS.value,
|
|
|
- // v.e.value
|
|
|
- // )
|
|
|
- // console.log("aaaaa")
|
|
|
- // const eqres = Java.cast(vdg, fiwu).eQ()
|
|
|
- // console.log("bbbbb")
|
|
|
- // const res = this.z(eqres)
|
|
|
- // console.log("SetConsentResponse: ", res)
|
|
|
- // const arr = Java.array("java.lang.Object", [res])
|
|
|
- // this._a.value.d("SetConsentResponse: %s", arr)
|
|
|
- var amloVar2 = this._d.value
|
|
|
- var emiyVar2 = Java.cast(emiz.h.value.eV(), emiy)
|
|
|
- if (!emiyVar2._b.value.fm()) {
|
|
|
- emiyVar2.O()
|
|
|
- }
|
|
|
- var emizVar3 = Java.cast(emiyVar2._b.value, emiz)
|
|
|
-
|
|
|
- emizVar3.b = emkm.a(10)
|
|
|
- emizVar3.a |= 1
|
|
|
- amloVar2.A(amluVar, emjr.b(6), Java.cast(emiyVar2.K(), emiz))
|
|
|
- var a3 = ambi.b().a(this._b.value.getApplicationContext())
|
|
|
- a3.n(z)
|
|
|
- a3.m(Java.use("java.lang.Boolean").valueOf(z2))
|
|
|
- var b2 = fivj.b(fiwtVar.g.value)
|
|
|
- if (b2 == 0) {
|
|
|
- b2 = 1
|
|
|
- }
|
|
|
- var a4 = fivj.a(b2)
|
|
|
- var edit = Java.cast(a3, ambs)._c.value.edit()
|
|
|
- edit.putInt("device_consent_version", a4)
|
|
|
- edit.apply()
|
|
|
- console.log("oooooooooo")
|
|
|
- } catch (e) {
|
|
|
- console.log("2222222", e)
|
|
|
- trace()
|
|
|
+ // this.o(amluVar, z, z2, fiwtVar)
|
|
|
}
|
|
|
- // this.o(amluVar, z, z2, fiwtVar)
|
|
|
- }
|
|
|
+ } catch (error) {}
|
|
|
|
|
|
- const ConscryptFileDescriptorSocket = Java.use(
|
|
|
- "com.google.android.gms.org.conscrypt.ConscryptFileDescriptorSocket"
|
|
|
- )
|
|
|
- ConscryptFileDescriptorSocket.setSoWriteTimeout.overload(
|
|
|
- "int"
|
|
|
- ).implementation = function (i) {
|
|
|
- console.log("ConscryptFileDescriptorSocket.setSoWriteTimeout: ", i)
|
|
|
- return this.setSoWriteTimeout(i)
|
|
|
+ try {
|
|
|
+ const alja = Java.use("alja")
|
|
|
+ alja.u.overload("java.lang.Exception").implementation = function (e) {
|
|
|
+ Log.e(`"alja.u(e=${dump(e)})`)
|
|
|
+ return this.u(e)
|
|
|
+ }
|
|
|
+ } catch (error) {}
|
|
|
+
|
|
|
+ try {
|
|
|
+ const alyx = Java.use("alyx")
|
|
|
+ const fixf = Java.use("fixf")
|
|
|
+ alyx.a.overload("fixf").implementation = function (fixf) {
|
|
|
+ const b = this.a(fixf)
|
|
|
+ const keySet = b.keySet().toArray()
|
|
|
+ for (let i = 0; i < keySet.length; i++) {
|
|
|
+ const key = keySet[i]
|
|
|
+ Log.w(`alyx.a::key: ${key}, value: ${b.get(key)}`)
|
|
|
+ }
|
|
|
+ return b
|
|
|
+ }
|
|
|
+ alyx.m.overload("amlu", "java.util.List").implementation = function (
|
|
|
+ amlu,
|
|
|
+ list
|
|
|
+ ) {
|
|
|
+ const a = amlu._a.value // string
|
|
|
+ const f = amlu.f.value // string
|
|
|
+ const g = amlu.g.value // list
|
|
|
+ const h = amlu.h.value // list
|
|
|
+ const HashMap = Java.use("java.util.HashMap")
|
|
|
+ const d = Java.cast(amlu.d.value, HashMap) // map
|
|
|
+ const e = Java.cast(amlu.e.value, HashMap) // map
|
|
|
+
|
|
|
+ Log.e(`alyx.m(
|
|
|
+ a=${a},
|
|
|
+ f=${f},
|
|
|
+ g=${g ? dump(g) : null},
|
|
|
+ h=${h ? dump(h) : null},
|
|
|
+ d=${d ? dump(d) : null},
|
|
|
+ e=${e ? dump(e) : null})`)
|
|
|
+
|
|
|
+ return this.m(amlu, list)
|
|
|
+ }
|
|
|
+ // alyx.r.overload(
|
|
|
+ // "amlu",
|
|
|
+ // "java.util.List",
|
|
|
+ // "java.lang.String",
|
|
|
+ // "java.lang.String"
|
|
|
+ // ).implementation = function (amlu, list, str, str2) {
|
|
|
+ // Log.e(`alyx.r(
|
|
|
+ // amlu=${dump(amlu)},
|
|
|
+ // list=${dump(list)},
|
|
|
+ // str=${str},
|
|
|
+ // str2=${str2})`)
|
|
|
+ // try {
|
|
|
+ // const res = this.r(amlu, list, str, str2)
|
|
|
+ // Log.e(`alyx.r res: ${res}`)
|
|
|
+ // } catch (error) {
|
|
|
+ // Log.e(`alyx.r error: ${error}`)
|
|
|
+ // }
|
|
|
+ // return true
|
|
|
+ // }
|
|
|
+ } catch (error) {}
|
|
|
+
|
|
|
+ const ftit = Java.use("ftit")
|
|
|
+ const ftgv = Java.use("ftgv")
|
|
|
+ ftit.h.overload("ftgv").implementation = function (ftgvVar) {
|
|
|
+ try {
|
|
|
+ Log.e(`ftit.h(
|
|
|
+ this=${dump(this)},
|
|
|
+ ftgvVar=${dump(ftgvVar)})`)
|
|
|
+ return Java.use("ftiu").$new(this, ftgvVar)
|
|
|
+ } catch (e) {
|
|
|
+ e.printStackTrace()
|
|
|
+ Log.e(`ftit.h exception: ${e}`)
|
|
|
+ }
|
|
|
}
|
|
|
- // ConscryptFileDescriptorSocket.verifyCertificateChain.overload(
|
|
|
- // //byte[][] bArr, String str
|
|
|
- // "[[B",
|
|
|
- // "java.lang.String"
|
|
|
- // ).implementation = function (bArr, str) {
|
|
|
- // console.log(
|
|
|
- // "ConscryptFileDescriptorSocket.verifyCertificateChain: ",
|
|
|
- // bArr,
|
|
|
- // str
|
|
|
- // )
|
|
|
- // }
|
|
|
|
|
|
- const cvgy = Java.use("cvgy")
|
|
|
- cvgy.g.overload().implementation = function () {
|
|
|
- const g = this.g()
|
|
|
- console.log("cvgy.g", g)
|
|
|
- trace()
|
|
|
- return g
|
|
|
+ const Secure = Java.use("android.provider.Settings$Secure")
|
|
|
+ Secure.getString.overload(
|
|
|
+ "android.content.ContentResolver",
|
|
|
+ "java.lang.String"
|
|
|
+ ).implementation = function (contentResolver, str) {
|
|
|
+ const _str = this.getString(contentResolver, str)
|
|
|
+ if (str === "android_id") {
|
|
|
+ Log.w(`spoof Secure.getString(android_id): ${_str} -> ${androidId}`)
|
|
|
+ return androidId
|
|
|
+ }
|
|
|
+ return _str
|
|
|
}
|
|
|
|
|
|
- cvgy.createSocket.overload().implementation = function () {
|
|
|
- const createSocket = this.createSocket()
|
|
|
- console.log("cvgy.createSocket", createSocket)
|
|
|
- trace()
|
|
|
- return createSocket
|
|
|
+ const Build = Java.use("android.os.Build")
|
|
|
+ Build.getString.overload("java.lang.String").implementation = function (
|
|
|
+ str
|
|
|
+ ) {
|
|
|
+ const _str = this.getString(str)
|
|
|
+ Log.w(`Build.getString(${str}): ${_str}`)
|
|
|
+ return _str
|
|
|
}
|
|
|
|
|
|
- const alja = Java.use("alja")
|
|
|
- alja.u.overload("java.lang.Exception").implementation = function (e) {
|
|
|
- console.log("alja.u", JSON.stringify(e))
|
|
|
- console.log(Object.keys(e))
|
|
|
-
|
|
|
- const b = e.b.value
|
|
|
- console.log("b", b.toString())
|
|
|
- return this.u(e)
|
|
|
+ Build.getSerial.overload().implementation = function () {
|
|
|
+ const _serial = this.getSerial()
|
|
|
+ Log.w(`spoof Build.getSerial: ${_serial} -> ${serialNumber}`)
|
|
|
+ return serialNumber
|
|
|
}
|
|
|
+
|
|
|
+ // const SystemProperties = Java.use("android.os.SystemProperties")
|
|
|
+ // SystemProperties.get.overload("java.lang.String").implementation =
|
|
|
+ // function (str) {
|
|
|
+ // const _str = this.get(str)
|
|
|
+ // Log.w(`SystemProperties.get(${str}): ${_str}`)
|
|
|
+ // return _str
|
|
|
+ // }
|
|
|
+ // SystemProperties.get.overload(
|
|
|
+ // "java.lang.String",
|
|
|
+ // "java.lang.String"
|
|
|
+ // ).implementation = function (str, str2) {
|
|
|
+ // const _str = this.get(str, str2)
|
|
|
+ // Log.w(`SystemProperties.get(${str}, ${str2}): ${_str}`)
|
|
|
+ // return _str
|
|
|
+ // }
|
|
|
+ // SystemProperties.getInt.overload("java.lang.String", "int").implementation =
|
|
|
+ // function (str, i) {
|
|
|
+ // const _i = this.getInt(str, i)
|
|
|
+ // Log.w(`SystemProperties.getInt(${str}, ${i}): ${_i}`)
|
|
|
+ // return _i
|
|
|
+ // }
|
|
|
+ // SystemProperties.getLong.overload(
|
|
|
+ // "java.lang.String",
|
|
|
+ // "long"
|
|
|
+ // ).implementation = function (str, l) {
|
|
|
+ // const _l = this.getLong(str, l)
|
|
|
+ // Log.w(`SystemProperties.getLong(${str}, ${l}): ${_l}`)
|
|
|
+ // return _l
|
|
|
+ // }
|
|
|
+ // SystemProperties.getBoolean.overload(
|
|
|
+ // "java.lang.String",
|
|
|
+ // "boolean"
|
|
|
+ // ).implementation = function (str, z) {
|
|
|
+ // const _z = this.getBoolean(str, z)
|
|
|
+ // Log.w(`SystemProperties.getBoolean(${str}, ${z}): ${_z}`)
|
|
|
+ // return _z
|
|
|
+ // }
|
|
|
})
|