DSHA · DeepSeek Harness 安卓启动器
DSHA · DeepSeek Harness for Android
别名:安卓启动器、手机端启动器、dsha、DSHA
把完整的 DSH 塞进一个 Android APK(免 ROOT、免 Termux):内置离线 Ubuntu 24.04 rootfs,装完填个 API key 就能启动。proroot 用 LD_PRELOAD + 二进制补丁做进程内路径翻译,免掉传统 proot 的 ptrace 开销;插件安装默认禁用生命周期脚本,第三方插件先审阅后启用。
一句话
在手机上跑完整的 DSH,而且不装 Termux、不敲命令:一个 APK 里塞了离线 Ubuntu 24.04 rootfs, 装完填 API key(或跳过)就能启动。
它解决什么问题
安卓上跑 DSH 此前基本只有一条路:装 Termux,然后在 Android 的 bionic libc 上折腾工具链—— 很多原生模块要逐个打补丁或重编。DSHA 走的是容器派:把完整 glibc 的 Ubuntu 环境打进 App, apt / PTY / 原生模块 / Python / git 都能直接用,上游插件不用改就能跑。
它 README 里那张「与同类方案的关系」写得很克制,照录如下:
| 容器派(DSHA 走这条) | Termux bootstrap 派 | |
|---|---|---|
| 做法 | proot/proroot + 完整 glibc rootfs | 用 Termux 的包在 Android bionic 上裸跑 |
| 装机 | 装 APK 就完事 | 装 Termux → 敲命令 → 装工具链 |
| 环境 | 完整 Ubuntu,apt 与原生模块随便用 | 需要为 bionic 逐个打补丁 / 重编 |
| 开销 | proroot 已无 ptrace 开销 | 无容器层,理论最快 |
| 沙箱 | 两边都受限 | 两边都受限 |
proroot 是它自己的东西:传统 proot 每次系统调用要两次上下文切换,proroot 改用 LD_PRELOAD + 二进制补丁做进程内路径翻译,README 说真机实测关键项合计 +58%。
怎么装
- 装 APK(仅 arm64;Android 11+ 选 Standard 标准版,更老的系统选 Low 兼容版);
- 填 API key(可跳过);
- 点启动。
细节(README):
- 两个版本共享同一个包名与数据(
com.dsh.client),不能并排安装; - Standard 用系统 WebView、支持实验性虚拟屏;Low 内置 GeckoView 143、暂不支持虚拟屏;
- 升级用同签名 APK 覆盖安装即可(证书指纹
e7e3a3…a53f5,验装方法见其docs/security-model.md)。
核心模块(README 分了九块)
| 模块 | 要点 |
|---|---|
| ① 装机与环境 | 内置离线 rootfs(Ubuntu 24.04 noble arm64,打进 APK,无网也能部署);六步流水线只修失败项,不从头重来 |
| ② 运行时 | 完整 glibc:apt / PTY / 原生模块 / Python / git |
| ③ 数据与备份 | 会话与设置放 内部存储/Documents/dshdata,卸载重装不丢;.dshbak v5 加密备份(密码派生密钥 + AES-GCM);自动备份计划;凭据不进备份 |
| ④ 设备能力 | 无障碍 + ADB 直连(免 Shizuku) + 独立虚拟屏:读屏、点按、装应用、跑自动化 |
| ⑤ 终端 | 完整 Ubuntu 的 bash,agent 跑 shell 命令没有限制 |
| ⑥ Web UI 与访问 | 手机上的 DSH 界面与访问方式 |
| ⑦ 插件生态 | 见下 |
| ⑧ 可靠性与应急 | 组件级自检 + 按需修补 + 启动诊断 + 独立应急 DSH(Web 起不来时直接点名是哪个插件) |
| ⑨ 安全 | 默认最小权限 |
插件生态(这一条的取舍值得单独说)
- App 内市场:安装 / 更新 / 启停 / 删除 / 搜索 / 排序,配合官网的插件目录与社区插件;
- 安装方式很多:GitHub 简写 /
tree/blob/ archive / Release 链接、HTTPS 压缩包直链、 本地导入(按内容识别格式)、终端dsha-plugin install; - 依赖安全(三条硬措施):随包
pnpm原生锁冻结依赖摘要;禁用生命周期脚本与 pnpmfile 钩子; 压缩包越界路径与包外软链拒绝; - 先审阅后启用:第三方插件装完保持停用,核对静态结构与内容摘要,用户确认后才启用;
- 硬依赖自动改造:插件写死的服务依赖就地改成运行时注入,一个插件不拖挂整棵插件树;
- 内置插件保护:内置插件不可删除,用户禁用过的升级后保持禁用;
- 内置 7 个插件:
dsh-web-mobile(移动端适配)、dsh-status-overlay(悬浮条)、dsh-task-notifier(回合完成通知)、dsh-device-shell-guide(设备能力引导)、dsh-computer-use-android(Android Computer Use)、dsh-tool-vscreen(虚拟屏工具)等。
这 7 个插件不在本站插件区:插件区有收录门槛(官方来源 / 被教程引用 / 被整合包使用 / 有 maintainer), 它们一条都不满足,所以按现状在这里交代——这也是本站不为了收条目去放宽门槛的一个例子。
已知限制(README 自己列的,照录)
| 项目 | 状态 |
|---|---|
| 架构 | ⚠️ 仅 arm64-v8a(32 位与 x86 不支持) |
| 系统 | ✅ Standard 11+ / Low 6+(老系统部分能力受限制) |
| 包体 | ⚠️ 261 / 334 MiB(内置完整 Ubuntu 的代价) |
| bash 工具 | ✅ 可用 |
| bash 的沙箱隔离 | ⚠️ 不可用——bubblewrap 要 unprivileged user namespace,Android sepolicy 不给;容器派与 Termux 派都一样绕不过 |
| 卓易通 / 鸿蒙 anco | ❓ 未验证 |
| 悬浮条 | ⚠️ 需要授权(TYPE_APPLICATION_OVERLAY 自绘;免 ROOT 拿不到真正的状态栏接口) |
| 数据位置 | ⚠️ 需要「所有文件访问」权限;被拒时数据留在私有目录,卸载即丢(自检会告知当前状态) |
身份与格式支持
- canonical ID:未认领(2026-10-02 查规范仓库 launcher-registry 与市场
launchers.json); - 是否吃
.dspack:本轮未核实。README 讲的是插件市场与.dshbak备份, 没有出现.dspack或整合包相关内容——所以没有给它打「支持 .dspack」标签。
未核实 / 未声明
- DSH 版本区间与 manifest 版本:README 未声明;
- proroot 的 +58% 实测:来自项目自述,本站未复现(需要 arm64 真机);
.dshbak加密备份的算法细节:只读到「密码派生密钥 + AES-GCM」,KDF 参数未读;- 本项目未实测:以上全部来自 README 与 GitHub API(快照 2026-10-02)。
信息表
- category
- launch.mobile
- licenseRefs
- [object Object]
- platforms
- android
- positioning
- 这一区里唯一的移动端形态,也是「容器派」的代表:不靠 Termux 在 bionic 上硬跑,而是把一份离线 Ubuntu rootfs 打进 APK,用 proroot 在进程内做路径翻译。适合「手上只有手机、也不想敲命令」的场景——代价是包体和一部分系统限制。
- roles
- [object Object]
- support
- Android 11+(标准版)/ Android 6+(兼容版),仅 arm64-v8a
- supportedManifest
- 未核实:README 未声明 manifest 版本;它有自己的一套插件安装与备份机制
- titleEn
- DSHA · DeepSeek Harness for Android
- updatedAt
- 2026-10-02
- url
- https://github.com/DSH-APP/DSHA
标签:安卓、免 root、启动器、移动端
按标签浏览:启动器(9)