mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-04 01:35:17 +08:00
fix: throw null receiver when singleton is null on Android 9 (#112)
This commit is contained in:
@@ -216,7 +216,7 @@ internal object AppParasitics {
|
|||||||
if (isClassLoaderHooked) return
|
if (isClassLoaderHooked) return
|
||||||
val loadClass = ClassLoader::class.resolve()
|
val loadClass = ClassLoader::class.resolve()
|
||||||
.optional(silent = true)
|
.optional(silent = true)
|
||||||
.firstMethodOrNull {
|
.firstMethodOrNull {
|
||||||
name = "loadClass"
|
name = "loadClass"
|
||||||
parameters(String::class, Boolean::class)
|
parameters(String::class, Boolean::class)
|
||||||
}
|
}
|
||||||
@@ -509,16 +509,18 @@ internal object AppParasitics {
|
|||||||
?.optional(silent = true)
|
?.optional(silent = true)
|
||||||
?.firstFieldOrNull { name = "IActivityTaskManagerSingleton" }
|
?.firstFieldOrNull { name = "IActivityTaskManagerSingleton" }
|
||||||
?.get()
|
?.get()
|
||||||
SingletonClass.resolve()
|
singleton?.let {
|
||||||
.processor(AndroidHiddenApiBypassResolver.get())
|
SingletonClass.resolve()
|
||||||
.optional(silent = true)
|
.processor(AndroidHiddenApiBypassResolver.get())
|
||||||
.firstMethodOrNull { name = "get" }
|
.optional(silent = true)
|
||||||
?.of(singleton)
|
.firstMethodOrNull { name = "get" }
|
||||||
?.invokeQuietly()
|
?.of(singleton)
|
||||||
val mInstanceResolver2 = mInstanceResolver?.copy()?.of(singleton)
|
?.invokeQuietly()
|
||||||
val mInstance2 = mInstanceResolver2?.get()
|
val mInstanceResolver2 = mInstanceResolver?.copy()?.of(singleton)
|
||||||
mInstance2?.let {
|
val mInstance2 = mInstanceResolver2?.get()
|
||||||
mInstanceResolver2.set(IActivityManagerProxyImpl.createWrapper(IActivityTaskManagerClass, it))
|
mInstance2?.let {
|
||||||
|
mInstanceResolver2.set(IActivityManagerProxyImpl.createWrapper(IActivityTaskManagerClass, it))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
isActivityProxyRegistered = true
|
isActivityProxyRegistered = true
|
||||||
}.onFailure { YLog.innerE("Activity Proxy initialization failed because got an exception", it) }
|
}.onFailure { YLog.innerE("Activity Proxy initialization failed because got an exception", it) }
|
||||||
|
Reference in New Issue
Block a user