Files
YukiHookAPI/docs/assets/changelog.html.404c5ab3.js

2 lines
73 KiB
JavaScript

import{_ as s,r as t,o as n,c as a,b as e,d,e as o,a as c}from"./app.c86510cc.js";const r={},_=e("h1",{id:"\u66F4\u65B0\u65E5\u5FD7",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#\u66F4\u65B0\u65E5\u5FD7","aria-hidden":"true"},"#"),o(" \u66F4\u65B0\u65E5\u5FD7")],-1),h=e("blockquote",null,[e("p",null,[o("\u8FD9\u91CC\u8BB0\u5F55\u4E86 "),e("code",null,"YukiHookAPI"),o(" \u7684\u7248\u672C\u66F4\u65B0\u5386\u53F2\u3002")])],-1),u=e("div",{class:"custom-container danger"},[e("p",{class:"custom-container-title"},"\u7279\u522B\u6CE8\u610F"),e("p",null,"\u6211\u4EEC\u53EA\u4F1A\u5BF9\u6700\u65B0\u7684 API \u7248\u672C\u8FDB\u884C\u7EF4\u62A4\uFF0C\u82E5\u4F60\u6B63\u5728\u4F7F\u7528\u8FC7\u65F6\u7684 API \u7248\u672C\u5219\u4EE3\u8868\u4F60\u81EA\u613F\u653E\u5F03\u4E00\u5207\u7EF4\u62A4\u7684\u53EF\u80FD\u6027\u3002")],-1),k={id:"_1-1-9-2023-04-17",tabindex:"-1"},p=e("a",{class:"header-anchor",href:"#_1-1-9-2023-04-17","aria-hidden":"true"},"#",-1),g=o(" 1.1.9 | 2023.04.17 \u2002"),H=c("<ul><li>\u5C06\u4F9D\u8D56\u5E93\u7684\u7C7B\u578B\u7531 <strong>Java Library</strong> (jar) \u4FEE\u6539\u4E3A <strong>Android Library</strong> (aar)</li><li>\u79FB\u9664\u901A\u8FC7 Hook \u6216\u53CD\u5C04 API \u5185\u90E8\u65B9\u6CD5\u3001\u53C2\u6570\u7684\u68C0\u67E5\u529F\u80FD</li><li>\u4FEE\u590D <code>YukiHookDataChannel</code> \u81EA\u52A8\u5206\u6BB5\u53D1\u9001\u6570\u636E\u529F\u80FD\u4E0D\u80FD\u6B63\u5E38\u751F\u6548 (\u4F9D\u7136\u4F1A\u629B\u51FA\u5F02\u5E38) \u7684\u95EE\u9898</li><li>\u65B0\u589E\u53EF\u4EE5\u624B\u52A8\u6839\u636E\u76EE\u6807\u8BBE\u5907\u7684\u9650\u5236\u4FEE\u6539 <code>YukiHookDataChannel</code> \u5141\u8BB8\u4E00\u6B21\u53D1\u9001\u7684\u6700\u5927\u6570\u636E\u5B57\u8282\u5927\u5C0F</li><li>\u79FB\u9664 <code>YukiHookDataChannel</code> \u53EA\u80FD\u5728\u6A21\u5757 <code>Activity</code> \u4E2D\u4F7F\u7528\u7684\u9650\u5236\uFF0C\u73B0\u5728\u4F60\u53EF\u4EE5\u5728\u4EFB\u4F55\u5730\u65B9\u4F7F\u7528\u5B83</li><li>\u4FEE\u6539\u5E76\u89C4\u8303 <code>YukiHookDataChannel</code> \u4F7F\u7528\u7684\u5E7F\u64AD Action \u540D\u79F0</li><li>\u4FEE\u590D <code>YukiHookDataChannel</code> \u5728\u4E0D\u540C\u6A21\u5757\u540C\u4E00\u5BBF\u4E3B\u7684\u60C5\u51B5\u4E0B\u51FA\u73B0 <code>BadParcelableException</code> \u5F02\u5E38\u7684\u95EE\u9898</li><li>\u65B0\u589E <code>ExecutorType</code>\uFF0C\u53EF\u4EE5\u901A\u8FC7 <code>YukiHookAPI.Status.Executor.type</code> \u6765\u83B7\u53D6\u5DF2\u77E5 Hook Framework \u7684\u7C7B\u578B</li><li><s><code>YukiHookModulePrefs</code></s> \u66F4\u540D\u4E3A <code>YukiHookPrefsBridge</code></li><li>\u4FEE\u6539 <code>YukiHookPrefsBridge</code> \u4E3A\u975E\u5355\u4F8B\u5B9E\u73B0\uFF0C\u4F5C\u4E3A\u5355\u4F8B\u53EF\u80FD\u53D1\u751F\u6570\u636E\u6DF7\u6DC6\u7684\u95EE\u9898</li><li>\u4F5C\u5E9F\u4E86 <s><code>Context.modulePrefs(...)</code></s> \u65B9\u6CD5\uFF0C\u8BF7\u8F6C\u79FB\u5230 <code>Context.prefs(...)</code></li><li><code>YukiHookPrefsBridge</code> \u65B0\u589E <code>native</code> \u65B9\u6CD5\uFF0C\u652F\u6301\u76F4\u63A5\u4F5C\u4E3A\u539F\u751F\u5B58\u50A8\u5728\u6A21\u5757\u548C\u5BBF\u4E3B\u4E2D\u5B58\u50A8\u79C1\u6709\u6570\u636E</li><li>\u6574\u5408 <code>YukiHookPrefsBridge</code> \u4E2D\u7684\u5B58\u50A8\u65B9\u6CD5\u5230 <code>YukiHookPrefsBridge.Editor</code>\uFF0C\u8BF7\u4F7F\u7528 <code>edit</code> \u65B9\u6CD5\u6765\u5B58\u50A8\u6570\u636E</li><li><code>YukiHookPrefsBridge</code> \u65B0\u589E <code>contains</code> \u65B9\u6CD5</li><li>\u7F13\u5B58 <code>YukiHookPrefsBridge</code> \u4E2D\u52A8\u6001\u521B\u5EFA\u7684\u4EE3\u7406\u5BF9\u8C61\uFF0C\u5C1D\u8BD5\u4FEE\u590D\u53EF\u80FD\u4F1A\u5BFC\u81F4\u5BBF\u4E3B\u3001\u6A21\u5757\u51FA\u73B0 OOM \u7684\u95EE\u9898</li><li>\u4FEE\u6539 <code>Activity</code> \u4EE3\u7406\u529F\u80FD\u7684\u4EE3\u7406\u7C7B\u4E3A\u52A8\u6001\u751F\u6210\uFF0C\u9632\u6B62\u4E0D\u540C\u6A21\u5757\u6CE8\u5165\u5BBF\u4E3B\u540E\u9020\u6210\u51B2\u7A81</li><li>\u4FEE\u590D\u4E00\u4E9B\u5176\u5B83\u53EF\u80FD\u51FA\u73B0\u7684\u95EE\u9898</li></ul>",1),f={id:"_1-1-8-2023-02-01",tabindex:"-1"},m=e("a",{class:"header-anchor",href:"#_1-1-8-2023-02-01","aria-hidden":"true"},"#",-1),P=o(" 1.1.8 | 2023.02.01 \u2002"),b=o("\u4FEE\u590D\u5E95\u5C42 Hook \u65B9\u6CD5\u5728\u56DE\u8C03\u65F6\u4FEE\u6539 "),y=e("code",null,"result",-1),x=o(" \u7B49\u53C2\u6570\u65F6\u65F6\u4E0D\u80FD\u540C\u6B65\u66F4\u65B0\u4FEE\u6539\u540E\u7684\u72B6\u6001\u95EE\u9898\uFF0C\u611F\u8C22 "),C={href:"https://github.com/elvizlai",target:"_blank",rel:"noopener noreferrer"},A=o("Yongzheng Lai"),v=o(" \u7684 "),Y={href:"https://github.com/fankes/YukiHookAPI/issues/23",target:"_blank",rel:"noopener noreferrer"},M=o("Issue"),I=c("<li>\u79FB\u52A8 <code>YukiHookAPI</code> \u81EA\u52A8\u751F\u6210\u7684\u5165\u53E3\u7C7B\u540D\u79F0\u6587\u4EF6 <code>assets/yukihookapi_init</code> \u5230 <code>resources/META-INF/yukihookapi_init</code></li><li>\u5141\u8BB8\u5728\u4EC5\u6253\u5370\u5F02\u5E38\u5806\u6808\u65F6 <code>msg</code> \u53C2\u6570\u4E3A\u7A7A\u5E76\u53EF\u4EE5\u4E0D\u8BBE\u7F6E <code>msg</code> \u53C2\u6570\uFF0C\u7559\u7A7A <code>msg</code> \u53C2\u6570\u7684\u65E5\u5FD7\u9664\u975E\u5F02\u5E38\u5806\u6808\u4E0D\u4E3A\u7A7A\u5426\u5219\u5C06\u4E0D\u4F1A\u88AB\u8BB0\u5F55</li><li>\u4FEE\u590D Hook \u56DE\u8C03\u65B9\u6CD5\u4F53\u5185\u53D1\u751F\u7684\u5F02\u5E38\u6253\u5370\u7684\u65E5\u5FD7\u65E0\u5177\u4F53\u65B9\u6CD5\u4FE1\u606F\u7684 BUG</li><li><code>HookParam</code> \u65B0\u589E <code>instanceOrNull</code> \u53D8\u91CF\u4E0E\u65B9\u6CD5\uFF0C\u53EF\u4EE5\u5728\u4E0D\u786E\u5B9A Hook \u5B9E\u4F8B\u662F\u5426\u4E3A\u7A7A\u7684\u524D\u63D0\u4E0B\u4F7F\u7528\u4EE5\u9632\u6B62 Hook \u5B9E\u4F8B\u4E3A\u7A7A\u629B\u51FA\u5F02\u5E38</li><li>\u89E3\u8026\u5408\u6240\u6709 <code>Member</code> \u67E5\u627E\u529F\u80FD\u4E2D\u7684 Hooker \u5230 <code>MemberBaseFinder.MemberHookerManager</code></li><li>\u4FEE\u6539\u4E86 <code>YukiMemberHookCreator</code> \u4E2D\u7684 <code>by</code> \u6761\u4EF6\u7528\u6CD5\uFF0C\u73B0\u5728\u53EF\u4EE5\u91CD\u590D\u4F7F\u7528 <code>by</code> \u65B9\u6CD5\u8BBE\u7F6E\u591A\u4E2A\u6761\u4EF6</li><li>\u79FB\u9664\u4E86 Android <code>type</code> \u4E2D\u7684\u9519\u8BEF <code>Class</code> \u5BF9\u8C61\u58F0\u660E</li><li><code>PackageParam.AppLifecycle</code> \u4E2D\u7684 <code>registerReceiver</code> \u65B9\u6CD5\u65B0\u589E\u76F4\u63A5\u4F7F\u7528 <code>IntentFilter</code> \u521B\u5EFA\u7CFB\u7EDF\u5E7F\u64AD\u76D1\u542C\u7684\u529F\u80FD</li><li>\u4FEE\u590D\u5728 <code>PackageParam.AppLifecycle</code> \u4E2D\u53EF\u80FD\u5B58\u5728\u591A\u6B21\u6CE8\u518C\u751F\u547D\u5468\u671F\u7684\u95EE\u9898</li><li>Revert: 1.1.7 \u7248\u672C\u7531\u4E8E\u6709\u4E00\u4E2A\u4E25\u91CD\u95EE\u9898\u5DF2\u7ECF\u64A4\u56DE\uFF0C\u8BF7\u76F4\u63A5\u66F4\u65B0\u5230\u6B64\u7248\u672C\u5373\u53EF (\u66F4\u65B0\u65E5\u5FD7\u540C 1.1.7 \u7248\u672C)</li>",10),R={id:"_1-1-6-2023-01-21",tabindex:"-1"},S=e("a",{class:"header-anchor",href:"#_1-1-6-2023-01-21","aria-hidden":"true"},"#",-1),L=o(" 1.1.6 | 2023.01.21 \u2002"),X=c("<ul><li>\u4FEE\u590D Xposed \u6A21\u5757\u88C5\u8F7D\u65F6\u53EF\u80FD\u5B58\u5728\u540C\u4E00\u4E2A\u8FDB\u7A0B\u591A\u4E2A\u5305\u540D\u7684\u60C5\u51B5\u5BFC\u81F4 <code>PackageParam</code> \u4FDD\u6301\u5355\u4F8B\u540E <code>ClassLoader</code> \u4E0D\u7B26\u7684\u4E25\u91CD\u95EE\u9898</li><li>\u65B0\u589E\u540C\u4E00\u4E2A\u8FDB\u7A0B\u591A\u4E2A\u5305\u540D\u7684\u60C5\u51B5\u4E0B\u672A\u533A\u5206\u5305\u540D\u65F6\uFF0C\u505C\u6B62\u88C5\u8F7D\u5355\u4F8B\u5316\u7684\u5B50 Hooker \u5E76\u6253\u5370\u8B66\u544A\u4FE1\u606F</li><li>\u4FEE\u590D <code>HookParam.callOriginal</code>\u3001<code>HookParam.invokeOriginal</code> \u7B49\u65B9\u6CD5\u8C03\u7528\u539F\u59CB\u65B9\u6CD5\u65F6\u53C2\u6570\u4E2A\u6570\u4E0D\u6B63\u786E\u7684\u95EE\u9898</li><li>\u4FEE\u6539 <code>MethodFinder</code>\u3001<code>ConstructorFinder</code>\u3001<code>ReflectionFactory</code> \u4E2D\u53CD\u5C04\u8C03\u7528\u7684\u65B9\u6CD5\u53C2\u6570\u540D <code>param</code> \u4E3A <code>args</code></li><li>\u65B0\u589E Xposed \u6A21\u5757\u81EA\u52A8\u5904\u7406\u7A0B\u5E8F\u4E2D\u5224\u65AD\u5165\u53E3\u7C7B\u6784\u9020\u65B9\u6CD5\u53C2\u6570\u529F\u80FD\uFF0C\u5165\u53E3\u7C7B\u9700\u8981\u4FDD\u8BC1\u5176\u4E0D\u5B58\u5728\u4EFB\u4F55\u6784\u9020\u65B9\u6CD5\u53C2\u6570</li></ul>",1),F={id:"_1-1-5-2023-01-13",tabindex:"-1"},D=e("a",{class:"header-anchor",href:"#_1-1-5-2023-01-13","aria-hidden":"true"},"#",-1),B=o(" 1.1.5 | 2023.01.13 \u2002"),w=c('<ul><li>\u89C4\u8303\u5E76\u4F18\u5316\u6574\u4F53\u4EE3\u7801\u98CE\u683C</li><li>\u5BF9\u90E8\u5206\u5185\u90E8\u8C03\u7528\u7684 API \u8FDB\u884C\u4E86\u79C1\u6709\u5316\u5904\u7406</li><li>\u5E95\u5C42 API \u63A5\u53E3\u6574\u4F53\u89E3\u8026\u5408\uFF0C\u4E3A\u517C\u5BB9\u66F4\u591A Hook Framework \u505A\u51C6\u5907</li><li>\u5C06\u90E8\u5206\u96C6\u6210\u4E8E API \u4E2D\u7684\u529F\u80FD\u79FB\u52A8\u5230 <code>ksp-xposed</code> \u4F9D\u8D56 (\u89E3\u8026\u5408)\uFF0C\u5355\u72EC\u5F15\u5165 <code>api</code> \u4F9D\u8D56\u5C06\u4E0D\u518D\u5305\u542B\u7B2C\u4E09\u65B9\u5E93\u7B49\u529F\u80FD\u7684\u5F15\u7528</li><li>\u6587\u6863 <a href="../guide/quick-start">\u5FEB\u901F\u5F00\u59CB</a> \u9875\u9762\u52A0\u5165 <code>YukiHookAPI.Configs.isDebug</code> \u4F55\u65F6\u9700\u8981\u5173\u95ED\u7684\u8BF4\u660E</li><li>\u89C4\u8303\u7C7B\u578B\u5B9A\u4E49\u4E2D\u7684 Java \u539F\u59CB\u7C7B\u578B (Primitive Type) \u5E76\u540C\u6B65\u66F4\u65B0\u5230\u6587\u6863</li><li>Java <code>type</code> \u65B0\u589E <code>NumberClass</code> \u7C7B\u578B</li><li>\u6539\u8FDB\u4E86 (Xposed) \u5BBF\u4E3B\u73AF\u5883\u7684\u8BC6\u522B\u80FD\u529B</li><li>\u63A5\u7BA1\u4E86 Xposed \u6A21\u5757\u88C5\u8F7D\u540E\u7684\u5168\u90E8\u5F02\u5E38\uFF0C\u82E5\u53D1\u751F\u5F02\u5E38\u5C06\u4F1A\u81EA\u52A8\u62E6\u622A\u5E76\u6253\u5370\u9519\u8BEF\u65E5\u5FD7</li><li>\u4FEE\u6539\u7C7B\u578B\u5B9A\u4E49\u4E2D\u8F83\u4F4E Android \u7CFB\u7EDF\u7248\u672C (Android 5.0) \u4E2D\u4E0D\u5B58\u5728\u7684 <code>Class</code> \u4E3A\u7A7A\u5B89\u5168\u7C7B\u578B</li><li>\u9002\u914D\u5E76\u652F\u6301\u539F\u751F Xposed\uFF0C\u6700\u4F4E\u63A8\u8350\u7248\u672C\u4E3A Android 7.0</li><li>Hook \u5165\u53E3\u7C7B\u65B0\u589E\u652F\u6301\u58F0\u660E\u4E3A <code>object</code> \u7C7B\u578B (\u5355\u4F8B)</li><li>\u4FEE\u590D Android 8 \u4EE5\u4E0B\u7CFB\u7EDF\u4E0D\u652F\u6301 <code>Executable</code> \u7C7B\u578B\u5BFC\u81F4 Hook \u5931\u6548\u7684\u95EE\u9898</li><li>\u4FEE\u590D Android 9 \u4EE5\u4E0B\u7CFB\u7EDF\u5728\u4F7F\u7528 <code>Activity</code> \u4EE3\u7406\u529F\u80FD\u65F6\u62A5\u9519\u95EE\u9898\u5E76\u9650\u5236\u6B64\u529F\u80FD\u6700\u4F4E\u652F\u6301\u7248\u672C\u4E3A Android 7.0</li><li>\u65B0\u589E\u7981\u6B62\u8D44\u6E90\u6CE8\u5165\u4E0E <code>Activity</code> \u4EE3\u7406\u529F\u80FD\u6CE8\u5165\u5F53\u524D\u6A21\u5757\u81EA\u8EAB\u5B9E\u4F8B\u8FDB\u7A0B\uFF0C\u9632\u6B62\u53D1\u751F\u95EE\u9898</li><li>\u4FEE\u590D\u4E00\u4E2A Hook \u8FC7\u7A0B\u4E2D\u65B9\u6CD5\u8FD4\u56DE\u503C\u7684\u5BF9\u8C61\u662F\u76EE\u6807\u7684\u7EE7\u627F\u7C7B\u548C\u63A5\u53E3\u65F6\u88AB\u8BC6\u522B\u4E3A\u8FD4\u56DE\u503C\u4E0D\u7B26\u7684\u4E25\u91CD\u9519\u8BEF</li><li>\u4FEE\u590D\u5728\u5F53\u524D Hook \u7684\u5B9E\u4F8B\u5BF9\u8C61\u662F\u9759\u6001\u7684\u60C5\u51B5\u4E0B\u8C03\u7528 <code>HookParam.callOriginal</code>\u3001<code>HookParam.invokeOriginal</code> \u51FA\u73B0\u5BF9\u8C61\u4E3A\u7A7A\u95EE\u9898</li><li>\u4F18\u5316\u5BF9\u592A\u6781\u6FC0\u6D3B\u65B9\u6CD5\u76F8\u5173\u5224\u65AD\u529F\u80FD\u4EE5\u53CA\u540C\u6B65\u66F4\u65B0\u6587\u6863\u76F8\u5173\u8BF4\u660E</li><li>\u4F5C\u5E9F\u4E86 <s><code>YukiHookAPI.Status.executorName</code></s>\u3001<s><code>YukiHookAPI.Status.executorVersion</code></s>\uFF0C\u8BF7\u8F6C\u79FB\u5230 <code>YukiHookAPI.Status.Executor</code></li><li>\u9002\u914D\u4E86\u4E00\u4E9B\u7B2C\u4E09\u65B9 Hook Framework \u7684 <code>YukiHookAPI.Status.Executor.name</code> \u540D\u79F0\u663E\u793A\u529F\u80FD</li><li>\u65B0\u589E <code>Class.extends</code>\u3001<code>Class.implements</code> \u7B49\u65B9\u6CD5\uFF0C\u53EF\u66F4\u52A0\u65B9\u4FBF\u5730\u5224\u65AD\u5F53\u524D <code>Class</code> \u7684\u7EE7\u627F\u4E0E\u63A5\u53E3\u5173\u7CFB</li><li>\u65B0\u589E <code>Class.toClass</code>\u3001<code>Class.toClassOrNull</code> \u7B49\u76F8\u5173\u65B9\u6CD5\u7684\u540C\u540D\u6CDB\u578B\u65B9\u6CD5\uFF0C\u53EF\u4F7F\u7528\u6CDB\u578B\u6765\u7EA6\u675F\u5DF2\u77E5 <code>Class</code> \u7684\u5B9E\u4F8B\u5BF9\u8C61\u7C7B\u578B</li><li>\u4FEE\u6539 <code>classOf&lt;T&gt;</code> \u65B9\u6CD5\u7684\u8FD4\u56DE\u503C\u4E3A\u6CDB\u578B <code>T</code>\uFF0C\u4EE5\u7EA6\u675F\u5DF2\u77E5 <code>Class</code> \u7684\u5B9E\u4F8B\u5BF9\u8C61\u7C7B\u578B</li><li>\u65B0\u589E <code>Class</code> \u76F8\u5173\u6269\u5C55\u65B9\u6CD5\u7684 <code>initialize</code> \u53C2\u6570\uFF0C\u53EF\u63A7\u5236\u5728\u5F97\u5230 <code>Class</code> \u5BF9\u8C61\u65F6\u662F\u5426\u540C\u65F6\u521D\u59CB\u5316\u5176\u9759\u6001\u65B9\u6CD5\u5757</li><li>\u53D8\u91CF\u3001\u65B9\u6CD5\u3001\u6784\u9020\u65B9\u6CD5\u67E5\u627E\u529F\u80FD\u4E2D\u65B0\u589E <code>param { ... }</code>\u3001<code>type { ... }</code> \u7B49\u7528\u6CD5\uFF0C\u53EF\u5BF9\u67E5\u627E\u7684\u5BF9\u8C61\u589E\u52A0\u66F4\u52A0\u5177\u4F53\u7684\u6761\u4EF6\u5224\u65AD</li><li><code>PackageParam</code> \u7684 <code>loadApp</code> \u65B9\u6CD5\u65B0\u589E <code>isExcludeSelf</code> \u53C2\u6570\uFF0C\u53EF\u7528\u4E8E\u6392\u9664 Hook \u76F8\u5173\u529F\u80FD\u6CE8\u5165\u6A21\u5757\u81EA\u8EAB\u5B9E\u4F8B\u8FDB\u7A0B</li><li><code>PackageParam</code> \u7684 <code>onAppLifecycle</code> \u65B9\u6CD5\u65B0\u589E <code>isOnFailureThrowToApp</code> \u53C2\u6570\uFF0C\u53EF\u5C06\u751F\u547D\u5468\u671F\u65B9\u6CD5\u4F53\u5185\u53D1\u751F\u7684\u5F02\u5E38\u76F4\u63A5\u629B\u7ED9\u5BBF\u4E3B</li><li>\u4FEE\u6539 <code>PackageParam</code> \u4E2D\u7684 <code>appClassLoader</code> \u4E3A\u53EF\u4FEE\u6539\u53D8\u91CF\uFF0C\u53EF\u5728 Hook \u8FC7\u7A0B\u4E2D\u52A8\u6001\u8BBE\u7F6E\u5BBF\u4E3B\u4F7F\u7528\u7684 <code>ClassLoader</code></li><li><code>HookParam</code> \u4E2D\u65B0\u589E <code>dataExtra</code> \u529F\u80FD\uFF0C\u53EF\u7528\u4E8E\u4E34\u65F6\u5B58\u50A8 Hook \u65B9\u6CD5\u4F53\u4E2D\u7684\u6570\u636E</li><li>\u4F5C\u5E9F <code>YukiHookModulePrefs</code> \u4E2D\u7684 <s><code>isRunInNewXShareMode</code></s>\u3001<s><code>isXSharePrefsReadable</code></s>\uFF0C\u7EDF\u4E00\u5408\u5E76\u5230 <code>isPreferencesAvailable</code></li><li><code>Class.allFields</code>\u3001<code>Class.allMethods</code> \u7B49\u76F8\u5173\u65B9\u6CD5\u65B0\u589E <code>isAccessible</code> \u53C2\u6570\uFF0C\u53EF\u63A7\u5236\u6210\u5458\u5BF9\u8C61\u4F55\u65F6\u53EF\u88AB\u8BBE\u7F6E\u4E3A\u53EF\u8BBF\u95EE\u7C7B\u578B</li><li>\u4FEE\u590D <code>YukiHookDataChannel</code> \u5B58\u5728\u591A\u4E2A\u5BBF\u4E3B\u65F6\u5728\u4E00\u4E2A <code>Activity</code> \u4E2D\u63A5\u6536\u76F8\u540C\u952E\u503C\u6570\u636E\u65F6\u4EC5\u4F1A\u56DE\u8C03\u6700\u540E\u4E00\u4E2A\u65B9\u6CD5\u4F53\u7684\u95EE\u9898</li><li><code>YukiHookDataChannel</code> \u7684 <code>wait</code> \u7B49\u76F8\u5173\u65B9\u6CD5\u4E2D\u65B0\u589E <code>priority</code> \u53C2\u6570\uFF0C\u53EF\u4F20\u5165 <code>ChannelPriority</code> \u6765\u81EA\u5B9A\u4E49\u56DE\u8C03\u6570\u636E\u7ED3\u679C\u7684\u6761\u4EF6</li><li><code>YukiHookDataChannel</code> \u65B0\u589E\u53D1\u9001\u6570\u636E\u65F6\u81EA\u52A8\u4F7F\u7528 <code>ChannelDataWrapper</code> \u7C7B\u578B\u5305\u88C5\u529F\u80FD\uFF0C\u63D0\u5347\u4F7F\u7528\u4F53\u9A8C\u5E76\u589E\u5F3A\u6570\u636E\u4FDD\u62A4</li><li><code>YukiHookDataChannel</code> \u65B0\u589E\u9650\u5236\u4E00\u6B21\u6027\u53D1\u9001\u6570\u636E\u7684\u6700\u5927\u5B57\u8282\u5927\u5C0F\u529F\u80FD\uFF0C\u9632\u6B62\u6570\u636E\u8FC7\u5927\u9020\u6210 APP \u5D29\u6E83</li><li><code>YukiHookDataChannel</code> \u65B0\u589E\u53D1\u9001\u6570\u636E\u8FC7\u5927\u65F6\u81EA\u52A8\u5206\u6BB5\u53D1\u9001\u529F\u80FD\uFF0C\u4EC5\u652F\u6301 <code>List</code>\u3001<code>Map</code>\u3001<code>Set</code>\u3001<code>String</code> \u7C7B\u578B</li><li><code>YukiHookLogger</code> \u65B0\u589E <code>contents</code> \u65B9\u6CD5\u4E0E <code>saveToFile</code> \u7684 <code>data</code> \u53C2\u6570\uFF0C\u53EF\u4F20\u5165\u81EA\u5B9A\u4E49\u7684\u8C03\u8BD5\u65E5\u5FD7\u6570\u636E\u8FDB\u884C\u683C\u5F0F\u5316\u6216\u4FDD\u5B58\u5230\u6587\u4EF6</li><li>\u4FEE\u590D <code>YukiHookLogger</code> \u5904\u7406\u540E\u7684\u8C03\u8BD5\u65E5\u5FD7\u6570\u636E\u5305\u540D\u53EF\u80FD\u5728 (Xposed) \u5BBF\u4E3B\u73AF\u5883\u4E0D\u6B63\u786E\u7684\u95EE\u9898</li><li>\u4FEE\u590D Xposed \u6A21\u5757\u88C5\u8F7D\u8D44\u6E90\u94A9\u5B50 (Resources Hook) \u4E8B\u4EF6\u65F6\u5728\u90E8\u5206\u7CFB\u7EDF\u4E0A (\u90E8\u5206\u7CFB\u7EDF APP \u4E2D) \u5305\u540D\u53EF\u80FD\u4E0D\u6B63\u786E\u7684\u95EE\u9898</li></ul>',1),U={id:"_1-1-4-2022-10-04",tabindex:"-1"},W=e("a",{class:"header-anchor",href:"#_1-1-4-2022-10-04","aria-hidden":"true"},"#",-1),E=o(" 1.1.4 | 2022.10.04 \u2002"),T=c("<ul><li>\u4FEE\u590D <code>YukiHookDataChannel</code> \u53EF\u80FD\u4E0D\u80FD\u54CD\u5E94\u7CFB\u7EDF\u6846\u67B6\u4E2D\u54CD\u5E94\u5E7F\u64AD\u4E8B\u4EF6\u7684\u95EE\u9898\uFF0C\u5728 Android 13 \u4E2D\u590D\u73B0</li><li>\u4FEE\u590D <code>YukiHookDataChannel</code> \u957F\u8FBE\u591A\u4E2A\u7248\u672C\u5728 (Xposed) \u5BBF\u4E3B\u73AF\u5883\u65E0\u6CD5\u4E0E\u6A21\u5757\u901A\u8BAF\u7684\u95EE\u9898</li><li><code>YukiHookDataChannel</code> \u4E2D\u65B0\u589E <code>obtainLoggerInMemoryData</code> \u65B9\u6CD5\uFF0C\u53EF\u5728\u6A21\u5757\u4E0E\u5BBF\u4E3B\u4E4B\u95F4\u5171\u4EAB\u8C03\u8BD5\u65E5\u5FD7\u6570\u636E</li><li>\u4FEE\u6539 <code>YukiHookLogger.inMemoryData</code> \u7684\u7C7B\u578B\u4E3A <code>ArrayList</code> \u5E76\u4FEE\u6539 <code>YukiLoggerData</code> \u4E3A <code>data class</code></li><li>\u4FEE\u590D <code>YukiLoggerData</code> \u5728\u6A21\u5757\u4E2D\u5305\u540D\u4E3A\u7A7A\u6253\u5370\u7A7A\u767D\u7684\u95EE\u9898</li><li><code>PackageParam</code> \u4E2D\u65B0\u589E <code>loadApp</code>\u3001<code>loadZygote</code>\u3001<code>loadSystem</code>\u3001<code>withProcess</code> \u7684\u540C\u540D\u591A\u53C2\u6570\u65B9\u6CD5</li><li>\u4FEE\u590D\u4E86\u4E00\u4E9B\u53EF\u80FD\u5B58\u5728\u7684 BUG</li></ul>",1),G={id:"_1-1-3-2022-09-30",tabindex:"-1"},N=e("a",{class:"header-anchor",href:"#_1-1-3-2022-09-30","aria-hidden":"true"},"#",-1),O=o(" 1.1.3 | 2022.09.30 \u2002"),z=e("ul",null,[e("li",null,"\u4FEE\u590D\u4E00\u4E2A\u65E0\u6CD5\u81EA\u5B9A\u4E49 Hook \u5165\u53E3\u7C7B\u540D\u7684\u81F4\u547D\u9519\u8BEF"),e("li",null,[o("\u6DFB\u52A0 "),e("code",null,"LoggerFactory"),o(" \u4E2D\u7684\u90E8\u5206\u4EE3\u7801\u6CE8\u91CA\u6587\u6848\u5E76\u66F4\u65B0\u7279\u8272\u529F\u80FD\u6587\u6863")])],-1),j={id:"_1-1-2-2022-09-30",tabindex:"-1"},V=e("a",{class:"header-anchor",href:"#_1-1-2-2022-09-30","aria-hidden":"true"},"#",-1),Z=o(" 1.1.2 | 2022.09.30 \u2002"),K=c('<ul><li>\u6587\u6863 <a href="../guide/knowledge">\u57FA\u7840\u77E5\u8BC6</a> \u9875\u9762\u65B0\u589E English \u7248\u672C\u53CB\u60C5\u94FE\u63A5</li><li>\u4FEE\u590D <code>YukiBaseHooker</code> \u6CE8\u91CA\u4E2D\u7684 English \u6587\u6863\u94FE\u63A5\u9519\u8BEF\u95EE\u9898</li><li>\u4FEE\u590D <code>ModuleClassLoader</code> \u4E2D\u7684 <code>ClassCastException</code> \u95EE\u9898</li><li>\u4FEE\u6B63\u5E76\u89C4\u8303\u90E8\u5206\u4EE3\u7801\u6CE8\u91CA</li><li>\u65B0\u589E <code>ModuleClassLoader</code> \u6392\u9664\u5217\u8868\u529F\u80FD\uFF0C\u53EF\u4F7F\u7528 <code>excludeHostClasses</code> \u548C <code>excludeModuleClasses</code> \u65B9\u6CD5\u6765\u81EA\u5B9A\u4E49\u6392\u9664\u5217\u8868</li><li>\u65B0\u589E <code>YukiLoggerData</code> \u5B9E\u65F6\u65E5\u5FD7\u6570\u636E\u7C7B\uFF0C\u53EF\u5B9E\u65F6\u901A\u8FC7 <code>YukiHookLogger.inMemoryData</code> \u83B7\u53D6\u65E5\u5FD7\u6570\u7EC4</li><li>\u65B0\u589E <code>ClassLoader.listOfClasses</code> \u65B9\u6CD5\uFF0C\u53EF\u76F4\u63A5\u83B7\u53D6\u5F53\u524D <code>Dex</code> \u4E2D\u7684\u5168\u90E8 <code>Class</code></li></ul>',1),J={id:"_1-1-1-2022-09-28",tabindex:"-1"},q=e("a",{class:"header-anchor",href:"#_1-1-1-2022-09-28","aria-hidden":"true"},"#",-1),Q=o(" 1.1.1 | 2022.09.28 \u2002"),$=e("ul",null,[e("li",null,[o("\u4FEE\u590D\u4E86\u6587\u6863 "),e("a",{href:"../guide/knowledge"},"\u57FA\u7840\u77E5\u8BC6"),o(" \u9875\u9762\u53CB\u60C5\u94FE\u63A5\u9519\u8BEF\u7684\u95EE\u9898")]),e("li",null,[o("\u4FEE\u590D\u4E86\u6587\u6863 "),e("code",null,"favicon"),o(" \u4E0D\u663E\u793A\u7684\u95EE\u9898")]),e("li",null,[o("\u4FEE\u590D "),e("code",null,"DexClassFinder"),o(" \u67E5\u627E\u6761\u4EF6\u4E2D\u7684 BUG")])],-1),ee={id:"_1-1-0-2022-09-28",tabindex:"-1"},oe=e("a",{class:"header-anchor",href:"#_1-1-0-2022-09-28","aria-hidden":"true"},"#",-1),de=o(" 1.1.0 | 2022.09.28 \u2002"),ie=e("li",null,[o("\u8FD9\u662F\u4E00\u6B21\u5927\u7248\u672C\u66F4\u65B0\uFF0C\u6709\u5173\u66F4\u65B0\u65E5\u5FD7\u4E2D\u63D0\u5230\u7684\u53D8\u5316\u53CA\u7528\u6CD5\u8BF7\u53C2\u8003 "),e("a",{href:"../api/home"},"API \u6587\u6863"),o(" \u4EE5\u53CA "),e("a",{href:"../api/special-features/reflection"},"\u7279\u8272\u529F\u80FD")],-1),ce=o("\u66F4\u6362\u5E2E\u52A9\u6587\u6863\u6846\u67B6\u5230 "),le={href:"https://v2.vuepress.vuejs.org",target:"_blank",rel:"noopener noreferrer"},te=o("VuePress"),se=c('<li>\u7EDF\u4E00\u5E76\u89C4\u8303\u6587\u6863\u4E2D\u7684\u672F\u8BED\u540D\u8BCD\uFF0C\u4F8B\u5982\u201C\u67E5\u8BE2\u201D\u4E00\u5F8B\u66F4\u6539\u4E3A\u4E86\u201C\u67E5\u627E\u201D\uFF0C<code>XposedHelper</code> \u62FC\u5199\u9519\u8BEF\u4FEE\u6539\u4E3A\u4E86 <code>XposedHelpers</code></li><li>\u6587\u6863 <a href="../guide/knowledge">\u57FA\u7840\u77E5\u8BC6</a> \u9875\u9762\u52A0\u5165\u53CB\u60C5\u94FE\u63A5\uFF0C\u4EC5\u9650\u7B80\u4F53\u4E2D\u6587</li><li>\u5C06 Hook App Demo \u7684 <code>Class</code> \u4E0E <code>Method</code> \u8F6C\u4E3A Java \u4EE5\u63D0\u4F9B\u66F4\u597D\u7684\u6F14\u793A\u6548\u679C</li><li>\u4FEE\u6B63\u4E86 Hook Module Demo \u4E2D\u7684\u4EE3\u7801\u6CE8\u91CA\u547D\u540D</li><li>\u91CD\u6784\u4E86\u5927\u91CF\u5E95\u5C42 Hook \u903B\u8F91\u53CA Xposed API \u7684\u5BF9\u63A5\u65B9\u5F0F</li><li>\u79FB\u9664\u4E86 <code>HookParamWrapper</code>\uFF0C\u73B0\u5DF2\u5C06\u5176\u76F4\u63A5\u4E0E <code>YukiBridgeFactory</code> \u5BF9\u63A5</li><li>\u79FB\u52A8\u90E8\u5206 <code>YukiHookBridge</code> \u4E2D\u7684\u65B9\u6CD5\u5230 <code>AppParasitics</code></li><li>\u79FB\u9664\u4E86 <code>HookParam.args</code> \u4E0E\u5E95\u5C42\u7684\u76F4\u63A5\u5BF9\u63A5\u65B9\u6CD5 <code>setArgs</code>\uFF0C\u76F4\u63A5\u83B7\u53D6\u5E76\u8BBE\u7F6E\u5F53\u524D\u6570\u7EC4\u7684\u5BF9\u8C61</li><li>\u4F18\u5316\u81EA\u52A8\u5904\u7406\u7A0B\u5E8F\uFF0C\u5C06\u5F15\u7528\u7684 <code>jar</code> \u5408\u5E76\u5230 <code>stub</code> \u9879\u76EE</li>',9),ne=o("\u4FEE\u590D\u591A\u9879\u76EE\u6253\u5305\u65F6\u6A21\u5757\u5305\u540D\u65E0\u6CD5\u6B63\u786E\u5339\u914D\u7684\u95EE\u9898\u4EE5\u53CA\u4FEE\u6539\u81EA\u52A8\u5904\u7406\u7A0B\u5E8F\u7684\u6A21\u5757\u5305\u540D\u5339\u914D\u903B\u8F91\uFF0C\u611F\u8C22 "),ae={href:"https://github.com/5ec1cff",target:"_blank",rel:"noopener noreferrer"},re=o("5ec1cff"),_e=o(" \u7684\u53CD\u9988\u53CA\u63D0\u4F9B\u7684\u89E3\u51B3\u65B9\u6848"),he=c("<li>\u5BF9 API \u79C1\u6709\u5DE5\u5177\u7C7B\u7684\u65B9\u6CD5\u8FDB\u884C\u4E86 internal \u95ED\u5305\u5904\u7406\uFF0C\u907F\u514D\u6C61\u67D3\u9876\u7EA7\u547D\u540D\u7A7A\u95F4</li><li>\u4FEE\u6B63\u4E86\u6240\u6709\u53CD\u5C04\u548C Hook \u7C7B\u7684 <code>Creater</code> \u547D\u540D\u5230 <code>Creator</code></li><li>\u65B0\u589E <code>YukiHookAPI.Status.compiledTimestamp</code> \u529F\u80FD\uFF0C\u53EF\u4EE5\u5728\u4F5C\u4E3A Xposed \u6A21\u5757\u4F7F\u7528\u65F6\u83B7\u53D6\u7F16\u8BD1\u5B8C\u6210\u7684\u65F6\u95F4\u6233</li><li>\u65B0\u589E <code>YukiHookAPI.Status.isXposedEnvironment</code> \u529F\u80FD\uFF0C\u53EF\u4EE5\u5224\u65AD\u5F53\u524D\u4E3A (Xposed) \u5BBF\u4E3B\u73AF\u5883\u8FD8\u662F\u6A21\u5757\u73AF\u5883</li><li>\u8C03\u8BD5\u65E5\u5FD7\u529F\u80FD\u8FDB\u884C\u4E86\u5927\u6539\u7248\uFF0C\u73B0\u5DF2\u5C06 <code>YukiHookAPI.Configs.debugTag</code> \u7B49\u529F\u80FD\u5408\u5E76\u5230 <code>YukiHookLogger.Configs</code> \u4E2D</li><li>\u8C03\u8BD5\u65E5\u5FD7\u65B0\u589E\u53EF\u6307\u5B9A\u6253\u5370\u4F7F\u7528\u7684\u65B9\u6CD5\u4E3A <code>XposedBridge.log</code> \u6216 <code>Logd</code></li><li>\u8C03\u8BD5\u65E5\u5FD7\u4E2D\u9ED8\u8BA4\u52A0\u5165\u5F53\u524D\u5BBF\u4E3B\u7684\u5305\u540D\u4EE5\u53CA\u5F53\u524D\u7528\u6237 ID\uFF0C\u4EE5\u4F9B\u8C03\u8BD5\uFF0C\u4F60\u53EF\u4EE5\u5728 <code>debugLog</code> \u914D\u7F6E\u4E2D\u81EA\u884C\u66F4\u6539</li><li>\u65B0\u589E <code>generic</code> \u529F\u80FD\uFF0C\u53EF\u5BF9\u6CDB\u578B\u8FDB\u884C\u53CD\u5C04\u548C\u8C03\u7528\uFF0C\u4F60\u53EF\u4EE5\u5728 <code>Class</code> \u6216 <code>CurrentClass</code> \u4E2D\u4F7F\u7528\u5B83</li><li>\u4F5C\u5E9F <code>buildOfAny</code> \u65B9\u6CD5\uFF0C\u73B0\u5728\u8BF7\u76F4\u63A5\u4F7F\u7528 <code>buildOf</code> \u65B9\u6CD5 (\u4E0D\u5E26\u6CDB\u578B) \u6765\u4F7F\u7528\u6784\u9020\u65B9\u6CD5\u521B\u5EFA\u65B0\u5BF9\u8C61\u5E76\u5F97\u5230\u7ED3\u679C <code>Any</code></li><li>\u4FEE\u590D <code>hasExtends</code> \u4F7F\u7528\u8FC7\u7A0B\u53D1\u751F\u7A7A\u6307\u9488\u5F02\u5E38\u7684\u95EE\u9898</li><li><code>CurrentClass</code> \u65B0\u589E\u975E <code>lambda</code> \u65B9\u5F0F\u7684\u8C03\u7528\u65B9\u6CD5</li><li><code>CurrentClass</code> \u65B0\u589E <code>name</code> \u4E0E <code>simpleName</code> \u529F\u80FD</li><li>\u5B8C\u5168\u91CD\u5199 <code>ReflectionTool</code> \u7684\u6838\u5FC3\u65B9\u6CD5\uFF0C\u5C06\u4E0D\u540C\u7684\u67E5\u627E\u6761\u4EF6\u8FDB\u884C\u4E86\u6574\u7406\u5206\u7C7B</li><li>\u4FEE\u590D <code>ReflectionTool</code> \u4E2D\u53EF\u80FD\u7684\u76F4\u63A5\u8C03\u7528 <code>declared</code> \u83B7\u53D6\u7684 <code>Member</code> \u629B\u51FA\u5F02\u5E38\u7684\u95EE\u9898</li><li>\u4FEE\u590D <code>ReflectionTool</code> \u4E2D <code>UndefinedType</code> \u672A\u5728 <code>Method</code> \u4E0E <code>Constructor</code> \u6761\u4EF6\u4E2D\u6B63\u786E\u5224\u65AD\u7684\u95EE\u9898</li><li>\u65B0\u589E\u53CD\u5C04\u67E5\u627E\u7ED3\u679C\u53D1\u751F\u5F02\u5E38\u65F6\u7684\u53CB\u597D\u63D0\u793A\u65B9\u5F0F\uFF0C\u53EF\u5177\u4F53\u5B9A\u4F4D\u5230\u6307\u5B9A\u6761\u4EF6\u627E\u4E0D\u5230 <code>Member</code> \u7684\u95EE\u9898</li><li>\u53CD\u5C04\u67E5\u627E <code>Method</code>\u3001<code>Constructor</code> \u4E2D\u65B0\u589E <code>VagueType</code> \u6761\u4EF6\uFF0C\u53EF\u4F7F\u7528\u5728 <code>param</code> \u6761\u4EF6\u4E2D\u7528\u4E8E\u5FFD\u7565\u4F60\u4E0D\u60F3\u586B\u5199\u7684\u53C2\u6570</li><li>\u53CD\u5C04\u67E5\u627E <code>Method</code>\u3001<code>Constructor</code> \u4E2D\u65B0\u589E <code>paramCount { ... }</code> \u6761\u4EF6\uFF0C\u73B0\u5728\u4F60\u53EF\u4EE5\u76F4\u63A5\u62FF\u5230\u5176\u4E2D\u7684 <code>it</code> \u6765\u81EA\u5B9A\u4E49\u4F60\u7684\u5224\u65AD\u6761\u4EF6</li><li><code>FieldFinder</code> \u7ED3\u679C\u4E2D\u65B0\u589E <code>current</code> \u65B9\u6CD5\uFF0C\u53EF\u76F4\u63A5\u5BF9\u7ED3\u679C\u5B9E\u4F8B\u521B\u5EFA\u8C03\u7528\u7A7A\u95F4</li><li>\u4FEE\u6539\u4E86\u53CD\u5C04\u67E5\u627E\u529F\u80FD\u4E2D\u7684 <code>modifiers</code> \u6761\u4EF6\u4EE5\u53CA <code>name</code> \u6761\u4EF6\uFF0C\u73B0\u5728\u4F60\u9700\u8981\u5BF9\u6B64\u65B9\u6CD5\u4F53\u7ED3\u5C3E\u8FD4\u56DE\u4E00\u4E2A <code>Boolean</code> \u4EE5\u4F7F\u6761\u4EF6\u6210\u7ACB</li>",20),ue=e("code",null,"ModifierRules",-1),ke=o(" \u4E2D\u7684 "),pe=e("code",null,"as*",-1),ge=o(" \u529F\u80FD\u6539\u540D\u4E3A "),He=e("code",null,"is*",-1),fe=o("\uFF0C\u611F\u8C22 "),me={href:"https://github.com/KyuubiRan",target:"_blank",rel:"noopener noreferrer"},Pe=o("Kitsune"),be=o(" \u7684\u5EFA\u8BAE"),ye=c("<li><code>FieldFinder</code> \u4E2D\u65B0\u589E <code>RemedyPlan</code> \u529F\u80FD</li><li>\u65B0\u589E <code>Dex</code> \u4E2D\u7684 <code>Class</code> \u6A21\u7CCA\u67E5\u627E\u529F\u80FD (Beta)\uFF0C\u4F60\u73B0\u5728\u53EF\u4EE5\u76F4\u63A5\u4F7F\u7528 <code>searchClass</code> \u529F\u80FD\u6765\u4F7F\u7528\u6307\u5B9A\u6761\u4EF6\u6A21\u7CCA\u67E5\u627E <code>Class</code></li>",2),xe=o("\u65B0\u589E\u53CD\u5C04\u67E5\u627E\u4E2D\u7684\u591A\u91CD\u67E5\u627E\u529F\u80FD\uFF0C\u53EF\u4F7F\u7528\u76F8\u5BF9\u67E5\u627E\u6761\u4EF6\u540C\u65F6\u83B7\u53D6\u591A\u4E2A\u67E5\u627E\u7ED3\u679C\uFF0C\u611F\u8C22 "),Ce=e("strong",null,"AA",-1),Ae=o(" \u4EE5\u53CA "),ve={href:"https://github.com/KyuubiRan",target:"_blank",rel:"noopener noreferrer"},Ye=o("Kitsune"),Me=o(" \u7684\u5EFA\u8BAE"),Ie=o("\u4FEE\u590D "),Re=e("code",null,"appClassLoader",-1),Se=o(" \u83B7\u53D6\u5230\u7684\u5BF9\u8C61\u5728\u67D0\u4E9B\u7CFB\u7EDF\u4E2D\u7684\u7CFB\u7EDF\u5E94\u7528\u4E2D\u4E0D\u6B63\u786E\u7684\u95EE\u9898\uFF0C\u611F\u8C22 "),Le={href:"https://github.com/luckyzyx",target:"_blank",rel:"noopener noreferrer"},Xe=o("Luckyzyx"),Fe=o(" \u7684\u53CD\u9988"),De=e("li",null,[o("\u4FEE\u6539\u4E86 "),e("code",null,"XposedBridge.invokeOriginalMethod"),o(" \u7684\u8C03\u7528\u65B9\u5F0F\u5E76\u5728 "),e("code",null,"MethodFinder.Result.Instance"),o(" \u4E2D\u589E\u52A0 "),e("code",null,"original"),o(" \u529F\u80FD")],-1),Be=o("\u4FEE\u590D "),we=e("code",null,"YukiHookModulePrefs",-1),Ue=o(" \u4E2D "),We=e("code",null,"getStringSet",-1),Ee=o(" \u65B9\u6CD5\u53D6\u503C\u9519\u8BEF\u7684\u95EE\u9898\u5E76\u4F18\u5316\u4EE3\u7801\u98CE\u683C\uFF0C\u611F\u8C22 "),Te={href:"https://github.com/Teddy-Zhu",target:"_blank",rel:"noopener noreferrer"},Ge=o("Teddy_Zhu"),Ne=o(" \u7684 "),Oe={href:"https://github.com/fankes/YukiHookAPI/pull/19",target:"_blank",rel:"noopener noreferrer"},ze=o("PR"),je=e("li",null,[o("\u4FEE\u6539 "),e("code",null,"YukiHookModulePrefs"),o("\uFF0C\u62E6\u622A "),e("code",null,"XSharePreference"),o(" \u53EF\u80FD\u4E0D\u5B58\u5728\u7684\u5F02\u5E38")],-1),Ve=e("li",null,[o("\u4FEE\u590D "),e("code",null,"YukiHookDataChannel"),o(" \u5728\u67D0\u4E9B\u7B2C\u4E09\u65B9 ROM \u7CFB\u7EDF\u6846\u67B6\u4E2D\u65E0\u6CD5\u6CE8\u518C\u6210\u529F\u7684\u95EE\u9898")],-1),Ze=e("li",null,[o("\u5B89\u5168\u5316 "),e("code",null,"YukiHookDataChannel"),o("\uFF0C\u73B0\u5728\u5B83\u53EA\u80FD\u5728\u6765\u81EA\u6307\u5B9A\u5305\u540D\u7684\u6A21\u5757\u4E0E\u5BBF\u4E3B\u4E4B\u95F4\u901A\u4FE1")],-1),Ke=o("\u65B0\u589E\u81EA\u52A8 Hook "),Je=e("code",null,"SharedPreferences",-1),qe=o(" \u4EE5\u4FEE\u590D\u90E8\u5206\u7CFB\u7EDF\u4E2D\u6587\u4EF6\u6743\u9650\u4E0D\u662F "),Qe=e("code",null,"0664",-1),$e=o(" \u7684\u95EE\u9898\uFF0C\u611F\u8C22 "),eo={href:"https://github.com/5ec1cff",target:"_blank",rel:"noopener noreferrer"},oo=o("5ec1cff"),io=o(" \u7684\u53CD\u9988\u53CA\u63D0\u4F9B\u7684\u5B9E\u73B0\u4EE3\u7801"),co=c("<li>\u65B0\u589E <code>YukiHookAPI.Configs.isEnableHookSharedPreferences</code> \u529F\u80FD\uFF0C\u9ED8\u8BA4\u5173\u95ED\uFF0C\u82E5 <code>SharedPreferences</code> \u7684\u6743\u9650\u9519\u8BEF\u53EF\u8FDB\u884C\u542F\u7528</li><li>\u4FEE\u590D\u67E5\u627E <code>Constructor</code> \u65F6\u65E0\u53C2\u6784\u9020\u65B9\u6CD5\u5728\u4E0D\u586B\u5199\u67E5\u627E\u6761\u4EF6\u65F6\u65E0\u6CD5\u627E\u5230\u7684 BUG\uFF0C\u611F\u8C22 <strong>B5 KAKA</strong> \u7684\u53CD\u9988</li><li>\u5206\u79BB\u4F4D\u4E8E <code>injectMember</code> \u4E2D <code>method</code>\u3001<code>constructor</code> \u7684 <code>Result</code> \u5B9E\u4F8B\u5230 <code>Process</code></li><li>\u5728 Hook \u8FC7\u7A0B\u4E2D\u65B0\u589E <code>useDangerousOperation</code> \u65B9\u6CD5\uFF0C\u672A\u8FDB\u884C\u58F0\u660E\u65F6\u5728 Hook \u5371\u9669\u5217\u8868\u4E2D\u7684\u529F\u80FD\u540E\u4F1A\u81EA\u52A8\u505C\u6B62 Hook \u5E76\u6253\u5370\u9519\u8BEF</li><li>\u65B0\u589E\u6A21\u5757\u8D44\u6E90\u6CE8\u5165\u4E0E <code>Activity</code> \u4EE3\u7406\u529F\u80FD\uFF0C\u4F60\u53EF\u4EE5\u8C03\u7528 <code>injectModuleAppResources</code> \u53CA <code>registerModuleAppActivities</code> \u6765\u4F7F\u7528</li><li>\u65B0\u589E <code>ModuleContextThemeWrapper</code> \u529F\u80FD\uFF0C\u4F60\u53EF\u4EE5\u8C03\u7528 <code>applyModuleTheme</code> \u5728\u4EFB\u610F <code>Activity</code> \u4E2D\u521B\u5EFA\u6A21\u5757\u7684 <code>Context</code></li><li>\u65B0\u589E <code>ClassLoader.onLoadClass</code> \u529F\u80FD\uFF0C\u53EF\u7528\u4E8E\u76D1\u542C <code>ClassLoader</code> \u7684 <code>loadClass</code> \u65B9\u6CD5\u88AB\u8C03\u7528\u7684\u4E8B\u4EF6</li><li>\u4F5C\u5E9F\u4E86 <code>classOf</code> \u4E0E <code>clazz</code> \u6269\u5C55\u65B9\u6CD5\uFF0C\u65B0\u589E <code>toClass</code> \u4EE5\u53CA <code>toClassOrNull</code> \u7528\u6CD5\uFF0C\u8BF7\u73B0\u5728\u8F6C\u79FB\u5230\u65B0\u7684\u65B9\u6CD5</li><li><code>VariousClass</code> \u65B0\u589E <code>getOrNull</code> \u65B9\u6CD5\uFF0C\u53EF\u5728\u5339\u914D\u4E0D\u5230 <code>Class</code> \u7684\u65F6\u5019\u4E0D\u629B\u51FA\u5F02\u5E38\u800C\u662F\u8FD4\u56DE <code>null</code></li><li><code>PackageParam.hook</code> \u4E2D\u79FB\u9664\u4E86 <code>isUseAppClassLoader</code> \u53C2\u6570\uFF0C\u4FEE\u6539\u4E3A <code>isForceUseAbsolute</code> \u5E76\u81EA\u52A8\u5339\u914D\u76EE\u6807 <code>Class</code></li><li><code>PackageParam</code> \u65B0\u589E <code>systemContext</code> \u529F\u80FD\uFF0C\u4F60\u53EF\u4EE5\u5728\u4EFB\u610F\u65F6\u95F4\u8C03\u7528\u6B64\u529F\u80FD\u83B7\u53D6\u4E00\u4E2A\u6301\u4E45\u5316\u7684 <code>Context</code></li><li>\u4E0D\u518D\u5BF9\u5916\u5F00\u653E <code>HookClass</code> \u4E2D\u7684\u4EFB\u4F55\u65B9\u6CD5</li><li><code>HookParam</code> \u4E2D\u65B0\u589E <code>throwToApp</code> \u529F\u80FD\uFF0C\u53EF\u5C06\u5F02\u5E38\u76F4\u63A5\u629B\u7ED9\u5BBF\u4E3B</li><li>Hook \u56DE\u8C03\u4E2D\u65B0\u589E <code>onFailureThrowToApp</code> \u529F\u80FD\uFF0C\u53EF\u5728\u53D1\u751F\u5F02\u5E38\u65F6\u76F4\u63A5\u629B\u7ED9\u5BBF\u4E3B</li><li>\u4FEE\u6539\u4E86\u8C03\u8BD5\u65E5\u5FD7\u7684\u6253\u5370\u903B\u8F91\uFF0C\u53CD\u5C04\u67E5\u627E\u529F\u80FD\u4E2D\u7684\u8017\u65F6\u8BB0\u5F55\u4EC5\u4F1A\u5728 Hook \u8FC7\u7A0B\u4E2D\u8FDB\u884C\u6253\u5370</li><li>Hook \u8FC7\u7A0B\u4E2D\u65B0\u589E\u89E3\u9664 Hook \u529F\u80FD\uFF0C\u53EF\u4F7F\u7528 <code>remove</code> \u53CA <code>removeSelf</code> \u65B9\u6CD5\u89E3\u9664 Hook</li><li>\u4FEE\u590D\u5728 ReplaceHook \u5931\u8D25\u7684\u65F6\u5019\u5BFC\u81F4\u5BBF\u4E3B\u629B\u51FA\u5F02\u5E38\u7684\u95EE\u9898\uFF0C\u73B0\u4FEE\u6539\u4E3A\u8C03\u7528\u539F\u59CB\u65B9\u6CD5\u4FDD\u8BC1\u5BBF\u4E3B\u529F\u80FD\u6B63\u5E38\u8FD0\u884C</li><li>\u65B0\u589E Hook \u8FC7\u7A0B\u4E2D\u5BF9\u65B9\u6CD5\u8FD4\u56DE\u503C\u7684\u68C0\u67E5\u529F\u80FD\uFF0C\u5728\u8FD4\u56DE\u503C\u4E0D\u5339\u914D\u7684\u60C5\u51B5\u4E0B\u4F1A\u6839\u636E\u60C5\u666F\u81EA\u52A8\u629B\u51FA\u5F02\u5E38\u6216\u6253\u5370\u9519\u8BEF</li>",18),lo=o("Resources Hook \u4E2D\u65B0\u589E "),to=e("code",null,"array",-1),so=o(" \u7C7B\u578B\uFF0C\u611F\u8C22 "),no={href:"https://github.com/GSWXXN",target:"_blank",rel:"noopener noreferrer"},ao=o("GSWXXN"),ro=o(" \u7684 "),_o={href:"https://github.com/fankes/YukiHookAPI/pull/12",target:"_blank",rel:"noopener noreferrer"},ho=o("PR"),uo=e("li",null,[o("\u79FB\u52A8 "),e("code",null,"me.weishu.reflection"),o(" \u5230 "),e("code",null,"thirdparty"),o(" \u9632\u6B62\u540C\u65F6\u5F15\u5165\u7684\u540C\u540D\u4F9D\u8D56\u51B2\u7A81")],-1),ko=e("li",null,"\u79FB\u9664 Hook \u65B9\u6CD5\u4F53\u4E3A\u7A7A\u65F6\u629B\u51FA\u7684\u5F02\u5E38\uFF0C\u4FEE\u6539\u4E3A\u6253\u5370\u8B66\u544A\u65E5\u5FD7",-1),po=e("li",null,[o("\u4FEE\u6539 "),e("code",null,"AppLifecycle"),o(" \u7684\u5F02\u5E38\u5904\u7406\u903B\u8F91\uFF0C\u5F53\u5176\u53D1\u751F\u5F02\u5E38\u65F6\u76F4\u63A5\u629B\u7ED9\u5BBF\u4E3B")],-1),go=e("li",null,"\u66F4\u65B0 Demo \u7684 API \u7248\u672C\u5230 33",-1),Ho={id:"_1-0-92-2022-05-31",tabindex:"-1"},fo=e("a",{class:"header-anchor",href:"#_1-0-92-2022-05-31","aria-hidden":"true"},"#",-1),mo=o(" 1.0.92 | 2022.05.31 \u2002"),Po=c("<ul><li>\u4FEE\u6B63\u4E86\u5927\u91CF\u65B9\u6CD5\u4E2D callback \u7684\u547D\u540D\u65B9\u6CD5</li><li>\u66F4\u6362\u65B9\u6848\u518D\u6B21\u4FEE\u590D <code>YukiHookDataChannel</code> \u5728\u4F4E\u4E8E <strong>Android 12</strong> \u7684\u8BBE\u5907\u4E0A\u4E0D\u80FD\u56DE\u8C03\u5F53\u524D <code>Activity</code> \u5E7F\u64AD\u7684\u95EE\u9898</li><li><code>InjectYukiHookWithXposed</code> \u6CE8\u89E3\u65B0\u589E <code>isUsingResourcesHook</code> \u529F\u80FD\uFF0C\u73B0\u5728\u4F60\u53EF\u4EE5\u9009\u62E9\u6027\u5173\u95ED\u81EA\u52A8\u751F\u6210 <code>IXposedHookInitPackageResources</code> \u7684\u4F9D\u8D56\u63A5\u53E3\u4E86</li></ul>",1),bo={id:"_1-0-91-2022-05-29",tabindex:"-1"},yo=e("a",{class:"header-anchor",href:"#_1-0-91-2022-05-29","aria-hidden":"true"},"#",-1),xo=o(" 1.0.91 | 2022.05.29 \u2002"),Co=o("\u4FEE\u590D\u90E8\u5206\u8BBE\u5907\u7684\u5B9A\u5236\u7CFB\u7EDF\u5728 LSPosed \u73AF\u5883\u4E0B\u5F00\u673A\u542F\u52A8\u83B7\u53D6\u7684 "),Ao=e("code",null,"ClassLoader",-1),vo=o(" \u9519\u8BEF\u7684\u95EE\u9898\uFF0C\u611F\u8C22 "),Yo={href:"https://github.com/luckyzyx",target:"_blank",rel:"noopener noreferrer"},Mo=o("Luckyzyx"),Io=o(" \u7684\u53CD\u9988"),Ro=c("<li>\u4FEE\u590D <code>YukiHookDataChannel</code> \u5728 <strong>ZUI</strong> \u4EE5\u53CA\u4F4E\u4E8E <strong>Android 12</strong> \u7684\u7CFB\u7EDF\u4E0A\u4E0D\u80FD\u56DE\u8C03\u5F53\u524D <code>Activity</code> \u5E7F\u64AD\u7684\u95EE\u9898</li><li>\u6574\u5408 <code>YukiHookModuleStatus</code> \u529F\u80FD\u5230 <code>YukiHookAPI.Status</code>\uFF0C\u91CD\u5199\u4E86\u5927\u91CF\u65B9\u6CD5\uFF0C\u73B0\u5728\u4F60\u53EF\u4EE5\u5728\u6A21\u5757\u4E0E\u5BBF\u4E3B\u4E2D\u53CC\u5411\u5224\u65AD\u6A21\u5757\u6FC0\u6D3B\u7B49\u72B6\u6001\u4FE1\u606F</li>",2),So={id:"_1-0-90-2022-05-27",tabindex:"-1"},Lo=e("a",{class:"header-anchor",href:"#_1-0-90-2022-05-27","aria-hidden":"true"},"#",-1),Xo=o(" 1.0.90 | 2022.05.27 \u2002"),Fo=c("<ul><li>\u4FEE\u590D <code>YukiHookDataChannel</code> \u5728\u6A21\u5757\u8BBE\u7F6E\u76D1\u542C\u56DE\u8C03\u65F6\u95EA\u9000\u7684\u95EE\u9898</li><li>\u4FEE\u590D <code>YukiHookDataChannel</code> \u5728\u975E\u5F53\u524D <code>Activity</code> \u60C5\u51B5\u4E0B\u4F9D\u7136\u4F1A\u56DE\u8C03\u7684\u95EE\u9898</li><li>\u79FB\u9664 <code>YukiHookDataChannel</code> \u56DE\u8C03\u4E8B\u4EF6\u7684\u9ED8\u8BA4\u503C\uFF0C\u6CA1\u6709\u5373\u4E0D\u56DE\u8C03</li><li>\u79FB\u9664 <code>YukiHookModulePrefs</code> \u5728 XShare \u4E0D\u53EF\u8BFB\u7684\u60C5\u51B5\u4E0B\u6253\u5370\u7684\u8B66\u544A</li><li>\u65B0\u589E <code>YukiHookModulePrefs</code> \u4E2D\u7684 <code>isXSharePrefsReadable</code> \u65B9\u6CD5\uFF0C\u53EF\u5224\u65AD\u5F53\u524D\u7684 XShare \u662F\u5426\u53EF\u7528</li></ul>",1),Do={id:"_1-0-89-2022-05-26",tabindex:"-1"},Bo=e("a",{class:"header-anchor",href:"#_1-0-89-2022-05-26","aria-hidden":"true"},"#",-1),wo=o(" 1.0.89 | 2022.05.26 \u2002"),Uo=c("<ul><li>\u4FEE\u590D <code>YukiHookDataChannel</code> \u4E0D\u80FD\u91CD\u590D\u8BBE\u7F6E\u76D1\u542C\u7684\u95EE\u9898\uFF0C\u5E76\u52A0\u5165\u5728\u6A21\u5757\u4E0D\u540C <code>Activity</code> \u4E2D\u91CD\u590D\u54CD\u5E94\u548C\u81EA\u52A8\u8DDF\u968F <code>Activity</code> \u9500\u6BC1\u76D1\u542C\u529F\u80FD</li><li>\u65B0\u589E <code>YukiHookDataChannel</code> \u91CD\u590D\u76D1\u542C\u7528\u4F8B\u8BF4\u660E\u6587\u6863</li><li>\u52A0\u5165 <code>onAlreadyHooked</code> \u65B9\u6CD5\uFF0C\u53EF\u5224\u65AD\u5F53\u524D\u65B9\u6CD5\u662F\u5426\u88AB\u91CD\u590D Hook</li><li>\u4FEE\u6539\u90E8\u5206\u91CD\u590D\u6DFB\u52A0 HashMap \u7684\u903B\u8F91\uFF0C\u79FB\u9664 <code>putIfAbsent</code> \u65B9\u6CD5\uFF0C\u5141\u8BB8\u8986\u76D6\u6DFB\u52A0</li><li>\u4FEE\u590D\u4E86\u51E0\u5904\u53EF\u80FD\u7684 BUG</li></ul>",1),Wo={id:"_1-0-88-2022-05-25",tabindex:"-1"},Eo=e("a",{class:"header-anchor",href:"#_1-0-88-2022-05-25","aria-hidden":"true"},"#",-1),To=o(" 1.0.88 | 2022.05.25 \u2002"),Go=c("<ul><li>\u5BF9 Xposed API \u5B8C\u5168\u89E3\u8026\u5408</li><li>\u589E\u52A0\u4E86 <code>type</code> \u4E2D\u7684 <code>android</code> \u7C7B\u578B</li><li>\u5C06 <code>YukiHookModuleStatus</code> \u4ECE\u81EA\u52A8\u751F\u6210\u4EE3\u7801\u4E2D\u5206\u79BB\uFF0C\u5E76\u52A0\u5165 <code>isEnableHookModuleStatus</code> \u7684\u5F00\u5173\uFF0C\u7531\u4F60\u51B3\u5B9A\u662F\u5426\u542F\u7528</li><li>\u5BF9 API \u5927\u91CF\u7C7B\u7684\u6784\u9020\u65B9\u6CD5\u8FDB\u884C\u4E86 internal \u95ED\u5305\u5904\u7406</li><li>\u5C06 <code>YukiHookModulePrefs</code> \u8BBE\u7F6E\u4E3A\u5355\u4F8B\u8FD0\u884C\uFF0C\u9632\u6B62\u91CD\u590D\u521B\u5EFA\u6D6A\u8D39\u7CFB\u7EDF\u8D44\u6E90</li><li>\u4FEE\u590D\u81EA <code>1.0.80</code> \u7248\u672C\u540E\u65E0\u6CD5\u5D4C\u5957 Hook \u7684 BUG\uFF0C\u5E76\u4F18\u5316\u5D4C\u5957 Hook \u76F8\u5173\u529F\u80FD</li><li>\u4FEE\u6539 Hooker \u5B58\u50A8\u65B9\u6848\u7531 HashSet \u5230 HashMap\uFF0C\u9632\u6B62\u91CD\u590D\u6DFB\u52A0 Hooker \u7684\u95EE\u9898</li><li>\u4FEE\u6539 Hook \u6838\u5FC3\u5B9E\u73B0\u65B9\u6CD5\uFF0C\u52A0\u5165\u67E5\u91CD\uFF0C\u907F\u514D\u91CD\u590D Hook \u591A\u6B21\u56DE\u8C03 <code>HookParam</code> \u65B9\u6CD5</li><li><code>MethodFinder</code> \u4E0E <code>FieldFinder</code> \u52A0\u5165\u67E5\u627E\u6A21\u7CCA\u65B9\u6CD5\u3001\u53D8\u91CF\u540D\u79F0\u529F\u80FD\uFF0C\u53EF\u8C03\u7528 <code>name { ... }</code> \u6765\u8BBE\u7F6E\u67E5\u627E\u6761\u4EF6\uFF0C\u652F\u6301\u6B63\u5219</li><li>\u4F18\u5316\u5E76\u4FEE\u6539 <code>appContext</code> \u7684\u83B7\u53D6\u65B9\u5F0F\uFF0C\u964D\u4F4E\u4F1A\u53D6\u5230\u7A7A\u7684\u95EE\u9898\u7684\u53EF\u80FD\u6027</li><li>\u4FEE\u6539\u81EA\u52A8\u751F\u6210\u7684\u4EE3\u7801\u4E2D <code>logger</code> \u7684\u6253\u5370 <code>TAG</code> \u9ED8\u8BA4\u4E3A\u4F60\u81EA\u5B9A\u4E49\u7684\u540D\u79F0\uFF0C\u65B9\u4FBF\u8FDB\u884C\u8C03\u8BD5</li><li>\u4F18\u5316 <code>YukiHookBridge</code> \u7684 <code>Hooker</code> \u5B9E\u73B0\u65B9\u5F0F\uFF0C\u63D0\u5347 Hook \u6027\u80FD</li><li><code>PackageParam</code> \u589E\u52A0 <code>onAppLifecycle</code> \u65B9\u6CD5\uFF0C\u53EF\u539F\u751F\u76D1\u542C\u5BBF\u4E3B\u7684\u751F\u547D\u5468\u671F\u4EE5\u53CA\u5B9E\u73B0\u6CE8\u518C\u7CFB\u7EDF\u5E7F\u64AD\u529F\u80FD</li><li>\u65B0\u589E <code>YukiHookDataChannel</code> \u529F\u80FD\uFF0C\u53EF\u5728\u6A21\u5757\u4E0E\u5BBF\u4E3B\u4FDD\u6301\u5B58\u6D3B\u7684\u60C5\u51B5\u4E0B\u4F7F\u7528\u7CFB\u7EDF\u65E0\u5E8F\u5E7F\u64AD\u8FDB\u884C\u901A\u8BAF</li><li><code>YukiHookDataChannel</code> \u589E\u52A0 <code>checkingVersionEquals</code> \u65B9\u6CD5\uFF0C\u53EF\u901A\u8FC7\u76D1\u542C\u6765\u9A8C\u8BC1\u6A21\u5757\u66F4\u65B0\u540E\u5BBF\u4E3B\u5E76\u672A\u66F4\u65B0\u7248\u672C\u4E0D\u5339\u914D\u95EE\u9898</li><li><code>demo-module</code> \u7684\u793A\u4F8B\u4EE3\u7801\u4E2D\u65B0\u589E Java \u7248\u672C\u7684\u793A\u4F8B\uFF0C\u4EC5\u4F9B\u53C2\u8003</li></ul>",1),No={id:"_1-0-87-2022-05-10",tabindex:"-1"},Oo=e("a",{class:"header-anchor",href:"#_1-0-87-2022-05-10","aria-hidden":"true"},"#",-1),zo=o(" 1.0.87 | 2022.05.10 \u2002"),jo=e("ul",null,[e("li",null,[o("\u65B0\u589E "),e("code",null,"refreshModuleAppResources"),o(" \u529F\u80FD\uFF0C\u4EE5\u9002\u914D\u8BED\u8A00\u533A\u57DF\u3001\u5B57\u4F53\u5927\u5C0F\u3001\u5206\u8FA8\u7387\u6539\u53D8\u7B49\u60C5\u51B5\u4E0B\u7684 Resources \u5237\u65B0")]),e("li",null,[o("\u65B0\u589E "),e("code",null,"isEnableModuleAppResourcesCache"),o(" \u529F\u80FD\uFF0C\u53EF\u81EA\u884C\u8BBE\u7F6E\u662F\u5426\u81EA\u52A8\u7F13\u5B58\u5F53\u524D\u6A21\u5757\u7684 Resources")])],-1),Vo={id:"_1-0-86-2022-05-06",tabindex:"-1"},Zo=e("a",{class:"header-anchor",href:"#_1-0-86-2022-05-06","aria-hidden":"true"},"#",-1),Ko=o(" 1.0.86 | 2022.05.06 \u2002"),Jo=e("ul",null,[e("li",null,[o("\u4FEE\u590D\u4E0D\u652F\u6301 Resources Hook(\u8D44\u6E90\u94A9\u5B50) \u7684\u60C5\u51B5\u4E0B\u5728 "),e("code",null,"initZygote"),o(" \u65F6\u6301\u7EED\u62A5\u9519\u7684\u95EE\u9898\uFF0C\u590D\u73B0\u5728 "),e("strong",null,"ZUI"),o("/"),e("strong",null,"LSPosed CI(1.8.3-6550)")]),e("li",null,"\u4F18\u5316\u5E76\u5BF9 Resources Hook \u8FDB\u884C\u5F02\u5E38\u5904\u7406\uFF0C\u53EA\u6709\u88AB\u4F7F\u7528\u540E\u4E0D\u652F\u6301\u624D\u4F1A\u6253\u5370\u9519\u8BEF\u548C\u8B66\u544A")],-1),qo={id:"_1-0-85-2022-05-04",tabindex:"-1"},Qo=e("a",{class:"header-anchor",href:"#_1-0-85-2022-05-04","aria-hidden":"true"},"#",-1),$o=o(" 1.0.85 | 2022.05.04 \u2002"),ed=c("<ul><li>\u4FEE\u590D\u65E0\u6CD5 Hook \u7CFB\u7EDF\u6846\u67B6\u7684\u4E25\u91CD\u95EE\u9898\uFF0C\u4ECE <code>1.0.80</code> \u5F00\u59CB\u51FA\u73B0</li><li>\u8C03\u8BD5\u65E5\u5FD7\u4E2D\u65B0\u589E\u533A\u5206 <code>initZygote</code> \u88C5\u8F7D\u7684\u5305\u540D\u4E3A <code>android-zygote</code>\uFF0C<code>packageName</code> \u4FDD\u6301 <code>android</code> \u4E0D\u53D8</li></ul>",1),od={id:"_1-0-83-2022-05-04",tabindex:"-1"},dd=e("a",{class:"header-anchor",href:"#_1-0-83-2022-05-04","aria-hidden":"true"},"#",-1),id=o(" 1.0.83 | 2022.05.04 \u2002"),cd=e("ul",null,[e("li",null,[o("\u4FEE\u590D "),e("code",null,"YukiHookModuleStatus"),o(" \u5728 "),e("code",null,"loadSystem"),o(" \u540E\u5927\u91CF\u62A5\u9519\u7684\u95EE\u9898")]),e("li",null,[o("\u65B0\u589E "),e("code",null,"type"),o(" \u4E2D\u7684 "),e("code",null,"android"),o(" \u7C7B\u578B")]),e("li",null,"\u66F4\u65B0\u5E2E\u52A9\u6587\u6863\u7684\u793A\u4F8B\u8BF4\u660E")],-1),ld={id:"_1-0-82-2022-05-04",tabindex:"-1"},td=e("a",{class:"header-anchor",href:"#_1-0-82-2022-05-04","aria-hidden":"true"},"#",-1),sd=o(" 1.0.82 | 2022.05.04 \u2002"),nd=e("ul",null,[e("li",null,[o("\u4FEE\u590D\u4E86\u4E00\u5904\u6982\u5FF5\u6DF7\u6DC6\u9519\u8BEF\uFF0C\u533A\u5206 "),e("code",null,"initZygote"),o(" \u4E0E\u7CFB\u7EDF\u6846\u67B6\u7684\u5173\u7CFB\uFF0C\u4E4B\u524D\u7684\u6CE8\u91CA\u548C\u6587\u6863\u6709\u95EE\u9898\uFF0C\u975E\u5E38\u62B1\u6B49")]),e("li",null,[e("code",null,"PackageParam"),o(" \u65B0\u589E "),e("code",null,"loadSystem"),o(" \u65B9\u6CD5\uFF0C\u4E0D\u9700\u8981\u518D\u5199 "),e("code",null,'loadApp(name = "android")'),o(" \u5373\u53EF Hook \u7CFB\u7EDF\u6846\u67B6")])],-1),ad={id:"_1-0-81-2022-05-04",tabindex:"-1"},rd=e("a",{class:"header-anchor",href:"#_1-0-81-2022-05-04","aria-hidden":"true"},"#",-1),_d=o(" 1.0.81 | 2022.05.04 \u2002"),hd=e("ul",null,[e("li",null,[o("\u4FEE\u590D\u4F7F\u7528 "),e("code",null,"by"),o(" \u65B9\u6CD5\u8BBE\u7F6E\u6761\u4EF6\u540E Hook \u65B9\u6CD5\u4F53\u5185\u67E5\u627E\u4E0D\u5230\u7684\u65B9\u6CD5\u3001\u6784\u9020\u65B9\u6CD5\u4F9D\u7136\u8F93\u51FA\u9519\u8BEF\u65E5\u5FD7\u7684\u95EE\u9898")]),e("li",null,"\u5728\u6267\u884C Hook \u8FC7\u7A0B\u4E2D\u52A0\u5165\u5168\u5C40\u65E5\u5FD7\u663E\u793A\u5F53\u524D Hook APP \u7684\u5305\u540D\uFF0C\u5E76\u4FEE\u590D\u4E00\u5904\u9519\u8BEF\u65E5\u5FD7\u6253\u5370\u6837\u5F0F\u7684\u95EE\u9898")],-1),ud={id:"_1-0-80-2022-05-01",tabindex:"-1"},kd=e("a",{class:"header-anchor",href:"#_1-0-80-2022-05-01","aria-hidden":"true"},"#",-1),pd=o(" 1.0.80 | 2022.05.01 \u2002"),gd=c("<li><code>InjectYukiHookWithXposed</code> \u6CE8\u89E3\u65B0\u589E <code>entryClassName</code> \u529F\u80FD\uFF0C\u53EF\u81EA\u5B9A\u4E49\u751F\u6210\u7684 <code>xposed_init</code> \u5165\u53E3\u7C7B\u540D</li><li><s><code>YukiHookXposedInitProxy</code></s> \u66F4\u540D\u4E3A <code>IYukiHookXposedInit</code>\uFF0C\u539F\u63A5\u53E3\u540D\u79F0\u5DF2\u4F5C\u5E9F\uFF0C\u5C06\u5728\u540E\u7EED\u7248\u672C\u4E2D\u76F4\u63A5\u88AB\u5220\u9664</li><li>\u65B0\u589E <code>initZygote</code> \u4E0E Resources Hook \u529F\u80FD\uFF0C\u652F\u6301 Hook Layout</li><li>\u65B0\u589E <code>onXposedEvent</code> \u65B9\u6CD5\uFF0C\u53EF\u76D1\u542C\u539F\u751F Xposed API \u7684\u5168\u90E8\u4E8B\u4EF6</li><li>\u5BF9 Hook \u529F\u80FD\u7684 <code>lambda</code> \u8FDB\u884C <code>inline</code> \u5904\u7406\uFF0C\u907F\u514D\u751F\u6210\u8FC7\u788E\u7684\u533F\u540D\u7C7B\uFF0C\u63D0\u5347\u7F16\u8BD1\u540E\u7684\u8FD0\u884C\u6027\u80FD</li><li>\u4FEE\u590D <code>PrefsData</code> \u7F16\u8BD1\u540E\u7684\u65B9\u6CD5\u4F53\u590D\u5236\u8FC7\u5927\u7684\u95EE\u9898</li><li>\u589E\u52A0 <code>XSharePreference</code> \u53EF\u8BFB\u6027\u6D4B\u8BD5\uFF0C\u5931\u8D25\u540E\u4F1A\u81EA\u52A8\u6253\u5370\u8B66\u544A\u65E5\u5FD7</li><li><code>PackageParam</code> \u65B0\u589E <code>appResources</code>\u3001<code>moduleAppResources</code>\u3001<code>moduleAppFilePath</code> \u529F\u80FD</li><li><code>PackageParam</code> \u7684 <code>loadApp</code> \u65B0\u589E\u4E0D\u5199 <code>name</code> \u529F\u80FD\uFF0C\u9ED8\u8BA4\u7B5B\u9009\u5168\u90E8 APP</li><li><code>PackageParam</code> \u65B0\u589E <code>loadZygote</code> \u65B9\u6CD5\uFF0C\u53EF\u76F4\u63A5 Hook \u7CFB\u7EDF\u6846\u67B6</li><li><code>PackageParam</code> \u65B0\u589E <code>resources().hook</code> \u529F\u80FD</li><li>\u4F18\u5316\u65B9\u6CD5\u3001\u6784\u9020\u65B9\u6CD5\u3001\u53D8\u91CF\u67E5\u627E\u529F\u80FD\uFF0C\u627E\u4E0D\u5230\u7684\u9519\u8BEF\u65E5\u5FD7\u5C06\u4F18\u5148\u663E\u793A\u5DF2\u8BBE\u7F6E\u7684\u67E5\u627E\u6761\u4EF6</li><li>\u589E\u52A0 <code>hasExtends</code> \u6269\u5C55\u65B9\u6CD5\uFF0C\u53EF\u5224\u65AD\u5F53\u524D <code>Class</code> \u662F\u5426\u6709\u7EE7\u627F\u5173\u7CFB</li><li>\u589E\u52A0 <code>isSupportResourcesHook</code> \u529F\u80FD\uFF0C\u5224\u65AD\u5F53\u524D\u662F\u5426\u652F\u6301\u8D44\u6E90\u94A9\u5B50(Resources Hook)</li><li><code>current</code> \u529F\u80FD\u65B0\u589E <code>superClass</code> \u65B9\u6CD5\u8C03\u7528\u7236\u7C7B</li><li>\u67E5\u627E\u65B9\u6CD5\u3001\u6784\u9020\u65B9\u6CD5\u3001\u53D8\u91CF\u65B0\u589E <code>superClass</code> \u67E5\u627E\u6761\u4EF6\uFF0C\u53EF\u7EE7\u7EED\u5728\u7236\u7C7B\u4E2D\u67E5\u627E</li><li><code>YukiHookAPI</code> \u5927\u91CF\u65B9\u6CD5\u4E0E Xposed API \u89E3\u8026\u5408</li><li>\u65B0\u589E Xposed API \u7684\u539F\u751F Hook \u4F18\u5148\u7EA7\u529F\u80FD</li><li>\u4FEE\u590D <code>isFirstApplication</code> \u53EF\u80FD\u5224\u65AD\u4E0D\u51C6\u786E\u7684\u95EE\u9898</li><li>\u5C4F\u853D MIUI \u7CFB\u7EDF\u4E0A MiuiCatcherPatch \u91CD\u590D\u8C03\u7528 Hook \u5165\u53E3\u65B9\u6CD5\u7684\u95EE\u9898</li><li>\u4F18\u5316 Hook \u5165\u53E3\u8C03\u7528\u65B9\u6CD5\uFF0C\u907F\u514D\u56E0\u4E3A Hook Framework \u95EE\u9898\u5BFC\u81F4\u591A\u6B21\u8C03\u7528</li>",21),Hd=o("\u4FEE\u590D Hook "),fd=e("code",null,"ClassLoader",-1),md=o(" \u5BFC\u81F4 Hook \u5361\u6B7B\u7684\u95EE\u9898\uFF0C\u611F\u8C22 "),Pd={href:"https://github.com/WankkoRee",target:"_blank",rel:"noopener noreferrer"},bd=o("WankkoRee"),yd=o(" \u7684\u53CD\u9988"),xd=e("li",null,[o("\u63D0\u5347 "),e("code",null,"XC_Callback"),o(" \u63A5\u53E3\u5BF9\u63A5\u540E\u7684\u6027\u80FD")],-1),Cd=e("li",null,[o("Java "),e("code",null,"type"),o(" \u65B0\u589E "),e("code",null,"ClassLoader"),o(" \u7C7B\u578B")],-1),Ad=e("li",null,"\u4F18\u5316 API \u5E2E\u52A9\u6587\u6863\uFF0C\u4FEE\u590D\u53EF\u80FD\u6301\u7EED\u7F13\u5B58\u9875\u9762\u7684\u95EE\u9898",-1),vd={id:"_1-0-78-2022-04-18",tabindex:"-1"},Yd=e("a",{class:"header-anchor",href:"#_1-0-78-2022-04-18","aria-hidden":"true"},"#",-1),Md=o(" 1.0.78 | 2022.04.18 \u2002"),Id=c("<li><code>YukiHookModulePrefs</code> \u65B0\u589E <code>isRunInNewXShareMode</code> \u65B9\u6CD5\uFF0C\u53EF\u7528\u4E8E\u5224\u65AD\u6A21\u5757\u5F53\u524D\u662F\u5426\u5904\u4E8E <code>New XSharePreference</code> \u6A21\u5F0F</li><li>\u4FEE\u590D <code>YukiHookModulePrefs</code> \u5728 <code>New XSharePreference</code> \u6A21\u5F0F\u4E0B\u5DE5\u4F5C\u7684\u90E8\u5206\u95EE\u9898</li><li>\u65B0\u589E <code>ModulePreferenceFragment</code>\uFF0C\u73B0\u5728\uFF0C\u4F60\u53EF\u4EE5\u5B8C\u5168\u66FF\u6362\u6389 <code>PreferenceFragmentCompat</code> \u5E76\u5F00\u59CB\u4F7F\u7528\u65B0\u7684\u529F\u80FD</li>",3),Rd=o("\u9002\u914D "),Sd=e("code",null,"PreferenceFragmentCompat",-1),Ld=o(" \u7684 Sp \u6570\u636E\u5B58\u50A8\u89E3\u51B3\u65B9\u6848\uFF0C\u611F\u8C22 "),Xd={href:"https://github.com/mahoshojoHCG",target:"_blank",rel:"noopener noreferrer"},Fd=o("mahoshojoHCG"),Dd=o(" \u7684\u53CD\u9988"),Bd=e("li",null,[o("\u66F4\u65B0\u81EA\u52A8\u5904\u7406\u7A0B\u5E8F\u4EE5\u53CA "),e("code",null,"Kotlin"),o(" \u4F9D\u8D56\u5230\u6700\u65B0\u7248\u672C")],-1),wd=e("li",null,"\u4FEE\u6B63\u90E8\u5206\u6587\u6863\u548C\u4EE3\u7801\u6CE8\u91CA\u4E2D\u7684\u9519\u8BEF",-1),Ud={id:"_1-0-77-2022-04-15",tabindex:"-1"},Wd=e("a",{class:"header-anchor",href:"#_1-0-77-2022-04-15","aria-hidden":"true"},"#",-1),Ed=o(" 1.0.77 | 2022.04.15 \u2002"),Td=e("code",null,"YukiHookModulePrefs",-1),Gd=o(" \u65B0\u589E "),Nd=e("code",null,"clear",-1),Od=o(" \u65B9\u6CD5\uFF0C\u611F\u8C22 "),zd={href:"https://github.com/WankkoRee",target:"_blank",rel:"noopener noreferrer"},jd=o("WankkoRee"),Vd=o(" \u7684\u5EFA\u8BAE"),Zd=c("<li><code>YukiHookModulePrefs</code> \u65B0\u589E <code>getStringSet</code>\u3001<code>putStringSet</code>\u3001<code>all</code> \u65B9\u6CD5</li><li><code>HookParam</code> \u7684 <code>args</code> \u589E\u52A0 <code>any</code> \u65B9\u6CD5</li><li>\u65B0\u589E <code>ModuleApplication</code>\uFF0C\u53EF\u5728\u6A21\u5757\u4E2D\u7EE7\u627F\u6B64\u7C7B\u5B9E\u73B0\u66F4\u591A\u529F\u80FD</li><li>\u5BF9\u63A5\u5168\u90E8\u7684 <code>findClass</code> \u529F\u80FD\u5230 Xposed API\uFF0C\u5728\u975E\u5BBF\u4E3B\u73AF\u5883\u7EE7\u7EED\u4F7F\u7528\u539F\u751F <code>ClassLoader</code></li><li>\u4FEE\u590D\u4E86\u4E00\u4E9B\u53EF\u80FD\u5B58\u5728\u7684 BUG</li>",5),Kd={id:"_1-0-75-2022-04-13",tabindex:"-1"},Jd=e("a",{class:"header-anchor",href:"#_1-0-75-2022-04-13","aria-hidden":"true"},"#",-1),qd=o(" 1.0.75 | 2022.04.13 \u2002"),Qd=o("\u66F4\u6B63\u4E86\u81EA\u52A8\u5904\u7406\u7A0B\u5E8F\u7684\u903B\u8F91\u8BC6\u522B\u90E8\u5206\uFF0C\u611F\u8C22 "),$d={href:"https://github.com/ApeaSuperz",target:"_blank",rel:"noopener noreferrer"},ei=o("ApeaSuperz"),oi=o(" \u7684\u8D21\u732E"),di=c("<li>\u4FEE\u6B63\u4E00\u5904\u6587\u6863\u6CE8\u91CA\u7684\u5F15\u7528\u672A\u66F4\u6539\u7684\u95EE\u9898</li><li><code>HookParam</code> \u4E2D\u5220\u9664\u4E86 <code>firstArgs</code> \u4E0E <code>lastArgs</code> \u65B9\u6CD5\uFF0C\u73B0\u5728\u4F60\u53EF\u4EE5\u4F7F\u7528 <code>args().first()</code> \u4E0E <code>args().last()</code> \u6765\u53D6\u4EE3\u5B83</li><li><code>HookParam</code> \u4E2D\u5220\u9664\u4E86 <code>args()</code> \u4E2D\u7684\u9ED8\u8BA4\u53C2\u6570 <code>index = 0</code>\uFF0C\u73B0\u5728\u4F60\u53EF\u4EE5\u4F7F\u7528 <code>args().first()</code> \u6216 <code>args(index = 0)</code> \u6765\u53D6\u4EE3\u5B83</li><li><code>HookParam</code> \u4E2D <code>result</code> \u529F\u80FD\u589E\u52A0\u4E86\u6CDB\u578B\u5339\u914D\uFF0C\u73B0\u5728\u4F60\u53EF\u4EE5\u4F7F\u7528 <code>result&lt;T&gt;</code> \u6765\u5339\u914D\u4F60\u7684\u76EE\u6807\u65B9\u6CD5\u5DF2\u77E5\u8FD4\u56DE\u503C\u7C7B\u578B\u4E86</li><li>\u65B9\u6CD5\u3001\u6784\u9020\u65B9\u6CD5\u67E5\u627E\u529F\u80FD\u65B0\u589E <code>emptyParam</code> \u6761\u4EF6\uFF0C\u5E76\u5B8C\u5584\u4E86\u6587\u6863\u76F8\u5173\u9700\u8981\u6CE8\u610F\u7684\u67E5\u627E\u6761\u4EF6\u8BEF\u533A</li><li>\u589E\u52A0\u4E86 <code>type</code> \u4E2D\u7684 <code>android</code> \u7C7B\u578B</li>",6),ii=e("h3",{id:"_1-0-73-2022-04-10",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_1-0-73-2022-04-10","aria-hidden":"true"},"#"),o(" 1.0.73 | 2022.04.10")],-1),ci=o("\u4FEE\u6B63\u51E0\u5904\u6587\u6863\u7684\u4E2D\u6587\u7FFB\u8BD1\u9519\u8BEF\uFF0C\u611F\u8C22 "),li={href:"https://github.com/WankkoRee",target:"_blank",rel:"noopener noreferrer"},ti=o("WankkoRee"),si=o(" \u7684\u8D21\u732E"),ni=o("\u4FEE\u590D\u5728\u67D0\u4E9B\u60C5\u51B5\u4E0B "),ai=e("code",null,"XC_LoadPackage.LoadPackageParam",-1),ri=o(" \u5185\u5BB9\u4E3A\u7A7A\u629B\u51FA\u5F02\u5E38\u7684\u95EE\u9898\uFF0C\u611F\u8C22 "),_i={href:"https://github.com/luckyzyx",target:"_blank",rel:"noopener noreferrer"},hi=o("Luckyzyx"),ui=o(" \u7684\u53CD\u9988"),ki=e("li",null,"\u4FEE\u590D\u4E00\u4E9B\u5DF2\u77E5\u7684 BUG\uFF0C\u63D0\u5347 Hook \u7A33\u5B9A\u6027",-1),pi={id:"_1-0-72-2022-04-09",tabindex:"-1"},gi=e("a",{class:"header-anchor",href:"#_1-0-72-2022-04-09","aria-hidden":"true"},"#",-1),Hi=o(" 1.0.72 | 2022.04.09 \u2002"),fi=e("ul",null,[e("li",null,"\u66F4\u65B0 API \u6587\u6863\u5230\u65B0\u7684\u5730\u5740"),e("li",null,[e("code",null,"PackageParam"),o(" \u4E2D\u52A0\u5165 "),e("code",null,"appContext"),o(" \u529F\u80FD")]),e("li",null,"\u4FEE\u590D\u4E00\u4E9B\u5DF2\u77E5\u7684 BUG\uFF0C\u63D0\u5347 Hook \u7A33\u5B9A\u6027")],-1),mi={id:"_1-0-71-2022-04-04",tabindex:"-1"},Pi=e("a",{class:"header-anchor",href:"#_1-0-71-2022-04-04","aria-hidden":"true"},"#",-1),bi=o(" 1.0.71 | 2022.04.04 \u2002"),yi=e("ul",null,[e("li",null,"\u4FEE\u590D VariousClass \u65E0\u6CD5\u5339\u914D\u65F6\u4F1A\u505C\u6B62 Hook \u629B\u51FA\u5F02\u5E38\u7684\u4E25\u91CD\u95EE\u9898")],-1),xi={id:"_1-0-70-2022-04-04",tabindex:"-1"},Ci=e("a",{class:"header-anchor",href:"#_1-0-70-2022-04-04","aria-hidden":"true"},"#",-1),Ai=o(" 1.0.70 | 2022.04.04 \u2002"),vi=e("li",null,[o("\u4FEE\u590D "),e("code",null,"instanceClass"),o(" \u5728\u9759\u6001\u5B9E\u4F8B\u4E2D\u8C03\u7528\u540E\u62A5\u9519\u95EE\u9898")],-1),Yi=o("\u5728 Hook \u8FC7\u7A0B\u4E2D\u52A0\u5165 "),Mi=e("code",null,"isUseAppClassLoader",-1),Ii=o(" \u529F\u80FD\uFF0C\u611F\u8C22 "),Ri={href:"https://github.com/WankkoRee",target:"_blank",rel:"noopener noreferrer"},Si=o("WankkoRee"),Li=o(" \u7684\u53CD\u9988"),Xi=e("li",null,[o("\u52A0\u5165 "),e("code",null,"withProcess"),o(" \u529F\u80FD\uFF0C\u53EF\u6839\u636E APP \u5F53\u524D\u6307\u5B9A\u8FDB\u7A0B\u8FDB\u884C Hook")],-1),Fi=e("li",null,"\u4FEE\u590D\u67E5\u627E\u65B9\u6CD5\u3001\u6784\u9020\u7C7B\u548C\u53D8\u91CF\u7684\u4E25\u91CD\u903B\u8F91\u9519\u8BEF\u95EE\u9898",-1),Di=e("li",null,"\u4FEE\u590D Hook \u76EE\u6807\u7C7B\u4E0D\u5B58\u5728\u7684\u65F6\u5019\u65E0\u6CD5\u5FFD\u7565\u5F02\u5E38\u8F93\u51FA\u7684\u95EE\u9898",-1),Bi=e("li",null,"\u4FEE\u590D\u90E8\u5206\u60C5\u51B5\u4E0B APP \u542F\u52A8\u65B9\u6CD5\u88C5\u8F7D\u8FC7\u5FEB\u5BFC\u81F4 Hook \u4E0D\u80FD\u751F\u6548\u7684\u95EE\u9898",-1),wi=o("\u4FEE\u590D "),Ui=e("code",null,"allMethods",-1),Wi=o(" \u672A Hook \u5230\u65B9\u6CD5\u65F6\u4E0D\u4F1A\u629B\u51FA\u5F02\u5E38\u7684\u95EE\u9898\uFF0C\u611F\u8C22 "),Ei={href:"https://github.com/WankkoRee",target:"_blank",rel:"noopener noreferrer"},Ti=o("WankkoRee"),Gi=o(" \u7684\u53CD\u9988"),Ni=o("\u52A0\u5165 Hook \u72B6\u6001\u76D1\u542C\u529F\u80FD\uFF0C\u611F\u8C22 "),Oi={href:"https://github.com/WankkoRee",target:"_blank",rel:"noopener noreferrer"},zi=o("WankkoRee"),ji=o(" \u7684\u5EFA\u8BAE"),Vi=e("li",null,"\u4FEE\u6539 Xposed \u5165\u53E3\u6CE8\u5165\u7C7B\u7684\u65B9\u5F0F\uFF0C\u91CD\u65B0\u58F0\u660E API \u7684\u5B9A\u4E49\u57DF",-1),Zi=o("\u52A0\u5165\u6DF7\u6DC6\u7684\u65B9\u6CD5\u4EE5\u53CA\u53D8\u91CF\u7684\u67E5\u627E\u529F\u80FD\uFF0C\u53EF\u4F7F\u7528\u4E0D\u540C\u7C7B\u578B\u7B5B\u9009 "),Ki=e("code",null,"index",-1),Ji=o(" \u5B9A\u4F4D\u6307\u5B9A\u7684\u65B9\u6CD5\u548C\u53D8\u91CF\uFF0C\u611F\u8C22 "),qi={href:"https://github.com/WankkoRee",target:"_blank",rel:"noopener noreferrer"},Qi=o("WankkoRee"),$i=o(" \u63D0\u4F9B\u7684\u601D\u8DEF"),ec=e("li",null,[o("\u67E5\u627E\u65B9\u6CD5\u3001\u53D8\u91CF\u65F6\u5141\u8BB8\u4F20\u5165\u591A\u79CD\u7C7B\u578B\uFF0C\u4F8B\u5982 "),e("code",null,"String"),o(" \u58F0\u660E\u7684\u7C7B\u540D\u548C "),e("code",null,"VariousClass")],-1),oc=e("li",null,[o("\u52A0\u5165\u5168\u65B0\u7684 "),e("code",null,"current"),o(" \u529F\u80FD\uFF0C\u53EF\u5BF9\u4EFB\u610F\u7684\u7C7B\u6784\u5EFA\u4E00\u4E2A\u53CD\u5C04\u65B9\u6CD5\u64CD\u4F5C\u7A7A\u95F4\uFF0C\u65B9\u4FBF\u5730\u8C03\u7528\u548C\u4FEE\u6539\u5176\u4E2D\u7684\u65B9\u6CD5\u548C\u53D8\u91CF")],-1),dc=o("\u4FEE\u590D\u4E86 Hook \u8FC7\u7A0B\u4E2D\u7684\u5927\u91CF BUG\uFF0C\u611F\u8C22 "),ic={href:"https://github.com/WankkoRee",target:"_blank",rel:"noopener noreferrer"},cc=o("WankkoRee"),lc=o(" \u5BF9\u6B64\u9879\u76EE\u6240\u505A\u51FA\u7684\u8D21\u732E"),tc={id:"_1-0-69-2022-03-30",tabindex:"-1"},sc=e("a",{class:"header-anchor",href:"#_1-0-69-2022-03-30","aria-hidden":"true"},"#",-1),nc=o(" 1.0.69 | 2022.03.30 \u2002"),ac=e("li",null,"\u6DFB\u52A0\u5E76\u6539\u8FDB\u4E00\u4E9B\u65B9\u6CD5\u529F\u80FD\u7684\u6CE8\u91CA",-1),rc=e("li",null,"\u589E\u52A0 Demo \u4E2D\u7684\u66F4\u591A\u793A\u4F8B Hook \u5185\u5BB9",-1),_c=o("\u4FEE\u590D\u5728\u4E00\u4E2A Hook \u5B9E\u4F8B\u4E2D\uFF0C"),hc=e("code",null,"allMethods",-1),uc=o(" \u591A\u6B21\u4F7F\u7528\u65F6\u53EA\u6709\u6700\u540E\u4E00\u4E2A\u751F\u6548\u7684\u95EE\u9898\uFF0C\u611F\u8C22 "),kc={href:"https://github.com/WankkoRee",target:"_blank",rel:"noopener noreferrer"},pc=o("WankkoRee"),gc=o(" \u7684\u53CD\u9988"),Hc={id:"_1-0-68-2022-03-29",tabindex:"-1"},fc=e("a",{class:"header-anchor",href:"#_1-0-68-2022-03-29","aria-hidden":"true"},"#",-1),mc=o(" 1.0.68 | 2022.03.29 \u2002"),Pc=c("<ul><li>\u589E\u52A0 Demo \u4E2D\u7684\u65B0\u7528\u4F8B\u548C LSPosed \u4F5C\u7528\u57DF</li><li>\u589E\u52A0 <code>Member</code> \u67E5\u627E\u7F13\u5B58\u548C\u67E5\u627E\u7F13\u5B58\u914D\u7F6E\u5F00\u5173</li><li>\u79FB\u9664\u548C\u4FEE\u6539 <code>MethodFinder</code>\u3001<code>FieldFinder</code> \u4EE5\u53CA <code>HookParam</code> \u76F8\u5173\u65B9\u6CD5\u7684\u8C03\u7528</li><li>\u589E\u52A0\u66F4\u591A <code>Finder</code> \u4E2D\u7684 <code>cast</code> \u7C7B\u578B\u5E76\u652F\u6301 <code>cast</code> \u4E3A\u6570\u7EC4</li><li>\u6574\u4F53\u7684\u6027\u80FD\u548C\u7A33\u5B9A\u6027\u63D0\u5347</li><li>\u4FEE\u590D\u4E0A\u4E00\u4E2A\u7248\u672C\u53EF\u80FD\u5B58\u5728\u7684 BUG</li></ul>",1),bc={id:"_1-0-67-2022-03-27",tabindex:"-1"},yc=e("a",{class:"header-anchor",href:"#_1-0-67-2022-03-27","aria-hidden":"true"},"#",-1),xc=o(" 1.0.67 | 2022.03.27 \u2002"),Cc=c("<ul><li>\u589E\u52A0\u4E09\u4E2A <code>Finder</code> \u4E2D\u7684 <code>modifiers</code> \u529F\u80FD\uFF0C\u53EF\u7B5B\u9009 <code>static</code>\u3001<code>native</code>\u3001<code>public</code>\u3001<code>abstract</code> \u7B49\u8BF8\u591A\u63CF\u8FF0\u7C7B\u578B</li><li>\u589E\u52A0\u65B9\u6CD5\u548C\u6784\u9020\u65B9\u6CD5\u67E5\u627E\u65F6\u53EF\u6A21\u7CCA\u65B9\u6CD5\u53C2\u6570\u7C7B\u578B\u4E3A\u6307\u5B9A\u4E2A\u6570\u8FDB\u884C\u67E5\u627E</li><li>\u589E\u52A0 <code>Member</code> \u7684 <code>hasModifiers</code> \u6269\u5C55\u529F\u80FD</li><li>\u589E\u52A0 <code>MethodFinder</code> \u548C <code>ConstructorFinder</code> \u4E2D\u7684 <code>give</code> \u65B9\u6CD5\uFF0C\u53EF\u83B7\u5F97\u539F\u59CB\u7C7B\u578B</li><li>\u589E\u52A0 <code>YukiHookModulePrefs</code> \u4E2D\u7684 <code>PrefsData</code> \u6A21\u677F\u529F\u80FD</li><li>\u5F7B\u5E95\u5BF9\u65B9\u6CD5\u3001\u6784\u9020\u65B9\u6CD5\u53CA\u53D8\u91CF\u7684\u67E5\u627E\u65B9\u6848\u8FDB\u884C\u91CD\u6784</li><li>\u4F18\u5316\u4EE3\u7801\u6CE8\u91CA\uFF0C\u4FEE\u590D\u4E86\u53EF\u80FD\u4EA7\u751F\u7684 BUG</li></ul>",1),Ac={id:"_1-0-66-2022-03-25",tabindex:"-1"},vc=e("a",{class:"header-anchor",href:"#_1-0-66-2022-03-25","aria-hidden":"true"},"#",-1),Yc=o(" 1.0.66 | 2022.03.25 \u2002"),Mc=e("ul",null,[e("li",null,[o("\u4FEE\u590D "),e("code",null,"MethodFinder"),o(" \u4E2D\u7684\u4E00\u4E2A\u4E25\u91CD\u95EE\u9898")]),e("li",null,[o("\u589E\u52A0 "),e("code",null,"hookParam"),o(" \u4E2D\u7684 "),e("code",null,"args"),o(" \u8C03\u7528\u65B9\u6CD5")]),e("li",null,"\u4FEE\u590D\u5176\u5B83\u53EF\u80FD\u5B58\u5728\u7684\u95EE\u9898\u4EE5\u53CA\u4FEE\u590D\u90E8\u5206\u7C7B\u7684\u6CE8\u91CA\u95EE\u9898")],-1),Ic={id:"_1-0-65-2022-03-25",tabindex:"-1"},Rc=e("a",{class:"header-anchor",href:"#_1-0-65-2022-03-25","aria-hidden":"true"},"#",-1),Sc=o(" 1.0.65 | 2022.03.25 \u2002"),Lc=c("<ul><li>\u91CD\u65B0\u53D1\u5E03\u7248\u672C\u4FEE\u590D Maven \u4ED3\u5E93\u56E0\u4E3A\u7F13\u5B58\u95EE\u9898\u65B0\u7248\u672C\u4E0D\u6B63\u786E\u7684\u60C5\u51B5</li><li>\u589E\u52A0 <code>MethodFinder</code> \u4E0E <code>FieldFinder</code> \u65B0\u7684\u8FD4\u56DE\u503C\u8C03\u7528\u65B9\u6CD5</li><li>\u4FEE\u590D\u53EF\u80FD\u5B58\u5728\u7684\u95EE\u9898\uFF0C\u5E76\u4FEE\u590D\u592A\u6781\u4F7F\u7528\u8FC7\u7A0B\u4E2D\u53EF\u80FD\u5B58\u5728\u7684\u95EE\u9898</li><li>\u4FEE\u590D\u81EA\u52A8\u751F\u6210 Xposed \u5165\u53E3\u7C7B\u53EF\u80FD\u53D1\u751F\u7684\u95EE\u9898</li><li>\u589E\u52A0\u4E86 <code>type</code> \u4E2D\u7684 <code>android</code> \u7C7B\u578B\u4EE5\u53CA <code>java</code> \u7C7B\u578B</li></ul>",1),Xc={id:"_1-0-6-2022-03-20",tabindex:"-1"},Fc=e("a",{class:"header-anchor",href:"#_1-0-6-2022-03-20","aria-hidden":"true"},"#",-1),Dc=o(" 1.0.6 | 2022.03.20 \u2002"),Bc=c("<ul><li>\u4FEE\u590D <code>YukiHookModulePrefs</code> \u5728\u4F7F\u7528\u4E00\u6B21 <code>direct</code> \u5FFD\u7565\u7F13\u5B58\u540E\u6BCF\u6B21\u90FD\u5FFD\u7565\u7684 BUG</li><li>\u589E\u52A0\u65B0\u7684 API\uFF0C\u4F5C\u5E9F\u4E86 <code>isActive</code> \u5224\u65AD\u6A21\u5757\u6FC0\u6D3B\u7684\u4F20\u7EDF\u7528\u6CD5</li><li>\u4FEE\u590D\u975E Xposed \u73AF\u5883\u4F7F\u7528 API \u65F6\u6253\u5370\u8C03\u8BD5\u65E5\u5FD7\u7684\u95EE\u9898</li><li>\u4FEE\u590D\u67E5\u627E <code>Field</code> \u65F6\u7684\u65E5\u5FD7\u8F93\u51FA\u95EE\u9898\u548C\u672A\u62E6\u622A\u7684\u5F02\u5E38\u95EE\u9898</li><li>\u89E3\u8026\u5408 <code>ReflectionUtils</code> \u4E2D\u7684 Xposed API</li><li>\u589E\u52A0 <code>YukiHookModuleStatus</code> \u65B9\u6CD5\u540D\u79F0\u7684\u6DF7\u6DC6\uFF0C\u4EE5\u7CBE\u7B80\u6A21\u5757\u751F\u6210\u7684\u4F53\u79EF</li><li>\u88C5\u8F7D\u6A21\u5757\u81EA\u8EAB Hook \u65F6\u5C06\u4E0D\u518D\u6253\u5370\u6B22\u8FCE\u4FE1\u606F</li><li>\u4FEE\u590D\u4E0A\u4E00\u4E2A\u7248\u672C\u4ECD\u7136\u5B58\u5728\u7684\u67D0\u4E9B BUG</li></ul>",1),wc={id:"_1-0-55-2022-03-18",tabindex:"-1"},Uc=e("a",{class:"header-anchor",href:"#_1-0-55-2022-03-18","aria-hidden":"true"},"#",-1),Wc=o(" 1.0.55 | 2022.03.18 \u2002"),Ec=e("ul",null,[e("li",null,"\u4FEE\u6B63\u4E00\u5904\u6CE8\u91CA\u9519\u8BEF"),e("li",null,"\u4E34\u65F6\u4FEE\u590D\u4E00\u4E2A BUG"),e("li",null,[o("\u589E\u52A0\u4E86 "),e("code",null,"type"),o(" \u4E2D\u7684\u5927\u91CF "),e("code",null,"android"),o(" \u7C7B\u578B\u4EE5\u53CA\u5C11\u91CF "),e("code",null,"java"),o(" \u7C7B\u578B")]),e("li",null,"\u4FEE\u590D\u65B0\u7248\u4E0E\u65E7\u7248 Kotlin APIs \u7684\u517C\u5BB9\u6027\u95EE\u9898")],-1),Tc={id:"_1-0-5-2022-03-18",tabindex:"-1"},Gc=e("a",{class:"header-anchor",href:"#_1-0-5-2022-03-18","aria-hidden":"true"},"#",-1),Nc=o(" 1.0.5 | 2022.03.18 \u2002"),Oc=c("<ul><li>\u4FEE\u590D\u65E7\u7248\u672C LSPosed \u6846\u67B6\u60C5\u51B5\u4E0B\u6B22\u8FCE\u4FE1\u606F\u591A\u6B21\u6253\u5370\u7684\u95EE\u9898</li><li>\u6DFB\u52A0 <code>onInit</code> \u65B9\u6CD5\u6765\u914D\u7F6E <code>YukiHookAPI</code></li><li>\u65B0\u589E <code>executorName</code> \u548C <code>executorVersion</code> \u6765\u83B7\u53D6\u5F53\u524D Hook Framework \u7684\u540D\u79F0\u548C\u7248\u672C\u53F7</li><li>\u65B0\u589E <code>by</code> \u65B9\u6CD5\u6765\u8BBE\u7F6E Hook \u7684\u65F6\u673A\u548C\u6761\u4EF6</li><li><code>YukiHookModulePrefs</code> \u65B0\u589E\u53EF\u63A7\u5236\u7684\u952E\u503C\u7F13\u5B58\uFF0C\u53EF\u5728\u5BBF\u4E3B\u8FD0\u884C\u65F6\u6A21\u5757\u52A8\u6001\u66F4\u65B0\u6570\u636E</li><li>\u4FEE\u590D\u4E86\u4E00\u4E9B\u53EF\u80FD\u5B58\u5728\u7684 BUG</li></ul>",1),zc={id:"_1-0-4-2022-03-06",tabindex:"-1"},jc=e("a",{class:"header-anchor",href:"#_1-0-4-2022-03-06","aria-hidden":"true"},"#",-1),Vc=o(" 1.0.4 | 2022.03.06 \u2002"),Zc=c("<ul><li>\u4FEE\u590D LSPosed \u5728\u6700\u65B0\u7248\u672C\u4E2D\u542F\u7528\u201C\u53EA\u6709\u6A21\u5757classloader\u53EF\u4EE5\u4F7F\u7528Xposed API\u201D\u9009\u9879\u540E\u627E\u4E0D\u5230 <code>XposedBridge</code> \u7684\u95EE\u9898</li><li>\u6DFB\u52A0 <code>YukiHookAPI</code> \u7684\u5E38\u91CF\u7248\u672C\u540D\u79F0\u548C\u7248\u672C\u53F7</li><li>\u65B0\u589E <code>hasField</code> \u65B9\u6CD5\u4EE5\u53CA <code>isAllowPrintingLogs</code> \u914D\u7F6E\u53C2\u6570</li><li>\u65B0\u589E <code>isDebug</code> \u5F00\u542F\u7684\u60C5\u51B5\u4E0B API \u5C06\u81EA\u52A8\u6253\u5370\u6B22\u8FCE\u4FE1\u606F\u6D4B\u8BD5\u6A21\u5757\u662F\u5426\u751F\u6548</li></ul>",1),Kc={id:"_1-0-3-2022-03-02",tabindex:"-1"},Jc=e("a",{class:"header-anchor",href:"#_1-0-3-2022-03-02","aria-hidden":"true"},"#",-1),qc=o(" 1.0.3 | 2022.03.02 \u2002"),Qc=c("<ul><li>\u4FEE\u590D\u4E00\u4E2A\u6F5C\u5728\u6027\u7684\u5F02\u5E38\u672A\u62E6\u622A BUG</li><li>\u589E\u52A0 <code>ignoredError</code> \u529F\u80FD</li><li>\u589E\u52A0\u4E86 <code>type</code> \u4E2D\u7684 <code>android</code> \u7C7B\u578B</li><li>\u589E\u52A0\u76D1\u542C <code>hook</code> \u540E\u7684 <code>ClassNotFound</code> \u529F\u80FD</li></ul>",1),$c={id:"_1-0-2-2022-02-18",tabindex:"-1"},el=e("a",{class:"header-anchor",href:"#_1-0-2-2022-02-18","aria-hidden":"true"},"#",-1),ol=o(" 1.0.2 | 2022.02.18 \u2002"),dl=e("ul",null,[e("li",null,"\u4FEE\u590D Windows \u4E0B\u65E0\u6CD5\u627E\u5230\u9879\u76EE\u8DEF\u5F84\u7684\u95EE\u9898"),e("li",null,[o("\u79FB\u9664\u90E8\u5206\u53CD\u5C04 API\uFF0C\u5408\u5E76\u81F3 "),e("code",null,"BaseFinder"),o(" \u8FDB\u884C\u6574\u5408")]),e("li",null,"\u589E\u52A0\u76F4\u63A5\u4F7F\u7528\u5B57\u7B26\u4E32\u521B\u5EFA Hook \u7684\u65B9\u6CD5")],-1),il={id:"_1-0-1-2022-02-15",tabindex:"-1"},cl=e("a",{class:"header-anchor",href:"#_1-0-1-2022-02-15","aria-hidden":"true"},"#",-1),ll=o(" 1.0.1 | 2022.02.15 \u2002"),tl=c("<ul><li><code>RemedyPlan</code> \u589E\u52A0 <code>onFind</code> \u529F\u80FD</li><li>\u6574\u5408\u5E76\u4FEE\u6539\u4E86\u90E8\u5206\u53CD\u5C04 API \u4EE3\u7801</li><li>\u589E\u52A0\u4E86 <code>type</code> \u4E2D\u7684 <code>java</code> \u7C7B\u578B</li><li>\u4FEE\u590D\u5FFD\u7565\u9519\u8BEF\u5728\u63A7\u5236\u53F0\u4ECD\u7136\u8F93\u51FA\u7684\u95EE\u9898</li></ul>",1),sl={id:"_1-0-2022-02-14",tabindex:"-1"},nl=e("a",{class:"header-anchor",href:"#_1-0-2022-02-14","aria-hidden":"true"},"#",-1),al=o(" 1.0 | 2022.02.14 \u2002"),rl=e("ul",null,[e("li",null,"\u9996\u4E2A\u7248\u672C\u63D0\u4EA4\u81F3 Maven")],-1);function _l(hl,ul){const i=t("Badge"),l=t("ExternalLinkIcon");return n(),a("div",null,[_,h,u,e("h3",k,[p,g,d(i,{type:"tip",text:"\u6700\u65B0",vertical:"middle"})]),H,e("h3",f,[m,P,d(i,{type:"warning",text:"\u8FC7\u65E7",vertical:"middle"})]),e("ul",null,[e("li",null,[b,y,x,e("a",C,[A,d(l)]),v,e("a",Y,[M,d(l)])]),I]),e("h3",R,[S,L,d(i,{type:"warning",text:"\u8FC7\u65E7",vertical:"middle"})]),X,e("h3",F,[D,B,d(i,{type:"warning",text:"\u8FC7\u65E7",vertical:"middle"})]),w,e("h3",U,[W,E,d(i,{type:"warning",text:"\u8FC7\u65E7",vertical:"middle"})]),T,e("h3",G,[N,O,d(i,{type:"warning",text:"\u8FC7\u65E7",vertical:"middle"})]),z,e("h3",j,[V,Z,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),K,e("h3",J,[q,Q,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),$,e("h3",ee,[oe,de,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),e("ul",null,[ie,e("li",null,[ce,e("a",le,[te,d(l)])]),se,e("li",null,[ne,e("a",ae,[re,d(l)]),_e]),he,e("li",null,[ue,ke,pe,ge,He,fe,e("a",me,[Pe,d(l)]),be]),ye,e("li",null,[xe,Ce,Ae,e("a",ve,[Ye,d(l)]),Me]),e("li",null,[Ie,Re,Se,e("a",Le,[Xe,d(l)]),Fe]),De,e("li",null,[Be,we,Ue,We,Ee,e("a",Te,[Ge,d(l)]),Ne,e("a",Oe,[ze,d(l)])]),je,Ve,Ze,e("li",null,[Ke,Je,qe,Qe,$e,e("a",eo,[oo,d(l)]),io]),co,e("li",null,[lo,to,so,e("a",no,[ao,d(l)]),ro,e("a",_o,[ho,d(l)])]),uo,ko,po,go]),e("h3",Ho,[fo,mo,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),Po,e("h3",bo,[yo,xo,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),e("ul",null,[e("li",null,[Co,Ao,vo,e("a",Yo,[Mo,d(l)]),Io]),Ro]),e("h3",So,[Lo,Xo,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),Fo,e("h3",Do,[Bo,wo,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),Uo,e("h3",Wo,[Eo,To,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),Go,e("h3",No,[Oo,zo,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),jo,e("h3",Vo,[Zo,Ko,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),Jo,e("h3",qo,[Qo,$o,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),ed,e("h3",od,[dd,id,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),cd,e("h3",ld,[td,sd,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),nd,e("h3",ad,[rd,_d,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),hd,e("h3",ud,[kd,pd,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),e("ul",null,[gd,e("li",null,[Hd,fd,md,e("a",Pd,[bd,d(l)]),yd]),xd,Cd,Ad]),e("h3",vd,[Yd,Md,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),e("ul",null,[Id,e("li",null,[Rd,Sd,Ld,e("a",Xd,[Fd,d(l)]),Dd]),Bd,wd]),e("h3",Ud,[Wd,Ed,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),e("ul",null,[e("li",null,[Td,Gd,Nd,Od,e("a",zd,[jd,d(l)]),Vd]),Zd]),e("h3",Kd,[Jd,qd,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),e("ul",null,[e("li",null,[Qd,e("a",$d,[ei,d(l)]),oi]),di]),ii,e("ul",null,[e("li",null,[ci,e("a",li,[ti,d(l)]),si]),e("li",null,[ni,ai,ri,e("a",_i,[hi,d(l)]),ui]),ki]),e("h3",pi,[gi,Hi,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),fi,e("h3",mi,[Pi,bi,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),yi,e("h3",xi,[Ci,Ai,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),e("ul",null,[vi,e("li",null,[Yi,Mi,Ii,e("a",Ri,[Si,d(l)]),Li]),Xi,Fi,Di,Bi,e("li",null,[wi,Ui,Wi,e("a",Ei,[Ti,d(l)]),Gi]),e("li",null,[Ni,e("a",Oi,[zi,d(l)]),ji]),Vi,e("li",null,[Zi,Ki,Ji,e("a",qi,[Qi,d(l)]),$i]),ec,oc,e("li",null,[dc,e("a",ic,[cc,d(l)]),lc])]),e("h3",tc,[sc,nc,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),e("ul",null,[ac,rc,e("li",null,[_c,hc,uc,e("a",kc,[pc,d(l)]),gc])]),e("h3",Hc,[fc,mc,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),Pc,e("h3",bc,[yc,xc,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),Cc,e("h3",Ac,[vc,Yc,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),Mc,e("h3",Ic,[Rc,Sc,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),Lc,e("h3",Xc,[Fc,Dc,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),Bc,e("h3",wc,[Uc,Wc,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),Ec,e("h3",Tc,[Gc,Nc,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),Oc,e("h3",zc,[jc,Vc,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),Zc,e("h3",Kc,[Jc,qc,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),Qc,e("h3",$c,[el,ol,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),dl,e("h3",il,[cl,ll,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),tl,e("h3",sl,[nl,al,d(i,{type:"danger",text:"\u8FC7\u671F",vertical:"middle"})]),rl])}const pl=s(r,[["render",_l],["__file","changelog.html.vue"]]);export{pl as default};