mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-06 18:55:35 +08:00
Compare commits
3 Commits
e1544a8ae3
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
a82de55694 | ||
59c4b9870b
|
|||
|
bab5068484 |
@@ -61,15 +61,15 @@ libraries:
|
|||||||
version: 1.0.1
|
version: 1.0.1
|
||||||
com.highcapable.hikage:
|
com.highcapable.hikage:
|
||||||
hikage-core:
|
hikage-core:
|
||||||
version: 1.0.1
|
version: 1.0.2
|
||||||
hikage-compiler:
|
hikage-compiler:
|
||||||
version: 1.0.0
|
version: 1.0.1
|
||||||
hikage-extension:
|
hikage-extension:
|
||||||
version: 1.0.0
|
version: 1.0.1
|
||||||
hikage-widget-androidx:
|
hikage-widget-androidx:
|
||||||
version: 1.0.0
|
version: 1.0.1
|
||||||
hikage-widget-material:
|
hikage-widget-material:
|
||||||
version: 1.0.0
|
version: 1.0.1
|
||||||
com.highcapable.betterandroid:
|
com.highcapable.betterandroid:
|
||||||
ui-component:
|
ui-component:
|
||||||
version: 1.0.8
|
version: 1.0.8
|
||||||
|
@@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
package com.highcapable.yukihookapi.hook.core
|
package com.highcapable.yukihookapi.hook.core
|
||||||
|
|
||||||
|
import com.highcapable.kavaref.extension.classOf
|
||||||
import com.highcapable.kavaref.extension.isNotSubclassOf
|
import com.highcapable.kavaref.extension.isNotSubclassOf
|
||||||
import com.highcapable.yukihookapi.YukiHookAPI
|
import com.highcapable.yukihookapi.YukiHookAPI
|
||||||
import com.highcapable.yukihookapi.hook.bean.HookClass
|
import com.highcapable.yukihookapi.hook.bean.HookClass
|
||||||
@@ -545,6 +546,7 @@ class YukiMemberHookCreator internal constructor(private val packageParam: Packa
|
|||||||
*/
|
*/
|
||||||
private fun checkingReturnType(origin: Class<*>?, target: Class<*>?) {
|
private fun checkingReturnType(origin: Class<*>?, target: Class<*>?) {
|
||||||
if (origin == null || target == null) return
|
if (origin == null || target == null) return
|
||||||
|
if (origin == classOf<Any>()) return
|
||||||
origin.toJavaPrimitiveType().also { o ->
|
origin.toJavaPrimitiveType().also { o ->
|
||||||
target.toJavaPrimitiveType().also { t ->
|
target.toJavaPrimitiveType().also { t ->
|
||||||
if (o isNotSubclassOf t && t isNotSubclassOf o)
|
if (o isNotSubclassOf t && t isNotSubclassOf o)
|
||||||
@@ -843,7 +845,7 @@ class YukiMemberHookCreator internal constructor(private val packageParam: Packa
|
|||||||
* 监听 [members] 重复 Hook 的回调方法
|
* 监听 [members] 重复 Hook 的回调方法
|
||||||
*
|
*
|
||||||
* - 此方法及功能已被移除 - 在之后的版本中将直接被删除
|
* - 此方法及功能已被移除 - 在之后的版本中将直接被删除
|
||||||
*
|
*
|
||||||
* - 不再限制重复 Hook 操作
|
* - 不再限制重复 Hook 操作
|
||||||
* @return [Result] 可继续向下监听
|
* @return [Result] 可继续向下监听
|
||||||
*/
|
*/
|
||||||
|
@@ -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