Files
YukiHookAPI/assets/YukiResourcesHookCreator.html-CKh6FwjE.js
github-actions[bot] aac9e42e84 Deploy to GitHub pages
2025-08-02 18:17:09 +00:00

98 lines
45 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{_ as s,o as a,c as n,a as e}from"./app-BpUB8-Q8.js";const o={},l=e(`<div class="custom-container warning"><p class="custom-container-title">注意</p><p>由于维护成本,<code>YukiHookAPI</code> 从 <code>1.3.0</code> 版本开始将不再会对此文档进行更新且在 <code>2.0.0</code> 版本切换为 Dokka 插件自动生成的 API 文档。</p></div><h1 id="yukiresourceshookcreator-class" tabindex="-1"><a class="header-anchor" href="#yukiresourceshookcreator-class" aria-hidden="true">#</a> YukiResourcesHookCreator <span class="symbol">- class</span></h1><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">class</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">YukiResourcesHookCreator</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">internal</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">constructor</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">internal</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> packageParam: </span><span style="color:#F69D50;">PackageParam</span><span style="color:#ADBAC7;">, </span><span style="color:#F47067;">internal</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> hookResources: </span><span style="color:#F69D50;">HookResources</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><code>v1.1.0</code> <code>修改</code></p><p>修正拼写错误的 <strong>Creater</strong> 命名到 <strong>Creator</strong></p><p><code>v1.1.5</code> <code>修改</code></p><p>私有化构造方法</p><p><strong>功能描述</strong></p><blockquote><p><code>YukiHookAPI</code> 的 <code>Resources</code> 核心 Hook 实现类。</p></blockquote><h2 id="injectresource-method" tabindex="-1"><a class="header-anchor" href="#injectresource-method" aria-hidden="true">#</a> injectResource <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">injectResource</span><span style="color:#ADBAC7;">(tag: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">, initiate: </span><span style="color:#F69D50;">ResourceHookCreator</span><span style="color:#ADBAC7;">.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit): </span><span style="color:#F69D50;">ResourceHookCreator</span><span style="color:#ADBAC7;">.Result</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>注入要 Hook 的 Resources。</p></blockquote><p><strong>功能示例</strong></p><p>你可以注入任意 Resources使用 <code>injectResource</code> 即可创建一个 <code>Hook</code> 对象。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">injectResource</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Your code here.</span></span>
<span class="line"><span style="color:#ADBAC7;">}</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>你还可以自定义 <code>tag</code>,方便你在调试的时候能够区分你的 <code>Hook</code> 对象。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">injectResource</span><span style="color:#ADBAC7;">(tag </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">&quot;KuriharaYuki&quot;</span><span style="color:#ADBAC7;">) {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Your code here.</span></span>
<span class="line"><span style="color:#ADBAC7;">}</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="resourceshookcreator-class" tabindex="-1"><a class="header-anchor" href="#resourceshookcreator-class" aria-hidden="true">#</a> ResourcesHookCreator <span class="symbol">- class</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inner</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">class</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">ResourcesHookCreator</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">internal</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">constructor</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">private</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> tag: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><code>v1.1.0</code> <code>修改</code></p><p>移除 <code>packageName</code></p><p>修正拼写错误的 <strong>Creater</strong> 命名到 <strong>Creator</strong></p><p><strong>功能描述</strong></p><blockquote><p>Hook 核心功能实现类。</p></blockquote><p>查找和处理需要 Hook 的 Resources。</p><h3 id="resourceid-field" tabindex="-1"><a class="header-anchor" href="#resourceid-field" aria-hidden="true">#</a> resourceId <span class="symbol">- field</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">var</span><span style="color:#ADBAC7;"> resourceId: </span><span style="color:#F69D50;">Int</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>直接设置需要替换的 Resources Id。</p></blockquote><div class="custom-container warning"><p class="custom-container-title">注意</p><p>不建议使用此方法设置目标需要 Hook 的 Resources Id你可以使用 <strong>conditions</strong> 方法。</p></div><p><strong>功能示例</strong></p><p>你可以直接设置并指定目标 Hook APP 的 Resources Id。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">injectResource</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> resourceId </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">0x7f060001</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">toInt</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">replaceTo</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">..</span><span style="color:#ADBAC7;">.)</span></span>
<span class="line"><span style="color:#ADBAC7;">}</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="conditions-method" tabindex="-1"><a class="header-anchor" href="#conditions-method" aria-hidden="true">#</a> conditions <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">conditions</span><span style="color:#ADBAC7;">(initiate: </span><span style="color:#F69D50;">ConditionFinder</span><span style="color:#ADBAC7;">.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>设置 Resources 查找条件。</p></blockquote><p>若你设置了 <code>resourceId</code> 则此方法将不会被使用。</p><p><strong>功能示例</strong></p><p>你可参考 <a href="#conditionfinder-class">ConditionFinder</a> 查看详细用法。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">injectResource</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">conditions</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> name </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">&quot;test_string&quot;</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">string</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">replaceTo</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">..</span><span style="color:#ADBAC7;">.)</span></span>
<span class="line"><span style="color:#ADBAC7;">}</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="replaceto-method" tabindex="-1"><a class="header-anchor" href="#replaceto-method" aria-hidden="true">#</a> replaceTo <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">replaceTo</span><span style="color:#ADBAC7;">(any: </span><span style="color:#F69D50;">Any</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>替换指定 Resources 为指定的值。</p></blockquote><p><strong>功能示例</strong></p><p>你可以替换找到的 Resources 为你想要的值,可以是 <code>String</code>、<code>Drawable</code> 等。</p><p>比如我们要替换一个找到的字符串 Resources。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">injectResource</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">conditions</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> name </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">&quot;test_string&quot;</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">string</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">replaceTo</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">&quot;replace string&quot;</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"><span style="color:#ADBAC7;">}</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>或是替换为一个 <code>Drawable</code>,你无需对目标 Resources 实现 <code>fwd</code> 方法或 <code>DrawableLoader</code>。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">injectResource</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">conditions</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> name </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">&quot;test_drawable&quot;</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">drawable</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">replaceTo</span><span style="color:#ADBAC7;">(</span><span style="color:#DCBDFB;">ColorDrawable</span><span style="color:#ADBAC7;">(Color.RED))</span></span>
<span class="line"><span style="color:#ADBAC7;">}</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="replacetotrue-method" tabindex="-1"><a class="header-anchor" href="#replacetotrue-method" aria-hidden="true">#</a> replaceToTrue <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">replaceToTrue</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>替换指定 Resources 为 <code>true</code>。</p></blockquote><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>确保目标替换 Resources 的类型为 <strong>Boolean</strong>。</p></div><h3 id="replacetofalse-method" tabindex="-1"><a class="header-anchor" href="#replacetofalse-method" aria-hidden="true">#</a> replaceToFalse <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">replaceToFalse</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>替换指定 Resources 为 <code>false</code>。</p></blockquote><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>确保目标替换 Resources 的类型为 <strong>Boolean</strong>。</p></div><h3 id="replacetomoduleresource-method" tabindex="-1"><a class="header-anchor" href="#replacetomoduleresource-method" aria-hidden="true">#</a> replaceToModuleResource <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">replaceToModuleResource</span><span style="color:#ADBAC7;">(resId: </span><span style="color:#F69D50;">Int</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>替换为当前 Xposed 模块的 Resources。</p></blockquote><p>你可以直接使用模块的 <code>R.string.xxx</code>、<code>R.mipmap.xxx</code>、<code>R.drawable.xxx</code> 替换 Hook APP 的 Resources。</p><p><strong>功能示例</strong></p><p>使用此方法可非常方便地使用当前模块的 Resources 去替换目标 Hook APP 的 Resources。</p><p>这个过程你无需对目标 Resources 实现 <code>fwd</code> 方法。</p><p>比如我们要替换一个字符串。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">injectResource</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">conditions</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> name </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">&quot;test_string&quot;</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">string</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">replaceToModuleResource</span><span style="color:#ADBAC7;">(R.string.module_string)</span></span>
<span class="line"><span style="color:#ADBAC7;">}</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>还可以替换一些复杂的 Resources比如 <code>xml</code> 创建的 <code>drawable</code>。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">injectResource</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">conditions</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> name </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">&quot;test_drawable&quot;</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">drawable</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">replaceToModuleResource</span><span style="color:#ADBAC7;">(R.drawable.module_drawable)</span></span>
<span class="line"><span style="color:#ADBAC7;">}</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="replaceto-method-1" tabindex="-1"><a class="header-anchor" href="#replaceto-method-1" aria-hidden="true">#</a> replaceTo <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">replaceTo</span><span style="color:#ADBAC7;">(result: (</span><span style="color:#F69D50;">original</span><span style="color:#ADBAC7;">: </span><span style="color:#F69D50;">Any</span><span style="color:#ADBAC7;">) -&gt; </span><span style="color:#F69D50;">Any</span><span style="color:#ADBAC7;">?)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.2.0</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>替换指定 Resources 为指定的值。</p></blockquote><div class="custom-container warning"><p class="custom-container-title">注意</p><p>此方法只支持部分类型,例如 <strong>String</strong>、<strong>Boolean</strong>。</p><p>此方法不支持在 <strong>HookEntryType.ZYGOTE</strong> 时使用。</p></div><h3 id="replacetomoduleresource-method-1" tabindex="-1"><a class="header-anchor" href="#replacetomoduleresource-method-1" aria-hidden="true">#</a> replaceToModuleResource <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">replaceToModuleResource</span><span style="color:#ADBAC7;">(result: (</span><span style="color:#F69D50;">original</span><span style="color:#ADBAC7;">: </span><span style="color:#F69D50;">Any</span><span style="color:#ADBAC7;">) -&gt; </span><span style="color:#F69D50;">Int</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.2.0</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>替换为当前 Xposed 模块的 Resources。</p></blockquote><p>你可以直接使用模块的 <code>R.string.xxx</code>、<code>R.mipmap.xxx</code>、<code>R.drawable.xxx</code> 替换 Hook APP 的 Resources。</p><div class="custom-container warning"><p class="custom-container-title">注意</p><p>此方法只支持部分类型,例如 <strong>String</strong>、<strong>Boolean</strong>。</p><p>此方法不支持在 <strong>HookEntryType.ZYGOTE</strong> 时使用。</p></div><h3 id="injectaslayout-method" tabindex="-1"><a class="header-anchor" href="#injectaslayout-method" aria-hidden="true">#</a> injectAsLayout <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">injectAsLayout</span><span style="color:#ADBAC7;">(initiate: </span><span style="color:#F69D50;">YukiResources</span><span style="color:#ADBAC7;">.LayoutInflatedParam.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>作为装载的布局注入。</p></blockquote><p><strong>功能示例</strong></p><p>你可以直接注入一个布局监听并修改它的内部 <code>View</code>。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">injectResource</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">conditions</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> name </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">&quot;activity_main&quot;</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">layout</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">injectAsLayout</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">findViewByIdentifier</span><span style="color:#ADBAC7;">&lt;</span><span style="color:#F69D50;">View</span><span style="color:#ADBAC7;">&gt;(name </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">&quot;test_view&quot;</span><span style="color:#ADBAC7;">)?.isVisible </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">false</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">findViewByIdentifier</span><span style="color:#ADBAC7;">&lt;</span><span style="color:#F69D50;">TextView</span><span style="color:#ADBAC7;">&gt;(name </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">&quot;test_text_view&quot;</span><span style="color:#ADBAC7;">)?.text </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">&quot;Hook this&quot;</span></span>
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
<span class="line"><span style="color:#ADBAC7;">}</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>你还可以通过 <code>currentView</code> 拿到 <code>Context</code>。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">injectResource</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">conditions</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> name </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">&quot;activity_main&quot;</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">layout</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">injectAsLayout</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> Toast.</span><span style="color:#DCBDFB;">makeText</span><span style="color:#ADBAC7;">(currentView.context, </span><span style="color:#96D0FF;">&quot;Hook this&quot;</span><span style="color:#ADBAC7;">, Toast.LENGTH_SHORT).</span><span style="color:#DCBDFB;">show</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
<span class="line"><span style="color:#ADBAC7;">}</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="conditionfinder-class" tabindex="-1"><a class="header-anchor" href="#conditionfinder-class" aria-hidden="true">#</a> ConditionFinder <span class="symbol">- class</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inner</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">class</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">ConditionFinder</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">internal</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">constructor</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>Resources 查找条件实现类。</p></blockquote><h4 id="name-field" tabindex="-1"><a class="header-anchor" href="#name-field" aria-hidden="true">#</a> name <span class="symbol">- field</span></h4><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">var</span><span style="color:#ADBAC7;"> name: </span><span style="color:#F69D50;">String</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>设置 Resources 名称。</p></blockquote><h4 id="anim-method" tabindex="-1"><a class="header-anchor" href="#anim-method" aria-hidden="true">#</a> anim <span class="symbol">- method</span></h4><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">anim</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>设置 Resources 类型为动画。</p></blockquote><h4 id="animator-method" tabindex="-1"><a class="header-anchor" href="#animator-method" aria-hidden="true">#</a> animator <span class="symbol">- method</span></h4><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">animator</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>设置 Resources 类型为属性动画。</p></blockquote><h4 id="bool-method" tabindex="-1"><a class="header-anchor" href="#bool-method" aria-hidden="true">#</a> bool <span class="symbol">- method</span></h4><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">bool</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>设置 Resources 类型为布朗(Boolean)。</p></blockquote><h4 id="color-method" tabindex="-1"><a class="header-anchor" href="#color-method" aria-hidden="true">#</a> color <span class="symbol">- method</span></h4><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">color</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>设置 Resources 类型为颜色(Color)。</p></blockquote><h4 id="dimen-method" tabindex="-1"><a class="header-anchor" href="#dimen-method" aria-hidden="true">#</a> dimen <span class="symbol">- method</span></h4><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">dimen</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>设置 Resources 类型为尺寸(Dimention)。</p></blockquote><h4 id="drawable-method" tabindex="-1"><a class="header-anchor" href="#drawable-method" aria-hidden="true">#</a> drawable <span class="symbol">- method</span></h4><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">drawable</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>设置 Resources 类型为 Drawable。</p></blockquote><h4 id="integer-method" tabindex="-1"><a class="header-anchor" href="#integer-method" aria-hidden="true">#</a> integer <span class="symbol">- method</span></h4><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">integer</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>设置 Resources 类型为整型(Integer)。</p></blockquote><h4 id="layout-method" tabindex="-1"><a class="header-anchor" href="#layout-method" aria-hidden="true">#</a> layout <span class="symbol">- method</span></h4><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">layout</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>设置 Resources 类型为布局(Layout)。</p></blockquote><h4 id="plurals-method" tabindex="-1"><a class="header-anchor" href="#plurals-method" aria-hidden="true">#</a> plurals <span class="symbol">- method</span></h4><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">plurals</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>设置 Resources 类型为 Plurals。</p></blockquote><h4 id="string-method" tabindex="-1"><a class="header-anchor" href="#string-method" aria-hidden="true">#</a> string <span class="symbol">- method</span></h4><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">string</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>设置 Resources 类型为字符串(String)。</p></blockquote><h4 id="xml-method" tabindex="-1"><a class="header-anchor" href="#xml-method" aria-hidden="true">#</a> xml <span class="symbol">- method</span></h4><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">xml</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>设置 Resources 类型为 Xml。</p></blockquote><h4 id="mipmap-method" tabindex="-1"><a class="header-anchor" href="#mipmap-method" aria-hidden="true">#</a> mipmap <span class="symbol">- method</span></h4><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">mipmap</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>设置 Resources 类型为位图(Mipmap)。</p></blockquote><h4 id="array-method" tabindex="-1"><a class="header-anchor" href="#array-method" aria-hidden="true">#</a> array <span class="symbol">- method</span></h4><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">array</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.1.0</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>设置 Resources 类型为数组(Array)。</p></blockquote><h3 id="result-class" tabindex="-1"><a class="header-anchor" href="#result-class" aria-hidden="true">#</a> Result <span class="symbol">- class</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inner</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">class</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">Result</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">internal</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">constructor</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>监听全部 Hook 结果实现类,可在这里处理失败事件监听。</p></blockquote><h4 id="result-method" tabindex="-1"><a class="header-anchor" href="#result-method" aria-hidden="true">#</a> result <span class="symbol">- method</span></h4><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">result</span><span style="color:#ADBAC7;">(initiate: </span><span style="color:#F69D50;">Result</span><span style="color:#ADBAC7;">.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit): </span><span style="color:#F69D50;">Result</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>创建监听事件方法体。</p></blockquote><h4 id="by-method" tabindex="-1"><a class="header-anchor" href="#by-method" aria-hidden="true">#</a> by <span class="symbol">- method</span></h4><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">by</span><span style="color:#ADBAC7;">(condition: () </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Boolean): </span><span style="color:#F69D50;">Result</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>添加执行 Hook 需要满足的条件,不满足条件将直接停止 Hook。</p></blockquote><h3 id="onhookingfailure-method" tabindex="-1"><a class="header-anchor" href="#onhookingfailure-method" aria-hidden="true">#</a> onHookingFailure <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">onHookingFailure</span><span style="color:#ADBAC7;">(result: (</span><span style="color:#F69D50;">Throwable</span><span style="color:#ADBAC7;">) -&gt; </span><span style="color:#F69D50;">Unit</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">Result</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>监听 Hook 过程发生错误的回调方法。</p></blockquote><h3 id="ignoredhookingfailure-method" tabindex="-1"><a class="header-anchor" href="#ignoredhookingfailure-method" aria-hidden="true">#</a> ignoredHookingFailure <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">ignoredHookingFailure</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Result</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>忽略 Hook 过程出现的错误。</p></blockquote>`,248),p=[l];function c(t,r){return a(),n("div",null,p)}const i=s(o,[["render",c],["__file","YukiResourcesHookCreator.html.vue"]]);export{i as default};