mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-04 09:45:19 +08:00
14 KiB
14 KiB
更新日志
这里记录了
YukiHookAPI
的版本更新历史。
1.0.92 | 2022.05.31
- 修正了大量方法中 callback 的命名方法
- 更换方案再次修复
YukiHookDataChannel
在低于 Android 12 的设备上不能回调当前Activity
广播的问题 InjectYukiHookWithXposed
注解新增isUsingResourcesHook
功能,现在你可以选择性关闭自动生成IXposedHookInitPackageResources
的依赖接口了
1.0.91 | 2022.05.29
- 修复部分设备的定制系统在 LSPosed 环境下开机启动获取的
ClassLoader
错误的问题,感谢 Luckyzyx 的反馈 - 修复
YukiHookDataChannel
在 ZUI 以及低于 Android 12 的系统上不能回调当前Activity
广播的问题 - 整合
YukiHookModuleStatus
功能到YukiHookAPI.Status
,重写了大量方法,现在你可以在模块与宿主中双向判断模块激活等状态信息
1.0.90 | 2022.05.27
- 修复
YukiHookDataChannel
在模块设置监听回调时闪退的问题 - 修复
YukiHookDataChannel
在非当前Activity
情况下依然会回调的问题 - 移除
YukiHookDataChannel
回调事件的默认值,没有即不回调 - 移除
YukiHookModulePrefs
在 XShare 不可读的情况下打印的警告 - 新增
YukiHookModulePrefs
中的isXSharePrefsReadable
方法,可判断当前的 XShare 是否可用
1.0.89 | 2022.05.26
- 修复
YukiHookDataChannel
不能重复设置监听的问题,并加入在模块不同Activity
中重复响应和自动跟随Activity
销毁监听功能 - 新增
YukiHookDataChannel
重复监听用例说明文档 - 加入
onAlreadyHooked
方法,可判断当前方法是否被重复 Hook - 修改部分重复添加 HashMap 的逻辑,移除
putIfAbsent
方法,允许覆盖添加 - 修复了几处可能的 BUG
1.0.88 | 2022.05.25
- 对 Xposed API 完全解耦合
- 增加了
type
中的android
类型 - 将
YukiHookModuleStatus
从自动生成代码中分离,并加入isEnableHookModuleStatus
的开关,由你决定是否启用 - 对 API 大量类的构造方法进行了 internal 闭包处理
- 将
YukiHookModulePrefs
设置为单例运行,防止重复创建浪费系统资源 - 修复自
1.0.80
版本后无法嵌套 Hook 的 BUG,并优化嵌套 Hook 相关功能 - 修改 Hooker 存储方案由 HashSet 到 HashMap,防止重复添加 Hooker 的问题
- 修改 Hook 核心实现方法,加入查重,避免重复 Hook 多次回调
HookParam
方法 MethodFinder
与FieldFinder
加入查找模糊方法、变量名称功能,可调用name { ... }
来设置查找条件,支持正则- 优化并修改
appContext
的获取方式,降低会取到空的问题的可能性 - 修改自动生成的代码中
logger
的打印TAG
默认为你自定义的名称,方便进行调试 - 优化
YukiHookBridge
的Hooker
实现方式,提升 Hook 性能 PackageParam
增加onAppLifecycle
方法,可原生监听宿主的生命周期以及实现注册系统广播功能- 新增
YukiHookDataChannel
功能,可在模块与宿主保持存活的情况下使用系统无序广播进行通讯 YukiHookDataChannel
增加checkingVersionEquals
方法,可通过监听来验证模块更新后宿主并未更新版本不匹配问题demo-module
的示例代码中新增 Java 版本的示例,仅供参考
1.0.87 | 2022.05.10
- 新增
refreshModuleAppResources
功能,以适配语言区域、字体大小、分辨率改变等情况下的 Resources 刷新 - 新增
isEnableModuleAppResourcesCache
功能,可自行设置是否自动缓存当前模块的 Resources
1.0.86 | 2022.05.06
- 修复不支持 Resources Hook(资源钩子) 的情况下在
initZygote
时持续报错的问题,复现在 ZUI/LSPosed CI(1.8.3-6550) - 优化并对 Resources Hook 进行异常处理,只有被使用后不支持才会打印错误和警告
1.0.85 | 2022.05.04
- 修复无法 Hook 系统框架的严重问题,从
1.0.80
开始出现 - 调试日志中新增区分
initZygote
装载的包名为android-zygote
,packageName
保持android
不变
1.0.83 | 2022.05.04
- 修复
YukiHookModuleStatus
在loadSystem
后大量报错的问题 - 新增
type
中的android
类型 - 更新帮助文档的示例说明
1.0.82 | 2022.05.04
- 修复了一处概念混淆错误,区分
initZygote
与系统框架的关系,之前的注释和文档有问题,非常抱歉 PackageParam
新增loadSystem
方法,不需要再写loadApp(name = "android")
即可 Hook 系统框架
1.0.81 | 2022.05.04
- 修复使用
by
方法设置条件后 Hook 方法体内查找不到的方法、构造方法依然输出错误日志的问题 - 在执行 Hook 过程中加入全局日志显示当前 Hook APP 的包名,并修复一处错误日志打印样式的问题
1.0.80 | 2022.05.01
InjectYukiHookWithXposed
注解新增entryClassName
功能,可自定义生成的xposed_init
入口类名更名为YukiHookXposedInitProxy
IYukiHookXposedInit
,原接口名称已作废,将在后续版本中直接被删除- 新增
initZygote
与 Resources Hook 功能,支持 Hook Layout - 新增
onXposedEvent
方法,可监听原生 Xposed API 的全部事件 - 对 Hook 功能的
lambda
进行inline
处理,避免生成过碎的匿名类,提升编译后的运行性能 - 修复
PrefsData
编译后的方法体复制过大的问题 - 增加
XSharePreference
可读性测试,失败后会自动打印警告日志 PackageParam
新增appResources
、moduleAppResources
、moduleAppFilePath
功能PackageParam
的loadApp
新增不写name
功能,默认筛选全部 APPPackageParam
新增loadZygote
方法,可直接 Hook 系统框架PackageParam
新增resources().hook
功能- 优化方法、构造方法、变量查找功能,找不到的错误日志将优先显示已设置的查询条件
- 增加
hasExtends
扩展方法,可判断当前Class
是否有继承关系 - 增加
isSupportResourcesHook
功能,判断当前是否支持资源钩子(Resources Hook) current
功能新增superClass
方法调用父类- 查找方法、构造方法、变量新增
superClass
查询条件,可继续在父类中查找 YukiHookAPI
大量方法与 Xposed API 解耦合- 新增 Xposed API 的原生 Hook 优先级功能
- 修复
isFirstApplication
可能判断不准确的问题 - 屏蔽 MIUI 系统上 MiuiCatcherPatch 重复调用 Hook 入口方法的问题
- 优化 Hook 入口调用方法,避免因为 Hook Framework 问题导致多次调用
- 修复 Hook
ClassLoader
导致 Hook 卡死的问题,感谢 WankkoRee 的反馈 - 提升
XC_Callback
接口对接后的性能 - Java
type
新增ClassLoader
类型 - 优化 API 帮助文档,修复可能持续缓存页面的问题
1.0.78 | 2022.04.18
YukiHookModulePrefs
新增isRunInNewXShareMode
方法,可用于判断模块当前是否处于New XSharePreference
模式- 修复
YukiHookModulePrefs
在New XSharePreference
模式下工作的部分问题 - 新增
ModulePreferenceFragment
,现在,你可以完全替换掉PreferenceFragmentCompat
并开始使用新的功能 - 适配
PreferenceFragmentCompat
的 Sp 数据存储解决方案,感谢 mahoshojoHCG 的反馈 - 更新自动处理程序以及
Kotlin
依赖到最新版本 - 修正部分文档和代码注释中的错误
1.0.77 | 2022.04.15
YukiHookModulePrefs
新增clear
方法,感谢 WankkoRee 的建议YukiHookModulePrefs
新增getStringSet
、putStringSet
、all
方法HookParam
的args
增加any
方法- 新增
ModuleApplication
,可在模块中继承此类实现更多功能 - 对接全部的
findClass
功能到 Xposed API,在非宿主环境继续使用原生ClassLoader
- 修复了一些可能存在的 BUG
1.0.75 | 2022.04.13
- 更正了自动处理程序的逻辑识别部分,感谢 ApeaSuperz 的贡献
- 修正一处文档注释的引用未更改的问题
HookParam
中删除了firstArgs
与lastArgs
方法,现在你可以使用args().first()
与args().last()
来取代它HookParam
中删除了args()
中的默认参数index = 0
,现在你可以使用args().first()
或args(index = 0)
来取代它HookParam
中result
功能增加了泛型匹配,现在你可以使用result<T>
来匹配你的目标方法已知返回值类型了- 方法、构造方法查询功能新增
emptyParam
条件,并完善了文档相关需要注意的查询条件误区 - 增加了
type
中的android
类型
1.0.73 | 2022.04.10
- 修正几处文档的中文翻译错误,感谢 WankkoRee 的贡献
- 修复在某些情况下
XC_LoadPackage.LoadPackageParam
内容为空抛出异常的问题,感谢 Luckyzyx 的反馈 - 修复一些已知的 BUG,提升 Hook 稳定性
1.0.72 | 2022.04.09
- 更新 API 文档到新的地址
PackageParam
中加入appContext
功能- 修复一些已知的 BUG,提升 Hook 稳定性
1.0.71 | 2022.04.04
- 修复 VariousClass 无法匹配时会停止 Hook 抛出异常的严重问题
1.0.70 | 2022.04.04
- 修复
instanceClass
在静态实例中调用后报错问题 - 在 Hook 过程中加入
isUseAppClassLoader
功能,感谢 WankkoRee 的反馈 - 加入
withProcess
功能,可根据 APP 当前指定进程进行 Hook - 修复查找方法、构造类和变量的严重逻辑错误问题
- 修复 Hook 目标类不存在的时候无法忽略异常输出的问题
- 修复部分情况下 APP 启动方法装载过快导致 Hook 不能生效的问题
- 修复
allMethods
未 Hook 到方法时不会抛出异常的问题,感谢 WankkoRee 的反馈 - 加入 Hook 状态监听功能,感谢 WankkoRee 的建议
- 修改 Xposed 入口注入类的方式,重新声明 API 的定义域
- 加入混淆的方法以及变量的查找功能,可使用不同类型筛选
index
定位指定的方法和变量,感谢 WankkoRee 提供的思路 - 查找方法、变量时允许传入多种类型,例如
String
声明的类名和VariousClass
- 加入全新的
current
功能,可对任意的类构建一个反射方法操作空间,方便地调用和修改其中的方法和变量 - 修复了 Hook 过程中的大量 BUG,感谢 WankkoRee 对此项目所做出的贡献
1.0.69 | 2022.03.30
- 添加并改进一些方法功能的注释
- 增加 Demo 中的更多示例 Hook 内容
- 修复在一个 Hook 实例中,
allMethods
多次使用时只有最后一个生效的问题,感谢 WankkoRee 的反馈
1.0.68 | 2022.03.29
- 增加 Demo 中的新用例和 LSPosed 作用域
- 增加
Member
查找缓存和查找缓存配置开关 - 移除和修改
MethodFinder
、FieldFinder
以及HookParam
相关方法的调用 - 增加更多
Finder
中的cast
类型并支持cast
为数组 - 整体的性能和稳定性提升
- 修复上一个版本可能存在的 BUG
1.0.67 | 2022.03.27
- 增加三个
Finder
中的modifiers
功能,可筛选static
、native
、public
、abstract
等诸多描述类型 - 增加方法和构造方法查找时可模糊方法参数类型为指定个数进行查找
- 增加
Member
的hasModifiers
扩展功能 - 增加
MethodFinder
和ConstructorFinder
中的give
方法,可获得原始类型 - 增加
YukiHookModulePrefs
中的PrefsData
模板功能 - 彻底对方法、构造方法及变量的查找方案进行重构
- 优化代码注释,修复了可能产生的 BUG
1.0.66 | 2022.03.25
- 修复
MethodFinder
中的一个严重问题 - 增加
hookParam
中的args
调用方法 - 修复其它可能存在的问题以及修复部分类的注释问题
1.0.65 | 2022.03.25
- 重新发布版本修复 Maven 仓库因为缓存问题新版本不正确的情况
- 增加
MethodFinder
与FieldFinder
新的返回值调用方法 - 修复可能存在的问题,并修复太极使用过程中可能存在的问题
- 修复自动生成 Xposed 入口类可能发生的问题
- 增加了
type
中的android
类型以及java
类型
1.0.6 | 2022.03.20
- 修复
YukiHookModulePrefs
在使用一次direct
忽略缓存后每次都忽略的 BUG - 增加新的 API,作废了
isActive
判断模块激活的传统用法 - 修复非 Xposed 环境使用 API 时打印调试日志的问题
- 修复查找
Field
时的日志输出问题和未拦截的异常问题 - 解耦合
ReflectionUtils
中的 Xposed API - 增加
YukiHookModuleStatus
方法名称的混淆,以精简模块生成的体积 - 装载模块自身 Hook 时将不再打印欢迎信息
- 修复上一个版本仍然存在的某些 BUG
1.0.55 | 2022.03.18
- 修正一处注释错误
- 临时修复一个 BUG
- 增加了
type
中的大量android
类型以及少量java
类型 - 修复新版与旧版 Kotlin APIs 的兼容性问题
1.0.5 | 2022.03.18
- 修复旧版本 LSPosed 框架情况下欢迎信息多次打印的问题
- 添加
onInit
方法来配置YukiHookAPI
- 新增
executorName
和executorVersion
来获取当前 Hook 框架的名称和版本号 - 新增
by
方法来设置 Hook 的时机和条件 YukiHookModulePrefs
新增可控制的键值缓存,可在宿主运行时模块动态更新数据- 修复了一些可能存在的 BUG
1.0.4 | 2022.03.06
- 修复 LSPosed 在最新版本中启用“只有模块classloader可以使用Xposed API”选项后找不到
XposedBridge
的问题 - 添加
YukiHookAPI
的常量版本名称和版本号 - 新增
hasField
方法以及isAllowPrintingLogs
配置参数 - 新增
isDebug
开启的情况下 API 将自动打印欢迎信息测试模块是否生效
1.0.3 | 2022.03.02
- 修复一个潜在性的异常未拦截 BUG
- 增加
ignoredError
功能 - 增加了
type
中的android
类型 - 增加监听
hook
后的ClassNotFound
功能
1.0.2 | 2022.02.18
- 修复 Windows 下无法找到项目路径的问题
- 移除部分反射 API,合并至
BaseFinder
进行整合 - 增加直接使用字符串创建 Hook 的方法
1.0.1 | 2022.02.15
RemedyPlan
增加onFind
功能- 整合并修改了部分反射 API 代码
- 增加了
type
中的java
类型 - 修复忽略错误在控制台仍然输出的问题
1.0 | 2022.02.14
- 首个版本提交至 Maven