tag:github.com,2008:https://github.com/HighCapable/YukiHookAPI/releasesRelease notes from YukiHookAPI2025-09-13T11:22:20Ztag:github.com,2008:Repository/453432887/1.3.12025-09-13T11:25:16Z1.3.1<h2>YukiHookAPI <strong>1.3.1</strong> Released</h2>
<ul>
<li>Updated dependencies to resolve conflict issues with BetterAndroid</li>
<li>Fixed Activity proxy issues on Android 9 and below</li>
<li>Fixed an issue where return values were still checked when the Hook method return type was <code>Object</code></li>
</ul>
<p>For more details, please check the <a href="https://highcapable.github.io/YukiHookAPI/en/about/changelog" rel="nofollow">changelog</a>.</p>
<hr>
<h2>YukiHookAPI <strong>1.3.1</strong> 已发布</h2>
<ul>
<li>更新依赖以解决与 BetterAndroid 冲突的问题</li>
<li>修复 Android 9 及以下系统 Activity 代理的问题</li>
<li>修复在 Hook 方法返回值为 <code>Object</code> 时依然检查返回值的问题</li>
</ul>
<p>详情请查看<a href="https://highcapable.github.io/YukiHookAPI/zh-cn/about/changelog" rel="nofollow">更新日志</a>。</p>fankestag:github.com,2008:Repository/453432887/1.3.02025-06-25T12:25:34Z1.3.0<h2>YukiHookAPI <strong>1.3.0</strong> Released</h2>
<ul>
<li>This is a major update, please refer to <a href="https://highcapable.github.io/YukiHookAPI/zh-cn/config/move-to-api-1-3-x" rel="nofollow">Migrate to YukiHookAPI 1.3.x</a></li>
<li>The reflection API of <code>YukiHookAPI</code> is deprecated, please move to the brand new <a href="https://github.com/HighCapable/KavaRef">KavaRef</a></li>
<li>The limitation of duplicate Hooks has been deprecated, now you can repeat the same method of the Hook</li>
<li>Deprecated <del><code>ModuleAppActivity</code></del>, <del><code>ModuleAppCompatActivity</code></del>, please use <code>ModuleActivity</code> to create your own proxy <code>Activity</code></li>
<li><code>YLog</code> is now allowed to pass <code>msg</code> into any object and will be automatically converted to a string for printing</li>
<li><code>FreeReflection</code> has been deprecated and has now switched to <a href="https://github.com/LSPosed/AndroidHiddenApiBypass">AndroidHiddenApiBypass</a></li>
</ul>
<p>For more details, please check the <a href="https://highcapable.github.io/YukiHookAPI/en/about/changelog" rel="nofollow">changelog</a>.</p>
<hr>
<h2>YukiHookAPI <strong>1.3.0</strong> 已发布</h2>
<ul>
<li>这是一次重大更新,详情请参考 <a href="https://highcapable.github.io/YukiHookAPI/zh-cn/config/move-to-api-1-3-x" rel="nofollow">迁移到 YukiHookAPI 1.3.x</a></li>
<li>弃用了 <code>YukiHookAPI</code> 自身的反射 API,现在请迁移到全新的 <a href="https://github.com/HighCapable/KavaRef">KavaRef</a></li>
<li>弃用了重复 Hook 的限制,现在你可以重复 Hook 同一个方法</li>
<li>弃用了 <del><code>ModuleAppActivity</code></del>、<del><code>ModuleAppCompatActivity</code></del>,现在请使用 <code>ModuleActivity</code> 创建自己的代理 <code>Activity</code></li>
<li><code>YLog</code> 现已允许 <code>msg</code> 传入任意对象,将自动转换为字符串进行打印</li>
<li><code>FreeReflection</code> 已被弃用,现已切换至 <a href="https://github.com/LSPosed/AndroidHiddenApiBypass">AndroidHiddenApiBypass</a></li>
</ul>
<p>详情请查看<a href="https://highcapable.github.io/YukiHookAPI/zh-cn/about/changelog" rel="nofollow">更新日志</a>。</p>fankestag:github.com,2008:Repository/453432887/1.2.12024-06-20T02:59:01Z1.2.1<h2>YukiHookAPI <strong>1.2.1</strong> Released</h2>
<ul>
<li>Catch exceptions in singleton Hooker to prevent it from blocking the entire process</li>
<li>Add automatic use of "`" in the automatic handler to fix the situation where Kotlin keywords are package names, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/zhufengning/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/zhufengning">@zhufengning</a> for <a href="https://github.com/HighCapable/YukiHookAPI/pull/70" data-hovercard-type="pull_request" data-hovercard-url="/HighCapable/YukiHookAPI/pull/70/hovercard">PR</a></li>
<li>Adapt to Kotlin 2.0.0+, fix the problem that it cannot be compiled during automatic processing, thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/xihan123/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/xihan123">@xihan123</a> for <a href="https://github.com/HighCapable/YukiHookAPI/pull/76" data-hovercard-type="pull_request" data-hovercard-url="/HighCapable/YukiHookAPI/pull/76/hovercard">PR</a></li>
</ul>
<p>For more details, please check the <a href="https://highcapable.github.io/YukiHookAPI/en/about/changelog" rel="nofollow">changelog</a>.</p>
<hr>
<h2>YukiHookAPI <strong>1.2.1</strong> 已发布</h2>
<ul>
<li>捕获单例 Hooker 中的异常,防止其阻断整个进程</li>
<li>在自动处理程序中添加自动使用 "`" 来修复 Kotlin 关键字为包名的情况,感谢 <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/zhufengning/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/zhufengning">@zhufengning</a> 的 <a href="https://github.com/HighCapable/YukiHookAPI/pull/70" data-hovercard-type="pull_request" data-hovercard-url="/HighCapable/YukiHookAPI/pull/70/hovercard">PR</a></li>
<li>适配 Kotlin 2.0.0+,修复在自动处理过程中无法通过编译的问题,感谢 <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/xihan123/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/xihan123">@xihan123</a> 的 <a href="https://github.com/HighCapable/YukiHookAPI/pull/76" data-hovercard-type="pull_request" data-hovercard-url="/HighCapable/YukiHookAPI/pull/76/hovercard">PR</a></li>
</ul>
<p>详情请查看<a href="https://highcapable.github.io/YukiHookAPI/zh-cn/about/changelog" rel="nofollow">更新日志</a>。</p>fankestag:github.com,2008:Repository/453432887/1.2.02023-10-11T06:18:38Z1.2.0<h2>YukiHookAPI <strong>1.2.0</strong> Released</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>The license agreement has been changed from <code>MIT</code> to <code>Apache-2.0</code>, subsequent versions will be distributed under this license agreement, you should change the relevant license agreement after using this version</li>
<li>This is a breaking update, please refer to <a href="https://highcapable.github.io/YukiHookAPI/en/config/move-to-api-1-2-x" rel="nofollow">Migrate to YukiHookAPI 1.2.x</a> for details</li>
<li>Adapted to Android 14, thanks to <a href="https://github.com/BlueCat300">BlueCat300</a> for <a href="https://github.com/HighCapable/YukiHookAPI/pull/44" data-hovercard-type="pull_request" data-hovercard-url="/HighCapable/YukiHookAPI/pull/44/hovercard">PR</a></li>
<li>Fixed <code>findAllInterfaces</code> related issues, thanks to <a href="https://github.com/buffcow">buffcow</a> for <a href="https://github.com/HighCapable/YukiHookAPI/pull/38" data-hovercard-type="pull_request" data-hovercard-url="/HighCapable/YukiHookAPI/pull/38/hovercard">PR</a></li>
<li>Fixed the delayed callback problem in the Hook process, thanks to <a href="https://github.com/cesaryuan">cesaryuan</a> for his <a href="https://github.com/HighCapable/YukiHookAPI/issues/47" data-hovercard-type="issue" data-hovercard-url="/HighCapable/YukiHookAPI/issues/47/hovercard">Issue</a></li>
<li>Added support for Resources Hook related functions, please refer to this <a href="https://github.com/HighCapable/YukiHookAPI/issues/36" data-hovercard-type="issue" data-hovercard-url="/HighCapable/YukiHookAPI/issues/36/hovercard">Issue</a> for details</li>
<li>Added <code>YukiHookAPI.TAG</code></li>
<li>Deprecated <del><code>YukiHookAPI.API_VERSION_NAME</code></del>, <del><code>YukiHookAPI.API_VERSION_CODE</code></del>, merged into <code>YukiHookAPI.VERSION</code></li>
<li>Added <code>YukiHookAPI.TAG</code></li>
<li>Deprecated <del><code>YukiHookAPI.API_VERSION_NAME</code></del>, <del><code>YukiHookAPI.API_VERSION_CODE</code></del>, merged into <code>YukiHookAPI.VERSION</code></li>
<li>Deprecated <del><code>useDangerousOperation</code></del> method in <code>YukiMemberHookCreator</code></li>
<li>Deprecated <del><code>instanceClass</code></del> function in <code>YukiMemberHookCreator</code>, it is no longer recommended</li>
<li>Modify <code>instanceClass</code> in <code>HookParam</code> to be a null safe return value type</li>
<li>Detach all Hook objects created using <code>injectMember</code> to <code>LegacyCreator</code></li>
<li>Modify <code>appClassLoader</code> in <code>PackageParam</code> to be a null safe return value type</li>
<li>Refactor all <code>logger...</code> methods to new usage <code>YLog</code></li>
<li>Removed the <code>--></code> style behind the print log function</li>
<li>Fixed and improved the problem that the module package name cannot be obtained through KSP after using <code>namespace</code></li>
<li>Functions such as whether to enable module activation status have now been moved to the <code>InjectYukiHookWithXposed</code> annotation</li>
<li>Detached <a href="https://github.com/tiann/FreeReflection">FreeReflection</a> will no longer be automatically generated and will be automatically imported as a dependency</li>
<li>Added a warning log that will be automatically printed when the same Hook method is repeated</li>
<li>The <code>findClass(...)</code> method in <code>PackageParam</code> is obsolete, please migrate to the <code>"...".toClass()</code> method</li>
<li>The <code>String.hook { ... }</code> method in <code>PackageParam</code> is obsolete, and it is recommended to use a new method for Hook</li>
<li><code>AppLifecycle</code> can now be created repeatedly in different Hookers</li>
<li>The old version of Hook priority writing is obsolete and migrated to <code>YukiHookPriority</code></li>
<li>Removed the <code>tag</code> function in the Hook process</li>
<li>Refactored <code>remendy</code> functionality in find methods, which now prints exceptions in steps</li>
<li>The multi-method find result type is changed from <code>HashSet</code> to <code>MutableList</code></li>
<li>Added <code>method()</code>, <code>constructor()</code>, <code>field()</code> to directly obtain all object functions in the class</li>
<li><code>constructor()</code> no longer behaves like <code>constructor { emptyParam() }</code></li>
<li>Added <code>lazyClass</code> and <code>lazyClassOrNull</code> methods to lazily load <code>Class</code></li>
</ul>
<p>For more details, please check the <a href="https://highcapable.github.io/YukiHookAPI/en/about/changelog" rel="nofollow">changelog</a>.</p>
<hr>
<h2>YukiHookAPI <strong>1.2.0</strong> 已发布</h2>
<h3>⚠ 重大更新</h3>
<ul>
<li>许可协议由 <code>MIT</code> 变更为 <code>Apache-2.0</code>,在此之后的版本将由此许可协议进行分发,您在使用此版本后应变更相关许可协议</li>
<li>这是一次重大更新,详情请参考 <a href="https://highcapable.github.io/YukiHookAPI/zh-cn/config/move-to-api-1-2-x" rel="nofollow">迁移到 YukiHookAPI 1.2.x</a></li>
<li>适配 Android 14,感谢 <a href="https://github.com/BlueCat300">BlueCat300</a> 的 <a href="https://github.com/HighCapable/YukiHookAPI/pull/44" data-hovercard-type="pull_request" data-hovercard-url="/HighCapable/YukiHookAPI/pull/44/hovercard">PR</a></li>
<li>修复 <code>findAllInterfaces</code> 相关问题,感谢 <a href="https://github.com/buffcow">buffcow</a> 的 <a href="https://github.com/HighCapable/YukiHookAPI/pull/38" data-hovercard-type="pull_request" data-hovercard-url="/HighCapable/YukiHookAPI/pull/38/hovercard">PR</a></li>
<li>修复 Hook 过程中的延迟回调问题,感谢 <a href="https://github.com/cesaryuan">cesaryuan</a> 的 <a href="https://github.com/HighCapable/YukiHookAPI/issues/47" data-hovercard-type="issue" data-hovercard-url="/HighCapable/YukiHookAPI/issues/47/hovercard">Issue</a></li>
<li>新增 Resources Hook 相关功能支持,详情请参考这个 <a href="https://github.com/HighCapable/YukiHookAPI/issues/36" data-hovercard-type="issue" data-hovercard-url="/HighCapable/YukiHookAPI/issues/36/hovercard">Issue</a></li>
<li>新增 <code>YukiHookAPI.TAG</code></li>
<li>作废了 <del><code>YukiHookAPI.API_VERSION_NAME</code></del>、<del><code>YukiHookAPI.API_VERSION_CODE</code></del>,统一合并到 <code>YukiHookAPI.VERSION</code></li>
<li>作废了 <del><code>YukiMemberHookCreator</code></del> 中的 <del><code>useDangerousOperation</code></del> 方法</li>
<li>作废了 <del><code>YukiMemberHookCreator</code></del> 中的 <del><code>instanceClass</code></del> 功能,不再推荐使用</li>
<li>修改 <code>HookParam</code> 中的 <code>instanceClass</code> 为空安全返回值类型</li>
<li>分离全部使用 <code>injectMember</code> 创建的 Hook 对象到 <code>LegacyCreator</code></li>
<li>修改 <code>PackageParam</code> 中的 <code>appClassLoader</code> 为空安全返回值类型</li>
<li>重构全部 <code>logger...</code> 方法到新用法 <code>YLog</code></li>
<li>移除了打印日志功能后方的 <code>--></code> 样式</li>
<li>修复并改进在使用 <code>namespace</code> 后通过 KSP 无法获取模块包名的问题</li>
<li>是否启用模块激活状态等功能现已移动到 <code>InjectYukiHookWithXposed</code> 注解中</li>
<li>分离 <a href="https://github.com/tiann/FreeReflection">FreeReflection</a> 不再自动生成,将作为依赖自动导入</li>
<li>新增重复 Hook 同一个方法时将自动打印警告日志</li>
<li>作废了 <code>PackageParam</code> 中的 <code>findClass(...)</code> 方法,请迁移到 <code>"...".toClass()</code> 方法</li>
<li>作废了 <code>PackageParam</code> 中的 <code>String.hook { ... }</code> 方法,推荐使用新方式进行 Hook</li>
<li><code>AppLifecycle</code> 现在可以在不同 Hooker 中重复创建</li>
<li>作废了旧版 Hook 优先级写法,统一迁移到 <code>YukiHookPriority</code></li>
<li>移除了 Hook 过程中的 <code>tag</code> 功能</li>
<li>重构方法查找中的 <code>remendy</code> 功能,现在可以对其进行分步打印异常</li>
<li>多重方法查找结果类型由 <code>HashSet</code> 改为 <code>MutableList</code></li>
<li>新增使用 <code>method()</code>、<code>constructor()</code>、<code>field()</code> 可直接获取到类中的所有对象功能</li>
<li><code>constructor()</code> 的行为不再是 <code>constructor { emptyParam() }</code></li>
<li>新增 <code>lazyClass</code>、<code>lazyClassOrNull</code> 方法,可延迟装载 <code>Class</code></li>
</ul>
<p>详情请查看<a href="https://highcapable.github.io/YukiHookAPI/zh-cn/about/changelog" rel="nofollow">更新日志</a>。</p>fankestag:github.com,2008:Repository/453432887/1.1.112023-04-24T22:08:42Z1.1.11<h2>YukiHookAPI <strong>1.1.11</strong> Released</h2>
<h3>!!!This version fixes a serious BUG, recommend everyone to update!!!</h3>
<ul>
<li>Fixed a critical issue since <code>1.1.5</code> version where the <code>Member</code> cache did not take effect and persistent storage eventually caused app out of memory (OOM), thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Art-Chen/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Art-Chen">@Art-Chen</a></li>
<li>Remove the direct cache function of <code>Member</code> and deprecated <del><code>YukiReflection.Configs.isEnableMemberCache</code></del>, keep the cache function of <code>Class</code></li>
<li>Modified finder to <code>Sequence</code>, optimize the finding speed and performance of <code>Member</code></li>
<li>Remove the <code>YukiHookPrefsBridge</code>'s direct key-value cache function and removed <code>LruCache</code> related functions</li>
<li>Deprecated <del><code>YukiHookAPI.Configs.isEnablePrefsBridgeCache</code></del></li>
<li>Deprecated <del><code>direct</code></del>, <del><code>clearCache</code></del> functions in <code>YukiHookPrefsBridge</code></li>
</ul>
<p>For more details, please check the <a href="https://fankes.github.io/YukiHookAPI/en/about/changelog" rel="nofollow">changelog</a>.</p>
<hr>
<h2>YukiHookAPI <strong>1.1.11</strong> 已发布</h2>
<h3>!!!这个版本修复了一个严重 BUG,推荐所有人更新!!!</h3>
<ul>
<li>修复从 <code>1.1.5</code> 版本开始的一个严重问题,<code>Member</code> 缓存未生效且持续存储最终引发 APP 内存溢出 (OOM),感谢 <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Art-Chen/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Art-Chen">@Art-Chen</a></li>
<li>移除 <code>Member</code> 的直接缓存功能并作废 <del><code>YukiHookAPI.Configs.isEnableMemberCache</code></del>,保留 <code>Class</code> 的缓存功能</li>
<li>对接查找功能到 <code>Sequence</code>,优化 <code>Member</code> 的查找速度与性能</li>
<li>移除 <code>YukiHookPrefsBridge</code> 的直接键值缓存功能并移除 <code>LruCache</code> 相关功能</li>
<li>作废了 <del><code>YukiHookAPI.Configs.isEnablePrefsBridgeCache</code></del></li>
<li>作废了 <code>YukiHookPrefsBridge</code> 中的 <del><code>direct</code></del>、<del><code>clearCache</code></del> 方法</li>
</ul>
<p>详情请查看<a href="https://fankes.github.io/YukiHookAPI/zh-cn/about/changelog" rel="nofollow">更新日志</a>。</p>fankestag:github.com,2008:Repository/453432887/1.1.102023-04-20T17:18:14Z1.1.10<h2>YukiHookAPI <strong>1.1.10</strong> Released</h2>
<ul>
<li>The <code>Activity</code> proxy function adds the function of specifying a separate proxy <code>Activity</code> for each proxied <code>Activity</code></li>
<li>Fixed problem that the <code>contains</code> and <code>all</code> methods in <code>YukiHookPrefsBridge</code> did not judge the <code>native</code> function</li>
<li>Integrate the cache function in <code>YukiHookPrefsBridge</code> into <code>PreferencesCacheManager</code> and use <code>LruCache</code> as a key-value pair cache</li>
<li>Modify <code>YukiHookPrefsBridge</code> key-value pair caching function to take effect in all environments (Module Apps, Host Apps)</li>
<li>Modify part of <code>HashMap</code> used for caching to <code>ArrayMap</code> to reduce memory consumption</li>
<li>Fix some other possible problems</li>
</ul>
<p>For more details, please check the <a href="https://fankes.github.io/YukiHookAPI/en/about/changelog" rel="nofollow">changelog</a>.</p>
<hr>
<h2>YukiHookAPI <strong>1.1.10</strong> 已发布</h2>
<ul>
<li><code>Activity</code> 代理功能新增每个被代理的 <code>Activity</code> 指定单独的代理 <code>Activity</code> 功能</li>
<li>修复 <code>YukiHookPrefsBridge</code> 中的 <code>contains</code>、<code>all</code> 方法未判断 <code>native</code> 功能的问题</li>
<li>整合 <code>YukiHookPrefsBridge</code> 中的缓存功能到 <code>PreferencesCacheManager</code> 并使用 <code>LruCache</code> 作为键值对前置缓存</li>
<li>修改 <code>YukiHookPrefsBridge</code> 键值对缓存功能在所有环境中生效 (模块、宿主)</li>
<li>修改部分用于缓存的 <code>HashMap</code> 到 <code>ArrayMap</code> 以减少内存消耗</li>
<li>修复一些其它可能出现的问题</li>
</ul>
<p>详情请查看<a href="https://fankes.github.io/YukiHookAPI/zh-cn/about/changelog" rel="nofollow">更新日志</a>。</p>fankestag:github.com,2008:Repository/453432887/1.1.92023-04-16T21:35:04Z1.1.9<h2>YukiHookAPI <strong>1.1.9</strong> Released</h2>
<ul>
<li>Change the type of dependent library from <strong>Java Library</strong> (jar) to <strong>Android Library</strong> (aar)</li>
<li>Remove the inspection function of internal methods and parameters through Hook or reflection API</li>
<li>Fixed the problem that <code>YukiHookDataChannel</code> automatically segmented data sending function could not work normally (exception would still be thrown)</li>
<li>Added the ability to manually modify the maximum data byte size allowed by <code>YukiHookDataChannel</code> to be sent at one time according to the limitations of the target device</li>
<li>Remove the restriction that <code>YukiHookDataChannel</code> can only be used in module <code>Activity</code>, now you can use it anywhere</li>
<li>Modify and standardize the broadcast Action name used by <code>YukiHookDataChannel</code></li>
<li>Fix the problem that <code>BadParcelableException</code> occurs when <code>YukiHookDataChannel</code> has different modules with the same host</li>
<li>Added <code>ExecutorType</code>, you can get the type of known Hook Framework through <code>YukiHookAPI.Status.Executor.type</code></li>
<li><del><code>YukiHookModulePrefs</code></del> renamed to <code>YukiHookPrefsBridge</code></li>
<li>Modify <code>YukiHookPrefsBridge</code> to be implemented as a non-singleton, as a singleton may cause data confusion</li>
<li>Deprecated <del><code>Context.modulePrefs(...)</code></del> method, please move to <code>Context.prefs(...)</code></li>
<li><code>YukiHookPrefsBridge</code> adds <code>native</code> method, which supports storing private data in modules and hosts directly as native storage</li>
<li>Integrate the storage method in <code>YukiHookPrefsBridge</code> to <code>YukiHookPrefsBridge.Editor</code>, please use <code>edit</code> method to store data</li>
<li><code>YukiHookPrefsBridge</code> adds <code>contains</code> method</li>
<li>Cache dynamically created proxy objects in <code>YukiHookPrefsBridge</code>, try to fix problems that may cause OOM in the host and modules</li>
<li>Modify the proxy class of the <code>Activity</code> proxy function to be dynamically generated to prevent conflicts caused by injecting different modules into the host</li>
<li>Fixed some other possible problems</li>
</ul>
<p>For more details, please check the <a href="https://fankes.github.io/YukiHookAPI/en/about/changelog" rel="nofollow">changelog</a>.</p>
<hr>
<h2>YukiHookAPI <strong>1.1.9</strong> 已发布</h2>
<ul>
<li>将依赖库的类型由 <strong>Java Library</strong> (jar) 修改为 <strong>Android Library</strong> (aar)</li>
<li>移除通过 Hook 或反射 API 内部方法、参数的检查功能</li>
<li>修复 <code>YukiHookDataChannel</code> 自动分段发送数据功能不能正常生效 (依然会抛出异常) 的问题</li>
<li>新增可以手动根据目标设备的限制修改 <code>YukiHookDataChannel</code> 允许一次发送的最大数据字节大小</li>
<li>移除 <code>YukiHookDataChannel</code> 只能在模块 <code>Activity</code> 中使用的限制,现在你可以在任何地方使用它</li>
<li>修改并规范 <code>YukiHookDataChannel</code> 使用的广播 Action 名称</li>
<li>修复 <code>YukiHookDataChannel</code> 在不同模块同一宿主的情况下出现 <code>BadParcelableException</code> 异常的问题</li>
<li>新增 <code>ExecutorType</code>,可以通过 <code>YukiHookAPI.Status.Executor.type</code> 来获取已知 Hook Framework 的类型</li>
<li><del><code>YukiHookModulePrefs</code></del> 更名为 <code>YukiHookPrefsBridge</code></li>
<li>修改 <code>YukiHookPrefsBridge</code> 为非单例实现,作为单例可能发生数据混淆的问题</li>
<li>作废了 <del><code>Context.modulePrefs(...)</code></del> 方法,请转移到 <code>Context.prefs(...)</code></li>
<li><code>YukiHookPrefsBridge</code> 新增 <code>native</code> 方法,支持直接作为原生存储在模块和宿主中存储私有数据</li>
<li>整合 <code>YukiHookPrefsBridge</code> 中的存储方法到 <code>YukiHookPrefsBridge.Editor</code>,请使用 <code>edit</code> 方法来存储数据</li>
<li><code>YukiHookPrefsBridge</code> 新增 <code>contains</code> 方法</li>
<li>缓存 <code>YukiHookPrefsBridge</code> 中动态创建的代理对象,尝试修复可能会导致宿主、模块出现 OOM 的问题</li>
<li>修改 <code>Activity</code> 代理功能的代理类为动态生成,防止不同模块注入宿主后造成冲突</li>
<li>修复一些其它可能出现的问题</li>
</ul>
<p>详情请查看<a href="https://fankes.github.io/YukiHookAPI/zh-cn/about/changelog" rel="nofollow">更新日志</a>。</p>fankestag:github.com,2008:Repository/453432887/1.1.82023-01-31T20:08:02Z1.1.8<h2>YukiHookAPI <strong>1.1.8</strong> Released</h2>
<ul>
<li>Fixed the problem that the underlying Hook method cannot update the modified state synchronously when modifying parameters such as <code>result</code> during callback, thanks to <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1562303817" data-permission-text="Title is private" data-url="https://github.com/HighCapable/YukiHookAPI/issues/23" data-hovercard-type="issue" data-hovercard-url="/HighCapable/YukiHookAPI/issues/23/hovercard" href="https://github.com/HighCapable/YukiHookAPI/issues/23">#23</a></li>
<li>Move the entry class name file automatically generated by <code>YukiHookAPI</code> from <code>assets/yukihookapi_init</code> to <code>resources/META-INF/yukihookapi_init</code></li>
<li>When only printing the exception stack, the <code>msg</code> parameter is allowed to be empty and the <code>msg</code> parameter can not be set, and the log with the <code>msg</code> parameter left blank will not be logged unless the exception stack is not empty</li>
<li>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</li>
<li><code>HookParam</code> adds <code>instanceOrNull</code> 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</li>
<li>Decoupled all hookers in <code>Member</code> lookup functionality to <code>MemberBaseFinder.MemberHookerManager</code></li>
<li>Modified the usage of <code>by</code> condition in <code>YukiMemberHookCreator</code>, now you can reuse <code>by</code> method to set multiple conditions</li>
<li>Removed wrong <code>Class</code> object declaration in Android <code>type</code></li>
<li>The <code>registerReceiver</code> method in <code>PackageParam.AppLifecycle</code> adds the function of directly using <code>IntentFilter</code> to create a system broadcast listener</li>
<li>Fixed the problem that there may be multiple registration lifecycles in <code>PackageParam.AppLifecycle</code></li>
<li>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)</li>
</ul>
<p>For more details, please check the <a href="https://fankes.github.io/YukiHookAPI/en/about/changelog" rel="nofollow">changelog</a>.</p>
<hr>
<h2>YukiHookAPI <strong>1.1.8</strong> 已发布</h2>
<ul>
<li>修复底层 Hook 方法在回调时修改 <code>result</code> 等参数时时不能同步更新修改后的状态问题,感谢 <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1562303817" data-permission-text="Title is private" data-url="https://github.com/HighCapable/YukiHookAPI/issues/23" data-hovercard-type="issue" data-hovercard-url="/HighCapable/YukiHookAPI/issues/23/hovercard" href="https://github.com/HighCapable/YukiHookAPI/issues/23">#23</a></li>
<li>移动 <code>YukiHookAPI</code> 自动生成的入口类名称文件 <code>assets/yukihookapi_init</code> 到 <code>resources/META-INF/yukihookapi_init</code></li>
<li>允许在仅打印异常堆栈时 <code>msg</code> 参数为空并可以不设置 <code>msg</code> 参数,留空 <code>msg</code> 参数的日志除非异常堆栈不为空否则将不会被记录</li>
<li>修复 Hook 回调方法体内发生的异常打印的日志无具体方法信息的 BUG</li>
<li><code>HookParam</code> 新增 <code>instanceOrNull</code> 变量与方法,可以在不确定 Hook 实例是否为空的前提下使用以防止 Hook 实例为空抛出异常</li>
<li>解耦合所有 <code>Member</code> 查找功能中的 Hooker 到 <code>MemberBaseFinder.MemberHookerManager</code></li>
<li>修改了 <code>YukiMemberHookCreator</code> 中的 <code>by</code> 条件用法,现在可以重复使用 <code>by</code> 方法设置多个条件</li>
<li>移除了 Android <code>type</code> 中的错误 <code>Class</code> 对象声明</li>
<li><code>PackageParam.AppLifecycle</code> 中的 <code>registerReceiver</code> 方法新增直接使用 <code>IntentFilter</code> 创建系统广播监听的功能</li>
<li>修复在 <code>PackageParam.AppLifecycle</code> 中可能存在多次注册生命周期的问题</li>
<li>Revert: 1.1.7 版本由于有一个严重问题已经撤回,请直接更新到此版本即可 (更新日志同 1.1.7 版本)</li>
</ul>
<p>详情请查看<a href="https://fankes.github.io/YukiHookAPI/zh-cn/about/changelog" rel="nofollow">更新日志</a>。</p>fankestag:github.com,2008:Repository/453432887/1.1.62023-01-20T16:41:30Z1.1.6<h2>YukiHookAPI <strong>1.1.6</strong> Released</h2>
<ul>
<li>Fixed the serious problem that <code>ClassLoader</code> does not match after <code>PackageParam</code> keeps a single instance when there may be multiple package names in the same process when Xposed Module is loaded</li>
<li>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</li>
<li>Fixed the problem that the number of parameters is incorrect when methods such as <code>HookParam.callOriginal</code>, <code>HookParam.invokeOriginal</code> call the original method</li>
<li>Modify the method parameter name <code>param</code> of reflection calls in <code>MethodFinder</code>, <code>ConstructorFinder</code>, <code>ReflectionFactory</code> to <code>args</code></li>
<li>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</li>
</ul>
<p>For more details, please check the <a href="https://fankes.github.io/YukiHookAPI/en/about/changelog" rel="nofollow">changelog</a>.</p>
<hr>
<h2>YukiHookAPI <strong>1.1.6</strong> 已发布</h2>
<ul>
<li>修复 Xposed 模块装载时可能存在同一个进程多个包名的情况导致 <code>PackageParam</code> 保持单例后 <code>ClassLoader</code> 不符的严重问题</li>
<li>新增同一个进程多个包名的情况下未区分包名时,停止装载单例化的子 Hooker 并打印警告信息</li>
<li>修复 <code>HookParam.callOriginal</code>、<code>HookParam.invokeOriginal</code> 等方法调用原始方法时参数个数不正确的问题</li>
<li>修改 <code>MethodFinder</code>、<code>ConstructorFinder</code>、<code>ReflectionFactory</code> 中反射调用的方法参数名 <code>param</code> 为 <code>args</code></li>
<li>新增 Xposed 模块自动处理程序中判断入口类构造方法参数功能,入口类需要保证其不存在任何构造方法参数</li>
</ul>
<p>详情请查看<a href="https://fankes.github.io/YukiHookAPI/zh-cn/about/changelog" rel="nofollow">更新日志</a>。</p>fankestag:github.com,2008:Repository/453432887/1.1.52023-01-12T20:35:36Z1.1.5<h2>YukiHookAPI <strong>1.1.5</strong> Released</h2>
<p>Happy New Year 2023!</p>
<p>This update has changed a lot, please check the <a href="https://fankes.github.io/YukiHookAPI/en/about/changelog" rel="nofollow">changelog</a> for details.</p>
<p>Subsequent version updates will be released simultaneously on Github Release.</p>
<hr>
<h2>YukiHookAPI <strong>1.1.5</strong> 已发布</h2>
<p>2023 新年快乐!</p>
<p>本次更新改动比较大,详情请查看<a href="https://fankes.github.io/YukiHookAPI/zh-cn/about/changelog" rel="nofollow">更新日志</a>。</p>
<p>后续版本的更新将同步发布在 Github Release。</p>fankes