Changelog
The version update history of
YukiHookAPIis 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
1.2.0 | 2023.10.07 latest
- The license agreement has been changed from 
MITtoApache-2.0, subsequent versions will be distributed under this license agreement, you should change the relevant license agreement after using this version - This is a breaking update, please refer to Migrate to YukiHookAPI 1.2.x for details
 - Adapted to Android 14, thanks to BlueCat300 for PR
 - Fixed 
findAllInterfacesrelated issues, thanks to buffcow for PR - Fixed the delayed callback problem in the Hook process, thanks to cesaryuan for his Issue
 - Added support for Resources Hook related functions, please refer to this Issue for details
 - Added 
YukiHookAPI.TAG - Deprecated 
,YukiHookAPI.API_VERSION_NAME, merged intoYukiHookAPI.API_VERSION_CODEYukiHookAPI.VERSION - Added 
YukiHookAPI.TAG - Deprecated 
,YukiHookAPI.API_VERSION_NAME, merged intoYukiHookAPI.API_VERSION_CODEYukiHookAPI.VERSION - Deprecated 
method inuseDangerousOperationYukiMemberHookCreator - Deprecated 
function ininstanceClassYukiMemberHookCreator, it is no longer recommended - Modify 
instanceClassinHookParamto be a null safe return value type - Detach all Hook objects created using 
injectMembertoLegacyCreator - Modify 
appClassLoaderinPackageParamto be a null safe return value type - Refactor all 
logger...methods to new usageYLog - 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 
InjectYukiHookWithXposedannotation - Detached FreeReflection will no longer be automatically generated and will be automatically imported as a dependency
 - Added a warning log that will be automatically printed when the same Hook method is repeated
 - The 
findClass(...)method inPackageParamis obsolete, please migrate to the"...".toClass()method - The 
String.hook { ... }method inPackageParamis obsolete, and it is recommended to use a new method for Hook AppLifecyclecan now be created repeatedly in different Hookers- The old version of Hook priority writing is obsolete and migrated to 
YukiHookPriority - Removed the 
tagfunction in the Hook process - Refactored 
remendyfunctionality in find methods, which now prints exceptions in steps - The multi-method find result type is changed from 
HashSettoMutableList - Added 
method(),constructor(),field()to directly obtain all object functions in the class constructor()no longer behaves likeconstructor { emptyParam() }- Added 
lazyClassandlazyClassOrNullmethods to lazily loadClass 
1.1.11 | 2023.04.25 stale
- Fixed a critical issue since 
1.1.5version where theMembercache did not take effect and persistent storage eventually caused app out of memory (OOM), thanks to Art-Chen - Remove the direct cache function of 
Memberand deprecated, keep the cache function ofYukiReflection.Configs.isEnableMemberCacheClass - Modified finder to 
Sequence, optimize the finding speed and performance ofMember - Remove the 
YukiHookPrefsBridge's direct key-value cache function and removedLruCacherelated functions - Deprecated 
YukiHookAPI.Configs.isEnablePrefsBridgeCache - Deprecated 
,directfunctions inclearCacheYukiHookPrefsBridge 
1.1.10 | 2023.04.21 stale
- The 
Activityproxy function adds the function of specifying a separate proxyActivityfor each proxiedActivity - Fixed problem that the 
containsandallmethods inYukiHookPrefsBridgedid not judge thenativefunction - Integrate the cache function in 
YukiHookPrefsBridgeintoPreferencesCacheManagerand useLruCacheas a key-value pair cache - Modify 
YukiHookPrefsBridgekey-value pair caching function to take effect in all environments (Module Apps, Host Apps) - Modify part of 
HashMapused for caching toArrayMapto reduce memory consumption - Fix some other possible problems
 
1.1.9 | 2023.04.17 stale
- Change the type of dependent library from Java Library (jar) to Android Library (aar)
 - Remove the inspection function of internal methods and parameters through Hook or reflection API
 - Fixed the problem that 
