mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-06 10:45:47 +08:00
108 lines
26 KiB
JavaScript
108 lines
26 KiB
JavaScript
import{_ as i,r as o,o as p,c as A,b as s,d as l,w as a,e,a as r}from"./app.71f0fa75.js";const d={},y=s("h1",{id:"introduce",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#introduce","aria-hidden":"true"},"#"),e(" Introduce")],-1),u=s("blockquote",null,[s("p",null,[s("code",null,"YukiHookAPI"),e(" is an integrated Hook API Framework, which does not provide any Hook functions, and needs the support of Xposed related basic APIs.")])],-1),D=s("h2",{id:"background",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#background","aria-hidden":"true"},"#"),e(" Background")],-1),m=s("p",null,[e("This is an efficient Hook API rebuilt based on the Xposed API using "),s("code",null,"Kotlin"),e(", and creates rich function extensions for the development of Xposed Modules.")],-1),C=e("The name is taken from "),B={href:"https://www.bilibili.com/bangumi/play/ss5016",target:"_blank",rel:"noopener noreferrer"},b=e('"\u3082\u3082\u304F\u308A" heroine Yuki Kurihara'),h=e("."),v=e("Formerly the Innocent Xposed API used in "),F={href:"https://github.com/fankes/TMore",target:"_blank",rel:"noopener noreferrer"},k=e("Development Learning Project"),_=e(", now renamed and open sourced."),f=r('<h2 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h2><p><code>YukiHookAPI</code> is built entirely with <code>Kotlin</code> <code>lambda</code> syntax.</p><p>Abandoning the original less friendly <code>XposedHelpers</code>, you can use it to easily create Xposed Modules and easily implement custom Hook API.</p><h2 id="language-requirement" tabindex="-1"><a class="header-anchor" href="#language-requirement" aria-hidden="true">#</a> Language Requirement</h2><p>Please use <code>Kotlin</code>, the framework part of the code composition is also compatible with <code>Java</code> but the implementation of the basic Hook scene <strong>may not work at all</strong>.</p><p>All demo code in this document will be described using <code>Kotlin</code>, if you don't know how to use <code>Kotlin</code> then you may not be able to use <code>YukiHookAPI</code>.</p>',6),g=e("Part of the Java Demo code can be found "),H={href:"https://github.com/fankes/YukiHookAPI/tree/master/samples/demo-module/src/main/java/com/highcapable/yukihookapi/demo_module/hook/java",target:"_blank",rel:"noopener noreferrer"},I=e("here"),P=e(", but not recommended."),w=r('<h2 id="source-of-inspiration" tabindex="-1"><a class="header-anchor" href="#source-of-inspiration" aria-hidden="true">#</a> Source of Inspiration</h2><p>Previously, when we built an Xposed Module, we first needed to create an <code>xposed_init</code> file under <code>assets</code>.</p><p>Then, manually fill in your own entry class name into the file and use <code>XposedHelpers</code> to implement our Hook logic.</p><p>Since <code>Kotlin</code> is the main Android development language, this API is really not very elegant to use.</p><p>Is there any <strong>easy to use, light, elegant</strong> solution?</p><p>With this idea, <code>YukiHookAPI</code> was born.</p><p>Now, we only need to write a small amount of code, and all the time and expense are handed over to automation.</p><p>With <code>Kotlin</code>'s elegant <code>lambda</code> writing and <code>YukiHookAPI</code>, you can make your Hook logic more beautiful and clear.</p><blockquote><p>The following example</p></blockquote>',9),X=s("div",{class:"language-kotlin ext-kt line-numbers-mode"},[s("pre",{class:"shiki",style:{"background-color":"#22272e"}},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#F47067"}},"@InjectYukiHookWithXposed")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#F47067"}},"object"),s("span",{style:{color:"#ADBAC7"}}," HookEntry "),s("span",{style:{color:"#F47067"}},":"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#6CB6FF"}},"IYukiHookXposedInit"),s("span",{style:{color:"#ADBAC7"}}," {")]),e(`
|
|
`),s("span",{class:"line"}),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},"override"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},"fun"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#DCBDFB"}},"onHook"),s("span",{style:{color:"#ADBAC7"}},"() "),s("span",{style:{color:"#F47067"}},"="),s("span",{style:{color:"#ADBAC7"}}," encase {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," loadZygote {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F69D50"}},"ActivityClass"),s("span",{style:{color:"#ADBAC7"}},".hook {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," injectMember {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," method {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," name "),s("span",{style:{color:"#F47067"}},"="),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#96D0FF"}},'"onCreate"')]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," param("),s("span",{style:{color:"#F69D50"}},"BundleClass"),s("span",{style:{color:"#ADBAC7"}},")")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," beforeHook {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#768390"}},"// Your code here.")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," afterHook {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#768390"}},"// Your code here.")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," resources().hook {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," injectResource {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," conditions {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," name "),s("span",{style:{color:"#F47067"}},"="),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#96D0FF"}},'"sym_def_app_icon"')]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," mipmap()")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," replaceToModuleResource("),s("span",{style:{color:"#F69D50"}},"R"),s("span",{style:{color:"#ADBAC7"}},".mipmap.ic_launcher)")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," loadApp(name "),s("span",{style:{color:"#F47067"}},"="),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#96D0FF"}},'"com.android.browser"'),s("span",{style:{color:"#ADBAC7"}},") {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F69D50"}},"ActivityClass"),s("span",{style:{color:"#ADBAC7"}},".hook {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," injectMember {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," method {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," name "),s("span",{style:{color:"#F47067"}},"="),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#96D0FF"}},'"onCreate"')]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," param("),s("span",{style:{color:"#F69D50"}},"BundleClass"),s("span",{style:{color:"#ADBAC7"}},")")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," beforeHook {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#768390"}},"// Your code here.")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," afterHook {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#768390"}},"// Your code here.")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," resources().hook {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," injectResource {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," conditions {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," name "),s("span",{style:{color:"#F47067"}},"="),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#96D0FF"}},'"ic_launcher"')]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," mipmap()")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," replaceToModuleResource("),s("span",{style:{color:"#F69D50"}},"R"),s("span",{style:{color:"#ADBAC7"}},".mipmap.ic_launcher)")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}},"}")]),e(`
|
|
`),s("span",{class:"line"})])]),s("div",{class:"line-numbers","aria-hidden":"true"},[s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"})])],-1),M=s("div",{class:"language-kotlin ext-kt line-numbers-mode"},[s("pre",{class:"shiki",style:{"background-color":"#22272e"}},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#F47067"}},"class"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F69D50"}},"HookEntry"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},":"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#6CB6FF"}},"IXposedHookZygoteInit"),s("span",{style:{color:"#ADBAC7"}},", "),s("span",{style:{color:"#F69D50"}},"IXposedHookLoadPackage"),s("span",{style:{color:"#ADBAC7"}},", "),s("span",{style:{color:"#F69D50"}},"IXposedHookInitPackageResources"),s("span",{style:{color:"#ADBAC7"}}," {")]),e(`
|
|
`),s("span",{class:"line"}),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},"private"),s("span",{style:{color:"#ADBAC7"}}," lateinit "),s("span",{style:{color:"#F47067"}},"var"),s("span",{style:{color:"#ADBAC7"}}," moduleResources"),s("span",{style:{color:"#F47067"}},":"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F69D50"}},"XModuleResources")]),e(`
|
|
`),s("span",{class:"line"}),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},"override"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},"fun"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#DCBDFB"}},"initZygote"),s("span",{style:{color:"#ADBAC7"}},"(sparam"),s("span",{style:{color:"#F47067"}},":"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F69D50"}},"IXposedHookZygoteInit"),s("span",{style:{color:"#ADBAC7"}},"."),s("span",{style:{color:"#F69D50"}},"StartupParam"),s("span",{style:{color:"#ADBAC7"}},") {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," moduleResources "),s("span",{style:{color:"#F47067"}},"="),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F69D50"}},"XModuleResources"),s("span",{style:{color:"#ADBAC7"}},".createInstance(sparam.modulePath, "),s("span",{style:{color:"#6CB6FF"}},"null"),s("span",{style:{color:"#ADBAC7"}},")")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F69D50"}},"XResources"),s("span",{style:{color:"#ADBAC7"}},".setSystemWideReplacement(")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#96D0FF"}},'"android"'),s("span",{style:{color:"#ADBAC7"}},", "),s("span",{style:{color:"#96D0FF"}},'"mipmap"'),s("span",{style:{color:"#ADBAC7"}},", "),s("span",{style:{color:"#96D0FF"}},'"sym_def_app_icon"'),s("span",{style:{color:"#ADBAC7"}},",")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," moduleResources.fwd("),s("span",{style:{color:"#F69D50"}},"R"),s("span",{style:{color:"#ADBAC7"}},".mipmap.ic_launcher)")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," )")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F69D50"}},"XposedHelpers"),s("span",{style:{color:"#ADBAC7"}},".findAndHookMethod(")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," Activity::"),s("span",{style:{color:"#6CB6FF"}},"class"),s("span",{style:{color:"#ADBAC7"}},".java.name,")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#6CB6FF"}},"null"),s("span",{style:{color:"#ADBAC7"}},", "),s("span",{style:{color:"#96D0FF"}},'"onCreate"'),s("span",{style:{color:"#ADBAC7"}},",")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," Bundle::"),s("span",{style:{color:"#6CB6FF"}},"class"),s("span",{style:{color:"#ADBAC7"}},".java,")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},"object"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},":"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F69D50"}},"XC_MethodHook"),s("span",{style:{color:"#ADBAC7"}},"() {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," override fun beforeHookedMethod(param"),s("span",{style:{color:"#F47067"}},":"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F69D50"}},"MethodHookParam?"),s("span",{style:{color:"#ADBAC7"}},") {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},"//"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F69D50"}},"Your"),s("span",{style:{color:"#ADBAC7"}}," code here.")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"}),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," override fun afterHookedMethod(param"),s("span",{style:{color:"#F47067"}},":"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F69D50"}},"MethodHookParam?"),s("span",{style:{color:"#ADBAC7"}},") {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},"//"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F69D50"}},"Your"),s("span",{style:{color:"#ADBAC7"}}," code here.")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," })")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"}),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},"override"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},"fun"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#DCBDFB"}},"handleLoadPackage"),s("span",{style:{color:"#ADBAC7"}},"(lpparam"),s("span",{style:{color:"#F47067"}},":"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F69D50"}},"XC_LoadPackage"),s("span",{style:{color:"#ADBAC7"}},"."),s("span",{style:{color:"#F69D50"}},"LoadPackageParam"),s("span",{style:{color:"#ADBAC7"}},") {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},"if"),s("span",{style:{color:"#ADBAC7"}}," (lpparam.packageName "),s("span",{style:{color:"#F47067"}},"=="),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#96D0FF"}},'"com.android.browser"'),s("span",{style:{color:"#ADBAC7"}},")")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F69D50"}},"XposedHelpers"),s("span",{style:{color:"#ADBAC7"}},".findAndHookMethod(")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," Activity::"),s("span",{style:{color:"#6CB6FF"}},"class"),s("span",{style:{color:"#ADBAC7"}},".java.name,")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," lpparam.classLoader, "),s("span",{style:{color:"#96D0FF"}},'"onCreate"'),s("span",{style:{color:"#ADBAC7"}},",")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," Bundle::"),s("span",{style:{color:"#6CB6FF"}},"class"),s("span",{style:{color:"#ADBAC7"}},".java,")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},"object"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},":"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F69D50"}},"XC_MethodHook"),s("span",{style:{color:"#ADBAC7"}},"() {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," override fun beforeHookedMethod(param"),s("span",{style:{color:"#F47067"}},":"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F69D50"}},"MethodHookParam?"),s("span",{style:{color:"#ADBAC7"}},") {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},"//"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F69D50"}},"Your"),s("span",{style:{color:"#ADBAC7"}}," code here.")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"}),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," override fun afterHookedMethod(param"),s("span",{style:{color:"#F47067"}},":"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F69D50"}},"MethodHookParam?"),s("span",{style:{color:"#ADBAC7"}},") {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},"//"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F69D50"}},"Your"),s("span",{style:{color:"#ADBAC7"}}," code here.")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," })")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"}),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},"override"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},"fun"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#DCBDFB"}},"handleInitPackageResources"),s("span",{style:{color:"#ADBAC7"}},"(resparam"),s("span",{style:{color:"#F47067"}},":"),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F69D50"}},"XC_InitPackageResources"),s("span",{style:{color:"#ADBAC7"}},"."),s("span",{style:{color:"#F69D50"}},"InitPackageResourcesParam"),s("span",{style:{color:"#ADBAC7"}},") {")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#F47067"}},"if"),s("span",{style:{color:"#ADBAC7"}}," (resparam.packageName "),s("span",{style:{color:"#F47067"}},"=="),s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#96D0FF"}},'"com.android.browser"'),s("span",{style:{color:"#ADBAC7"}},")")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," resparam.res.setReplacement(")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," "),s("span",{style:{color:"#96D0FF"}},'"com.android.browser"'),s("span",{style:{color:"#ADBAC7"}},", "),s("span",{style:{color:"#96D0FF"}},'"mipmap"'),s("span",{style:{color:"#ADBAC7"}},", "),s("span",{style:{color:"#96D0FF"}},'"ic_launcher"'),s("span",{style:{color:"#ADBAC7"}},",")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," moduleResources.fwd("),s("span",{style:{color:"#F69D50"}},"R"),s("span",{style:{color:"#ADBAC7"}},".mipmap.ic_launcher)")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," )")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}}," }")]),e(`
|
|
`),s("span",{class:"line"},[s("span",{style:{color:"#ADBAC7"}},"}")]),e(`
|
|
`),s("span",{class:"line"})])]),s("div",{class:"line-numbers","aria-hidden":"true"},[s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"})])],-1),R=s("p",null,"Yes, you read that right, just needing these codes can completely replace the traditional Xposed API to achieve the same function.",-1),Y=s("p",null,[e("Now, with the help of the efficient and powerful "),s("code",null,"YukiHookAPI"),e(", you can implement a very simple Xposed Module.")],-1);function x(j,L){const n=o("ExternalLinkIcon"),c=o("CodeGroupItem"),t=o("CodeGroup");return p(),A("div",null,[y,u,D,m,s("p",null,[C,s("a",B,[b,l(n)]),h]),s("p",null,[v,s("a",F,[k,l(n)]),_]),f,s("p",null,[g,s("a",H,[I,l(n)]),P]),w,l(t,null,{default:a(()=>[l(c,{title:"Yuki Hook API"},{default:a(()=>[X]),_:1}),l(c,{title:"Rovo89 Xposed API"},{default:a(()=>[M]),_:1})]),_:1}),R,Y])}const N=i(d,[["render",x],["__file","home.html.vue"]]);export{N as default};
|