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 -dontoptimize
-verbose -verbose
-overloadaggressively -overloadaggressively
-repackageclasses i
-allowaccessmodification -allowaccessmodification
-adaptclassstrings -adaptclassstrings
-adaptresourcefilenames -adaptresourcefilenames
-adaptresourcefilecontents -adaptresourcefilecontents
# -optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
-renamesourcefileattribute P -renamesourcefileattribute P
-keepattributes SourceFile,LineNumberTable -keepattributes SourceFile,LineNumberTable

View File

@@ -29,13 +29,11 @@
-dontoptimize -dontoptimize
-verbose -verbose
-overloadaggressively -overloadaggressively
-repackageclasses i
-allowaccessmodification -allowaccessmodification
-adaptclassstrings -adaptclassstrings
-adaptresourcefilenames -adaptresourcefilenames
-adaptresourcefilecontents -adaptresourcefilecontents
# -optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
-renamesourcefileattribute P -renamesourcefileattribute P
-keepattributes SourceFile,LineNumberTable -keepattributes SourceFile,LineNumberTable

View File

@@ -46,6 +46,18 @@ import java.io.File
@AutoService(SymbolProcessorProvider::class) @AutoService(SymbolProcessorProvider::class)
class YukiHookXposedProcessor : SymbolProcessorProvider { 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 { override fun create(environment: SymbolProcessorEnvironment) = object : SymbolProcessor {
/** 自动处理程序的 TAG */ /** 自动处理程序的 TAG */
@@ -262,14 +274,14 @@ class YukiHookXposedProcessor : SymbolProcessorProvider {
" XposedHelpers.findAndHookMethod(\n" + " XposedHelpers.findAndHookMethod(\n" +
" YukiHookModuleStatus::class.java.name,\n" + " YukiHookModuleStatus::class.java.name,\n" +
" lpparam.classLoader,\n" + " lpparam.classLoader,\n" +
" \"isActive\",\n" + " \"$IS_ACTIVE_METHOD_NAME\",\n" +
" object : XC_MethodReplacement() {\n" + " object : XC_MethodReplacement() {\n" +
" override fun replaceHookedMethod(param: MethodHookParam?) = true\n" + " override fun replaceHookedMethod(param: MethodHookParam?) = true\n" +
" })\n" + " })\n" +
" XposedHelpers.findAndHookMethod(\n" + " XposedHelpers.findAndHookMethod(\n" +
" YukiHookModuleStatus::class.java.name,\n" + " YukiHookModuleStatus::class.java.name,\n" +
" lpparam.classLoader,\n" + " lpparam.classLoader,\n" +
" \"getXposedBridgeTag\",\n" + " \"$GET_XPOSED_TAG_METHOD_NAME\",\n" +
" object : XC_MethodReplacement() {\n" + " object : XC_MethodReplacement() {\n" +
" override fun replaceHookedMethod(param: MethodHookParam?) = try {\n" + " override fun replaceHookedMethod(param: MethodHookParam?) = try {\n" +
" XposedBridge::class.java.getDeclaredField(\"TAG\").apply { isAccessible = true }.get(null) as String\n" + " XposedBridge::class.java.getDeclaredField(\"TAG\").apply { isAccessible = true }.get(null) as String\n" +
@@ -280,7 +292,7 @@ class YukiHookXposedProcessor : SymbolProcessorProvider {
" XposedHelpers.findAndHookMethod(\n" + " XposedHelpers.findAndHookMethod(\n" +
" YukiHookModuleStatus::class.java.name,\n" + " YukiHookModuleStatus::class.java.name,\n" +
" lpparam.classLoader,\n" + " lpparam.classLoader,\n" +
" \"getXposedVersion\",\n" + " \"$GET_XPOSED_VERSION_METHOD_NAME\",\n" +
" object : XC_MethodReplacement() {\n" + " object : XC_MethodReplacement() {\n" +
" override fun replaceHookedMethod(param: MethodHookParam?) = XposedBridge.getXposedVersion()\n" + " override fun replaceHookedMethod(param: MethodHookParam?) = XposedBridge.getXposedVersion()\n" +
" })\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.isModuleActive
import com.highcapable.yukihookapi.hook.factory.isTaiChiModuleActive import com.highcapable.yukihookapi.hook.factory.isTaiChiModuleActive
import com.highcapable.yukihookapi.hook.factory.isXposedModuleActive 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.executorName
import com.highcapable.yukihookapi.hook.xposed.YukiHookModuleStatus.executorVersion import com.highcapable.yukihookapi.hook.xposed.YukiHookModuleStatus.executorVersion
import de.robv.android.xposed.XposedBridge 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) * 详情请参考 [判断自身激活状态](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 { 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 框架的名称 * 获取当前 Hook 框架的名称
* *
@@ -83,21 +90,24 @@ object YukiHookModuleStatus {
* - ❗此方法为私有功能性 API - 你不应该手动调用此方法 * - ❗此方法为私有功能性 API - 你不应该手动调用此方法
* @return [Boolean] * @return [Boolean]
*/ */
@Keep
@DoNotUseMethod @DoNotUseMethod
internal fun isActive(): Boolean { @JvmName(IS_ACTIVE_METHOD_NAME)
yLoggerI(msg = "This Module is not actived") internal fun isActive() = false
return false
}
/** /**
* 此方法经过 Hook 后返回 [XposedBridge.getXposedVersion] * 此方法经过 Hook 后返回 [XposedBridge.getXposedVersion]
* @return [Int] * @return [Int]
*/ */
@Keep
@JvmName(GET_XPOSED_VERSION_METHOD_NAME)
private fun getXposedVersion() = -1 private fun getXposedVersion() = -1
/** /**
* 此方法经过 Hook 后返回 [XposedBridge] 的 TAG * 此方法经过 Hook 后返回 [XposedBridge] 的 TAG
* @return [String] * @return [String]
*/ */
@Keep
@JvmName(GET_XPOSED_TAG_METHOD_NAME)
private fun getXposedBridgeTag() = "unknown" private fun getXposedBridgeTag() = "unknown"
} }