mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-04 09:45:19 +08:00
98 lines
45 KiB
JavaScript
98 lines
45 KiB
JavaScript
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;">-></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;">"KuriharaYuki"</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;">-></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;">"test_string"</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;">"test_string"</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;">"replace string"</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;">"test_drawable"</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;">"test_string"</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;">"test_drawable"</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;">) -> </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;">) -> </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;">-></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;">"activity_main"</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;"><</span><span style="color:#F69D50;">View</span><span style="color:#ADBAC7;">>(name </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"test_view"</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;"><</span><span style="color:#F69D50;">TextView</span><span style="color:#ADBAC7;">>(name </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"test_text_view"</span><span style="color:#ADBAC7;">)?.text </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"Hook this"</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;">"activity_main"</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;">"Hook this"</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;">-></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;">-></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;">) -> </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};
|