mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-04 09:45:19 +08:00
Merge code
This commit is contained in:
2
demo-app/proguard-rules.pro
vendored
2
demo-app/proguard-rules.pro
vendored
@@ -29,13 +29,11 @@
|
||||
-dontoptimize
|
||||
-verbose
|
||||
-overloadaggressively
|
||||
-repackageclasses i
|
||||
-allowaccessmodification
|
||||
|
||||
-adaptclassstrings
|
||||
-adaptresourcefilenames
|
||||
-adaptresourcefilecontents
|
||||
|
||||
# -optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
|
||||
-renamesourcefileattribute P
|
||||
-keepattributes SourceFile,LineNumberTable
|
2
demo-module/proguard-rules.pro
vendored
2
demo-module/proguard-rules.pro
vendored
@@ -29,13 +29,11 @@
|
||||
-dontoptimize
|
||||
-verbose
|
||||
-overloadaggressively
|
||||
-repackageclasses i
|
||||
-allowaccessmodification
|
||||
|
||||
-adaptclassstrings
|
||||
-adaptresourcefilenames
|
||||
-adaptresourcefilecontents
|
||||
|
||||
# -optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
|
||||
-renamesourcefileattribute P
|
||||
-keepattributes SourceFile,LineNumberTable
|
@@ -46,6 +46,18 @@ import java.io.File
|
||||
@AutoService(SymbolProcessorProvider::class)
|
||||
class YukiHookXposedProcessor : SymbolProcessorProvider {
|
||||
|
||||
companion object {
|
||||
|
||||
/** 定义 Jvm 方法名 */
|
||||
private const val IS_ACTIVE_METHOD_NAME = "__--"
|
||||
|
||||
/** 定义 Jvm 方法名 */
|
||||
private const val GET_XPOSED_VERSION_METHOD_NAME = "--__"
|
||||
|
||||
/** 定义 Jvm 方法名 */
|
||||
private const val GET_XPOSED_TAG_METHOD_NAME = "_-_-"
|
||||
}
|
||||
|
||||
override fun create(environment: SymbolProcessorEnvironment) = object : SymbolProcessor {
|
||||
|
||||
/** 自动处理程序的 TAG */
|
||||
@@ -262,14 +274,14 @@ class YukiHookXposedProcessor : SymbolProcessorProvider {
|
||||
" XposedHelpers.findAndHookMethod(\n" +
|
||||
" YukiHookModuleStatus::class.java.name,\n" +
|
||||
" lpparam.classLoader,\n" +
|
||||
" \"isActive\",\n" +
|
||||
" \"$IS_ACTIVE_METHOD_NAME\",\n" +
|
||||
" object : XC_MethodReplacement() {\n" +
|
||||
" override fun replaceHookedMethod(param: MethodHookParam?) = true\n" +
|
||||
" })\n" +
|
||||
" XposedHelpers.findAndHookMethod(\n" +
|
||||
" YukiHookModuleStatus::class.java.name,\n" +
|
||||
" lpparam.classLoader,\n" +
|
||||
" \"getXposedBridgeTag\",\n" +
|
||||
" \"$GET_XPOSED_TAG_METHOD_NAME\",\n" +
|
||||
" object : XC_MethodReplacement() {\n" +
|
||||
" override fun replaceHookedMethod(param: MethodHookParam?) = try {\n" +
|
||||
" XposedBridge::class.java.getDeclaredField(\"TAG\").apply { isAccessible = true }.get(null) as String\n" +
|
||||
@@ -280,7 +292,7 @@ class YukiHookXposedProcessor : SymbolProcessorProvider {
|
||||
" XposedHelpers.findAndHookMethod(\n" +
|
||||
" YukiHookModuleStatus::class.java.name,\n" +
|
||||
" lpparam.classLoader,\n" +
|
||||
" \"getXposedVersion\",\n" +
|
||||
" \"$GET_XPOSED_VERSION_METHOD_NAME\",\n" +
|
||||
" object : XC_MethodReplacement() {\n" +
|
||||
" override fun replaceHookedMethod(param: MethodHookParam?) = XposedBridge.getXposedVersion()\n" +
|
||||
" })\n" +
|
||||
|
@@ -33,7 +33,6 @@ import com.highcapable.yukihookapi.annotation.DoNotUseMethod
|
||||
import com.highcapable.yukihookapi.hook.factory.isModuleActive
|
||||
import com.highcapable.yukihookapi.hook.factory.isTaiChiModuleActive
|
||||
import com.highcapable.yukihookapi.hook.factory.isXposedModuleActive
|
||||
import com.highcapable.yukihookapi.hook.log.yLoggerI
|
||||
import com.highcapable.yukihookapi.hook.xposed.YukiHookModuleStatus.executorName
|
||||
import com.highcapable.yukihookapi.hook.xposed.YukiHookModuleStatus.executorVersion
|
||||
import de.robv.android.xposed.XposedBridge
|
||||
@@ -55,9 +54,17 @@ import de.robv.android.xposed.XposedBridge
|
||||
*
|
||||
* 详情请参考 [判断自身激活状态](https://github.com/fankes/YukiHookAPI/wiki#%E5%88%A4%E6%96%AD%E8%87%AA%E8%BA%AB%E6%BF%80%E6%B4%BB%E7%8A%B6%E6%80%81)
|
||||
*/
|
||||
@Keep
|
||||
object YukiHookModuleStatus {
|
||||
|
||||
/** 定义 Jvm 方法名 */
|
||||
private const val IS_ACTIVE_METHOD_NAME = "__--"
|
||||
|
||||
/** 定义 Jvm 方法名 */
|
||||
private const val GET_XPOSED_VERSION_METHOD_NAME = "--__"
|
||||
|
||||
/** 定义 Jvm 方法名 */
|
||||
private const val GET_XPOSED_TAG_METHOD_NAME = "_-_-"
|
||||
|
||||
/**
|
||||
* 获取当前 Hook 框架的名称
|
||||
*
|
||||
@@ -83,21 +90,24 @@ object YukiHookModuleStatus {
|
||||
* - ❗此方法为私有功能性 API - 你不应该手动调用此方法
|
||||
* @return [Boolean]
|
||||
*/
|
||||
@Keep
|
||||
@DoNotUseMethod
|
||||
internal fun isActive(): Boolean {
|
||||
yLoggerI(msg = "This Module is not actived")
|
||||
return false
|
||||
}
|
||||
@JvmName(IS_ACTIVE_METHOD_NAME)
|
||||
internal fun isActive() = false
|
||||
|
||||
/**
|
||||
* 此方法经过 Hook 后返回 [XposedBridge.getXposedVersion]
|
||||
* @return [Int]
|
||||
*/
|
||||
@Keep
|
||||
@JvmName(GET_XPOSED_VERSION_METHOD_NAME)
|
||||
private fun getXposedVersion() = -1
|
||||
|
||||
/**
|
||||
* 此方法经过 Hook 后返回 [XposedBridge] 的 TAG
|
||||
* @return [String]
|
||||
*/
|
||||
@Keep
|
||||
@JvmName(GET_XPOSED_TAG_METHOD_NAME)
|
||||
private fun getXposedBridgeTag() = "unknown"
|
||||
}
|
Reference in New Issue
Block a user