Releases: HighCapable/YukiHookAPI
Releases · HighCapable/YukiHookAPI
1.3.1
YukiHookAPI 1.3.1 Released
- Updated dependencies to resolve conflict issues with BetterAndroid
- Fixed Activity proxy issues on Android 9 and below
- Fixed an issue where return values were still checked when the Hook method return type was
Object
For more details, please check the changelog.
YukiHookAPI 1.3.1 已发布
- 更新依赖以解决与 BetterAndroid 冲突的问题
- 修复 Android 9 及以下系统 Activity 代理的问题
- 修复在 Hook 方法返回值为
Object时依然检查返回值的问题
详情请查看更新日志。
1.3.0
YukiHookAPI 1.3.0 Released
- This is a major update, please refer to Migrate to YukiHookAPI 1.3.x
- The reflection API of
YukiHookAPIis deprecated, please move to the brand new KavaRef - The limitation of duplicate Hooks has been deprecated, now you can repeat the same method of the Hook
- Deprecated
,ModuleAppActivity, please useModuleAppCompatActivityModuleActivityto create your own proxyActivity YLogis now allowed to passmsginto any object and will be automatically converted to a string for printingFreeReflectionhas been deprecated and has now switched to AndroidHiddenApiBypass
For more details, please check the changelog.
YukiHookAPI 1.3.0 已发布
- 这是一次重大更新,详情请参考 迁移到 YukiHookAPI 1.3.x
- 弃用了
YukiHookAPI自身的反射 API,现在请迁移到全新的 KavaRef - 弃用了重复 Hook 的限制,现在你可以重复 Hook 同一个方法
- 弃用了
、ModuleAppActivity,现在请使用ModuleAppCompatActivityModuleActivity创建自己的代理Activity YLog现已允许msg传入任意对象,将自动转换为字符串进行打印FreeReflection已被弃用,现已切换至 AndroidHiddenApiBypass
详情请查看更新日志。
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
MITtoApache-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
findAllInterfacesrelated 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_CODEYukiHookAPI.VERSION - Added
YukiHookAPI.TAG - Deprecated
,YukiHookAPI.API_VERSION_NAME, merged intoYukiHookAPI.API_VERSION_CODEYukiHookAPI.VERSION - Deprecated
method inuseDangerousOperationYukiMemberHookCreator - Deprecated
function ininstanceClassYukiMemberHookCreator, it is no longer recommended - Modify
instanceClassinHookParamto be a null safe return value type - Detach all Hook objects created using
injectMembertoLegacyCreator - Modify
appClassLoaderinPackageParamto 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
InjectYukiHookWithXposedannotation - 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 inPackageParamis obsolete, please migrate to the"...".toClass()method - The
String.hook { ... }method inPackageParamis obsolete, and it is recommended to use a new method for Hook AppLifecyclecan now be created repeatedly in different Hookers- The old version of Hook priority writing is obsolete and migrated to
YukiHookPriority - Removed the
tagfunction in the Hook process - Refactored
remendyfunctionality in find methods, which now prints exceptions in steps - The multi-method find result type is changed from
HashSettoMutableList - Added
method(),constructor(),field()to directly obtain all object functions in the class constructor()no longer behaves likeconstructor { emptyParam() }- Added
lazyClassandlazyClassOrNullmethods 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_CODEYukiHookAPI.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.5version where theMembercache did not take effect and persistent storage eventually caused app out of memory (OOM), thanks to @Art-Chen - Remove the direct cache function of
Memberand deprecated, keep the cache function ofYukiReflection.Configs.isEnableMemberCacheClass - Modified finder to
Sequence, optimize the finding speed and performance ofMember - Remove the
YukiHookPrefsBridge's direct key-value cache function and removedLruCacherelated functions - Deprecated
YukiHookAPI.Configs.isEnablePrefsBridgeCache - Deprecated
,directfunctions inclearCacheYukiHookPrefsBridge
For more details, please check the changelog.
YukiHookAPI 1.1.11 已发布
!!!这个版本修复了一个严重 BUG,推荐所有人更新!!!
- 修复从
1.1.5版本开始的一个严重问题,Member缓存未生效且持续存储最终引发 APP 内存溢出 (OOM),感谢 @Art-Chen - 移除
Member的直接缓存功能并作废,保留YukiHookAPI.Configs.isEnableMemberCacheClass的缓存功能 - 对接查找功能到
Sequence,优化Member的查找速度与性能 - 移除
YukiHookPrefsBridge的直接键值缓存功能并移除LruCache相关功能 - 作废了
YukiHookAPI.Configs.isEnablePrefsBridgeCache - 作废了
YukiHookPrefsBridge中的、direct方法clearCache
详情请查看更新日志。
1.1.10
YukiHookAPI 1.1.10 Released
- The
Activityproxy function adds the function of specifying a separate proxyActivityfor each proxiedActivity - Fixed problem that the
containsandallmethods inYukiHookPrefsBridgedid not judge thenativefunction - Integrate the cache function in
YukiHookPrefsBridgeintoPreferencesCacheManagerand useLruCacheas a key-value pair cache - Modify
YukiHookPrefsBridgekey-value pair caching function to take effect in all environments (Module Apps, Host Apps) - Modify part of
HashMapused for caching toArrayMapto 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
YukiHookDataChannelautomatically 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
YukiHookDataChannelto be sent at one time according to the limitations of the target device - Remove the restriction that
YukiHookDataChannelcan 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
BadParcelableExceptionoccurs whenYukiHookDataChannelhas different modules with the same host - Added
ExecutorType, you can get the type of known Hook Framework throughYukiHookAPI.Status.Executor.type renamed toYukiHookModulePrefsYukiHookPrefsBridge- Modify
YukiHookPrefsBridgeto be implemented as a non-singleton, as a singleton may cause data confusion - Deprecated
method, please move toContext.modulePrefs(...)Context.prefs(...) YukiHookPrefsBridgeaddsnativemethod, which supports storing private data in modules and hosts directly as native storage- Integrate the storage method in
YukiHookPrefsBridgetoYukiHookPrefsBridge.Editor, please useeditmethod to store data YukiHookPrefsBridgeaddscontainsmethod- 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
Activityproxy 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 的类型 更名为YukiHookModulePrefsYukiHookPrefsBridge- 修改
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
resultduring callback, thanks to #23 - Move the entry class name file automatically generated by
YukiHookAPIfromassets/yukihookapi_inittoresources/META-INF/yukihookapi_init - When only printing the exception stack, the
msgparameter is allowed to be empty and themsgparameter can not be set, and the log with themsgparameter 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
HookParamaddsinstanceOrNullvariable 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
Memberlookup functionality toMemberBaseFinder.MemberHookerManager - Modified the usage of
bycondition inYukiMemberHookCreator, now you can reusebymethod to set multiple conditions - Removed wrong
Classobject declaration in Androidtype - The
registerReceivermethod inPackageParam.AppLifecycleadds the function of directly usingIntentFilterto 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
ClassLoaderdoes not match afterPackageParamkeeps 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.invokeOriginalcall the original method - Modify the method parameter name
paramof reflection calls inMethodFinder,ConstructorFinder,ReflectionFactorytoargs - 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 模块自动处理程序中判断入口类构造方法参数功能,入口类需要保证其不存在任何构造方法参数
详情请查看更新日志。