| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822 |
- const mcc = "255"
- const mnc = "06"
- const simOperator = "25506"
- const networkOperator = "25506"
- const simSerialNumber = "10478987647236535281"
- const iccId = "10478987647236535281"
- const number = "973322992"
- const imei = "359514062220386"
- const imsi = "255065662833592"
- const countryIso = "ua"
- 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)
- Log.i(`SmsManager.getSmsManagerForSubscriptionId: ${i}`)
- return _smsManager
- }
- SmsManager.getDefault.overload().implementation = function () {
- const _smsManager = this.getDefault(i)
- Log.i(`SmsManager.getDefault`)
- 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.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
- }
- 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.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.getActiveSubscriptionInfoForSimSlotIndex.overload(
- "int"
- ).implementation = function (i) {
- const _info = this.getActiveSubscriptionInfoForSimSlotIndex(i)
- Log.i(
- `SubscriptionManager.getActiveSubscriptionInfoForSimSlotIndex(${i}): ${
- _info ? "ok" : "null"
- }`
- )
- return _info
- }
- 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: ${_info}`
- )
- 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")
- SubscriptionInfo.getMcc.overload().implementation = function () {
- const _mcc = this.getMcc()
- Log.i(`spoof SubscriptionInfo.getMcc: ${_mcc} -> ${mcc}`)
- return parseInt(mcc)
- }
- SubscriptionInfo.getMnc.overload().implementation = function () {
- const _mnc = this.getMnc()
- Log.i(`spoof SubscriptionInfo.getMnc: ${_mnc} -> ${mnc}`)
- return parseInt(mnc)
- }
- SubscriptionInfo.getMccString.overload().implementation = function () {
- const _mccString = this.getMccString()
- 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}`)
- return mnc
- }
- SubscriptionInfo.getNumber.overload().implementation = function () {
- const _number = this.getNumber()
- Log.i(`spoof SubscriptionInfo.getNumber: ${_number} -> ${number}`)
- return number
- }
- SubscriptionInfo.getIccId.overload().implementation = function () {
- const _iccId = this.getIccId()
- Log.i(`spoof SubscriptionInfo.getIccId: ${_iccId} -> ${iccId}`)
- return iccId
- }
- SubscriptionInfo.getCountryIso.overload().implementation = function () {
- const _countryIso = this.getCountryIso()
- 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
- }
- 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.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.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()
- Log.i(`spoof TelephonyManager.getImei: ${_imei} -> ${imei}`)
- return imei
- }
- 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.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()
- Log.i(`spoof TelephonyManager.getSimState: ${_simState} -> 5`)
- 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, j, i, i2, str2, bundle, i3, 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]
- Log.i(
- `PhoneNumberVerification(key: ${key}, value: ${bundle.get(
- key
- )})`
- )
- }
- return this.$init(str, j, i, i2, str2, bundle, i3, l)
- }
- 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",
- "int"
- ).implementation = function (
- i,
- i2,
- i3,
- iArr,
- l,
- i4,
- bundle,
- i5,
- str,
- str2,
- str3,
- str4,
- str5,
- str6,
- str7,
- str8,
- 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]
- Log.i(
- `SetAsterismConsentRequest.Bundle(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,
- i6
- )
- }
- 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(
- `SetAsterismConsentResponse.$init(i=${i}, str=${str}, str2=${str2})`
- )
- return this.$init(i, str, str2)
- }
- 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 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 (!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)
- )
- }
- // 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()
- }
- 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()
- }
- // this.o(amluVar, z, z2, fiwtVar)
- }
- } catch (error) {}
- 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) {}
- try {
- 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}`)
- }
- }
- } catch (error) {}
- 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
- }
- 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
- }
- 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
- // }
- })
|