function trace(tag) { Log.e((tag || '') + Java.use('android.util.Log').getStackTraceString(Java.use('java.lang.Throwable').$new())) } 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 () { 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.i('PhoneNumberVerification.$init', str, j, i, i2, str2, bundle, i3, l) return this.$init(str, j, i, i2, str2, bundle, i3, l) } const VerifyPhoneNumberRequest = Java.use('com.google.android.gms.constellation.VerifyPhoneNumberRequest') VerifyPhoneNumberRequest.$init.overload( //String str, long j, IdTokenRequest idTokenRequest, Bundle bundle, List list, boolean z, int i, List list2 'java.lang.String', 'long', 'com.google.android.gms.constellation.IdTokenRequest', 'android.os.Bundle', 'java.util.List', 'boolean', 'int', 'java.util.List' ).implementation = function (str, j, idTokenRequest, bundle, list, z, i, list2) { Log.e(`VerifyPhoneNumberRequest.$init( str=${str}, j=${j}, idTokenRequest=${idTokenRequest}, bundle=${bundle}, list=${list}, z=${z}, i=${i}, list2=${list2})`) return this.$init(str, j, idTokenRequest, bundle, list, z, i, list2) } VerifyPhoneNumberRequest.writeToParcel.overload('android.os.Parcel', 'int').implementation = function (parcel, i) { Log.e(`VerifyPhoneNumberRequest.writeToParcel(parcel=${parcel}, i=${i})`) return this.writeToParcel(parcel, i) } })