mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-06 18:55:35 +08:00
Modify decoupling XposedHelpers.findClass to YukiHookHelper.findClass in ReflectionFactory and YukiBridgeFactory
This commit is contained in:
@@ -37,8 +37,8 @@ import com.highcapable.yukihookapi.hook.core.finder.MethodFinder
|
|||||||
import com.highcapable.yukihookapi.hook.core.finder.type.ModifierRules
|
import com.highcapable.yukihookapi.hook.core.finder.type.ModifierRules
|
||||||
import com.highcapable.yukihookapi.hook.store.MemberCacheStore
|
import com.highcapable.yukihookapi.hook.store.MemberCacheStore
|
||||||
import com.highcapable.yukihookapi.hook.xposed.bridge.YukiHookBridge
|
import com.highcapable.yukihookapi.hook.xposed.bridge.YukiHookBridge
|
||||||
|
import com.highcapable.yukihookapi.hook.xposed.bridge.factory.YukiHookHelper
|
||||||
import com.highcapable.yukihookapi.hook.xposed.bridge.status.YukiHookModuleStatus
|
import com.highcapable.yukihookapi.hook.xposed.bridge.status.YukiHookModuleStatus
|
||||||
import de.robv.android.xposed.XposedHelpers
|
|
||||||
import java.lang.reflect.Constructor
|
import java.lang.reflect.Constructor
|
||||||
import java.lang.reflect.Field
|
import java.lang.reflect.Field
|
||||||
import java.lang.reflect.Member
|
import java.lang.reflect.Member
|
||||||
@@ -85,7 +85,7 @@ fun classOf(name: String, loader: ClassLoader? = null): Class<*> {
|
|||||||
return MemberCacheStore.findClass(hashCode) ?: run {
|
return MemberCacheStore.findClass(hashCode) ?: run {
|
||||||
when {
|
when {
|
||||||
YukiHookBridge.hasXposedBridge ->
|
YukiHookBridge.hasXposedBridge ->
|
||||||
runCatching { XposedHelpers.findClassIfExists(name, loader) }.getOrNull()
|
runCatching { YukiHookHelper.findClass(name, loader) }.getOrNull()
|
||||||
?: when (loader) {
|
?: when (loader) {
|
||||||
null -> Class.forName(name)
|
null -> Class.forName(name)
|
||||||
else -> loader.loadClass(name)
|
else -> loader.loadClass(name)
|
||||||
|
@@ -37,6 +37,7 @@ import com.highcapable.yukihookapi.hook.param.wrapper.HookParamWrapper
|
|||||||
import com.highcapable.yukihookapi.hook.xposed.bridge.YukiHookBridge
|
import com.highcapable.yukihookapi.hook.xposed.bridge.YukiHookBridge
|
||||||
import de.robv.android.xposed.XC_MethodHook
|
import de.robv.android.xposed.XC_MethodHook
|
||||||
import de.robv.android.xposed.XposedBridge
|
import de.robv.android.xposed.XposedBridge
|
||||||
|
import de.robv.android.xposed.XposedHelpers
|
||||||
import java.lang.reflect.Member
|
import java.lang.reflect.Member
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -70,6 +71,16 @@ internal object YukiHookedMembers {
|
|||||||
*/
|
*/
|
||||||
internal object YukiHookHelper {
|
internal object YukiHookHelper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 使用 [XposedHelpers.findClass] 来查找 [Class]
|
||||||
|
* @param name [Class] 的完整包名+名称
|
||||||
|
* @param loader [Class] 所在的 [ClassLoader] - 默认空 - 可不填
|
||||||
|
* @return [Class] or null
|
||||||
|
* @throws ClassNotFoundException 如果找不到 [Class]
|
||||||
|
*/
|
||||||
|
internal fun findClass(name: String, loader: ClassLoader? = null) =
|
||||||
|
if (YukiHookBridge.hasXposedBridge) XposedHelpers.findClass(name, loader) else null
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hook [BaseFinder.BaseResult]
|
* Hook [BaseFinder.BaseResult]
|
||||||
* @param traction 直接调用 [BaseFinder.BaseResult]
|
* @param traction 直接调用 [BaseFinder.BaseResult]
|
||||||
|
Reference in New Issue
Block a user