Releases: HighCapable/YukiHookAPI
Releases · HighCapable/YukiHookAPI
1.2.1
YukiHookAPI 1.2.1 Released
- Catch exceptions in singleton Hooker to prevent it from blocking the entire process
- Add automatic use of "`" in the automatic handler to fix the situation where Kotlin keywords are package names, thanks to @zhufengning for PR
- Adapt to Kotlin 2.0.0+, fix the problem that it cannot be compiled during automatic processing, thanks to @xihan123 for PR
For more details, please check the changelog.
YukiHookAPI 1.2.1 已发布
- 捕获单例 Hooker 中的异常,防止其阻断整个进程
- 在自动处理程序中添加自动使用 "`" 来修复 Kotlin 关键字为包名的情况,感谢 @zhufengning 的 PR
- 适配 Kotlin 2.0.0+,修复在自动处理过程中无法通过编译的问题,感谢 @xihan123 的 PR
详情请查看更新日志。
1.2.0
YukiHookAPI 1.2.0 Released
⚠ BREAKING CHANGES
- The license agreement has been changed from
MIT
toApache-2.0
, subsequent versions will be distributed under this license agreement, you should change the relevant license agreement after using this version - This is a breaking update, please refer to Migrate to YukiHookAPI 1.2.x for details
- Adapted to Android 14, thanks to BlueCat300 for PR
- Fixed
findAllInterfaces
related issues, thanks to buffcow for PR - Fixed the delayed callback problem in the Hook process, thanks to cesaryuan for his Issue
- Added support for Resources Hook related functions, please refer to this Issue for details
- Added
YukiHookAPI.TAG
- Deprecated
,YukiHookAPI.API_VERSION_NAME
, merged intoYukiHookAPI.API_VERSION_CODE
YukiHookAPI.VERSION
- Added
YukiHookAPI.TAG
- Deprecated
,YukiHookAPI.API_VERSION_NAME
, merged intoYukiHookAPI.API_VERSION_CODE
YukiHookAPI.VERSION
- Deprecated
method inuseDangerousOperation
YukiMemberHookCreator
- Deprecated
function ininstanceClass
YukiMemberHookCreator
, it is no longer recommended - Modify
instanceClass
inHookParam
to be a null safe return value type - Detach all Hook objects created using
injectMember
toLegacyCreator
- Modify
appClassLoader
inPackageParam
to be a null safe return value type - Refactor all
logger...
methods to new usageYLog
- Removed the
-->
style behind the print log function - Fixed and improved the problem that the module package name cannot be obtained through KSP after using
namespace
- Functions such as whether to enable module activation status have now been moved to the
InjectYukiHookWithXposed
annotation - Detached FreeReflection will no longer be automatically generated and will be automatically imported as a dependency
- Added a warning log that will be automatically printed when the same Hook method is repeated
- The
findClass(...)
method inPackageParam
is obsolete, please migrate to the"...".toClass()
method - The
String.hook { ... }
method inPackageParam
is obsolete, and it is recommended to use a new method for Hook AppLifecycle
can now be created repeatedly in different Hookers- The old version of Hook priority writing is obsolete and migrated to
YukiHookPriority
- Removed the
tag
function in the Hook process - Refactored
remendy
functionality in find methods, which now prints exceptions in steps - The multi-method find result type is changed from
HashSet
toMutableList
- Added
method()
,constructor()
,field()
to directly obtain all object functions in the class constructor()
no longer behaves likeconstructor { emptyParam() }
- Added
lazyClass
andlazyClassOrNull
methods to lazily loadClass
For more details, please check the changelog.
YukiHookAPI 1.2.0 已发布
⚠ 重大更新
- 许可协议由
MIT
变更为Apache-2.0
,在此之后的版本将由此许可协议进行分发,您在使用此版本后应变更相关许可协议 - 这是一次重大更新,详情请参考 迁移到 YukiHookAPI 1.2.x
- 适配 Android 14,感谢 BlueCat300 的 PR
- 修复
findAllInterfaces
相关问题,感谢 buffcow 的 PR - 修复 Hook 过程中的延迟回调问题,感谢 cesaryuan 的 Issue
- 新增 Resources Hook 相关功能支持,详情请参考这个 Issue
- 新增
YukiHookAPI.TAG
- 作废了
、YukiHookAPI.API_VERSION_NAME
,统一合并到YukiHookAPI.API_VERSION_CODE
YukiHookAPI.VERSION
- 作废了
中的YukiMemberHookCreator
方法useDangerousOperation
- 作废了
中的YukiMemberHookCreator
功能,不再推荐使用instanceClass
- 修改
HookParam
中的instanceClass
为空安全返回值类型 - 分离全部使用
injectMember
创建的 Hook 对象到LegacyCreator
- 修改
PackageParam
中的appClassLoader
为空安全返回值类型 - 重构全部
logger...
方法到新用法YLog
- 移除了打印日志功能后方的
-->
样式 - 修复并改进在使用
namespace
后通过 KSP 无法获取模块包名的问题 - 是否启用模块激活状态等功能现已移动到
InjectYukiHookWithXposed
注解中 - 分离 FreeReflection 不再自动生成,将作为依赖自动导入
- 新增重复 Hook 同一个方法时将自动打印警告日志
- 作废了
PackageParam
中的findClass(...)
方法,请迁移到"...".toClass()
方法 - 作废了
PackageParam
中的String.hook { ... }
方法,推荐使用新方式进行 Hook AppLifecycle
现在可以在不同 Hooker 中重复创建- 作废了旧版 Hook 优先级写法,统一迁移到
YukiHookPriority
- 移除了 Hook 过程中的
tag
功能 - 重构方法查找中的
remendy
功能,现在可以对其进行分步打印异常 - 多重方法查找结果类型由
HashSet
改为MutableList
- 新增使用
method()
、constructor()
、field()
可直接获取到类中的所有对象功能 constructor()
的行为不再是constructor { emptyParam() }
- 新增
lazyClass
、lazyClassOrNull
方法,可延迟装载Class
详情请查看更新日志。
1.1.11
YukiHookAPI 1.1.11 Released
!!!This version fixes a serious BUG, recommend everyone to update!!!
- Fixed a critical issue since
1.1.5
version where theMember
cache did not take effect and persistent storage eventually caused app out of memory (OOM), thanks to @Art-Chen - Remove the direct cache function of
Member
and deprecated, keep the cache function ofYukiReflection.Configs.isEnableMemberCache
Class
- Modified finder to
Sequence
, optimize the finding speed and performance ofMember
- Remove the
YukiHookPrefsBridge
's direct key-value cache function and removedLruCache
related functions - Deprecated
YukiHookAPI.Configs.isEnablePrefsBridgeCache
- Deprecated
,direct
functions inclearCache
YukiHookPrefsBridge
For more details, please check the changelog.
YukiHookAPI 1.1.11 已发布
!!!这个版本修复了一个严重 BUG,推荐所有人更新!!!
- 修复从
1.1.5
版本开始的一个严重问题,Member
缓存未生效且持续存储最终引发 APP 内存溢出 (OOM),感谢 @Art-Chen - 移除
Member
的直接缓存功能并作废,保留YukiHookAPI.Configs.isEnableMemberCache
Class
的缓存功能 - 对接查找功能到
Sequence
,优化Member
的查找速度与性能 - 移除
YukiHookPrefsBridge
的直接键值缓存功能并移除LruCache
相关功能 - 作废了
YukiHookAPI.Configs.isEnablePrefsBridgeCache
- 作废了
YukiHookPrefsBridge
中的、direct
方法clearCache
详情请查看更新日志。
1.1.10
YukiHookAPI 1.1.10 Released
- The
Activity
proxy function adds the function of specifying a separate proxyActivity
for each proxiedActivity
- Fixed problem that the
contains
andall
methods inYukiHookPrefsBridge
did not judge thenative
function - Integrate the cache function in
YukiHookPrefsBridge
intoPreferencesCacheManager
and useLruCache
as a key-value pair cache - Modify
YukiHookPrefsBridge
key-value pair caching function to take effect in all environments (Module Apps, Host Apps) - Modify part of
HashMap
used for caching toArrayMap
to reduce memory consumption - Fix some other possible problems
For more details, please check the changelog.
YukiHookAPI 1.1.10 已发布
Activity
代理功能新增每个被代理的Activity
指定单独的代理Activity
功能- 修复
YukiHookPrefsBridge
中的contains
、all
方法未判断native
功能的问题 - 整合
YukiHookPrefsBridge
中的缓存功能到PreferencesCacheManager
并使用LruCache
作为键值对前置缓存 - 修改
YukiHookPrefsBridge
键值对缓存功能在所有环境中生效 (模块、宿主) - 修改部分用于缓存的
HashMap
到ArrayMap
以减少内存消耗 - 修复一些其它可能出现的问题
详情请查看更新日志。
1.1.9
YukiHookAPI 1.1.9 Released
- Change the type of dependent library from Java Library (jar) to Android Library (aar)
- Remove the inspection function of internal methods and parameters through Hook or reflection API
- Fixed the problem that
YukiHookDataChannel
automatically segmented data sending function could not work normally (exception would still be thrown) - Added the ability to manually modify the maximum data byte size allowed by
YukiHookDataChannel
to be sent at one time according to the limitations of the target device - Remove the restriction that
YukiHookDataChannel
can only be used in moduleActivity
, now you can use it anywhere - Modify and standardize the broadcast Action name used by
YukiHookDataChannel
- Fix the problem that
BadParcelableException
occurs whenYukiHookDataChannel
has different modules with the same host - Added
ExecutorType
, you can get the type of known Hook Framework throughYukiHookAPI.Status.Executor.type
renamed toYukiHookModulePrefs
YukiHookPrefsBridge
- Modify
YukiHookPrefsBridge
to be implemented as a non-singleton, as a singleton may cause data confusion - Deprecated
method, please move toContext.modulePrefs(...)
Context.prefs(...)
YukiHookPrefsBridge
addsnative
method, which supports storing private data in modules and hosts directly as native storage- Integrate the storage method in
YukiHookPrefsBridge
toYukiHookPrefsBridge.Editor
, please useedit
method to store data YukiHookPrefsBridge
addscontains
method- Cache dynamically created proxy objects in
YukiHookPrefsBridge
, try to fix problems that may cause OOM in the host and modules - Modify the proxy class of the
Activity
proxy function to be dynamically generated to prevent conflicts caused by injecting different modules into the host - Fixed some other possible problems
For more details, please check the changelog.
YukiHookAPI 1.1.9 已发布
- 将依赖库的类型由 Java Library (jar) 修改为 Android Library (aar)
- 移除通过 Hook 或反射 API 内部方法、参数的检查功能
- 修复
YukiHookDataChannel
自动分段发送数据功能不能正常生效 (依然会抛出异常) 的问题 - 新增可以手动根据目标设备的限制修改
YukiHookDataChannel
允许一次发送的最大数据字节大小 - 移除
YukiHookDataChannel
只能在模块Activity
中使用的限制,现在你可以在任何地方使用它 - 修改并规范
YukiHookDataChannel
使用的广播 Action 名称 - 修复
YukiHookDataChannel
在不同模块同一宿主的情况下出现BadParcelableException
异常的问题 - 新增
ExecutorType
,可以通过YukiHookAPI.Status.Executor.type
来获取已知 Hook Framework 的类型 更名为YukiHookModulePrefs
YukiHookPrefsBridge
- 修改
YukiHookPrefsBridge
为非单例实现,作为单例可能发生数据混淆的问题 - 作废了
方法,请转移到Context.modulePrefs(...)
Context.prefs(...)
YukiHookPrefsBridge
新增native
方法,支持直接作为原生存储在模块和宿主中存储私有数据- 整合
YukiHookPrefsBridge
中的存储方法到YukiHookPrefsBridge.Editor
,请使用edit
方法来存储数据 YukiHookPrefsBridge
新增contains
方法- 缓存
YukiHookPrefsBridge
中动态创建的代理对象,尝试修复可能会导致宿主、模块出现 OOM 的问题 - 修改
Activity
代理功能的代理类为动态生成,防止不同模块注入宿主后造成冲突 - 修复一些其它可能出现的问题
详情请查看更新日志。
1.1.8
YukiHookAPI 1.1.8 Released
- Fixed the problem that the underlying Hook method cannot update the modified state synchronously when modifying parameters such as
result
during callback, thanks to #23 - Move the entry class name file automatically generated by
YukiHookAPI
fromassets/yukihookapi_init
toresources/META-INF/yukihookapi_init
- When only printing the exception stack, the
msg
parameter is allowed to be empty and themsg
parameter can not be set, and the log with themsg
parameter left blank will not be logged unless the exception stack is not empty - Fixed the bug that the log printed by the exception that occurs in the body of the Hook callback method has no specific method information
HookParam
addsinstanceOrNull
variable and method, which can be used on the premise that the Hook instance is not sure whether it is empty to prevent the Hook instance from being empty and throw an exception- Decoupled all hookers in
Member
lookup functionality toMemberBaseFinder.MemberHookerManager
- Modified the usage of
by
condition inYukiMemberHookCreator
, now you can reuseby
method to set multiple conditions - Removed wrong
Class
object declaration in Androidtype
- The
registerReceiver
method inPackageParam.AppLifecycle
adds the function of directly usingIntentFilter
to create a system broadcast listener - Fixed the problem that there may be multiple registration lifecycles in
PackageParam.AppLifecycle
- Revert: The 1.1.7 version has been withdrawn due to a serious problem, please update to this version directly (the update log is the same as version 1.1.7)
For more details, please check the changelog.
YukiHookAPI 1.1.8 已发布
- 修复底层 Hook 方法在回调时修改
result
等参数时时不能同步更新修改后的状态问题,感谢 #23 - 移动
YukiHookAPI
自动生成的入口类名称文件assets/yukihookapi_init
到resources/META-INF/yukihookapi_init
- 允许在仅打印异常堆栈时
msg
参数为空并可以不设置msg
参数,留空msg
参数的日志除非异常堆栈不为空否则将不会被记录 - 修复 Hook 回调方法体内发生的异常打印的日志无具体方法信息的 BUG
HookParam
新增instanceOrNull
变量与方法,可以在不确定 Hook 实例是否为空的前提下使用以防止 Hook 实例为空抛出异常- 解耦合所有
Member
查找功能中的 Hooker 到MemberBaseFinder.MemberHookerManager
- 修改了
YukiMemberHookCreator
中的by
条件用法,现在可以重复使用by
方法设置多个条件 - 移除了 Android
type
中的错误Class
对象声明 PackageParam.AppLifecycle
中的registerReceiver
方法新增直接使用IntentFilter
创建系统广播监听的功能- 修复在
PackageParam.AppLifecycle
中可能存在多次注册生命周期的问题 - Revert: 1.1.7 版本由于有一个严重问题已经撤回,请直接更新到此版本即可 (更新日志同 1.1.7 版本)
详情请查看更新日志。
1.1.6
YukiHookAPI 1.1.6 Released
- Fixed the serious problem that
ClassLoader
does not match afterPackageParam
keeps a single instance when there may be multiple package names in the same process when Xposed Module is loaded - When the package name is not distinguished when there are multiple package names in the same process, stop loading the singleton child Hooker and print a warning message
- Fixed the problem that the number of parameters is incorrect when methods such as
HookParam.callOriginal
,HookParam.invokeOriginal
call the original method - Modify the method parameter name
param
of reflection calls inMethodFinder
,ConstructorFinder
,ReflectionFactory
toargs
- Added the function of judging the parameters of the entry class constructor in the automatic processing program of the Xposed Module, the entry class needs to ensure that it does not have any constructor parameters
For more details, please check the changelog.
YukiHookAPI 1.1.6 已发布
- 修复 Xposed 模块装载时可能存在同一个进程多个包名的情况导致
PackageParam
保持单例后ClassLoader
不符的严重问题 - 新增同一个进程多个包名的情况下未区分包名时,停止装载单例化的子 Hooker 并打印警告信息
- 修复
HookParam.callOriginal
、HookParam.invokeOriginal
等方法调用原始方法时参数个数不正确的问题 - 修改
MethodFinder
、ConstructorFinder
、ReflectionFactory
中反射调用的方法参数名param
为args
- 新增 Xposed 模块自动处理程序中判断入口类构造方法参数功能,入口类需要保证其不存在任何构造方法参数
详情请查看更新日志。