YukiHookDataChannelautomatically segmented data sending function could not work normally (exception would still be thrown) - Added the ability to manually modify the maximum data byte size allowed by 
YukiHookDataChannelto be sent at one time according to the limitations of the target device - Remove the restriction that 
YukiHookDataChannelcan only be used in moduleActivity, now you can use it anywhere - Modify and standardize the broadcast Action name used by 
YukiHookDataChannel - Fix the problem that 
BadParcelableExceptionoccurs whenYukiHookDataChannelhas different modules with the same host - Added 
ExecutorType, you can get the type of known Hook Framework throughYukiHookAPI.Status.Executor.type renamed toYukiHookModulePrefsYukiHookPrefsBridge- Modify 
YukiHookPrefsBridgeto be implemented as a non-singleton, as a singleton may cause data confusion - Deprecated 
method, please move toContext.modulePrefs(...)Context.prefs(...) YukiHookPrefsBridgeaddsnativemethod, which supports storing private data in modules and hosts directly as native storage- Integrate the storage method in 
YukiHookPrefsBridgetoYukiHookPrefsBridge.Editor, please useeditmethod to store data YukiHookPrefsBridgeaddscontainsmethod- Cache dynamically created proxy objects in 
YukiHookPrefsBridge, try to fix problems that may cause OOM in the host and modules - Modify the proxy class of the 
Activityproxy function to be dynamically generated to prevent conflicts caused by injecting different modules into the host - Fixed some other possible problems
 
1.1.8 | 2023.02.01 stale
- Fixed the problem that the underlying Hook method cannot update the modified state synchronously when modifying parameters such as 
resultduring callback, thanks to the Issue of Yongzheng Lai - Move the entry class name file automatically generated by 
YukiHookAPIfromassets/yukihookapi_inittoresources/META-INF/yukihookapi_init - When only printing the exception stack, the 
msgparameter is allowed to be empty and themsgparameter can not be set, and the log with themsgparameter 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
 HookParamaddsinstanceOrNullvariable 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 
Memberlookup functionality toMemberBaseFinder.MemberHookerManager - Modified the usage of 
bycondition inYukiMemberHookCreator, now you can reusebymethod to set multiple conditions - Removed wrong 
Classobject declaration in Androidtype - The 
registerReceivermethod inPackageParam.AppLifecycleadds the function of directly usingIntentFilterto 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)
 
1.1.6 | 2023.01.21 stale
- Fixed the serious problem that 
ClassLoaderdoes not match afterPackageParamkeeps a single instance when there may be multiple package names in the same process when Xposed Module is loaded - When the package name is not distinguished when there are multiple package names in the same process, stop loading the singleton child Hooker and print a warning message
 - Fixed the problem that the number of parameters is incorrect when methods such as 
HookParam.callOriginal,HookParam.invokeOriginalcall the original method - Modify the method parameter name 
paramof reflection calls inMethodFinder,ConstructorFinder,ReflectionFactorytoargs - Added the function of judging the parameters of the entry class constructor in the automatic processing program of the Xposed Module, the entry class needs to ensure that it does not have any constructor parameters
 
1.1.5 | 2023.01.13 stale
- Standardize and optimize the overall code style
 - Privatized some APIs called internally
 - The underlying API interface is decoupled as a whole to prepare for compatibility with more Hook Frameworks
 - Move some of the functions integrated in the API to 
ksp-xposeddependencies (decoupling), and the separate introduction ofapidependencies will no longer contain references to functions such as third-party libraries - Documentation Quick Start page added instructions on when 
YukiHookAPI.Configs.isDebugneeds to be closed - Standardize Java Primitive Types in type definitions and sync update to docs
 - Java 
typeaddsNumberClasstype - Improved (Xposed) Host environment recognition
 - Take over all exceptions after loading the Xposed Module, if an exception occurs, it will automatically intercept and print the error log
 - Modify the 
Classthat does not exist in the lower Android system version (Android 5.0) in the type definition to be an empty safe type - Adapt and support native Xposed, the minimum recommended version is Android 7.0
 - Added support for Hook entry class declared as 
objecttype (singleton) - Fixed the problem that the system below Android 8 does not support the 
Executabletype, causing the Hook to fail - Fixed the problem of reporting an error when using the 
Activityproxy function for systems below Android 9 and limit the minimum supported version of this function to Android 7.0 - Added the prohibition of resource injection and 
Activityproxy function injection into the current module's own instance process to prevent problems - Fixed a serious error that the return value of a method in the Hook process is not consistent with the target's inherited class and interface.
 - Fixed the problem that the object is empty when calling 
