# DSHA 安全模型 本页描述现行源码策略;历史说明保留在 tools/history,不能作为当前授权边界。当前终端与第三方插件按用户要求开放;独立应急的五工具和原生确认仍保留。具体资产、主体与控制适用范围见[威胁模型 ADR 0002](adr/0002-current-threat-model.md)。 ## 资产与主体 需要保护的是对话、附件、个人项目、插件源和依赖、配置、API Key、设备授权、备份以及受管运行资产。参与者包括用户、原生应用、同 UID 的 Ubuntu/Node/插件、内嵌网页、独立应急进程、局域网客户端、外部模型和下载服务器。用户选择外部模型时,请求内容与附件按该服务实际协议发送。 ## 信任边界 | 边界 | 实际保证 | 不能推导的保证 | |---|---|---| | Android 应用 UID | 系统隔离其他普通应用的私有数据 | proot 的 root 不是 Android root | | Ubuntu 与插件 | 包、路径、实际摘要和事务核验 | 同 UID 任意代码不是独立沙箱 | | loopback 桥 | 当前 token、路由与能力约束,执行未知时不重放 | 本机 TCP 不等于只有本应用能连接 | | 内嵌页面 | 当前来源、实际端口、页面和运行代次 | 不能批准任意网页、旧回调或摄像头 | | LAN | 独立启用和鉴权、当前 Web 端口与有界连接 | LAN HTTP 是明文;不提供 TLS、受信配对或不受 Android 后台策略影响的承诺 | | 用户归档 | 完整认证/摘要、范围与双向记录核验,再预检 | 归档自述的健康或格式不成为本机证明 | ## 终端与插件 正式终端允许修复 shell;链接、本地包和更新通过包格式、路径、摘要与事务检查后自动安装启用,不再要求插件审阅。依赖允许未锁定重解析、生命周期脚本和 pnpmfile,并记录实际锁与目录摘要以支持回切。用户主动禁用及安全模式意图仍保持。 插件可以在应用 UID 下读写可访问文件并执行代码。自动安装不是独立安全认证。受管系统组件与用户插件分层;系统组件从当前签名 APK 重建,用户修改和个人依赖不得被当作缓存清掉。 ## 设备与浏览器能力 Root、Shizuku、ADB 在发送前选择实际通道;设备命令由原生与特权执行侧策略检查。短信、虚拟屏、截图/读屏、录音和存储仍依赖对应原生授权与 Android 实际权限;未知命令的确认不能替代设备身份核验。结果未知时不得换通道重放。 设备写操作仅允许策略认可的共享存储子路径及 `/data/local/tmp/`,阻止共享根、DCIM、Pictures、Android/data、Android/obb 及其祖先写入;这只是受管设备命令的边界,不是同 UID 终端/插件的文件防火墙。短信查询默认关闭,要求独立可撤销授权,仅接受当前 Android 用户的严格 `content query`,不允许provider写入;文件读取侧拒绝已识别的telephony路径及canonical目标。 **已知覆盖缺口**:2026-10-22对 `140c7ba` 的核查发现,递归READ只核验顶层命令参数和canonical路径,未核验遍历过程中子链接指向的目标。`grep -R`等跟随链接的读取不能据此获得“整个telephony树不可达”的保证;这仍是待修实现问题。隔离策略检查证明派发前缺少该项核验,未读取真实手机短信,也未证明某ROM能被实际利用。FILE适配器的NOFOLLOW不替代READ守卫,具体入口与修复要求见[权限架构](device-permissions-architecture.md)第6.2节。 su的metadata发现、管理器授权和UID 0执行是不同事实;DSHA未在APK内实现Root管理器。上游固定源码与兼容性限制见[来源依据](references-and-provenance.md)第5.1节。Root管理器的身份授权不替代DSHA自身命令、短信或虚拟屏策略,也不把同UID任意插件代码变成强沙箱。 无障碍可接收其他应用窗口事件;配对事件扫描只在用户开启的短暂窗口处理设置页。主动读屏和截图是独立能力,截图可保存到私有 Pictures/DSHA 并通过内容 URI 返回,不能声称完全不落盘。录音只接受当前本机页面的纯音频请求,摄像头和屏幕音频拒绝。 ## 凭据、网络与日志 原生 API Key 使用 Keystore 密文;暂时不可读不等于未配置,不能自动清密文或换解密密钥。桥使用 X-Token 请求头;兼容 shim 仅迁移已知本机 fetch 调用,不开放 CORS 或宣称兼容任意 HTTP 库。外部文件访问和默认备份排除机器令牌;用户选择的项目可能主动包含 .env 等内容,不静默删掉。 更新地址按 HTTPS、重定向和 APK 身份检查。Android 23 与已有用户 HTTP/LAN 功能仍需明文兼容配置,不能称应用拥有全局禁止明文的网络防火墙。日志对已知秘密和常见凭据格式脱敏;任意第三方输出不保证识别所有秘密。 ## 备份与恢复 新导出固定为无需密码的 DSHA-data-v5-UUID.tar.gz,没有可选加密。内部自动副本仍用本机随机密钥加密;卸载可能失去本机密钥,重要副本应导出。历史加密原件继续完整 AEAD 认证,并需要原密码。 恢复先完成认证/摘要与预检,只写私有编号槽位。受管脚本、可执行配置和未知插件隔离;设备授权和机器状态不会由用户归档生效。未知、修改过和未完整提交的原件保持,不自动删除。 ## 应急与进程事务 应急 HOME 和运行根独立,不借正式环境或原生安全 Profile 伪装独立救援。五项受控修复工具不能任意安装包或执行 shell;写入通过原生确认、候选/源摘要/数据代次绑定和停止屏障。用户可另用正式终端修复。 停止以出生身份、会话及退出证据为准,禁止按端口、名称或裸 PID 强杀。安装、迁移和回切由宿主事务记录;结果未知时保留现场及运行任务屏障,不让用户清数据脱困。 ## 交付与验证限度 正式包继续使用 dsh.android.client、E7E3 历史证书及 v1/v2/v3。构建不缺省发布口令,不替换为其它证书。F13及包名改版原记录未操作手机;本轮已授权性能真机验收,实际执行结果仍须另绑最终APK。软件测试、APK/ELF/签名核验和手机覆盖安装是不同证据。当前结果以 README 指向的本轮审计及交付报告为准,不能继承旧报告的通过范围。