Fix YukiHookModuleStatus not found error and added some type in android

This commit is contained in:
2022-05-04 09:56:07 +08:00
parent 4fc64e0a02
commit 73204588c0
3 changed files with 46 additions and 41 deletions

View File

@@ -219,13 +219,11 @@ loadZygote {
} }
``` ```
这样就实现了上述的 Hook 功能。
### Hook 系统框架 ### Hook 系统框架
`YukiHookAPI`Hook 系统框架的实现非常简单。 `YukiHookAPI`Hook 系统框架的实现非常简单。
假设我们要全局 Hook 一个系统 `Activity` `onCreate` 事件 假设,你要得到 `ApplicationInfo` `PackageInfo` 并对它们进行一些操作。
`encase` 方法体中添加代码。 `encase` 方法体中添加代码。
@@ -233,17 +231,11 @@ loadZygote {
```kotlin ```kotlin
loadSystem { loadSystem {
ActivityClass.hook { ApplicationInfoClass.hook {
injectMember {
method {
name = "onCreate"
param(BundleClass)
returnType = UnitType
}
afterHook {
// Your code here. // Your code here.
} }
} PackageInfoClass.hook {
// Your code here.
} }
} }
``` ```

View File

@@ -184,7 +184,8 @@ object CodeSourceFileTemplate {
" YukiHookBridge.callXposedLoaded(isZygoteLoaded, lpparam, resparam)\n" + " YukiHookBridge.callXposedLoaded(isZygoteLoaded, lpparam, resparam)\n" +
" }\n" + " }\n" +
"\n" + "\n" +
" private fun hookModuleAppStatus(lpparam: XC_LoadPackage.LoadPackageParam? = this.lpparam, isHookResourcesStatus: Boolean = false) {\n" + " private fun hookModuleAppStatus(lpparam: XC_LoadPackage.LoadPackageParam? = this.lpparam, isHookResourcesStatus: Boolean = false) =\n" +
" runCatching {\n" +
" lpparam?.let { this.lpparam = it }\n" + " lpparam?.let { this.lpparam = it }\n" +
" if (isHookResourcesStatus.not()) {\n" + " if (isHookResourcesStatus.not()) {\n" +
" XposedHelpers.findAndHookMethod(\n" + " XposedHelpers.findAndHookMethod(\n" +

View File

@@ -91,6 +91,18 @@ val ContextWrapperClass get() = ContextWrapper::class.java
*/ */
val ApplicationClass get() = Application::class.java val ApplicationClass get() = Application::class.java
/**
* 获得 [ApplicationInfo] 类型
* @return [Class]
*/
val ApplicationInfoClass get() = ApplicationInfo::class.java
/**
* 获得 [PackageInfo] 类型
* @return [Class]
*/
val PackageInfoClass get() = PackageInfo::class.java
/** /**
* 获得 [ApplicationPackageManager] 类型 * 获得 [ApplicationPackageManager] 类型
* @return [Class] * @return [Class]