HookParam.callOriginalandHookParam.invokeOriginalwhen the current Hook instance object is static - Optimize the function of judging the Tai Chi activation method and update the relevant instructions of the document synchronously
 - Obsolete 
,YukiHookAPI.Status.executorName, please move toYukiHookAPI.Status.executorVersionYukiHookAPI.Status.Executor - Adapted the 
YukiHookAPI.Status.Executor.namename display function of some third-party Hook Frameworks - Added 
Class.extends,Class.implementsand other methods, which can more conveniently judge the inheritance and interface relationship of the currentClass - Added generic methods of the same name as 
Class.toClass,Class.toClassOrNulland other related methods, you can use generics to constrain the instance object type of knownClass - Modify the return value of the 
classOf<T>method to the generic typeTto constrain the instance object type of the knownClass - Added 
initializeparameter ofClassrelated extension method, which can control whether to initialize its static method block at the same time when gettingClassobject - Added 
param { ... },type { ... }and other usages in the variable, method, and construction method search functions, which can add more specific conditional judgments to the searched objects - The 
loadAppmethod ofPackageParamadds theisExcludeSelfparameter, which can be used to exclude Hook-related functions from injecting into the module's own instance process - The 
onAppLifecyclemethod ofPackageParamadds theisOnFailureThrowToAppparameter, which can directly throw the exception that occurs in the lifecycle method body to the host - Modify 
appClassLoaderinPackageParamto be a modifiable variable, which can dynamically set theClassLoaderused by the host in the Hook process - Added 
dataExtrafunction inHookParam, which can be used to temporarily store the data in the Hook method body - Obsolete 
,isRunInNewXShareModeinisXSharePrefsReadableYukiHookModulePrefs, merged intoisPreferencesAvailable Class.allFields,Class.allMethodsand other related methods add theisAccessibleparameter, which can control when the member object can be set as an accessible type- Fixed the problem that only the last method body will be called back when receiving the same key-value data in an Activity when there are multiple hosts in 
YukiHookDataChannel - Added 
priorityparameter inwaitand other related methods ofYukiHookDataChannel, you can pass inChannelPriorityto customize the conditions for callback data results YukiHookDataChanneladds the function of automatically usingChannelDataWrappertype wrapper when sending data, which improves the user experience and enhances data protectionYukiHookDataChannelhas added the function of limiting the maximum byte size of data sent at one time to prevent the app from crashing due to excessive dataYukiHookDataChannelhas added the function of automatically segmenting when the sent data is too large, only supportsList,Map,Set,StringtypesYukiHookLoggeradds thecontentsmethod and thedataparameter ofsaveToFile, which can be passed in custom debug log data for formatting or saving to a file- Fixed the problem that the debug log data package name processed by 
YukiHookLoggermay be incorrect in the (Xposed) Host environment - Fixed the problem that the package name may be incorrect on some systems (in some system apps) when the Xposed Module loads the Resource Hook event
 
1.1.4 | 2022.10.04 stale
- Fixed the issue that 
YukiHookDataChannelmay not respond to broadcast events in the system framework, reproduced in A13 - Fixed the issue that 
YukiHookDataChannelcould not communicate with Module App in Host App for multiple versions - Added 
obtainLoggerInMemoryDatamethod inYukiHookDataChannelto share debug log data between module and host - Modify the type of 
YukiHookLogger.inMemoryDatatoArrayListand changeYukiLoggerDatatodata class - Fixed 
YukiLoggerDataprinting blank when the package name is empty in the module - Added 
loadApp,loadZygote,loadSystem,withProcessmulti-parameter methods of the same name inPackageParam - Fixed some possible bugs
 
1.1.3 | 2022.09.30 stale
- Fixed a fatal bug where the Hook entry class name could not be customized
 - Added some code notes in 
LoggerFactoryand updated special features documentation 
1.1.2 | 2022.09.30 outdate
- Documentation Basic Knowledge page add a friend link to the English version
 - Fixed 
