import{_ as l,r as p,o as c,c as r,b as s,d as e,a as o,e as n}from"./app.99fcdd51.js";const t={},i=o(`
\u4F5C\u4E3A Hook API \u901A\u5E38\u4E3A\u505A\u81EA\u8EAB APP \u70ED\u66F4\u65B0\u6216\u529F\u80FD\u9700\u8981\u4EE5\u53CA\u4EA7\u54C1\u6D4B\u8BD5\u7684 Hook \u64CD\u4F5C\u3002
\u4F60\u53EA\u9700\u8981\u96C6\u6210 com.highcapable.yukihookapi:api
\u4F9D\u8D56\u5373\u53EF\u3002
\u7136\u540E\u8BF7\u96C6\u6210\u4F60\u76EE\u6807\u4F7F\u7528\u7684 Hook Framework
\u4F9D\u8D56\u3002
\u521B\u5EFA\u4F60\u7684\u81EA\u5B9A\u4E49 Application
\u3002
\u5728 attachBaseContext
\u4E2D\u6DFB\u52A0 YukiHookAPI.encase
\u65B9\u6CD5\u3002
\u793A\u4F8B\u5982\u4E0B
class MyApplication : Application() {
override fun attachBaseContext(base: Context?) {
// \u88C5\u8F7D Hook Framework
//
// Your code here.
//
// \u914D\u7F6E YukiHookAPI
YukiHookApi.configs {
// Your code here.
}
// \u88C5\u8F7D YukiHookAPI
YukiHookAPI.encase(base) {
// Your code here.
}
super.attachBaseContext(base)
}
}
\u8FD9\u6837\uFF0C\u4F60\u5C31\u5B8C\u6210\u4E86 API \u7684\u76F8\u5173\u914D\u7F6E\u3002
\u4F60\u53EF\u4EE5 \u70B9\u51FB\u8FD9\u91CC \u67E5\u770B\u5F02\u540C\u70B9\u548C\u6CE8\u610F\u4E8B\u9879\u3002
\u6CE8\u610F
\u4F60\u4E0D\u80FD\u518D\u4F7F\u7528 loadApp \u8FDB\u884C\u5305\u88C5\uFF0C\u53EF\u76F4\u63A5\u5F00\u59CB\u7F16\u5199\u4F60\u7684 Hook \u4EE3\u7801\u3002
`,15),d={id:"pine",tabindex:"-1"},A=s("a",{class:"header-anchor",href:"#pine","aria-hidden":"true"},"#",-1),y=n(),u={href:"https://github.com/canyie/pine",target:"_blank",rel:"noopener noreferrer"},B=n("Pine"),C=o(`\u8FD9\u91CC\u7ED9\u51FA\u4E86\u4E00\u4E9B\u8F83\u9AD8\u4F7F\u7528\u7387\u7684
Hook Framework
\u5982\u4F55\u5BF9\u63A5YukiHookAPI
\u7684\u76F8\u5173\u65B9\u5F0F\u3002
\u6240\u9700 Xposed API \u4F9D\u8D56
top.canyie.pine:xposed
\u793A\u4F8B\u5982\u4E0B
override fun attachBaseContext(base: Context?) {
// \u88C5\u8F7D Pine
PineConfig.debug = true
PineConfig.debuggable = BuildConfig.DEBUG
// \u88C5\u8F7D YukiHookAPI
YukiHookAPI.encase(base) {
// Your code here.
}
super.attachBaseContext(base)
}
\u6240\u9700 Xposed API \u4F9D\u8D56
com.swift.sandhook:xposedcompat
\u6216com.swift.sandhook:xposedcompat_new
\u793A\u4F8B\u5982\u4E0B
override fun attachBaseContext(base: Context?) {
// \u88C5\u8F7D SandHook
SandHookConfig.DEBUG = BuildConfig.DEBUG
XposedCompat.cacheDir = base?.cacheDir
XposedCompat.context = base
XposedCompat.classLoader = javaClass.classLoader
XposedCompat.isFirstApplication = base?.processName == base?.packageName
// \u88C5\u8F7D YukiHookAPI
YukiHookAPI.encase(base) {
// Your code here.
}
super.attachBaseContext(base)
}
\u793A\u4F8B\u5982\u4E0B
override fun attachBaseContext(base: Context?) {
// \u88C5\u8F7D Whale \u4E0D\u9700\u8981\u4EFB\u4F55\u914D\u7F6E
// \u88C5\u8F7D YukiHookAPI
YukiHookAPI.encase(base) {
// Your code here.
}
super.attachBaseContext(base)
}