Changed some function and add new function to demo

This commit is contained in:
2022-03-29 13:49:07 +08:00
parent ee9ea8b2d5
commit 31410eb6e1
10 changed files with 236 additions and 118 deletions

View File

@@ -32,6 +32,7 @@ import com.highcapable.yukihookapi.YukiHookAPI
import com.highcapable.yukihookapi.annotation.xposed.InjectYukiHookWithXposed
import com.highcapable.yukihookapi.demo_module.data.DataConst
import com.highcapable.yukihookapi.hook.type.android.BundleClass
import com.highcapable.yukihookapi.hook.type.java.StringArrayClass
import com.highcapable.yukihookapi.hook.type.java.StringType
import com.highcapable.yukihookapi.hook.type.java.UnitType
import com.highcapable.yukihookapi.hook.xposed.proxy.YukiHookXposedInitProxy
@@ -101,6 +102,19 @@ class HookEntry : YukiHookXposedInitProxy {
}
}
// 注入要 Hook 的方法
injectMember {
method {
name = "getArray"
param(StringArrayClass)
returnType = StringArrayClass
}
// 在方法执行之前拦截
beforeHook {
// 设置 0 号 param
args().array<String>()[0] = "peach"
}
}
// 注入要 Hook 的方法
injectMember {
method {
name = "toast"

View File

@@ -30,13 +30,10 @@
package com.highcapable.yukihookapi.demo_module.ui
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.highcapable.yukihookapi.demo_module.R
import com.highcapable.yukihookapi.demo_module.data.DataConst
import com.highcapable.yukihookapi.demo_module.databinding.ActivityMainBinding
import com.highcapable.yukihookapi.hook.factory.isModuleActive
import com.highcapable.yukihookapi.hook.factory.modulePrefs
import com.highcapable.yukihookapi.hook.xposed.YukiHookModuleStatus
@@ -45,17 +42,19 @@ class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
findViewById<TextView>(R.id.module_demo_text).text = "Module is Active -> $isModuleActive\n" +
"Hook Framework -> ${YukiHookModuleStatus.executorName}\n" +
"API Version -> ${YukiHookModuleStatus.executorVersion}"
findViewById<EditText>(R.id.module_demo_edit_text).also {
it.setText(modulePrefs.get(DataConst.TEST_KV_DATA))
findViewById<Button>(R.id.module_demo_button).setOnClickListener { _ ->
if (it.text.toString().isNotEmpty()) {
modulePrefs.put(DataConst.TEST_KV_DATA, it.text.toString())
Toast.makeText(applicationContext, "Saved", Toast.LENGTH_SHORT).show()
} else Toast.makeText(applicationContext, "Please enter the text", Toast.LENGTH_SHORT).show()
ActivityMainBinding.inflate(layoutInflater).apply {
setContentView(root)
moduleDemoText.text = "Module is Active -> $isModuleActive\n" +
"Hook Framework -> ${YukiHookModuleStatus.executorName}\n" +
"API Version -> ${YukiHookModuleStatus.executorVersion}"
moduleDemoEditText.also {
it.setText(modulePrefs.get(DataConst.TEST_KV_DATA))
moduleDemoButton.setOnClickListener { _ ->
if (it.text.toString().isNotEmpty()) {
modulePrefs.put(DataConst.TEST_KV_DATA, it.text.toString())
Toast.makeText(applicationContext, "Saved", Toast.LENGTH_SHORT).show()
} else Toast.makeText(applicationContext, "Please enter the text", Toast.LENGTH_SHORT).show()
}
}
}
}