YukiBaseHookercomments in English code note link errors - Fixed 
ClassCastExceptioninModuleClassLoader - Fixed and standardize some code notes
 - Added 
ModuleClassLoaderexclusion list function, you can useexcludeHostClassesandexcludeModuleClassesmethods to customize the exclusion list - Added 
YukiLoggerDatareal-time log data class, you can get the log array in real time throughYukiHookLogger.inMemoryData - Added 
ClassLoader.listOfClassesmethod, which can directly get allClassin the currentDex 
1.1.1 | 2022.09.28 outdate
- Fixed the problem of wrong document friend links in Basic Knowledge page
 - Fixed document 
faviconnot showing up - Fixed bug in 
DexClassFindersearch conditions 
1.1.0 | 2022.09.28 outdate
- This is a major version update, please refer to API Document and Special Features for the changes and usage mentioned in the changelog
 - Change the help documentation framework to VuePress
 - Unify and standardize the terms and nouns in the document, for example, "query" is always changed to "find", 
XposedHelperis misspelled and changed toXposedHelpers - Documentation Basic Knowledge page to add friend links, Simplified Chinese only
 - Convert 
ClassandMethodof 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 withYukiBridgeFactory - Moved methods in section 
YukiHookBridgetoAppParasitics - Removed 
HookParam.argsand the underlying direct connection methodsetArgs, directly get and set the object of the current array - Optimized automatic handler to merge referenced 
jarintostubproject - 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 5ec1cff for the feedback and solutions provided
 - Internal closure processing for the methods of API private tool classes to avoid polluting the top-level namespace
 - Fixed 
Creaternaming toCreatorfor all reflection and Hook classes - Added 
YukiHookAPI.Status.compiledTimestampfunction, which can get the compilation completion timestamp when used as an Xposed module - Added 
YukiHookAPI.Status.isXposedEnvironmentfunction, 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.debugTaghave been merged intoYukiHookLogger.Configs - The debug log can be added to specify the printing method as 
XposedBridge.logorLogd - 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 
debugLogconfiguration - Added 
genericfunction to reflect and call generics, you can use it inClassorCurrentClass - obsolete the 
buildOfAnymethod, now use thebuildOfmethod directly (without generics) to use the constructor to create a new object and get the resultAny - Fixed the issue of null pointer exception when using 
hasExtends CurrentClassadded non-lambda method of callingCurrentClassaddsnameandsimpleNamefunctions- Completely rewrite the core method of 
ReflectionTool, sorting and classifying different search conditions - Fixed the problem that 
Memberobtained by directly callingdeclaredinReflectionToolthrows an exception - Fixed 
UndefinedTypeinReflectionToolis not correctly judged inMethodandConstructorconditions - Added a friendly prompt method when the reflection search result is abnormal, which can specifically locate the problem that 
Membercannot be found under specified conditions - Added 
VagueTypecondition inMethodandConstructorfor reflection search, which can be used inparamcondition to ignore parameters you don't want to fill in - Added 
paramCount { ... }condition inMethodandConstructorof reflection search, now you can directly getitin it to customize your judgment condition - The 
currentmethod is added to theFieldFinderresult, which can directly create a call space for the result instance - Modified the 
modifierscondition andnamecondition in the reflection lookup function, now you need to return aBooleanat the end of the method body to make the condition true as*function inModifierRulesrenamed tois*, thanks to Kitsune suggestion- Added 
RemedyPlanfeature inFieldFinder - Added 
Classfuzzy search function (Beta) inDex, you can now directly usesearchClassfunction to fuzzy searchClasswith specified conditions - Added multiple search function in reflection search, you can use relative search conditions to obtain multiple search results at the same time, thanks to AA and Kitsune for suggestions
 - Fixed the problem that the object obtained by 
