samsung.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. function trace(tag) {
  2. Log.e((tag || '') + Java.use('android.util.Log').getStackTraceString(Java.use('java.lang.Throwable').$new()))
  3. }
  4. class Log {
  5. static TAG = '[sam_msg]'
  6. static Debug = true
  7. static format(...msg) {
  8. let m = []
  9. for (let i = 0; i < msg.length; i++) {
  10. if (typeof msg[i] === 'object') {
  11. m.push(msg[i] + '')
  12. } else {
  13. m.push(msg[i])
  14. }
  15. }
  16. m = m.join(' ')
  17. return m
  18. }
  19. static i(...msg) {
  20. if (!this.Debug) return
  21. console.log(`\x1b[30m${this.TAG} ${this.format(...msg)}\x1b[0m`)
  22. }
  23. static w(...msg) {
  24. console.log(`\x1b[33m${this.TAG} ${this.format(...msg)}\x1b[0m`)
  25. }
  26. static e(...msg) {
  27. console.log(`\x1b[31m${this.TAG} ${this.format(...msg)}\x1b[0m`)
  28. }
  29. static s(...msg) {
  30. console.log(`\x1b[32m${this.TAG} ${this.format(...msg)}\x1b[0m`)
  31. }
  32. }
  33. Java.perform(function () {
  34. const r = Java.use('ts.r')
  35. Log.i(r)
  36. r.g.overload('int', 'android.content.Context').implementation = function (i, context) {
  37. Log.i(`r.g(${i}, ${context})`)
  38. return true
  39. }
  40. const RcsFeatures = Java.use('com.samsung.android.messaging.common.configuration.rcs.RcsFeatures')
  41. Log.i(RcsFeatures.getRcsSupportedSimSlot())
  42. const Feature = Java.use('com.samsung.android.messaging.common.configuration.Feature')
  43. Feature.isRcsSupported.overload().implementation = function () {
  44. Log.i('Feature.isRcsSupported()')
  45. return true
  46. }
  47. const CapabilitiesData = Java.use('com.samsung.android.messaging.common.data.rcs.CapabilitiesData')
  48. CapabilitiesData.isLocalOffline.overload().implementation = function () {
  49. Log.i('CapabilitiesData.isLocalOffline()')
  50. return false
  51. }
  52. const ImsManagerApi = Java.use('com.samsung.android.messaging.common.imsmanager.ImsManagerApi')
  53. ImsManagerApi.isRcsServiceAvailable.overload('android.content.Context', 'int').implementation = function (
  54. context,
  55. i
  56. ) {
  57. Log.i(`ImsManagerApi.isRcsServiceAvailable(${context}, ${i})`)
  58. return true
  59. }
  60. })