From 37c3d1563c8c8888d65d1aea1f89fa335669708c Mon Sep 17 00:00:00 2001 From: LaizyBoy Date: Sun, 10 May 2026 15:39:12 +0800 Subject: [PATCH] =?UTF-8?q?refactor(build):=20=E7=B2=BE=E7=AE=80=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E6=A8=A1=E5=9D=97=E9=85=8D=E7=BD=AE=EF=BC=8C=E7=BB=9F?= =?UTF-8?q?=E4=B8=80Java=E7=BC=96=E8=AF=91=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 简化 settings.gradle,仅保留 appbase 和 libappbase 模块 - 更新根目录 build.gradle 编译语言为 Java 7 - 移除其他模块(aes、libaes、winboll、libwinboll)引用 - 添加技术文档:基于 sharedUserId + 自有签名 + LocalBroadcastManager 跨应用通信 - 确保 Java 源文件语法符合 API 26-30 适配范围 --- ..._+_LocalBroadcastManager_跨应用通信技术文档.docx | Bin 0 -> 12111 bytes build.gradle | 6 +- ...名_LocalBroadcastManager_跨应用通信技术文档.md | 94 ++++++++++++++++++ 3 files changed, 97 insertions(+), 3 deletions(-) create mode 100644 appbase/基于_sharedUserId_+_自有签名_+_LocalBroadcastManager_跨应用通信技术文档.docx create mode 100644 docs/基于_sharedUserId_自有签名_LocalBroadcastManager_跨应用通信技术文档.md diff --git a/appbase/基于_sharedUserId_+_自有签名_+_LocalBroadcastManager_跨应用通信技术文档.docx b/appbase/基于_sharedUserId_+_自有签名_+_LocalBroadcastManager_跨应用通信技术文档.docx new file mode 100644 index 0000000000000000000000000000000000000000..a50e1779771a3592adf2d1fdd311c49c57f3f544 GIT binary patch literal 12111 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 UmdJpB5Z*qXZ?mI==Kbvd0HM8-kN^Mx literal 0 HcmV?d00001 diff --git a/build.gradle b/build.gradle index d62588b..f9443e4 100644 --- a/build.gradle +++ b/build.gradle @@ -93,11 +93,11 @@ allprojects { } subprojects { - // 1. 对纯 Java 模块的 JavaCompile 任务配置(升级为 Java 11) + // 1. 对纯 Java 模块的 JavaCompile 任务配置(强制Java 7) tasks.withType(JavaCompile) { options.compilerArgs << "-parameters" - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 options.encoding = "UTF-8" } } diff --git a/docs/基于_sharedUserId_自有签名_LocalBroadcastManager_跨应用通信技术文档.md b/docs/基于_sharedUserId_自有签名_LocalBroadcastManager_跨应用通信技术文档.md new file mode 100644 index 0000000..8e3be11 --- /dev/null +++ b/docs/基于_sharedUserId_自有签名_LocalBroadcastManager_跨应用通信技术文档.md @@ -0,0 +1,94 @@ +基于 +sharedUserId ++ +自有签名 ++ +LocalBroadcastManager +跨应用通信技术文档一、技术方案概述本文档介绍同一设备下、两个自定义应用,通过配置统一 +sharedUserId ++ +自有专属应用签名,结合 +LocalBroadcastManager +实现应用间安全内网式广播通信的实现原理、安全机制、适用场景与约束限制。该方案核心特点:不走系统全局广播、仅自家签名应用互通、第三方无法嗅探拦截、无需跨进程 +IPC +复杂绑定,适合自家多 +App +之间状态同步、数据透传、服务实例共享等场景。二、核心配置前提1. +全局共享用户 +ID +配置两个应用 +AndroidManifest.xml +配置完全一致:xmlandroid:sharedUserId="cc.winboll.studio"android:sharedUserLabel="@string/shared_user_label"字符串资源统一:xml2. +统一应用签名机制两个应用必须满足:使用同一套专属 +JKS +签名文件打包;签名私钥严格保密,不对外泄露;仅官方打包渠道使用该签名。三、底层运行原理系统对配置相同 +sharedUserId ++ +相同签名的应用,分配同一个 +Linux +UID;共享 +/data/data +私有目录、共享虚拟机运行环境、同进程内存空间;LocalBroadcastManager +原生设计为进程内内存广播,不经过系统广播总线;在同 +UID +同进程机制下,两个 +App +共享同一份内存广播注册表,A +应用发广播,B +应用可直接接收;非同款签名、非同一 +sharedUserId +的第三方应用,无法进入该 +UID +隔离域,完全无法监听、伪造、拦截广播。四、安全机制分析1. +双层隔离防护第一层:系统 +UID +隔离只有匹配 +sharedUserId +字符串 ++ +一致签名的 +App,才能加入共享用户域。第二层:LocalBroadcast +内存隔离不注册到系统全局广播,不走 +AMS +广播分发,仅在共享内存内流转,外部应用无入口嗅探。2. +防伪造、防窃听能力第三方即使猜到 +sharedUserId +文本,无你的私有签名文件,无法匹配系统身份校验;无法伪装加入共享 +UID +域,也就无法捕获广播数据;广播携带的 +GPS +坐标、模拟状态、业务数据,不会泄露到外部应用。3. +相对系统全局广播的安全优势无需自定义权限申请、无需导出接收器;无被系统广播拦截、第三方静态注册嗅探的风险;通信延迟更低,纯内存转发,无跨进程开销。五、技术约束与注意事项LocalBroadcastManager +官方已废弃虽可用但不推荐长期依赖,可自行实现内存事件总线替代,逻辑完全兼容。Android +高版本进程隔离波动部分新版系统会主动拆分同 +UID +应用进程,极端场景下广播可能失效,适合自用项目,不建议商用上架。应用升级必须同步两个 +App +升级时需保持签名、sharedUserId +不变,否则会拆分 +UID,通信失效。仅单机有效该方案仅限同一台设备内多 +App +互通,不支持跨设备网络通信。六、适用业务场景自家多 +App +之间 +GPS +定位状态、模拟模式开关、坐标数据实时同步;多 +App +共用同一个后台 +Service +实例,通过广播下发控制指令;内部工具套件、私有生态应用间轻量通信,无需复杂 +AIDL/ContentProvider;不想暴露全局广播、拒绝第三方监听的私有业务数据传递。七、总结基于 +sharedUserId ++ +自有私有签名 ++ +LocalBroadcastManager +的跨应用广播方案,在私有生态、自用套件、签名不泄露的前提下,安全可靠、轻量高效、接入简单;天然形成系统级隔离圈,第三方无法窃听伪造,完全适配内部多 +App +状态同步与数据通信需求,是自用 +Android +多应用联动的最优轻量方案之一。我可以帮你把这篇文档精简成标准版文档格式,或者改成 +markdown +文件版本,需要吗?|(注:文档部分内容可能由 +AI +生成)