appClassLoaderis incorrect in system applications in some systems, thanks to Luckyzyx for the feedback - Modified the calling method of 
XposedBridge.invokeOriginalMethodand addedoriginalfunction inMethodFinder.Result.Instance - Fixed the problem of wrong value of 
getStringSetmethod inYukiHookModulePrefsand optimize the code style, thanks to Teddy_Zhu PR - Modify 
YukiHookModulePrefsto intercept exceptions that may not exist inXSharePreference - Fixed the problem that 
YukiHookDataChannelcould not be successfully registered in some third-party ROM system frameworks - Secured 
YukiHookDataChannel, now it can only communicate between modules from the specified package name and the host - Added automatic hook 
SharedPreferencesto fix the problem that file permissions are not0664in some systems, thanks to 5ec1cff for the feedback and implementation code provided - Added 
YukiHookAPI.Configs.isEnableHookSharedPreferencesfunction, which is disabled by default and can be enabled if the permission ofSharedPreferencesis incorrect - Fixed the bug that the no-parameter construction method cannot be found when searching for 
Constructorwithout filling in the search conditions, thanks B5 KAKA for the feedback - Detach 
Resultinstances located inmethod,constructorininjectMembertoProcess - Added the 
useDangerousOperationmethod 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 
Activityproxy functions, you can callinjectModuleAppResourcesandregisterModuleAppActivitiesto use - Added 
ModuleContextThemeWrapperfunction, you can callapplyModuleThemeto create theContextof a module in anyActivity - Added 
ClassLoader.onLoadClassfunction, which can be used to listen for events when theloadClassmethod ofClassLoaderis called - obsolete 
classOfandclazzextension methods, addtoClassandtoClassOrNullusage, please move to the new method now VariousClassadds agetOrNullmethod, which can returnnullinstead of throwing an exception when it can't matchClass- Removed 
isUseAppClassLoaderparameter inPackageParam.hook, changed it toisForceUseAbsoluteand automatically matched the targetClass PackageParamaddssystemContextfunction, you can call this function at any time to get a persistentContext- no longer expose any methods in 
HookClass - Added 
throwToAppfunction inHookParam, which can throw exceptions directly to the host - The 
onFailureThrowToAppfunction 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 
removeandremoveSelfmethods 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
 - Added 
arraytype to Resources Hook, thanks to PR of GSWXXN - Moved 
me.weishu.reflectiontothirdpartyto prevent conflicting dependencies of the same name introduced at the same time - Remove the exception thrown when the Hook method body is empty, and modify it to print the warning log
 - Modify the exception handling logic of 
AppLifecycleand throw it directly to the host when an exception occurs - Updated Demo API version to 33
 
1.0.92 | 2022.05.31 outdate
- Fixed the naming method of callback in a large number of methods
 - Changed the solution to fix the problem that 
YukiHookDataChannelcannot call back the currentActivitybroadcast on devices lower than Android 12 - The 
InjectYukiHookWithXposedannotation adds theisUsingResourcesHookfunction, now you can selectively disable the dependency interface that automatically generatesIXposedHookInitPackageResources 
1.0.91 | 2022.05.29 outdate
- Fixed the 
ClassLoadererror when the customized system of some devices is booted in the LSPosed environment, thanks to Luckyzyx for the feedback - Fixed 
YukiHookDataChannelnot being able to call back the currentActivitybroadcast on ZUI and systems below Android 12 - Integrate the 
YukiHookModuleStatusfunction intoYukiHookAPI.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 
1.0.90 | 2022.05.27 outdate
- Fixed 
YukiHookDataChannelcrashing when the module sets the listener callback - Fixed 
YukiHookDataChannelstill calling back when not in currentActivity - Remove the default value of 
YukiHookDataChannelcallback event, no callback - Removed 
YukiHookModulePrefswarning printed if XShare is unreadable - Added the 
isXSharePrefsReadablemethod inYukiHookModulePrefsto determine whether the current XShare is available 
1.0.89 | 2022.05.26 outdate
- Fixed the problem that 
YukiHookDataChannelcannot be repeatedly set to monitor, and added the function of repeating response in differentActivitymodules and automatically followingActivityto destroy the monitor function - Added 
YukiHookDataChannelrepeated listening use case description document - Add the 
onAlreadyHookedmethod to determine whether the current method is repeated Hook - Modify part of the logic of repeatedly adding HashMap, remove the 
putIfAbsentmethod, allow to override the addition - Fixed several possible bugs
 
1.0.88 | 2022.05.25 outdate
- Fully decoupled from Xposed API
 - Added 
