github HighCapable/YukiHook 1.5.0

6 hours ago

YukiHook 1.5.0 Released

yukihook-bom

  • The first version is submitted to Maven

yukihook-core

  • ⚠️ Breaking Change: Renamed the api dependency to yukihook-core, it now needs yukihook-compiler and one base module to work
  • ⚠️ Breaking Change: Removed Resources Hook, resources().hook { ... } is no longer available
  • ⚠️ Breaking Change: Removed the own reflection API deprecated in version 1.3.0 and old hook styles such as injectMember, please migrate to KavaRef now
  • ⚠️ Breaking Change: onXposedEvent and YukiXposedEvent are no longer called, please use registerFrameworkEvents provided by the base module now
  • ⚠️ Breaking Change: loadApp now throws an exception when android or system is mixed into its multiple package names, please use loadSystem now
  • ⚠️ Breaking Change: KavaRef related hook functions and String.toClass, VariousClass.toClass and lazyClass have been moved to yukihook-extension-kavaref
  • ⚠️ Breaking Change: AndroidHiddenApiBypassResolver has been moved to yukihook-extension-kavaref and AndroidHiddenApiBypassResolver.get() has been removed, please create its instance directly now
  • ⚠️ Breaking Change: Removed ExecutorType, YukiHookAPI.Status.Executor.type can no longer be used, please use YukiHook.Status.Executor.name to get the name of the hook framework now
  • ⚠️ Breaking Change: throwToHostOnFailure now only applies to the callback it is set on, it no longer applies to both before and after
  • Deprecated YukiHookAPI, please use YukiHook now
  • Deprecated @InjectYukiHookWithXposed and IYukiHookXposedInit, please use the entry annotation of your base module and YukiHookXposedModule now
  • Deprecated YukiHookAPI.configs, please use YukiHook.configure now, all config properties have also been renamed
  • Deprecated prefs, YukiHookPrefsBridge and PrefsData, please use preferences, YukiHookPreferences and PreferenceData now
  • Deprecated onAppLifecycle, registerModuleAppActivities and injectModuleAppResources, please use registerAppLifecycle, registerModuleActivities and injectModuleResources now
  • Deprecated loadZygote and YukiHook.encase(baseContext), they are now only available in yukihook-runtime-xposed82
  • Deprecated many old functions in HookParam and hook callbacks, please use new functions such as arg, firstArg, lastArg, intercept and throwToHost now
  • Added chain hooks, you can use intercept and HookChain to continue the chain with proceed, when an exception occurs in the callback, the invocation continues as if this hook did not exist by default, and you can also use throwToHostOnFailure to throw the exception to the caller
  • intercept of classic hooks now returns HookCallback, you can use throwToHostOnFailure to throw exceptions to the host, and throwToHost now also takes effect in intercept
  • Added Handle.replace to replace registered callbacks without hooking again
  • Added hooking static initializers, deoptimizing, and calling functions such as invokeSpecial, newInstanceOriginal and newInstanceSpecial
  • Added withApplicationReady to run code when the Application of the host is available, it is called again after the module hot reloads
  • Added the exported parameter to registerReceiver in AppLifecycle, the receivers are unregistered and registered again automatically when the module hot reloads
  • Added PackageParam.ModuleSpec features such as module.resources and module.sourceDir to get information about the current module
  • Added YukiHookSharedFiles to share files between the module and hosts
  • Added YukiHookModuleScope to query and request the scope of the module in the module
  • Added module hot reload, together with YukiHookModuleReload, registerModuleLifecycle and remember
  • Added YukiHook.Status.observeFrameworkService and YukiHook.Status.runtime
  • Added a set of Lint Rules to find wrong API calls at compile time
  • Fixed an issue where the original method ran twice when it threw an exception itself while being called after an exception occurred in the intercept callback
  • Fixed an issue where exceptions in onInit in the module process were not printed
  • Adjusted the exception handling, it now only protects the host and not the module, exceptions in the module process are thrown directly while internal exceptions in the host process are still printed to the log

yukihook-compiler

  • ⚠️ Breaking Change: Renamed the ksp-xposed dependency to yukihook-compiler
  • ⚠️ Breaking Change: Removed the sourcePath parameter, entry and configuration files are now generated in the build directory for each build variant, and the build is rejected when these files exist in the source directory
  • Added processing of the @YukiHookLibXposedEntry and @YukiHookXposed82Entry entry annotations, and checks whether the entry annotation matches the base module
  • Added generating java_init.list, module.prop, scope.list and native_init.list in META-INF/xposed for libxposed API

yukihook-extension-kavaref

  • The first version is submitted to Maven

yukihook-runtime-libxposed

  • The first version is submitted to Maven

yukihook-runtime-xposed82

  • The first version is submitted to Maven

For more details, please check the changelog.


YukiHook 1.5.0 已发布

yukihook-bom

  • 首个版本提交至 Maven

