From c7b81ea603b745899db71585df735bea8065fac3 Mon Sep 17 00:00:00 2001 From: fankesyooni Date: Mon, 1 Aug 2022 00:10:32 +0800 Subject: [PATCH] Modify make YukiHookDataChannel security enhancement --- docs/guide/special-feature.md | 6 ++++++ .../yukihookapi/hook/xposed/channel/YukiHookDataChannel.kt | 1 + 2 files changed, 7 insertions(+) diff --git a/docs/guide/special-feature.md b/docs/guide/special-feature.md index 8a01c837..78bf2ce5 100644 --- a/docs/guide/special-feature.md +++ b/docs/guide/special-feature.md @@ -1275,6 +1275,12 @@ class OtherActivity : AppCompatActivity() { !> 在模块中,你只能使用 `Activity` 的 `Context` 注册 `dataChannel`,你不能在 `Application` 以及 `Service` 等地方使用 `dataChannel`,若要在 `Fragment` 中使用 `dataChannel`,请使用 `activity?.dataChannel(...)`。 +### 安全性说明 + +!> 在模块环境中,你只能接收**指定包名的宿主**发送的通讯数据且只能发送给**指定包名的宿主**。 + +为了进一步防止广播滥用,通讯数据中 API 会自动指定宿主和模块的包名,防止其它 APP 监听并利用广播做出超限行为。 + ## 宿主生命周期扩展功能 > 这是一个自动 Hook 宿主 APP 生命周期的扩展功能。 diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/channel/YukiHookDataChannel.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/channel/YukiHookDataChannel.kt index 7312f0a5..3d3b191c 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/channel/YukiHookDataChannel.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/channel/YukiHookDataChannel.kt @@ -299,6 +299,7 @@ class YukiHookDataChannel private constructor() { /** 发送广播 */ (context ?: YukiHookAppHelper.currentApplication())?.sendBroadcast(Intent().apply { action = if (isXposedEnvironment) moduleActionName() else hostActionName(packageName) + setPackage(if (isXposedEnvironment) YukiHookBridge.modulePackageName else packageName) data.takeIf { it.isNotEmpty() }?.forEach { when (it.value) { null -> Unit