androidtype intype - Separate 
YukiHookModuleStatusfrom auto-generated code and addisEnableHookModuleStatusswitch, it is up to you to enable or not - Internal closure processing for the constructors of a large number of classes in the API
 - Set 
YukiHookModulePrefsto run as a singleton to prevent repeated creation and waste of system resources - Fixed the bug that Hook cannot be nested since version 
1.0.80, and optimize the related functions of nested Hook - Modify the Hooker storage scheme from HashSet to HashMap to prevent the problem of repeatedly adding Hookers
 - Modify the core implementation method of Hook, add duplicate checking to avoid repeating the Hook multiple callbacks to the 
HookParammethod MethodFinderandFieldFinderadd the function of finding fuzzy methods and variable names, you can callname { ... }to set search conditions, and support regular expressions- Optimize and modify the way to get 
appContextto reduce the possibility of getting empty - Modify the print 
TAGofloggerin the automatically generated code to default to your custom name, which is convenient for debugging - Optimize the 
Hookerimplementation ofYukiHookBridgeto improve Hook performance PackageParamadds theonAppLifecyclemethod, which can natively monitor the life cycle of the host and implement the registration system broadcast function- Added 
YukiHookDataChannelfunction to communicate using system out-of-order broadcast while the module and the host remain alive YukiHookDataChanneladds thecheckingVersionEqualsmethod, which can be monitored to verify that the host has not updated the version mismatch problem after the module is updated- Added Java version example in the example code of 
demo-modulefor reference only 
1.0.87 | 2022.05.10 outdate
- Added 
refreshModuleAppResourcesfunction to adapt Resources refresh when the language region, font size, resolution changes, etc. - Added 
isEnableModuleAppResourcesCachefunction, you can set whether to automatically cache the resources of the current module 
1.0.86 | 2022.05.06 outdate
- Fixed the problem of continuous error reporting during 
initZygotewhen Resources Hook is not supported, reproduced in ZUI/LSPosed CI(1.8.3-6550) - Optimize and handle exceptions for Resources Hook, only print errors and warnings if they are used and not supported
 
1.0.85 | 2022.05.04 outdate
- Fixed a serious problem of not being able to hook the system framework, since 
1.0.80 - Added in the debug log to distinguish the package name loaded by 
initZygoteasandroid-zygote,packageNamekeepsandroidunchanged 
1.0.83 | 2022.05.04 outdate
- Fixed 
YukiHookModuleStatusreporting a lot of errors afterloadSystem - Added 
androidtype intype - Updated example descriptions in help documentation
 
1.0.82 | 2022.05.04 outdate
- Fixed a concept confusion error, distinguishing the relationship between 
initZygoteand the system framework, there are problems with the previous comments and documentation, I am very sorry PackageParamaddsloadSystemmethod, no need to writeloadApp(name = "android")to hook the system framework
1.0.81 | 2022.05.04 outdate
- 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 
bymethod - 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.0.80 | 2022.05.01 outdate
- The 
InjectYukiHookWithXposedannotation adds theentryClassNamefunction, which can customize the generatedxposed_initentry class name renamed toYukiHookXposedInitProxyIYukiHookXposedInit, the original interface name has been invalidated and will be deleted directly in subsequent versions- Added 
initZygoteand Resources Hook functions to support Hook Layout - Added 
onXposedEventmethod to listen to all events of native Xposed API - Perform 
inlineprocessing on the lambda of the Hook function to avoid generating excessively broken anonymous classes and improve the running performance after compilation - Fixed 
PrefsDatacompiled method body copy is too large - Added 
XSharePreferencereadability test, which will automatically print a warning log if it fails PackageParamaddsappResources,moduleAppResources,moduleAppFilePathfunctionsloadAppofPackageParamadds the function of not writingname, and all APPs are filtered by defaultPackageParamadds theloadZygotemethod, which can directly hook the system frameworkPackageParamaddedresources().hookfunction- Optimization method, construction method, variable search function, the error log that cannot be found will display the set query conditions first
 - Added 
