- object
YukiHookAPIobject YukiHookAPI
变更记录
v1.0
添加
功能描述
这是
YukiHookAPI
的 API 调用总类,Hook 相关功能的开始、Hook 相关功能的配置都在这里。
- field
TAGconst val TAG: String
变更记录
v1.2.0
新增
功能描述
获取当前
YukiHookAPI
的名称 (标签)。
- field
VERSIONconst val VERSION: String
变更记录
v1.2.0
新增
功能描述
获取当前
YukiHookAPI
的版本。
API_VERSION_NAME - field
变更记录
v1.0.4
新增
v1.2.0
作废
不再区分版本名称和版本号,请迁移到 VERSION
API_VERSION_CODE - field
变更记录
v1.0.4
新增
v1.2.0
作废
不再区分版本名称和版本号,请迁移到 VERSION
executorName - field
变更记录
v1.0.5
新增
v1.0.91
移除
请迁移到 Status.Executor.name
executorVersion - field
变更记录
v1.0.5
新增
v1.0.91
移除
请迁移到 Status.Executor.apiLevel
、Status.Executor.versionName
、Status.Executor.versionCode
- object
Statusobject Status
变更记录
v1.0.91
新增
功能描述
当前
YukiHookAPI
的状态。
- field
compiledTimestampval compiledTimestamp: Long
变更记录
v1.1.0
新增
功能描述
获取项目编译完成的时间戳 (当前本地时间)。
- field
isXposedEnvironmentval isXposedEnvironment: Boolean
变更记录
v1.1.0
新增
功能描述
获取当前是否为 (Xposed) 宿主环境。
executorName - field
变更记录
v1.0.91
新增
v1.1.5
作废
请迁移到 Executor.name
executorVersion - field
变更记录
v1.0.91
新增
v1.1.5
作废
请迁移到 Executor.apiLevel
、Executor.versionName
、Executor.versionCode
- field
isModuleActiveval isModuleActive: Boolean
变更记录
v1.0.91
新增
功能描述
判断模块是否在 Xposed 或太极、无极中激活。
注意
在模块环境中你需要将 Application 继承于 ModuleApplication。
在模块环境中需要启用 InjectYukiHookWithXposed.isUsingXposedModuleStatus。
在 (Xposed) 宿主环境中仅返回非 isTaiChiModuleActive 的激活状态。
- field
isXposedModuleActiveval isXposedModuleActive: Boolean
变更记录
v1.0.91
新增
功能描述
仅判断模块是否在 Xposed 中激活。
注意
在模块环境中需要启用 InjectYukiHookWithXposed.isUsingXposedModuleStatus。
在 (Xposed) 宿主环境中始终返回 true。
- field
isTaiChiModuleActiveval isTaiChiModuleActive: Boolean
变更记录
v1.0.91
新增
功能描述
仅判断模块是否在太极、无极中激活。
注意
在模块环境中你需要将 Application 继承于 ModuleApplication。
在 (Xposed) 宿主环境中始终返回 false。
- field
isSupportResourcesHookval isSupportResourcesHook: Boolean
变更记录
v1.0.91
新增
功能描述
判断当前 Hook Framework 是否支持资源钩子 (Resources Hook)。
注意
在模块环境中需要启用 InjectYukiHookWithXposed.isUsingXposedModuleStatus。
在 (Xposed) 宿主环境中可能会延迟等待事件回调后才会返回 true。
请注意你需要确保 InjectYukiHookWithXposed.isUsingResourcesHook 已启用,否则始终返回 false。
- object
Executorobject Executor
变更记录
v1.1.5
新增
功能描述
当前
YukiHookAPI
使用的 Hook Framework 相关信息。
- field
nameval name: String
变更记录
v1.1.5
新增
功能描述
获取当前 Hook Framework 名称。
注意
在模块环境中需要启用 InjectYukiHookWithXposed.isUsingXposedModuleStatus。
- field
typeval type: ExecutorType
变更记录
v1.1.9
新增
功能描述
获取当前 Hook Framework 类型。
注意
在模块环境中需要启用 InjectYukiHookWithXposed.isUsingXposedModuleStatus。
- field
apiLevelval apiLevel: Int
变更记录
v1.1.5
新增
功能描述
获取当前 Hook Framework 的 API 版本。
注意
在模块环境中需要启用 InjectYukiHookWithXposed.isUsingXposedModuleStatus。
- field
versionNameval versionName: String
变更记录
v1.1.5
新增
功能描述
获取当前 Hook Framework 版本名称。
注意
在模块环境中需要启用 InjectYukiHookWithXposed.isUsingXposedModuleStatus。
- field
versionCodeval versionCode: Int
变更记录
v1.1.5
新增
功能描述
获取当前 Hook Framework 版本号。
注意
在模块环境中需要启用 InjectYukiHookWithXposed.isUsingXposedModuleStatus。
- object
Configsobject Configs
变更记录
v1.0
添加
功能描述
对 API 相关功能的配置类。
- method
debugLoginline fun debugLog(initiate: YLog.Configs.() -> Unit)
变更记录
v1.1.0
新增
功能描述
配置
YLog.Configs
相关参数。
debugTag - field
变更记录
v1.0
添加
v1.1.0
作废
请迁移到 YLog.Configs.tag
- field
isDebugvar isDebug: Boolean
变更记录
v1.0
添加
功能描述
是否启用 Debug 模式。
默认不启用,启用后模块将会向 Logcat
和 (Xposed) 宿主环境中的日志功能打印详细的 Hook 日志,关闭后仅会打印 E
级别的日志。
isAllowPrintingLogs - field
变更记录
v1.0.4
新增
v1.1.0
作废
请迁移到 YLog.Configs.isEnable
isEnableModulePrefsCache - field
变更记录
v1.0.5
新增
v1.1.9
作废
请迁移到 isEnablePrefsBridgeCache
isEnablePrefsBridgeCache - field
变更记录
v1.1.9
新增
v1.1.11
作废
键值的直接缓存功能已被移除,因为其存在内存溢出 (OOM) 问题
- field
isEnableModuleAppResourcesCachevar isEnableModuleAppResourcesCache: Boolean
变更记录
v1.0.87
新增
功能描述
是否启用当前 Xposed 模块自身
Resources
缓存功能。
为防止内存复用过高问题,此功能默认启用。
你可以手动调用 PackageParam.refreshModuleAppResources
来刷新缓存。
注意
关闭后每次使用 PackageParam.moduleAppResources 都会重新创建,可能会造成运行缓慢。
isEnableHookModuleStatus - field
变更记录
v1.0.88
新增
v1.2.0
作废
请手动迁移到 InjectYukiHookWithXposed.isUsingXposedModuleStatus
- field
isEnableHookSharedPreferencesvar isEnableHookSharedPreferences: Boolean
变更记录
v1.1.0
新增
功能描述
是否启用 Hook
SharedPreferences
。
启用后将在模块启动时强制将 SharedPreferences
文件权限调整为 Context.MODE_WORLD_READABLE
(0664)。
注意
这是一个可选的实验性功能,此功能默认不启用。
仅用于修复某些系统可能会出现在启用了 New XSharedPreferences 后依然出现文件权限错误问题,若你能正常使用 YukiHookPrefsBridge 就不建议启用此功能。
- field
isEnableDataChannelvar isEnableDataChannel: Boolean
变更记录
v1.0.88
新增
功能描述
是否启用当前 Xposed 模块与宿主交互的
YukiHookDataChannel
功能。
请确保 Xposed 模块的 Application
继承于 ModuleApplication
才能有效。
此功能默认启用,关闭后将不会在功能初始化的时候装载 YukiHookDataChannel
。
isEnableMemberCache - field
变更记录
v1.0.68
新增
v1.1.11
作废
Member
的直接缓存功能已被移除,因为其存在内存溢出 (OOM) 问题
- method
configsinline fun configs(initiate: Configs.() -> Unit)
变更记录
v1.0
添加
v1.0.80
修改
将方法体进行 inline
功能描述
对
Configs
类实现了一个 lambda 方法体。
你可以轻松地调用它进行配置。
功能示例
你可以在 Hook 入口类的 onInit
方法中调用 configs
方法和 debugLog
方法完成对 API 的功能配置,实时生效。
示例如下
object HookEntry : IYukiHookXposedInit {
override fun onInit() {
YukiHookAPI.configs {
debugLog {
tag = "YukiHookAPI"
isEnable = true
isRecord = false
elements(TAG, PRIORITY, PACKAGE_NAME, USER_ID)
}
isDebug = BuildConfig.DEBUG
isEnableModuleAppResourcesCache = true
isEnableHookModuleStatus = true
isEnableHookSharedPreferences = false
isEnableDataChannel = true
}
}
override fun onHook() {
// Your code here.
}
}
若觉得上面的写法不美观,你还可以写得更加简洁。
示例如下
object HookEntry : IYukiHookXposedInit {
override fun onInit() = configs {
debugLog {
tag = "YukiHookAPI"
isEnable = true
isRecord = false
elements(TAG, PRIORITY, PACKAGE_NAME, USER_ID)
}
isDebug = BuildConfig.DEBUG
isEnableModuleAppResourcesCache = true
isEnableHookModuleStatus = true
isEnableHookSharedPreferences = false
isEnableDataChannel = true
}
override fun onHook() {
// Your code here.
}
}
你也可以不通过 configs
和 debugLog
方法,直接进行配置。
示例如下
object HookEntry : IYukiHookXposedInit {
override fun onInit() {
YLog.Configs.tag = "YukiHookAPI"
YLog.Configs.isEnable = true
YLog.Configs.isRecord = false
YLog.Configs.elements(
YLog.Configs.TAG,
YLog.Configs.PRIORITY,
YLog.Configs.PACKAGE_NAME,
YLog.Configs.USER_ID
)
YukiHookAPI.Configs.isDebug = BuildConfig.DEBUG
YukiHookAPI.Configs.isEnableModuleAppResourcesCache = true
YukiHookAPI.InjectYukiHookWithXposed.isUsingXposedModuleStatus = true
YukiHookAPI.Configs.isEnableHookSharedPreferences = false
YukiHookAPI.Configs.isEnableDataChannel = true
}
override fun onHook() {
// Your code here.
}
}
- method
encasefun encase(initiate: PackageParam.() -> Unit)
fun encase(vararg hooker: YukiBaseHooker)
fun encase(baseContext: Context?, initiate: PackageParam.() -> Unit)
fun encase(baseContext: Context?, vararg hooker: YukiBaseHooker)
变更记录
v1.0
添加
功能描述
装载 Hook 入口的核心方法。
功能示例
详情请参考