This repository has been archived on 2026-05-29. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
WinBoLL_Bck20260513_154646_588/docs/基于_sharedUserId_自有签名_LocalBroadcastManager_跨应用通信技术文档.md
LaizyBoy 37c3d1563c refactor(build): 精简项目模块配置,统一Java编译版本
- 简化 settings.gradle,仅保留 appbase 和 libappbase 模块
- 更新根目录 build.gradle 编译语言为 Java 7
- 移除其他模块(aes、libaes、winboll、libwinboll)引用
- 添加技术文档:基于 sharedUserId + 自有签名 + LocalBroadcastManager 跨应用通信
- 确保 Java 源文件语法符合 API 26-30 适配范围
2026-05-10 15:39:12 +08:00

3.8 KiB
Raw Blame History

基于 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 生成)