yukihook-core

  • ⚠️ 破坏性更新:原 api 依赖更名为 yukihook-core,现在需要同时引入 yukihook-compiler 与一个底座模块才能工作
  • ⚠️ 破坏性更新:移除了 Resources Hook,resources().hook { ... } 已不再可用
  • ⚠️ 破坏性更新:移除了在 1.3.0 版本中弃用的自身反射 API 以及 injectMember 等旧版 Hook 写法,现在请迁移到 KavaRef
  • ⚠️ 破坏性更新:onXposedEvent 与 YukiXposedEvent 已不再被回调,现在请使用底座模块提供的 registerFrameworkEvents
  • ⚠️ 破坏性更新:在 loadApp 的多个包名中混入 android 或 system 时将抛出异常,现在请使用 loadSystem
  • ⚠️ 破坏性更新:KavaRef 相关的 Hook 方法以及 String.toClass、VariousClass.toClass、lazyClass 已迁移至 yukihook-extension-kavaref
  • ⚠️ 破坏性更新:AndroidHiddenApiBypassResolver 已迁移至 yukihook-extension-kavaref,并移除了 AndroidHiddenApiBypassResolver.get(),现在请直接创建它的实例
  • ⚠️ 破坏性更新:移除了 ExecutorType,YukiHookAPI.Status.Executor.type 已无法使用,现在请使用 YukiHook.Status.Executor.name 获取 Hook 框架的名称
  • ⚠️ 破坏性更新:throwToHostOnFailure 现在只对设置它的回调生效,不再同时作用于 before 与 after
  • 弃用了 YukiHookAPI,现在请使用 YukiHook
  • 弃用了 @InjectYukiHookWithXposed、IYukiHookXposedInit,现在请使用与底座模块对应的入口注解以及 YukiHookXposedModule
  • 弃用了 YukiHookAPI.configs,现在请使用 YukiHook.configure,全部配置项也已重新命名
  • 弃用了 prefs、YukiHookPrefsBridge、PrefsData,现在请使用 preferences、YukiHookPreferences、PreferenceData
  • 弃用了 onAppLifecycle、registerModuleAppActivities、injectModuleAppResources,现在请使用 registerAppLifecycle、registerModuleActivities、injectModuleResources
  • 弃用了 loadZygote、YukiHook.encase(baseContext),它们现在仅在 yukihook-runtime-xposed82 中可用
  • 弃用了 HookParam 与 Hook 回调中的大量旧版方法,现在请使用 arg、firstArg、lastArg、intercept、throwToHost 等新的方法
  • 新增链式 Hook,可以使用 intercept 与 HookChain 通过 proceed 继续执行调用链,回调中发生异常时默认将按照此 Hook 不存在的方式继续调用,你也可以使用 throwToHostOnFailure 将异常抛给调用方
  • 经典 Hook 的 intercept 现在会返回 HookCallback,可以使用 throwToHostOnFailure 将异常抛给宿主,throwToHost 现在也会在 intercept 中生效
  • 新增 Handle.replace,可以在不重新 Hook 的情况下替换已注册的回调
  • 新增 Hook 静态初始化、解除内联化以及 invokeSpecial、newInstanceOriginal、newInstanceSpecial 等调用方法
  • 新增 withApplicationReady,可以在宿主的 Application 可用时执行代码,模块热重载后会再次回调
  • AppLifecycle 中的 registerReceiver 新增 exported 参数,模块热重载时将自动注销并重新注册
  • 新增 module.resources、module.sourceDir 等 PackageParam.ModuleSpec 功能,用于获取当前模块的信息
  • 新增 YukiHookSharedFiles,可以在模块与宿主之间共享文件
  • 新增 YukiHookModuleScope,可以在模块中查询与请求模块的作用域
  • 新增模块热重载功能,以及 YukiHookModuleReload、registerModuleLifecycle 与 remember
  • 新增 YukiHook.Status.observeFrameworkService、YukiHook.Status.runtime
  • 新增一套 Lint 静态检查规范,可以在编译期发现错误的 API 调用
  • 修复 intercept 回调发生异常后调用原始方法时,原始方法自身抛出异常会导致其被执行两次的问题
  • 修复模块进程中 onInit 发生的异常不会被打印的问题
  • 调整异常处理方案,现在只会保护宿主而不会保护模块,模块进程中发生的异常将直接抛出,宿主进程中的内部异常仍会被打印到日志

yukihook-compiler

  • ⚠️ 破坏性更新:原 ksp-xposed 依赖更名为 yukihook-compiler
  • ⚠️ 破坏性更新:移除了 sourcePath 参数,入口文件与配置文件现在会按照每个构建变体生成在构建目录中,源码目录中存在这些文件时将拒绝构建
  • 新增对 @YukiHookLibXposedEntry 与 @YukiHookXposed82Entry 入口注解的处理,并会检查入口注解与底座模块是否匹配
  • 新增为 libxposed API 生成 META-INF/xposed 中的 java_init.list、module.prop、scope.list 与 native_init.list

yukihook-extension-kavaref

  • 首个版本提交至 Maven

yukihook-runtime-libxposed

  • 首个版本提交至 Maven

yukihook-runtime-xposed82

  • 首个版本提交至 Maven

详情请查看更新日志。

Don't miss a new YukiHook release

NewReleases is sending notifications on new releases.