hasExtendsextension method to determine whether the currentClasshas an inheritance relationship - Added 
isSupportResourcesHookfunction to determine whether resource hooks are currently supported (Resources Hook) currentfunction addssuperClassmethod to call superclass- New 
superClassquery conditions for search methods, construction methods and variables, you can continue to search in the parent class YukiHookAPIlots of methods are decoupled from Xposed API- Added native Hook priority function of Xposed API
 - Fixed the problem that 
isFirstApplicationmay 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
 - Fixed the problem that Hook 
ClassLoadercauses Hook to freeze, thanks to WankkoRee for the feedback - Improve the performance after the 
XC_Callbackinterface is connected - Java 
typeaddedClassLoadertype - Optimize the API help documentation, fix the problem that the page may be continuously cached
 
1.0.78 | 2022.04.18 outdate
YukiHookModulePrefsaddsisRunInNewXShareModemethod, which can be used to determine whether the module is currently inNew XSharePreferencemode- Fixed 
YukiHookModulePrefsworking inNew XSharePreferencemode - Added 
ModulePreferenceFragment, now you can completely replacePreferenceFragmentCompatand start using the new functionality - Adapt the Sp data storage solution of 
PreferenceFragmentCompat, thanks to mahoshojoHCG for feedback - Update autohandlers and Kotlin dependencies to the latest version
 - Fixed some bugs in documentation and code comments
 
1.0.77 | 2022.04.15 outdate
YukiHookModulePrefsaddedclearmethod, thanks to WankkoRee for the suggestionYukiHookModulePrefsaddedgetStringSet,putStringSet,allmethods- Added 
anymethod toargsofHookParam - Added 
ModuleApplication, which can be inherited in modules to achieve more functions - Connect all 
findClassfunctions to the Xposed API, and continue to use nativeClassLoaderin non-hosted environments - Fixed some possible bugs
 
1.0.75 | 2022.04.13 outdate
- Corrected the logic recognition part of the automatic handler, thanks to ApeaSuperz contribution
 - Fixed an issue where the reference to a doc comment was not changed
 firstArgsandlastArgsmethods have been removed fromHookParam, now you can useargs().first()andargs().last()instead of it- Removed default parameter 
index = 0inargs()inHookParam, now you can useargs().first()orargs(index = 0)to replace it - The 
resultfunction inHookParamadds generic matching, now you can useresult<T>to match the known return value type of your target method - The 
emptyParamcondition 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 
androidtype intype 
1.0.73 | 2022.04.10 outdate
- Fixed some Chinese translation errors in documents, thanks to WankkoRee for their contributions
 - Fixed the problem that 
XC_LoadPackage.LoadPackageParamthrows an exception when the content is empty in some cases, thanks to Luckyzyx for the feedback - Fixed some known bugs and improve Hook stability
 
1.0.72 | 2022.04.09 outdate
- Update API documentation to new address
 - Add 
appContextfunction toPackageParam - Fixed some known bugs and improve Hook stability
 
1.0.71 | 2022.04.04 outdate
- Fixed a serious issue that would stop the Hook from throwing an exception when VariousClass could not be matched
 
1.0.70 | 2022.04.04 outdate
- Fixed 
instanceClassreporting an error after being called in a static instance - Add 
isUseAppClassLoaderfunction in Hook process, thanks to WankkoRee for feedback - Added the 
withProcessfunction, which can be hooked according to the currently specified process of the APP - Fixed critical logic errors in lookup methods, constructor classes and variables
 - Fixed the problem that the abnormal output cannot be ignored when the Hook target class does not exist
 - Fixed the problem that the Hook could not take effect due to the fast loading of the APP startup method in some cases
 - Fixed 
allMethodsnot throwing an exception when it is not hooked to a method, thanks to WankkoRee for the feedback - Added Hook status monitoring function, thanks to WankkoRee for the suggestion
 - Modify the way the Xposed entry is injected into the class, and redefine the definition domain of the API
 - Added obfuscated method and variable lookup function, you can use different types of filter 
indexto locate the specified method and variable, thanks to WankkoRee for the ideas provided - When looking for methods and variables, multiple types are allowed, such as the class name declared by 
StringandVariousClass - Add a new 
currentfunction, which can build a reflection method operation space for any class, and easily call and modify the methods and variables in it - Fixed a lot of bugs in the hook process, thanks to WankkoRee for contributing to this project
 
