mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-04 17:55:24 +08:00
51 lines
13 KiB
JavaScript
51 lines
13 KiB
JavaScript
import{_ as l,r as p,o as c,c as i,b as s,d as n,e,a as o}from"./app-BpUB8-Q8.js";const r={},t=o(`<h1 id="use-as-hook-api-configs" tabindex="-1"><a class="header-anchor" href="#use-as-hook-api-configs" aria-hidden="true">#</a> Use as Hook API Configs</h1><blockquote><p>As a Hook API, it is usually used for Hook operations for hot updates or functional needs of its own app and product testing.</p></blockquote><h2 id="dependency-configs" tabindex="-1"><a class="header-anchor" href="#dependency-configs" aria-hidden="true">#</a> Dependency Configs</h2><p>You just need to integrate the <code>com.highcapable.yukihookapi:api</code> dependency.</p><p>Then please integrate the <code>Hook Framework</code> dependencies used by your target.</p><h2 id="entry-configs" tabindex="-1"><a class="header-anchor" href="#entry-configs" aria-hidden="true">#</a> Entry Configs</h2><p>Create your custom <code>Application</code>.</p><p>Add <code>YukiHookAPI.encase</code> method to <code>attachBaseContext</code>.</p><blockquote><p>The following example</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:#F47067;">class</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">MyApplication</span><span style="color:#ADBAC7;"> : </span><span style="color:#F69D50;">Application</span><span style="color:#ADBAC7;">() {</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">override</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">attachBaseContext</span><span style="color:#ADBAC7;">(base: </span><span style="color:#F69D50;">Context</span><span style="color:#ADBAC7;">?) {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Load Hook Framework</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</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 style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Configure YukiHookAPI</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> YukiHookApi.</span><span style="color:#DCBDFB;">configs</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 style="color:#ADBAC7;"> </span><span style="color:#768390;">// Load YukiHookAPI</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> YukiHookAPI.</span><span style="color:#DCBDFB;">encase</span><span style="color:#ADBAC7;">(base) {</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 style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">super</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">attachBaseContext</span><span style="color:#ADBAC7;">(base)</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 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>In this way, you have completed the relevant configuration of the API.</p><p>You can <a href="../config/api-example#precautions-when-using-as-hook-api">click here</a> to see the similarities, differences and caveats.</p><div class="custom-container warning"><p class="custom-container-title">Notice</p><p>You can no longer wrap with <strong>loadApp</strong> and start writing your Hook code directly.</p></div><h2 id="hook-framework" tabindex="-1"><a class="header-anchor" href="#hook-framework" aria-hidden="true">#</a> Hook Framework</h2><blockquote><p>Here are some related ways of how to connect the <code>Hook Framework</code> with the <code>YukiHookAPI</code>, which is widely used.</p></blockquote>`,15),d={id:"pine",tabindex:"-1"},A=s("a",{class:"header-anchor",href:"#pine","aria-hidden":"true"},"#",-1),u={href:"https://github.com/canyie/pine",target:"_blank",rel:"noopener noreferrer"},y=o(`<blockquote><p><strong>Required Xposed API dependencies</strong> <code>top.canyie.pine:xposed</code></p></blockquote><blockquote><p>The following example</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:#F47067;">override</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">attachBaseContext</span><span style="color:#ADBAC7;">(base: </span><span style="color:#F69D50;">Context</span><span style="color:#ADBAC7;">?) {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Load Pine</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> PineConfig.debug </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">true</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> PineConfig.debuggable </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> BuildConfig.DEBUG</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Load YukiHookAPI</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> YukiHookAPI.</span><span style="color:#DCBDFB;">encase</span><span style="color:#ADBAC7;">(base) {</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 style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">super</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">attachBaseContext</span><span style="color:#ADBAC7;">(base)</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>`,3),h={id:"sandhook",tabindex:"-1"},B=s("a",{class:"header-anchor",href:"#sandhook","aria-hidden":"true"},"#",-1),C={href:"https://github.com/asLody/SandHook",target:"_blank",rel:"noopener noreferrer"},v=o(`<blockquote><p><strong>Required Xposed API dependencies</strong> <code>com.swift.sandhook:xposedcompat</code> or <code>com.swift.sandhook:xposedcompat_new</code></p></blockquote><blockquote><p>The following example</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:#F47067;">override</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">attachBaseContext</span><span style="color:#ADBAC7;">(base: </span><span style="color:#F69D50;">Context</span><span style="color:#ADBAC7;">?) {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Load SandHook</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> SandHookConfig.DEBUG </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> BuildConfig.DEBUG</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> XposedCompat.cacheDir </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> base?.cacheDir</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> XposedCompat.context </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> base</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> XposedCompat.classLoader </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> javaClass.classLoader</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> XposedCompat.isFirstApplication </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> base?.processName </span><span style="color:#F47067;">==</span><span style="color:#ADBAC7;"> base?.packageName</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Load YukiHookAPI</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> YukiHookAPI.</span><span style="color:#DCBDFB;">encase</span><span style="color:#ADBAC7;">(base) {</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 style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">super</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">attachBaseContext</span><span style="color:#ADBAC7;">(base)</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 class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div>`,3),b={id:"whale",tabindex:"-1"},D=s("a",{class:"header-anchor",href:"#whale","aria-hidden":"true"},"#",-1),m={href:"https://github.com/asLody/whale",target:"_blank",rel:"noopener noreferrer"},k=s("blockquote",null,[s("p",null,[s("strong",null,"Required Xposed API dependencies"),n(),s("code",null,"com.wind.xposed:xposed-on-whale")])],-1),g={href:"https://github.com/WindySha/xposed-hook-based-on-whale",target:"_blank",rel:"noopener noreferrer"},f=o(`<blockquote><p>The following example</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:#F47067;">override</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">attachBaseContext</span><span style="color:#ADBAC7;">(base: </span><span style="color:#F69D50;">Context</span><span style="color:#ADBAC7;">?) {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Loading Whale does not require any configuration</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Load YukiHookAPI</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> YukiHookAPI.</span><span style="color:#DCBDFB;">encase</span><span style="color:#ADBAC7;">(base) {</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 style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">super</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">attachBaseContext</span><span style="color:#ADBAC7;">(base)</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></div>`,2);function F(_,x){const a=p("ExternalLinkIcon");return c(),i("div",null,[t,s("h3",d,[A,n(),s("a",u,[n("Pine"),e(a)])]),y,s("h3",h,[B,n(),s("a",C,[n("SandHook"),e(a)])]),v,s("h3",b,[D,n(),s("a",m,[n("Whale"),e(a)])]),k,s("p",null,[n("Please refer to "),s("a",g,[n("xposed-hook-based-on-whale"),e(a)]),n(".")]),f])}const H=l(r,[["render",F],["__file","api-using.html.vue"]]);export{H as default};
|