|
|
@@ -47,6 +47,12 @@ class Log {
|
|
|
}
|
|
|
|
|
|
Java.perform(function () {
|
|
|
+ const GsonClass = Java.openClassFile(
|
|
|
+ "/data/data/com.google.android.gms/gson.dex"
|
|
|
+ )
|
|
|
+ GsonClass.load()
|
|
|
+ Log.s("gson class loaded")
|
|
|
+
|
|
|
const SmsManager = Java.use("android.telephony.SmsManager")
|
|
|
SmsManager.getSmsManagerForSubscriptionId.overload("int").implementation =
|
|
|
function (i) {
|
|
|
@@ -697,6 +703,9 @@ Java.perform(function () {
|
|
|
list
|
|
|
) {
|
|
|
Log.e("alyx.m", amlu, list)
|
|
|
+ for (let i = 0; i < list.size(); i++) {
|
|
|
+ Log.e(`list[${i}]=${list.get(i)}`)
|
|
|
+ }
|
|
|
const a = amlu._a.value // string
|
|
|
Log.e(`\ta=${a}`)
|
|
|
const f = amlu.f.value // string
|
|
|
@@ -705,14 +714,41 @@ Java.perform(function () {
|
|
|
for (let i = 0; i < g.size(); i++) {
|
|
|
Log.e(`\tg[${i}]=${g.get(i)}`)
|
|
|
}
|
|
|
- const d = amlu.d.value // map
|
|
|
- for (const key in d.keySet()) {
|
|
|
+
|
|
|
+ const h = amlu.h.value // list
|
|
|
+ if (h) {
|
|
|
+ for (let i = 0; i < h.size(); i++) {
|
|
|
+ Log.e(`\th[${i}]=${h.get(i)}`)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ const HashMap = Java.use("java.util.HashMap")
|
|
|
+ const d = Java.cast(amlu.d.value, HashMap) // map
|
|
|
+ const keySet = d.keySet().toArray()
|
|
|
+ for (let key of keySet) {
|
|
|
Log.e(`\td[${key}]=${d.get(key)}`)
|
|
|
+ Log.e(Object.getOwnPropertyNames(d.get(key).__proto__).join("\n"))
|
|
|
+ const gson = Java.use("com.google.gson.Gson").$new()
|
|
|
+ const json = gson.toJson(d.get(key))
|
|
|
+ Log.e(json)
|
|
|
}
|
|
|
- const e = amlu.e.value // map
|
|
|
- for (const key in e.keySet()) {
|
|
|
+
|
|
|
+ const e = Java.cast(amlu.e.value, HashMap) // map
|
|
|
+ const keySet2 = e.keySet().toArray()
|
|
|
+ for (let key of keySet2) {
|
|
|
Log.e(`\te[${key}]=${e.get(key)}`)
|
|
|
}
|
|
|
return this.m(amlu, list)
|
|
|
}
|
|
|
+
|
|
|
+ const Bundle = Java.use("android.os.Bundle")
|
|
|
+ Bundle.getInt.overload("java.lang.String").implementation = function (str) {
|
|
|
+ Log.e(`Bundle.getInt: ${str}`)
|
|
|
+ if (str === "sim_slot_index") {
|
|
|
+
|
|
|
+ trace()
|
|
|
+ return 0
|
|
|
+ }
|
|
|
+ return this.getInt(str)
|
|
|
+ }
|
|
|
})
|