10 KiB
YukiHookAPI - object
object YukiHookAPI
变更记录
v1.0
添加
功能描述
这是
YukiHookAPI
的 API 调用总类,Hook 相关功能的开始、Hook 相关功能的配置都在这里。
API_VERSION_NAME - field
const val API_VERSION_NAME: String
变更记录
v1.0.4
新增
功能描述
获取当前
YukiHookAPI
的版本。
API_VERSION_CODE - field
const val API_VERSION_CODE: Int
变更记录
v1.0.4
新增
功能描述
获取当前
YukiHookAPI
的版本号。
executorName - field
变更记录
v1.0.5
新增
v1.0.91
移除
请转移到 Status.executorName
executorVersion - field
变更记录
v1.0.5
新增
v1.0.91
移除
请转移到 Status.executorVersion
Status - object
object Status
变更记录
v1.0.91
新增
功能描述
当前
YukiHookAPI
的状态。
isXposedEnvironment - field
val isXposedEnvironment: Boolean
变更记录
v1.0.93
新增
功能描述
获取当前是否为 (Xposed) 宿主环境。
executorName - field
val executorName: String
变更记录
v1.0.91
新增
功能描述
获取当前 Hook 框架的名称。
无法获取会返回 unknown
,XposedBridge
不存在会返回 invalid
。
!> 在模块环境中需要启用 Configs.isEnableHookModuleStatus
。
executorVersion - field
val executorVersion: Int
变更记录
v1.0.91
新增
功能描述
获取当前 Hook 框架的版本。
无法获取会返回 -1
。
!> 在模块环境中需要启用 Configs.isEnableHookModuleStatus
。
isModuleActive - field
val isModuleActive: Boolean
变更记录
v1.0.91
新增
功能描述
判断模块是否在 Xposed 或太极、无极中激活。
!> 在模块环境中你需要将 Application
继承于 ModuleApplication
。
!> 在模块环境中需要启用 Configs.isEnableHookModuleStatus
。
!> 在 (Xposed) 宿主环境中仅返回非 isTaiChiModuleActive
的激活状态。
isXposedModuleActive - field
val isXposedModuleActive: Boolean
变更记录
v1.0.91
新增
功能描述
仅判断模块是否在 Xposed 中激活。
!> 在模块环境中需要启用 Configs.isEnableHookModuleStatus
。
!> 在 (Xposed) 宿主环境中始终返回 true。
isTaiChiModuleActive - field
val isTaiChiModuleActive: Boolean
变更记录
v1.0.91
新增
功能描述
仅判断模块是否在太极、无极中激活。
!> 在模块环境中你需要将 Application
继承于 ModuleApplication
。
!> 在 (Xposed) 宿主环境中始终返回 false。
isSupportResourcesHook - field
val isSupportResourcesHook: Boolean
变更记录
v1.0.91
新增
功能描述
判断当前 Hook Framework 是否支持资源钩子(Resources Hook)。
!> 在模块环境中需要启用 Configs.isEnableHookModuleStatus
。
!> 在 (Xposed) 宿主环境中可能会延迟等待事件回调后才会返回 true。
!> 请注意你需要确保 InjectYukiHookWithXposed.isUsingResourcesHook
已启用,否则始终返回 false。
Configs - object
object Configs
变更记录
v1.0
添加
功能描述
对 API 相关功能的配置类。
debugTag - field
var debugTag: String
变更记录
v1.0
添加
功能描述
模块在调用
logger
时打印的日志TAG
名称。
你可以方便地进行自定义,并可以在 Logcat
和 XposedBridge.log
中找到它们。
isDebug - field
var isDebug: Boolean
变更记录
v1.0
添加
功能描述
是否启用 DEBUG 模式。
默认为开启状态,开启后模块将会向 Logcat
和 XposedBridge.log
打印详细的 Hook 日志,关闭后仅会打印 E
级别的日志。
isAllowPrintingLogs - field
var isAllowPrintingLogs: Boolean
变更记录
v1.0.4
新增
功能描述
是否启用调试日志的输出功能。
!> 关闭后将会停用 YukiHookAPI
对全部日志的输出,但是不影响当你手动调用日志方法输出日志。
isEnableModulePrefsCache - field
var isEnableModulePrefsCache: Boolean
变更记录
v1.0.5
新增
功能描述
是否启用
YukiHookModulePrefs
的键值缓存功能。
为防止内存复用过高问题,此功能默认启用。
你可以手动在 YukiHookModulePrefs
中自由开启和关闭缓存功能以及清除缓存。
isEnableModuleAppResourcesCache - field
var isEnableModuleAppResourcesCache: Boolean
变更记录
v1.0.87
新增
功能描述
是否启用当前 Xposed 模块自身
Resources
缓存功能。
为防止内存复用过高问题,此功能默认启用。
你可以手动调用 PackageParam.refreshModuleAppResources
来刷新缓存。
!> 关闭后每次使用 PackageParam.moduleAppResources
都会重新创建,可能会造成运行缓慢。
isEnableHookModuleStatus - field
var isEnableHookModuleStatus: Boolean
变更记录
v1.0.88
新增
功能描述
是否启用 Hook Xposed 模块激活等状态功能.
为原生支持 Xposed 模块激活状态检测,此功能默认启用。
!> 关闭后你将不能再在模块环境中使用 YukiHookAPI.Status
中的功能。
isEnableHookSharedPreferences - field
var isEnableHookSharedPreferences: Boolean
变更记录
v1.0.93
新增
功能描述
是否启用 Hook
SharedPreferences
。
启用后将在模块启动时强制将 SharedPreferences
文件权限调整为 Context.MODE_WORLD_READABLE
(0664)。
!> 这是一个可选的实验性功能,此功能默认不启用。
仅用于修复某些系统可能会出现在启用了 New XSharedPreferences
后依然出现文件权限错误问题,若你能正常使用 YukiHookModulePrefs
就不建议启用此功能。
isEnableDataChannel - field
var isEnableDataChannel: Boolean
变更记录
v1.0.88
新增
功能描述
是否启用当前 Xposed 模块与宿主交互的
YukiHookDataChannel
功能。
请确保 Xposed 模块的 Application
继承于 ModuleApplication
才能有效。
此功能默认启用,关闭后将不会在功能初始化的时候装载 YukiHookDataChannel
。
isEnableMemberCache - field
var isEnableMemberCache: Boolean
变更记录
v1.0.68
新增
v1.0.80
修改
将方法体进行 inline
功能描述
是否启用
Member
缓存功能。
为防止 Member
复用过高造成的系统 GC 问题,此功能默认启用。
启用后会缓存已经找到的 Class
、Method
、Constructor
、Field
。
缓存的 Member
都将处于 MemberCacheStore
的全局静态实例中。
推荐使用 MethodFinder
、ConstructorFinder
、FieldFinder
来获取 Member
。
除非缓存的 Member
发生了混淆的问题,例如使用 R8 混淆后的 APP 的目标 Member
,否则建议启用。
configs - method
inline fun configs(initiate: Configs.() -> Unit)
变更记录
v1.0
添加
功能描述
对
Configs
类实现了一个lambda
方法体。
你可以轻松的调用它进行配置。
功能示例
你可以在 HookEntryClass
的 onInit
方法中调用 configs
方法完成对 API 的功能配置,实时生效。
示例如下
class HookEntryClass : IYukiHookXposedInit {
override fun onInit() {
YukiHookAPI.configs {
debugTag = "YukiHookAPI"
isDebug = BuildConfig.DEBUG
isAllowPrintingLogs = true
isEnableModulePrefsCache = true
isEnableModuleAppResourcesCache = true
isEnableHookModuleStatus = true
isEnableDataChannel = true
isEnableMemberCache = true
}
}
override fun onHook() {
// Your code here.
}
}
若觉得上面的写法不美观,你还可以写得更加简洁。
示例如下
class HookEntryClass : IYukiHookXposedInit {
override fun onInit() = configs {
debugTag = "YukiHookAPI"
isDebug = BuildConfig.DEBUG
isAllowPrintingLogs = true
isEnableModulePrefsCache = true
isEnableModuleAppResourcesCache = true
isEnableHookModuleStatus = true
isEnableDataChannel = true
isEnableMemberCache = true
}
override fun onHook() {
// Your code here.
}
}
你也可以不通过 configs
方法,直接进行配置。
示例如下
class HookEntryClass : IYukiHookXposedInit {
override fun onInit() {
YukiHookAPI.Configs.debugTag = "YukiHookAPI"
YukiHookAPI.Configs.isDebug = BuildConfig.DEBUG
YukiHookAPI.Configs.isAllowPrintingLogs = true
YukiHookAPI.Configs.isEnableModulePrefsCache = true
YukiHookAPI.Configs.isEnableModuleAppResourcesCache = true
YukiHookAPI.Configs.isEnableHookModuleStatus = true
YukiHookAPI.Configs.isEnableDataChannel = true
YukiHookAPI.Configs.isEnableMemberCache = true
}
override fun onHook() {
// Your code here.
}
}
encase - method
fun 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 入口的核心方法。
功能示例
详情请参考