Merge code

This commit is contained in:
2022-03-20 02:43:43 +08:00
parent d4c8895483
commit e1046e9016
4 changed files with 31 additions and 13 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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" +

View File

@@ -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"
}