import{_ as c,r as a,o as l,c as s,b as e,d as o,e as t,a as n}from"./app-BpUB8-Q8.js";const r={},h=n('

Changelog

The version update history of YukiHookAPI is recorded here.

Pay Attention

We will only maintain the latest API version, if you are using an outdate API version, you voluntarily renounce any possibility of maintenance.

Notice

To avoid translation time consumption, Changelog will use Google Translation from Chinese to English, please refer to the original text for actual reference.

Time zone of version release date: UTC+8

',4),u={id:"_1-3-0-2024-06-25",tabindex:"-1"},m=e("a",{class:"header-anchor",href:"#_1-3-0-2024-06-25","aria-hidden":"true"},"#",-1),p={href:"https://highcapable.github.io/YukiHookAPI/zh-cn/config/move-to-api-1-3-x",target:"_blank",rel:"noopener noreferrer"},f=e("code",null,"YukiHookAPI",-1),g={href:"https://github.com/HighCapable/KavaRef",target:"_blank",rel:"noopener noreferrer"},_=n("
  • The limitation of duplicate Hooks has been deprecated, now you can repeat the same method of the Hook
  • Deprecated ModuleAppActivity, ModuleAppCompatActivity, please use ModuleActivity to create your own proxy Activity
  • YLog is now allowed to pass msg into any object and will be automatically converted to a string for printing
  • ",3),k=e("code",null,"FreeReflection",-1),b={href:"https://github.com/LSPosed/AndroidHiddenApiBypass",target:"_blank",rel:"noopener noreferrer"},y={id:"_1-2-1-2024-06-20",tabindex:"-1"},x=e("a",{class:"header-anchor",href:"#_1-2-1-2024-06-20","aria-hidden":"true"},"#",-1),v=e("li",null,"Catch exceptions in singleton Hooker to prevent it from blocking the entire process",-1),w={href:"https://github.com/zhufengning",target:"_blank",rel:"noopener noreferrer"},A={href:"https://github.com/HighCapable/YukiHookAPI/pull/70",target:"_blank",rel:"noopener noreferrer"},H={href:"https://github.com/xihan123",target:"_blank",rel:"noopener noreferrer"},P={href:"https://github.com/HighCapable/YukiHookAPI/pull/76",target:"_blank",rel:"noopener noreferrer"},C={id:"_1-2-0-2023-10-07",tabindex:"-1"},F=e("a",{class:"header-anchor",href:"#_1-2-0-2023-10-07","aria-hidden":"true"},"#",-1),M=e("li",null,[o("The license agreement has been changed from "),e("code",null,"MIT"),o(" to "),e("code",null,"Apache-2.0"),o(", subsequent versions will be distributed under this license agreement, you should change the relevant license agreement after using this version")],-1),Y={href:"https://highcapable.github.io/YukiHookAPI/en/config/move-to-api-1-2-x",target:"_blank",rel:"noopener noreferrer"},I={href:"https://github.com/BlueCat300",target:"_blank",rel:"noopener noreferrer"},R={href:"https://github.com/HighCapable/YukiHookAPI/pull/44",target:"_blank",rel:"noopener noreferrer"},S=e("code",null,"findAllInterfaces",-1),D={href:"https://github.com/buffcow",target:"_blank",rel:"noopener noreferrer"},T={href:"https://github.com/HighCapable/YukiHookAPI/pull/38",target:"_blank",rel:"noopener noreferrer"},L={href:"https://github.com/cesaryuan",target:"_blank",rel:"noopener noreferrer"},z={href:"https://github.com/HighCapable/YukiHookAPI/issues/47",target:"_blank",rel:"noopener noreferrer"},X={href:"https://github.com/HighCapable/YukiHookAPI/issues/36",target:"_blank",rel:"noopener noreferrer"},j=n("
  • Added YukiHookAPI.TAG
  • Deprecated YukiHookAPI.API_VERSION_NAME, YukiHookAPI.API_VERSION_CODE, merged into YukiHookAPI.VERSION
  • Added YukiHookAPI.TAG
  • Deprecated YukiHookAPI.API_VERSION_NAME, YukiHookAPI.API_VERSION_CODE, merged into YukiHookAPI.VERSION
  • Deprecated useDangerousOperation method in YukiMemberHookCreator
  • Deprecated instanceClass function in YukiMemberHookCreator, it is no longer recommended
  • Modify instanceClass in HookParam to be a null safe return value type
  • Detach all Hook objects created using injectMember to LegacyCreator
  • Modify appClassLoader in PackageParam to be a null safe return value type
  • Refactor all logger... methods to new usage YLog
  • Removed the --> style behind the print log function
  • Fixed and improved the problem that the module package name cannot be obtained through KSP after using namespace
  • Functions such as whether to enable module activation status have now been moved to the InjectYukiHookWithXposed annotation
  • ",13),O={href:"https://github.com/tiann/FreeReflection",target:"_blank",rel:"noopener noreferrer"},B=n("
  • Added a warning log that will be automatically printed when the same Hook method is repeated
  • The findClass(...) method in PackageParam is obsolete, please migrate to the "...".toClass() method
  • The String.hook { ... } method in PackageParam is obsolete, and it is recommended to use a new method for Hook
  • AppLifecycle can now be created repeatedly in different Hookers
  • The old version of Hook priority writing is obsolete and migrated to YukiHookPriority
  • Removed the tag function in the Hook process
  • Refactored remendy functionality in find methods, which now prints exceptions in steps
  • The multi-method find result type is changed from HashSet to MutableList
  • Added method(), constructor(), field() to directly obtain all object functions in the class
  • constructor() no longer behaves like constructor { emptyParam() }
  • Added lazyClass and lazyClassOrNull methods to lazily load Class
  • ",11),E={id:"_1-1-11-2023-04-25",tabindex:"-1"},N=e("a",{class:"header-anchor",href:"#_1-1-11-2023-04-25","aria-hidden":"true"},"#",-1),W=e("code",null,"1.1.5",-1),q=e("code",null,"Member",-1),V={href:"https://github.com/Art-Chen",target:"_blank",rel:"noopener noreferrer"},K=n("
  • Remove the direct cache function of Member and deprecated YukiReflection.Configs.isEnableMemberCache, keep the cache function of Class
  • Modified finder to Sequence, optimize the finding speed and performance of Member
  • Remove the YukiHookPrefsBridge's direct key-value cache function and removed LruCache related functions
  • Deprecated YukiHookAPI.Configs.isEnablePrefsBridgeCache
  • Deprecated direct, clearCache functions in YukiHookPrefsBridge
  • ",5),U={id:"_1-1-10-2023-04-21",tabindex:"-1"},Z=e("a",{class:"header-anchor",href:"#_1-1-10-2023-04-21","aria-hidden":"true"},"#",-1),G=n("",1),J={id:"_1-1-9-2023-04-17",tabindex:"-1"},Q=e("a",{class:"header-anchor",href:"#_1-1-9-2023-04-17","aria-hidden":"true"},"#",-1),$=n("",1),ee={id:"_1-1-8-2023-02-01",tabindex:"-1"},oe=e("a",{class:"header-anchor",href:"#_1-1-8-2023-02-01","aria-hidden":"true"},"#",-1),te=e("code",null,"result",-1),de={href:"https://github.com/HighCapable/YukiHookAPI/issues/23",target:"_blank",rel:"noopener noreferrer"},ie={href:"https://github.com/elvizlai",target:"_blank",rel:"noopener noreferrer"},ne=n("
  • Move the entry class name file automatically generated by YukiHookAPI from assets/yukihookapi_init to resources/META-INF/yukihookapi_init
  • When only printing the exception stack, the msg parameter is allowed to be empty and the msg parameter can not be set, and the log with the msg parameter left blank will not be logged unless the exception stack is not empty
  • Fixed the bug that the log printed by the exception that occurs in the body of the Hook callback method has no specific method information
  • HookParam adds instanceOrNull variable and method, which can be used on the premise that the Hook instance is not sure whether it is empty to prevent the Hook instance from being empty and throw an exception
  • Decoupled all hookers in Member lookup functionality to MemberBaseFinder.MemberHookerManager
  • Modified the usage of by condition in YukiMemberHookCreator, now you can reuse by method to set multiple conditions
  • Removed wrong Class object declaration in Android type
  • The registerReceiver method in PackageParam.AppLifecycle adds the function of directly using IntentFilter to create a system broadcast listener
  • Fixed the problem that there may be multiple registration lifecycles in PackageParam.AppLifecycle
  • Revert: The 1.1.7 version has been withdrawn due to a serious problem, please update to this version directly (the update log is the same as version 1.1.7)
  • ",10),ae={id:"_1-1-6-2023-01-21",tabindex:"-1"},ce=e("a",{class:"header-anchor",href:"#_1-1-6-2023-01-21","aria-hidden":"true"},"#",-1),le=n("",1),se={id:"_1-1-5-2023-01-13",tabindex:"-1"},re=e("a",{class:"header-anchor",href:"#_1-1-5-2023-01-13","aria-hidden":"true"},"#",-1),he=n('',1),ue={id:"_1-1-4-2022-10-04",tabindex:"-1"},me=e("a",{class:"header-anchor",href:"#_1-1-4-2022-10-04","aria-hidden":"true"},"#",-1),pe=n("",1),fe={id:"_1-1-3-2022-09-30",tabindex:"-1"},ge=e("a",{class:"header-anchor",href:"#_1-1-3-2022-09-30","aria-hidden":"true"},"#",-1),_e=e("ul",null,[e("li",null,"Fixed a fatal bug where the Hook entry class name could not be customized"),e("li",null,[o("Added some code notes in "),e("code",null,"LoggerFactory"),o(" and updated special features documentation")])],-1),ke={id:"_1-1-2-2022-09-30",tabindex:"-1"},be=e("a",{class:"header-anchor",href:"#_1-1-2-2022-09-30","aria-hidden":"true"},"#",-1),ye=n('',1),xe={id:"_1-1-1-2022-09-28",tabindex:"-1"},ve=e("a",{class:"header-anchor",href:"#_1-1-1-2022-09-28","aria-hidden":"true"},"#",-1),we=e("ul",null,[e("li",null,[o("Fixed the problem of wrong document friend links in "),e("a",{href:"../guide/knowledge"},"Basic Knowledge"),o(" page")]),e("li",null,[o("Fixed document "),e("code",null,"favicon"),o(" not showing up")]),e("li",null,[o("Fixed bug in "),e("code",null,"DexClassFinder"),o(" search conditions")])],-1),Ae={id:"_1-1-0-2022-09-28",tabindex:"-1"},He=e("a",{class:"header-anchor",href:"#_1-1-0-2022-09-28","aria-hidden":"true"},"#",-1),Pe=e("li",null,[o("This is a major version update, please refer to "),e("a",{href:"../api/home"},"API Document"),o(" and "),e("a",{href:"../api/special-features/reflection"},"Special Features"),o(" for the changes and usage mentioned in the changelog")],-1),Ce={href:"https://v2.vuepress.vuejs.org",target:"_blank",rel:"noopener noreferrer"},Fe=n('
  • Unify and standardize the terms and nouns in the document, for example, "query" is always changed to "find", XposedHelper is misspelled and changed to XposedHelpers
  • Documentation Basic Knowledge page to add friend links, Simplified Chinese only
  • Convert Class and Method of Hook App Demo to Java to provide better demo effect
  • Fixed code comment naming in Hook Module Demo
  • Refactored a lot of low-level Hook logic and the docking method of Xposed API
  • Removed HookParamWrapper, it now interfaces directly with YukiBridgeFactory
  • Moved methods in section YukiHookBridge to AppParasitics
  • Removed HookParam.args and the underlying direct connection method setArgs, directly get and set the object of the current array
  • Optimized automatic handler to merge referenced jar into stub project
  • ',9),Me={href:"https://github.com/5ec1cff",target:"_blank",rel:"noopener noreferrer"},Ye=n("
  • Internal closure processing for the methods of API private tool classes to avoid polluting the top-level namespace
  • Fixed Creater naming to Creator for all reflection and Hook classes
  • Added YukiHookAPI.Status.compiledTimestamp function, which can get the compilation completion timestamp when used as an Xposed module
  • Added YukiHookAPI.Status.isXposedEnvironment function, which can determine whether the current (Xposed) host environment or module environment is
  • The debug logging function has been overhauled, and functions such as YukiHookAPI.Configs.debugTag have been merged into YukiHookLogger.Configs
  • The debug log can be added to specify the printing method as XposedBridge.log or Logd
  • The package name of the current host and the current user ID are added to the debug log by default for debugging, you can change it yourself in the debugLog configuration
  • Added generic function to reflect and call generics, you can use it in Class or CurrentClass
  • obsolete the buildOfAny method, now use the buildOf method directly (without generics) to use the constructor to create a new object and get the result Any
  • Fixed the issue of null pointer exception when using hasExtends
  • CurrentClass added non-lambda method of calling
  • CurrentClass adds name and simpleName functions
  • Completely rewrite the core method of ReflectionTool, sorting and classifying different search conditions
  • Fixed the problem that Member obtained by directly calling declared in ReflectionTool throws an exception
  • Fixed UndefinedType in ReflectionTool is not correctly judged in Method and Constructor conditions
  • Added a friendly prompt method when the reflection search result is abnormal, which can specifically locate the problem that Member cannot be found under specified conditions
  • Added VagueType condition in Method and Constructor for reflection search, which can be used in param condition to ignore parameters you don't want to fill in
  • Added paramCount { ... } condition in Method and Constructor of reflection search, now you can directly get it in it to customize your judgment condition
  • The current method is added to the FieldFinder result, which can directly create a call space for the result instance
  • Modified the modifiers condition and name condition in the reflection lookup function, now you need to return a Boolean at the end of the method body to make the condition true
  • ",20),Ie=e("code",null,"as*",-1),Re=e("code",null,"ModifierRules",-1),Se=e("code",null,"is*",-1),De={href:"https://github.com/KyuubiRan",target:"_blank",rel:"noopener noreferrer"},Te=n("
  • Added RemedyPlan feature in FieldFinder
  • Added Class fuzzy search function (Beta) in Dex, you can now directly use searchClass function to fuzzy search Class with specified conditions
  • ",2),Le=e("strong",null,"AA",-1),ze={href:"https://github.com/KyuubiRan",target:"_blank",rel:"noopener noreferrer"},Xe=e("code",null,"appClassLoader",-1),je={href:"https://github.com/luckyzyx",target:"_blank",rel:"noopener noreferrer"},Oe=e("li",null,[o("Modified the calling method of "),e("code",null,"XposedBridge.invokeOriginalMethod"),o(" and added "),e("code",null,"original"),o(" function in "),e("code",null,"MethodFinder.Result.Instance")],-1),Be=e("code",null,"getStringSet",-1),Ee=e("code",null,"YukiHookModulePrefs",-1),Ne={href:"https://github.com/Teddy-Zhu",target:"_blank",rel:"noopener noreferrer"},We={href:"https://github.com/HighCapable/YukiHookAPI/pull/19",target:"_blank",rel:"noopener noreferrer"},qe=e("li",null,[o("Modify "),e("code",null,"YukiHookModulePrefs"),o(" to intercept exceptions that may not exist in "),e("code",null,"XSharePreference")],-1),Ve=e("li",null,[o("Fixed the problem that "),e("code",null,"YukiHookDataChannel"),o(" could not be successfully registered in some third-party ROM system frameworks")],-1),Ke=e("li",null,[o("Secured "),e("code",null,"YukiHookDataChannel"),o(", now it can only communicate between modules from the specified package name and the host")],-1),Ue=e("code",null,"SharedPreferences",-1),Ze=e("code",null,"0664",-1),Ge={href:"https://github.com/5ec1cff",target:"_blank",rel:"noopener noreferrer"},Je=n("
  • Added YukiHookAPI.Configs.isEnableHookSharedPreferences function, which is disabled by default and can be enabled if the permission of SharedPreferences is incorrect
  • Fixed the bug that the no-parameter construction method cannot be found when searching for Constructor without filling in the search conditions, thanks B5 KAKA for the feedback
  • Detach Result instances located in method, constructor in injectMember to Process
  • Added the useDangerousOperation method in the Hook process, which will automatically stop the Hook and print an error after the function in the Hook Dangerous List is not declared
  • Added module resource injection and Activity proxy functions, you can call injectModuleAppResources and registerModuleAppActivities to use
  • Added ModuleContextThemeWrapper function, you can call applyModuleTheme to create the Context of a module in any Activity
  • Added ClassLoader.onLoadClass function, which can be used to listen for events when the loadClass method of ClassLoader is called
  • obsolete classOf and clazz extension methods, add toClass and toClassOrNull usage, please move to the new method now
  • VariousClass adds a getOrNull method, which can return null instead of throwing an exception when it can't match Class
  • Removed isUseAppClassLoader parameter in PackageParam.hook, changed it to isForceUseAbsolute and automatically matched the target Class
  • PackageParam adds systemContext function, you can call this function at any time to get a persistent Context
  • no longer expose any methods in HookClass
  • Added throwToApp function in HookParam, which can throw exceptions directly to the host
  • The onFailureThrowToApp function is added to the Hook callback, which can be directly thrown to the host when an exception occurs
  • Modified the printing logic of the debug log, the time-consuming records in the reflection search function will only be printed during the Hook process
  • Added the function of removing Hook in the Hook process, you can use the remove and removeSelf methods to remove the hook
  • Fixed the issue that caused the host to throw an exception when ReplaceHook failed, and now it is modified to call the original method to ensure the normal operation of the host function
  • Added the function of checking the return value of the method in the Hook process. If the return value does not match, it will automatically throw an exception or print an error according to the situation
  • ",18),Qe=e("code",null,"array",-1),$e={href:"https://github.com/HighCapable/YukiHookAPI/pull/12",target:"_blank",rel:"noopener noreferrer"},eo={href:"https://github.com/GSWXXN",target:"_blank",rel:"noopener noreferrer"},oo=e("li",null,[o("Moved "),e("code",null,"me.weishu.reflection"),o(" to "),e("code",null,"thirdparty"),o(" to prevent conflicting dependencies of the same name introduced at the same time")],-1),to=e("li",null,"Remove the exception thrown when the Hook method body is empty, and modify it to print the warning log",-1),io=e("li",null,[o("Modify the exception handling logic of "),e("code",null,"AppLifecycle"),o(" and throw it directly to the host when an exception occurs")],-1),no=e("li",null,"Updated Demo API version to 33",-1),ao={id:"_1-0-92-2022-05-31",tabindex:"-1"},co=e("a",{class:"header-anchor",href:"#_1-0-92-2022-05-31","aria-hidden":"true"},"#",-1),lo=n("",1),so={id:"_1-0-91-2022-05-29",tabindex:"-1"},ro=e("a",{class:"header-anchor",href:"#_1-0-91-2022-05-29","aria-hidden":"true"},"#",-1),ho=e("code",null,"ClassLoader",-1),uo={href:"https://github.com/luckyzyx",target:"_blank",rel:"noopener noreferrer"},mo=n("
  • Fixed YukiHookDataChannel not being able to call back the current Activity broadcast on ZUI and systems below Android 12
  • Integrate the YukiHookModuleStatus function into YukiHookAPI.Status, rewrite a lot of methods, now you can judge the status information such as module activation in the module and the host in both directions
  • ",2),po={id:"_1-0-90-2022-05-27",tabindex:"-1"},fo=e("a",{class:"header-anchor",href:"#_1-0-90-2022-05-27","aria-hidden":"true"},"#",-1),go=n("",1),_o={id:"_1-0-89-2022-05-26",tabindex:"-1"},ko=e("a",{class:"header-anchor",href:"#_1-0-89-2022-05-26","aria-hidden":"true"},"#",-1),bo=n("",1),yo={id:"_1-0-88-2022-05-25",tabindex:"-1"},xo=e("a",{class:"header-anchor",href:"#_1-0-88-2022-05-25","aria-hidden":"true"},"#",-1),vo=n("",1),wo={id:"_1-0-87-2022-05-10",tabindex:"-1"},Ao=e("a",{class:"header-anchor",href:"#_1-0-87-2022-05-10","aria-hidden":"true"},"#",-1),Ho=e("ul",null,[e("li",null,[o("Added "),e("code",null,"refreshModuleAppResources"),o(" function to adapt Resources refresh when the language region, font size, resolution changes, etc.")]),e("li",null,[o("Added "),e("code",null,"isEnableModuleAppResourcesCache"),o(" function, you can set whether to automatically cache the resources of the current module")])],-1),Po={id:"_1-0-86-2022-05-06",tabindex:"-1"},Co=e("a",{class:"header-anchor",href:"#_1-0-86-2022-05-06","aria-hidden":"true"},"#",-1),Fo=e("ul",null,[e("li",null,[o("Fixed the problem of continuous error reporting during "),e("code",null,"initZygote"),o(" when Resources Hook is not supported, reproduced in "),e("strong",null,"ZUI"),o("/"),e("strong",null,"LSPosed CI(1.8.3-6550)")]),e("li",null,"Optimize and handle exceptions for Resources Hook, only print errors and warnings if they are used and not supported")],-1),Mo={id:"_1-0-85-2022-05-04",tabindex:"-1"},Yo=e("a",{class:"header-anchor",href:"#_1-0-85-2022-05-04","aria-hidden":"true"},"#",-1),Io=e("ul",null,[e("li",null,[o("Fixed a serious problem of not being able to hook the system framework, since "),e("code",null,"1.0.80")]),e("li",null,[o("Added in the debug log to distinguish the package name loaded by "),e("code",null,"initZygote"),o(" as "),e("code",null,"android-zygote"),o(", "),e("code",null,"packageName"),o(" keeps "),e("code",null,"android"),o(" unchanged")])],-1),Ro={id:"_1-0-83-2022-05-04",tabindex:"-1"},So=e("a",{class:"header-anchor",href:"#_1-0-83-2022-05-04","aria-hidden":"true"},"#",-1),Do=e("ul",null,[e("li",null,[o("Fixed "),e("code",null,"YukiHookModuleStatus"),o(" reporting a lot of errors after "),e("code",null,"loadSystem")]),e("li",null,[o("Added "),e("code",null,"android"),o(" type in "),e("code",null,"type")]),e("li",null,"Updated example descriptions in help documentation")],-1),To={id:"_1-0-82-2022-05-04",tabindex:"-1"},Lo=e("a",{class:"header-anchor",href:"#_1-0-82-2022-05-04","aria-hidden":"true"},"#",-1),zo=e("ul",null,[e("li",null,[o("Fixed a concept confusion error, distinguishing the relationship between "),e("code",null,"initZygote"),o(" and the system framework, there are problems with the previous comments and documentation, I am very sorry")]),e("li",null,[e("code",null,"PackageParam"),o(" adds "),e("code",null,"loadSystem"),o(" method, no need to write "),e("code",null,'loadApp(name = "android")'),o(" to hook the system framework")])],-1),Xo={id:"_1-0-81-2022-05-04",tabindex:"-1"},jo=e("a",{class:"header-anchor",href:"#_1-0-81-2022-05-04","aria-hidden":"true"},"#",-1),Oo=e("ul",null,[e("li",null,[o("Fixed the problem that the method and constructor that cannot be found in the Hook method body still output the error log after setting the condition using the "),e("code",null,"by"),o(" method")]),e("li",null,"Added a global log to display the package name of the current Hook APP during the execution of the Hook, and fixed a problem with the printing style of the error log")],-1),Bo={id:"_1-0-80-2022-05-01",tabindex:"-1"},Eo=e("a",{class:"header-anchor",href:"#_1-0-80-2022-05-01","aria-hidden":"true"},"#",-1),No=n("
  • The InjectYukiHookWithXposed annotation adds the entryClassName function, which can customize the generated xposed_init entry class name
  • YukiHookXposedInitProxy renamed to IYukiHookXposedInit, the original interface name has been invalidated and will be deleted directly in subsequent versions
  • Added initZygote and Resources Hook functions to support Hook Layout
  • Added onXposedEvent method to listen to all events of native Xposed API
  • Perform inline processing on the lambda of the Hook function to avoid generating excessively broken anonymous classes and improve the running performance after compilation
  • Fixed PrefsData compiled method body copy is too large
  • Added XSharePreference readability test, which will automatically print a warning log if it fails
  • PackageParam adds appResources, moduleAppResources, moduleAppFilePath functions
  • loadApp of PackageParam adds the function of not writing name, and all APPs are filtered by default
  • PackageParam adds the loadZygote method, which can directly hook the system framework
  • PackageParam added resources().hook function
  • Optimization method, construction method, variable search function, the error log that cannot be found will display the set query conditions first
  • Added hasExtends extension method to determine whether the current Class has an inheritance relationship
  • Added isSupportResourcesHook function to determine whether resource hooks are currently supported (Resources Hook)
  • current function adds superClass method to call superclass
  • New superClass query conditions for search methods, construction methods and variables, you can continue to search in the parent class
  • YukiHookAPI lots of methods are decoupled from Xposed API
  • Added native Hook priority function of Xposed API
  • Fixed the problem that isFirstApplication may be inaccurate
  • Block the problem that MiuiCatcherPatch repeatedly calls the Hook entry method on the MIUI system
  • Optimize Hook entry calling method to avoid multiple calls due to Hook Framework issues
  • ",21),Wo=e("code",null,"ClassLoader",-1),qo={href:"https://github.com/WankkoRee",target:"_blank",rel:"noopener noreferrer"},Vo=e("li",null,[o("Improve the performance after the "),e("code",null,"XC_Callback"),o(" interface is connected")],-1),Ko=e("li",null,[o("Java "),e("code",null,"type"),o(" added "),e("code",null,"ClassLoader"),o(" type")],-1),Uo=e("li",null,"Optimize the API help documentation, fix the problem that the page may be continuously cached",-1),Zo={id:"_1-0-78-2022-04-18",tabindex:"-1"},Go=e("a",{class:"header-anchor",href:"#_1-0-78-2022-04-18","aria-hidden":"true"},"#",-1),Jo=n("
  • YukiHookModulePrefs adds isRunInNewXShareMode method, which can be used to determine whether the module is currently in New XSharePreference mode
  • Fixed YukiHookModulePrefs working in New XSharePreference mode
  • Added ModulePreferenceFragment, now you can completely replace PreferenceFragmentCompat and start using the new functionality
  • ",3),Qo=e("code",null,"PreferenceFragmentCompat",-1),$o={href:"https://github.com/mahoshojoHCG",target:"_blank",rel:"noopener noreferrer"},et=e("li",null,"Update autohandlers and Kotlin dependencies to the latest version",-1),ot=e("li",null,"Fixed some bugs in documentation and code comments",-1),tt={id:"_1-0-77-2022-04-15",tabindex:"-1"},dt=e("a",{class:"header-anchor",href:"#_1-0-77-2022-04-15","aria-hidden":"true"},"#",-1),it=e("code",null,"YukiHookModulePrefs",-1),nt=e("code",null,"clear",-1),at={href:"https://github.com/WankkoRee",target:"_blank",rel:"noopener noreferrer"},ct=n("
  • YukiHookModulePrefs added getStringSet, putStringSet, all methods
  • Added any method to args of HookParam
  • Added ModuleApplication, which can be inherited in modules to achieve more functions
  • Connect all findClass functions to the Xposed API, and continue to use native ClassLoader in non-hosted environments
  • Fixed some possible bugs
  • ",5),lt={id:"_1-0-75-2022-04-13",tabindex:"-1"},st=e("a",{class:"header-anchor",href:"#_1-0-75-2022-04-13","aria-hidden":"true"},"#",-1),rt={href:"https://github.com/ApeaSuperz",target:"_blank",rel:"noopener noreferrer"},ht=n("
  • Fixed an issue where the reference to a doc comment was not changed
  • firstArgs and lastArgs methods have been removed from HookParam, now you can use args().first() and args().last() instead of it
  • Removed default parameter index = 0 in args() in HookParam, now you can use args().first() or args(index = 0) to replace it
  • The result function in HookParam adds generic matching, now you can use result<T> to match the known return value type of your target method
  • The emptyParam condition is added to the method and constructor query function, and the misunderstanding of the query condition that needs to be paid attention to in the document has been improved
  • Added android type in type
  • ",6),ut={id:"_1-0-73-2022-04-10",tabindex:"-1"},mt=e("a",{class:"header-anchor",href:"#_1-0-73-2022-04-10","aria-hidden":"true"},"#",-1),pt={href:"https://github.com/WankkoRee",target:"_blank",rel:"noopener noreferrer"},ft=e("code",null,"XC_LoadPackage.LoadPackageParam",-1),gt={href:"https://github.com/luckyzyx",target:"_blank",rel:"noopener noreferrer"},_t=e("li",null,"Fixed some known bugs and improve Hook stability",-1),kt={id:"_1-0-72-2022-04-09",tabindex:"-1"},bt=e("a",{class:"header-anchor",href:"#_1-0-72-2022-04-09","aria-hidden":"true"},"#",-1),yt=e("ul",null,[e("li",null,"Update API documentation to new address"),e("li",null,[o("Add "),e("code",null,"appContext"),o(" function to "),e("code",null,"PackageParam")]),e("li",null,"Fixed some known bugs and improve Hook stability")],-1),xt={id:"_1-0-71-2022-04-04",tabindex:"-1"},vt=e("a",{class:"header-anchor",href:"#_1-0-71-2022-04-04","aria-hidden":"true"},"#",-1),wt=e("ul",null,[e("li",null,"Fixed a serious issue that would stop the Hook from throwing an exception when VariousClass could not be matched")],-1),At={id:"_1-0-70-2022-04-04",tabindex:"-1"},Ht=e("a",{class:"header-anchor",href:"#_1-0-70-2022-04-04","aria-hidden":"true"},"#",-1),Pt=e("li",null,[o("Fixed "),e("code",null,"instanceClass"),o(" reporting an error after being called in a static instance")],-1),Ct=e("code",null,"isUseAppClassLoader",-1),Ft={href:"https://github.com/WankkoRee",target:"_blank",rel:"noopener noreferrer"},Mt=e("li",null,[o("Added the "),e("code",null,"withProcess"),o(" function, which can be hooked according to the currently specified process of the APP")],-1),Yt=e("li",null,"Fixed critical logic errors in lookup methods, constructor classes and variables",-1),It=e("li",null,"Fixed the problem that the abnormal output cannot be ignored when the Hook target class does not exist",-1),Rt=e("li",null,"Fixed the problem that the Hook could not take effect due to the fast loading of the APP startup method in some cases",-1),St=e("code",null,"allMethods",-1),Dt={href:"https://github.com/WankkoRee",target:"_blank",rel:"noopener noreferrer"},Tt={href:"https://github.com/WankkoRee",target:"_blank",rel:"noopener noreferrer"},Lt=e("li",null,"Modify the way the Xposed entry is injected into the class, and redefine the definition domain of the API",-1),zt=e("code",null,"index",-1),Xt={href:"https://github.com/WankkoRee",target:"_blank",rel:"noopener noreferrer"},jt=e("li",null,[o("When looking for methods and variables, multiple types are allowed, such as the class name declared by "),e("code",null,"String"),o(" and "),e("code",null,"VariousClass")],-1),Ot=e("li",null,[o("Add a new "),e("code",null,"current"),o(" function, which can build a reflection method operation space for any class, and easily call and modify the methods and variables in it")],-1),Bt={href:"https://github.com/WankkoRee",target:"_blank",rel:"noopener noreferrer"},Et={id:"_1-0-69-2022-03-30",tabindex:"-1"},Nt=e("a",{class:"header-anchor",href:"#_1-0-69-2022-03-30","aria-hidden":"true"},"#",-1),Wt=e("li",null,"Added and improved annotations for some method functions",-1),qt=e("li",null,"Added more example Hook content in Demo",-1),Vt=e("code",null,"allMethods",-1),Kt={href:"https://github.com/WankkoRee",target:"_blank",rel:"noopener noreferrer"},Ut={id:"_1-0-68-2022-03-29",tabindex:"-1"},Zt=e("a",{class:"header-anchor",href:"#_1-0-68-2022-03-29","aria-hidden":"true"},"#",-1),Gt=n("",1),Jt={id:"_1-0-67-2022-03-27",tabindex:"-1"},Qt=e("a",{class:"header-anchor",href:"#_1-0-67-2022-03-27","aria-hidden":"true"},"#",-1),$t=n("",1),ed={id:"_1-0-66-2022-03-25",tabindex:"-1"},od=e("a",{class:"header-anchor",href:"#_1-0-66-2022-03-25","aria-hidden":"true"},"#",-1),td=e("ul",null,[e("li",null,[o("Fixed a serious bug in "),e("code",null,"MethodFinder")]),e("li",null,[o("Added "),e("code",null,"args"),o(" call method in "),e("code",null,"hookParam")]),e("li",null,"Fixed other possible problems and fix some class annotation problems")],-1),dd={id:"_1-0-65-2022-03-25",tabindex:"-1"},id=e("a",{class:"header-anchor",href:"#_1-0-65-2022-03-25","aria-hidden":"true"},"#",-1),nd=n("",1),ad={id:"_1-0-6-2022-03-20",tabindex:"-1"},cd=e("a",{class:"header-anchor",href:"#_1-0-6-2022-03-20","aria-hidden":"true"},"#",-1),ld=n("",1),sd={id:"_1-0-55-2022-03-18",tabindex:"-1"},rd=e("a",{class:"header-anchor",href:"#_1-0-55-2022-03-18","aria-hidden":"true"},"#",-1),hd=e("ul",null,[e("li",null,"Fixed an annotation error"),e("li",null,"Temporarily fix a bug"),e("li",null,[o("Added a large number of "),e("code",null,"android"),o(" types in "),e("code",null,"type"),o(" and a small number of Java types")]),e("li",null,"Fixed compatibility issues between new and old Kotlin APIs")],-1),ud={id:"_1-0-5-2022-03-18",tabindex:"-1"},md=e("a",{class:"header-anchor",href:"#_1-0-5-2022-03-18","aria-hidden":"true"},"#",-1),pd=n("",1),fd={id:"_1-0-4-2022-03-06",tabindex:"-1"},gd=e("a",{class:"header-anchor",href:"#_1-0-4-2022-03-06","aria-hidden":"true"},"#",-1),_d=n("",1),kd={id:"_1-0-3-2022-03-02",tabindex:"-1"},bd=e("a",{class:"header-anchor",href:"#_1-0-3-2022-03-02","aria-hidden":"true"},"#",-1),yd=n("",1),xd={id:"_1-0-2-2022-02-18",tabindex:"-1"},vd=e("a",{class:"header-anchor",href:"#_1-0-2-2022-02-18","aria-hidden":"true"},"#",-1),wd=e("ul",null,[e("li",null,"Fixed the problem that the project path cannot be found under Windows"),e("li",null,[o("Remove part of reflection API, merge into "),e("code",null,"BaseFinder"),o(" for integration")]),e("li",null,"Add a method to create Hook directly using string")],-1),Ad={id:"_1-0-1-2022-02-15",tabindex:"-1"},Hd=e("a",{class:"header-anchor",href:"#_1-0-1-2022-02-15","aria-hidden":"true"},"#",-1),Pd=e("ul",null,[e("li",null,[e("code",null,"RemedyPlan"),o(" adds "),e("code",null,"onFind"),o(" function")]),e("li",null,"Integrate and modify some reflection API code"),e("li",null,[o("Added Java type in "),e("code",null,"type")]),e("li",null,"Fixed the issue that ignored errors still output in the console")],-1),Cd={id:"_1-0-2022-02-14",tabindex:"-1"},Fd=e("a",{class:"header-anchor",href:"#_1-0-2022-02-14","aria-hidden":"true"},"#",-1),Md=e("ul",null,[e("li",null,"The first version is submitted to Maven")],-1);function Yd(Id,Rd){const d=a("Badge"),i=a("ExternalLinkIcon");return l(),s("div",null,[h,e("h3",u,[m,o(" 1.3.0 | 2024.06.25  "),t(d,{type:"tip",text:"latest",vertical:"middle"})]),e("ul",null,[e("li",null,[o("This is a major update, please refer to "),e("a",p,[o("Migrate to YukiHookAPI 1.3.x"),t(i)])]),e("li",null,[o("The reflection API of "),f,o(" is deprecated, please move to the brand new "),e("a",g,[o("KavaRef"),t(i)])]),_,e("li",null,[k,o(" has been deprecated and has now switched to "),e("a",b,[o("AndroidHiddenApiBypass"),t(i)])])]),e("h3",y,[x,o(" 1.2.1 | 2024.06.20  "),t(d,{type:"warning",text:"stale",vertical:"middle"})]),e("ul",null,[v,e("li",null,[o('Add automatic use of "`" in the automatic handler to fix the situation where Kotlin keywords are package names, thanks to '),e("a",w,[o("Fengning Zhu"),t(i)]),o(" for "),e("a",A,[o("PR"),t(i)])]),e("li",null,[o("Adapt to Kotlin 2.0.0+, fix the problem that it cannot be compiled during automatic processing, thanks to "),e("a",H,[o("xihan123"),t(i)]),o(" for "),e("a",P,[o("PR"),t(i)])])]),e("h3",C,[F,o(" 1.2.0 | 2023.10.07  "),t(d,{type:"warning",text:"stale",vertical:"middle"})]),e("ul",null,[M,e("li",null,[o("This is a breaking update, please refer to "),e("a",Y,[o("Migrate to YukiHookAPI 1.2.x"),t(i)]),o(" for details")]),e("li",null,[o("Adapted to Android 14, thanks to "),e("a",I,[o("BlueCat300"),t(i)]),o(" for "),e("a",R,[o("PR"),t(i)])]),e("li",null,[o("Fixed "),S,o(" related issues, thanks to "),e("a",D,[o("buffcow"),t(i)]),o(" for "),e("a",T,[o("PR"),t(i)])]),e("li",null,[o("Fixed the delayed callback problem in the Hook process, thanks to "),e("a",L,[o("cesaryuan"),t(i)]),o(" for his "),e("a",z,[o("Issue"),t(i)])]),e("li",null,[o("Added support for Resources Hook related functions, please refer to this "),e("a",X,[o("Issue"),t(i)]),o(" for details")]),j,e("li",null,[o("Detached "),e("a",O,[o("FreeReflection"),t(i)]),o(" will no longer be automatically generated and will be automatically imported as a dependency")]),B]),e("h3",E,[N,o(" 1.1.11 | 2023.04.25  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),e("ul",null,[e("li",null,[o("Fixed a critical issue since "),W,o(" version where the "),q,o(" cache did not take effect and persistent storage eventually caused app out of memory (OOM), thanks to "),e("a",V,[o("Art-Chen"),t(i)])]),K]),e("h3",U,[Z,o(" 1.1.10 | 2023.04.21  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),G,e("h3",J,[Q,o(" 1.1.9 | 2023.04.17  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),$,e("h3",ee,[oe,o(" 1.1.8 | 2023.02.01  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),e("ul",null,[e("li",null,[o("Fixed the problem that the underlying Hook method cannot update the modified state synchronously when modifying parameters such as "),te,o(" during callback, thanks to the "),e("a",de,[o("Issue"),t(i)]),o(" of "),e("a",ie,[o("Yongzheng Lai"),t(i)])]),ne]),e("h3",ae,[ce,o(" 1.1.6 | 2023.01.21  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),le,e("h3",se,[re,o(" 1.1.5 | 2023.01.13  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),he,e("h3",ue,[me,o(" 1.1.4 | 2022.10.04  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),pe,e("h3",fe,[ge,o(" 1.1.3 | 2022.09.30  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),_e,e("h3",ke,[be,o(" 1.1.2 | 2022.09.30  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),ye,e("h3",xe,[ve,o(" 1.1.1 | 2022.09.28  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),we,e("h3",Ae,[He,o(" 1.1.0 | 2022.09.28  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),e("ul",null,[Pe,e("li",null,[o("Change the help documentation framework to "),e("a",Ce,[o("VuePress"),t(i)])]),Fe,e("li",null,[o("Fixed the problem that the module package name cannot be correctly matched when multi-project packaging, and modify the module package name matching logic of the automatic handler, thanks to "),e("a",Me,[o("5ec1cff"),t(i)]),o(" for the feedback and solutions provided")]),Ye,e("li",null,[Ie,o(" function in "),Re,o(" renamed to "),Se,o(", thanks to "),e("a",De,[o("Kitsune"),t(i)]),o(" suggestion")]),Te,e("li",null,[o("Added multiple search function in reflection search, you can use relative search conditions to obtain multiple search results at the same time, thanks to "),Le,o(" and "),e("a",ze,[o("Kitsune"),t(i)]),o(" for suggestions")]),e("li",null,[o("Fixed the problem that the object obtained by "),Xe,o(" is incorrect in system applications in some systems, thanks to "),e("a",je,[o("Luckyzyx"),t(i)]),o(" for the feedback")]),Oe,e("li",null,[o("Fixed the problem of wrong value of "),Be,o(" method in "),Ee,o(" and optimize the code style, thanks to "),e("a",Ne,[o("Teddy_Zhu"),t(i)]),o(),e("a",We,[o("PR"),t(i)])]),qe,Ve,Ke,e("li",null,[o("Added automatic hook "),Ue,o(" to fix the problem that file permissions are not "),Ze,o(" in some systems, thanks to "),e("a",Ge,[o("5ec1cff"),t(i)]),o(" for the feedback and implementation code provided")]),Je,e("li",null,[o("Added "),Qe,o(" type to Resources Hook, thanks to "),e("a",$e,[o("PR"),t(i)]),o(" of "),e("a",eo,[o("GSWXXN"),t(i)])]),oo,to,io,no]),e("h3",ao,[co,o(" 1.0.92 | 2022.05.31  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),lo,e("h3",so,[ro,o(" 1.0.91 | 2022.05.29  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),e("ul",null,[e("li",null,[o("Fixed the "),ho,o(" error when the customized system of some devices is booted in the LSPosed environment, thanks to "),e("a",uo,[o("Luckyzyx"),t(i)]),o(" for the feedback")]),mo]),e("h3",po,[fo,o(" 1.0.90 | 2022.05.27  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),go,e("h3",_o,[ko,o(" 1.0.89 | 2022.05.26  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),bo,e("h3",yo,[xo,o(" 1.0.88 | 2022.05.25  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),vo,e("h3",wo,[Ao,o(" 1.0.87 | 2022.05.10  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),Ho,e("h3",Po,[Co,o(" 1.0.86 | 2022.05.06  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),Fo,e("h3",Mo,[Yo,o(" 1.0.85 | 2022.05.04  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),Io,e("h3",Ro,[So,o(" 1.0.83 | 2022.05.04  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),Do,e("h3",To,[Lo,o(" 1.0.82 | 2022.05.04  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),zo,e("h3",Xo,[jo,o(" 1.0.81 | 2022.05.04  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),Oo,e("h3",Bo,[Eo,o(" 1.0.80 | 2022.05.01  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),e("ul",null,[No,e("li",null,[o("Fixed the problem that Hook "),Wo,o(" causes Hook to freeze, thanks to "),e("a",qo,[o("WankkoRee"),t(i)]),o(" for the feedback")]),Vo,Ko,Uo]),e("h3",Zo,[Go,o(" 1.0.78 | 2022.04.18  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),e("ul",null,[Jo,e("li",null,[o("Adapt the Sp data storage solution of "),Qo,o(", thanks to "),e("a",$o,[o("mahoshojoHCG"),t(i)]),o(" for feedback")]),et,ot]),e("h3",tt,[dt,o(" 1.0.77 | 2022.04.15  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),e("ul",null,[e("li",null,[it,o(" added "),nt,o(" method, thanks to "),e("a",at,[o("WankkoRee"),t(i)]),o(" for the suggestion")]),ct]),e("h3",lt,[st,o(" 1.0.75 | 2022.04.13  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),e("ul",null,[e("li",null,[o("Corrected the logic recognition part of the automatic handler, thanks to "),e("a",rt,[o("ApeaSuperz"),t(i)]),o(" contribution")]),ht]),e("h3",ut,[mt,o(" 1.0.73 | 2022.04.10  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),e("ul",null,[e("li",null,[o("Fixed some Chinese translation errors in documents, thanks to "),e("a",pt,[o("WankkoRee"),t(i)]),o(" for their contributions")]),e("li",null,[o("Fixed the problem that "),ft,o(" throws an exception when the content is empty in some cases, thanks to "),e("a",gt,[o("Luckyzyx"),t(i)]),o(" for the feedback")]),_t]),e("h3",kt,[bt,o(" 1.0.72 | 2022.04.09  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),yt,e("h3",xt,[vt,o(" 1.0.71 | 2022.04.04  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),wt,e("h3",At,[Ht,o(" 1.0.70 | 2022.04.04  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),e("ul",null,[Pt,e("li",null,[o("Add "),Ct,o(" function in Hook process, thanks to "),e("a",Ft,[o("WankkoRee"),t(i)]),o(" for feedback")]),Mt,Yt,It,Rt,e("li",null,[o("Fixed "),St,o(" not throwing an exception when it is not hooked to a method, thanks to "),e("a",Dt,[o("WankkoRee"),t(i)]),o(" for the feedback")]),e("li",null,[o("Added Hook status monitoring function, thanks to "),e("a",Tt,[o("WankkoRee"),t(i)]),o(" for the suggestion")]),Lt,e("li",null,[o("Added obfuscated method and variable lookup function, you can use different types of filter "),zt,o(" to locate the specified method and variable, thanks to "),e("a",Xt,[o("WankkoRee"),t(i)]),o(" for the ideas provided")]),jt,Ot,e("li",null,[o("Fixed a lot of bugs in the hook process, thanks to "),e("a",Bt,[o("WankkoRee"),t(i)]),o(" for contributing to this project")])]),e("h3",Et,[Nt,o(" 1.0.69 | 2022.03.30  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),e("ul",null,[Wt,qt,e("li",null,[o("Fixed the issue that only the last one takes effect when "),Vt,o(" is used multiple times in a Hook instance, thanks to "),e("a",Kt,[o("WankkoRee"),t(i)]),o(" for the feedback")])]),e("h3",Ut,[Zt,o(" 1.0.68 | 2022.03.29  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),Gt,e("h3",Jt,[Qt,o(" 1.0.67 | 2022.03.27  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),$t,e("h3",ed,[od,o(" 1.0.66 | 2022.03.25  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),td,e("h3",dd,[id,o(" 1.0.65 | 2022.03.25  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),nd,e("h3",ad,[cd,o(" 1.0.6 | 2022.03.20  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),ld,e("h3",sd,[rd,o(" 1.0.55 | 2022.03.18  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),hd,e("h3",ud,[md,o(" 1.0.5 | 2022.03.18  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),pd,e("h3",fd,[gd,o(" 1.0.4 | 2022.03.06  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),_d,e("h3",kd,[bd,o(" 1.0.3 | 2022.03.02  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),yd,e("h3",xd,[vd,o(" 1.0.2 | 2022.02.18  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),wd,e("h3",Ad,[Hd,o(" 1.0.1 | 2022.02.15  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),Pd,e("h3",Cd,[Fd,o(" 1.0 | 2022.02.14  "),t(d,{type:"danger",text:"outdate",vertical:"middle"})]),Md])}const Dd=c(r,[["render",Yd],["__file","changelog.html.vue"]]);export{Dd as default};