1.0.69 | 2022.03.30 outdate
- Added and improved annotations for some method functions
 - Added more example Hook content in Demo
 - Fixed the issue that only the last one takes effect when 
allMethodsis used multiple times in a Hook instance, thanks to WankkoRee for the feedback 
1.0.68 | 2022.03.29 outdate
- Added new use case and LSPosed scope in Demo
 - Added 
Memberlookup cache and lookup cache configuration switches - Removed and modified 
MethodFinder,FieldFinderandHookParamrelated method calls - Add more 
casttypes inFinderand supportcastas array - Overall performance and stability improvements
 - Fixed bugs that may exist in the previous version
 
1.0.67 | 2022.03.27 outdate
- Added three 
modifiersfunctions inFinder, which can filterstatic,native,public,abstractand many other description types - When searching for methods and constructors, the method parameter type can be blurred to a specified number for searching
 - Added 
hasModifiersextension forMember - Added 
givemethod inMethodFinderandConstructorFinderto get primitive types - Added 
PrefsDatatemplate function inYukiHookModulePrefs - Completely refactored method, constructor and variable lookup scheme
 - Optimized code comments and fixed possible bugs
 
1.0.66 | 2022.03.25 outdate
- Fixed a serious bug in 
MethodFinder - Added 
argscall method inhookParam - Fixed other possible problems and fix some class annotation problems
 
1.0.65 | 2022.03.25 outdate
- Republished version to fix the incorrect new version of the Maven repository due to cache issues
 - Added 
MethodFinderandFieldFindernew return value calling methods - Fixed possible problems and fix possible problems during the use of Tai Chi
 - Fixed possible problems with auto-generated Xposed entry classes
 - Added 
androidtype and Java type intype 
1.0.6 | 2022.03.20 outdate
- Fixed 
YukiHookModulePrefsbeing ignored every time after usingdirectonce to ignore cache - Added new API, abolished the traditional usage of 
isActiveto judge module activation - Fixed the issue of printing debug logs when using the API in a non-Xposed environment
 - Fixed log output issue and unintercepted exception issue when looking for 
Field - Decoupling Xposed API in 
ReflectionUtils - Added 
YukiHookModuleStatusmethod name confusion to reduce the size of module generation - The welcome message will no longer be printed when loading the module's own Hook
 - Fixed some bugs that still exist in the previous version
 
1.0.55 | 2022.03.18 outdate
- Fixed an annotation error
 - Temporarily fix a bug
 - Added a large number of 
androidtypes intypeand a small number of Java types - Fixed compatibility issues between new and old Kotlin APIs
 
1.0.5 | 2022.03.18 outdate
- Fixed the problem that the welcome message was printed multiple times in the case of the old version of the LSPosed framework
 - Added 
onInitmethod to configureYukiHookAPI - Added 
executorNameandexecutorVersionto get the name and version number of the current hook framework - Added 
bymethod to set the timing and condition of Hook YukiHookModulePrefsadds a controllable key-value cache, which can dynamically update data when the host is running- Fixed some possible bugs
 
1.0.4 | 2022.03.06 outdate
- Fixed LSPosed cannot find 
XposedBridgeafter enabling "Only module classloader can use Xposed API" option in latest version - Added constant version name and version number for 
YukiHookAPI - Added 
hasFieldmethod andisAllowPrintingLogsconfiguration parameter - Added 
isDebugto enable the API to automatically print the welcome message to test whether the module is valid 
1.0.3 | 2022.03.02 outdate
- Fixed a potential exception not intercepted BUG
 - Added 
ignoredErrorfunction - Added 
androidtype intype - Added 
ClassNotFoundfunction after listening tohook 
1.0.2 | 2022.02.18 outdate
- Fixed the problem that the project path cannot be found under Windows
 - Remove part of reflection API, merge into 
BaseFinderfor integration - Add a method to create Hook directly using string
 
1.0.1 | 2022.02.15 outdate
RemedyPlanaddsonFindfunction- Integrate and modify some reflection API code
 - Added Java type in 
type - Fixed the issue that ignored errors still output in the console
 
1.0 | 2022.02.14 outdate
- The first version is submitted to Maven
 
