mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-04 09:45:19 +08:00
Fix YukiHookDataChannel when "android" package is registered cannot callback in Android 13 or latest
This commit is contained in:
@@ -299,7 +299,9 @@ class YukiHookDataChannel private constructor() {
|
|||||||
/** 发送广播 */
|
/** 发送广播 */
|
||||||
(context ?: YukiHookAppHelper.currentApplication())?.sendBroadcast(Intent().apply {
|
(context ?: YukiHookAppHelper.currentApplication())?.sendBroadcast(Intent().apply {
|
||||||
action = if (isXposedEnvironment) moduleActionName() else hostActionName(packageName)
|
action = if (isXposedEnvironment) moduleActionName() else hostActionName(packageName)
|
||||||
setPackage(if (isXposedEnvironment) YukiHookBridge.modulePackageName else packageName)
|
/** 由于系统框架的包名可能不唯一 - 为防止发生问题不再对系统框架的广播设置接收者包名 */
|
||||||
|
if (packageName != YukiHookBridge.SYSTEM_FRAMEWORK_NAME)
|
||||||
|
setPackage(if (isXposedEnvironment) YukiHookBridge.modulePackageName else packageName)
|
||||||
data.takeIf { it.isNotEmpty() }?.forEach {
|
data.takeIf { it.isNotEmpty() }?.forEach {
|
||||||
when (it.value) {
|
when (it.value) {
|
||||||
null -> Unit
|
null -> Unit
|
||||||
|
@@ -56,6 +56,7 @@ import com.highcapable.yukihookapi.hook.xposed.bridge.factory.YukiMemberHook
|
|||||||
import com.highcapable.yukihookapi.hook.xposed.bridge.factory.YukiMemberReplacement
|
import com.highcapable.yukihookapi.hook.xposed.bridge.factory.YukiMemberReplacement
|
||||||
import com.highcapable.yukihookapi.hook.xposed.bridge.status.YukiHookModuleStatus
|
import com.highcapable.yukihookapi.hook.xposed.bridge.status.YukiHookModuleStatus
|
||||||
import com.highcapable.yukihookapi.hook.xposed.channel.YukiHookDataChannel
|
import com.highcapable.yukihookapi.hook.xposed.channel.YukiHookDataChannel
|
||||||
|
import com.highcapable.yukihookapi.hook.xposed.helper.YukiHookAppHelper
|
||||||
import com.highcapable.yukihookapi.hook.xposed.parasitic.activity.config.ActivityProxyConfig
|
import com.highcapable.yukihookapi.hook.xposed.parasitic.activity.config.ActivityProxyConfig
|
||||||
import com.highcapable.yukihookapi.hook.xposed.parasitic.activity.delegate.HandlerDelegate
|
import com.highcapable.yukihookapi.hook.xposed.parasitic.activity.delegate.HandlerDelegate
|
||||||
import com.highcapable.yukihookapi.hook.xposed.parasitic.activity.delegate.IActivityManagerProxy
|
import com.highcapable.yukihookapi.hook.xposed.parasitic.activity.delegate.IActivityManagerProxy
|
||||||
@@ -68,6 +69,9 @@ import com.highcapable.yukihookapi.hook.xposed.parasitic.activity.delegate.Instr
|
|||||||
*/
|
*/
|
||||||
internal object AppParasitics {
|
internal object AppParasitics {
|
||||||
|
|
||||||
|
/** [YukiHookDataChannel] 是否已经注册 */
|
||||||
|
private var isDataChannelRegistered = false
|
||||||
|
|
||||||
/** [Activity] 代理是否已经注册 */
|
/** [Activity] 代理是否已经注册 */
|
||||||
private var isActivityProxyRegistered = false
|
private var isActivityProxyRegistered = false
|
||||||
|
|
||||||
@@ -230,7 +234,15 @@ internal object AppParasitics {
|
|||||||
}
|
}
|
||||||
}, IntentFilter().apply { e.first.forEach { e -> addAction(e) } })
|
}, IntentFilter().apply { e.first.forEach { e -> addAction(e) } })
|
||||||
}
|
}
|
||||||
runCatching { YukiHookDataChannel.instance().register(it, packageName) }
|
runCatching {
|
||||||
|
/** 过滤系统框架与一系列服务组件包名不唯一的情况 */
|
||||||
|
if (isDataChannelRegistered ||
|
||||||
|
(YukiHookAppHelper.currentPackageName() == YukiHookBridge.SYSTEM_FRAMEWORK_NAME &&
|
||||||
|
packageName != YukiHookBridge.SYSTEM_FRAMEWORK_NAME)
|
||||||
|
) return
|
||||||
|
YukiHookDataChannel.instance().register(it, packageName)
|
||||||
|
isDataChannelRegistered = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}.onFailure { param.throwable = it }
|
}.onFailure { param.throwable = it }
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user