| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- class Log {
- static TAG = '[SMS]'
- static Debug = true
- static format(...msg) {
- let m = []
- for (let i = 0; i < msg.length; i++) {
- if (typeof msg[i] === 'object') {
- m.push(JSON.stringify(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`)
- }
- }
- function trace(tag) {
- Log.e((tag || '') + Java.use('android.util.Log').getStackTraceString(Java.use('java.lang.Throwable').$new()))
- }
- setImmediate(() => {
- Java.perform(function () {
- 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)
- }
- 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
- })
- }
- // 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()
- // }
- function dumpList(list) {
- if (list) {
- let res = []
- for (let i = 0; i < list.size(); i++) {
- res.push('' + list.get(i))
- }
- return res
- }
- return []
- }
- })
- })
|