mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-04 17:55:24 +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
|
-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
|
2
demo-module/proguard-rules.pro
vendored
2
demo-module/proguard-rules.pro
vendored
@@ -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
|
@@ -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" +
|
||||||
|
@@ -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"
|
||||||
}
|
}
|
Reference in New Issue
Block a user