DSHA

DSH-APPMIT活跃维护

在安卓手机上免 ROOT 跑 DeepSeek Harness,自带完整 Ubuntu 环境,用 proroot 避开 ptrace 开销,AI 输出实时上屏、ADB 直连、数据不丢。

免 ROOT 免 Termux,在手机上跑 DeepSeek Harness。完整 Ubuntu 环境 + proroot 零 ptrace 开销 · AI 输出实时上屏 · ADB 直连 · 数据不丢

v0.2.1-rc.2发布于 2026-10-22 18:57 UTC3,256star +103 / 7 天189fork同步于 2026-11-10 11:41 UTC

怎么上手

由 README 提炼,执行前请确认
下载 dsha-0.2.1-rc.2.apk 安装后首次启动,等待内置离线环境解压完成,进入主页待 Web 就绪后打开 Web UI 配置模型
硬件要求按 README 说明

仅支持 arm64-v8a,32 位与 x86 设备不支持;Standard 版需 Android 11+,Low 版需 Android 6+;README 未提及显存或 GPU 要求。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

把 DeepSeek Harness 打包成安卓 APK,免 ROOT 免 Termux 装完即用

在安卓手机上免 ROOT 跑 DeepSeek Harness,自带完整 Ubuntu 环境,用 proroot 避开 ptrace 开销,AI 输出实时上屏、ADB 直连、数据不丢。

核心能力

  • 内置 Ubuntu 24.04 rootfs,apt 与原生模块可用
  • 六步安装流水线,每步先探测再执行并校验
  • proot 默认、proroot 可选的双运行时切换
  • 无障碍读屏点按加 ADB 无线直连操控手机
  • 流式悬浮条把 AI 输出实时贴在屏幕顶部

容易踩的坑

Standard 包体约 278.66 MiB,需预留存储并等待首次解压;bash 沙箱隔离不可用,默认权限档为 danger-full-access,需自行在配置页收紧;虚拟屏需先授权 ADB、Shizuku 或 Root 任一通道,仅开无障碍不会创建。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.2.1-rc.2
  1. v0.2.1-rc.2DSHA v0.2.1-rc.2(正式版 · build190)最新正式版2026-10-22 · 2026-10-22 18:57 UTC

    DSHA 0.2.1-rc.2 / build190 正式版,由贡献者 @ym2025szz 维护发布。感谢原作者及其他贡献者。

    • 新包名 dsh.android.client,可与旧版 com.dsh.client 共存;数据和授权独立,迁移请导出/恢复备份。同时运行服务仍可能有设备端口冲突。
    • 实验性虚拟屏、全局确认策略与任务通知;虚拟屏需要已授权的 ADB / Root / Shizuku,全局允许不代替系统权限。
    • DSH 0.2.1-rc.2、移动 UI 3.2.1;默认 proot,可选 proroot。修复插件管理、登录/局域网、键盘与后台恢复等路径,会话单击切换,画中画默认关闭。
    • 一键备份/导出;危险彻底重装已移除,外置工作区内容保留。

    本次提供 Standard / Android 11+ / arm64-v8a,278.66 MiB。完整版本名 0.2.1-rc.2-20261022.2100-dsh0.2.1-rc.2,code190,E7E3正式签名、非调试。保留原APK版本名与日期时间;此Release为正式版/Latest。旧Low产物、v1.1.10及更早介绍与历史Release保持。

    中文发布说明 · English release notes · 架构与权限文档

    源码提交:c750348a4d4b18edcb165a93b4ca66403b040b4c,直接同步主分支,未创建PR。源码ZIP包含全部公开源码、中英文文档与固定离线构建输入;GitHub自动生成的Source code ZIP不含大型离线包。签名私钥、模型凭据和用户数据不在源码附件内。

    验证继承精确2100包的所选关联检查(每版332项JUnit、17项宿主、7项APK门禁),Android13有限覆盖安装/双运行时/旧会话/插件及立即息屏启动检查;本次公开发布另核对源码与APK摘要、11项源码门禁及发布文档链接。页面延迟仍有波动,PiP较早像素记录仍有局部标题异常;Root递归READ子链接缺口保留。未扩称全ROM、自然Doze、新长时或功耗验收,详见发布说明。官网与应用内更新清单不在本次发布范围。

    SHA-256:

    d62f17f23a7949f0f25285ec7afa44cb35de24a6bc91887ba4600023d18ffee0  dsha-0.2.1-rc.2.apk
    ef134fe8713bfa4d6cf3bdea883be1591246d4b78ace16bd924f6d739188425a  DSHA-0.2.1-rc.2-20261022.2100-source.zip
    

    English: Official Standard release with side-by-side package installation, experimental virtual display, global confirmation controls, updated DSH/mobile UI, backup and interaction fixes. See English release notes for migration, exact artifact identity, validation scope and known limits. Complete source includes fixed offline build inputs. Earlier releases and tags are preserved.

  2. v0.2.0-rc2DSHA v0.2.0-rc2(正式版 · build170)2026-10-09 · 2026-10-09 05:11 UTC
    查看更新说明

    DSHA v0.2.0-rc2 正式版 · build170

    由贡献者 @ym2025szz 维护并发布,感谢原作者 @qiannianhuanxiang 和其他贡献者。

    本次为 正式 Release / Latest,GitHub 不标记为预发布。发布已验收的 build170;APK 版本为 0.2.21-20261009.0750-dsh0.2.0-rc.2,内置 DSH 0.2.0-rc.2、移动 UI 3.0.5,Ubuntu 基础环境编号仍为 10。沿用 com.dsh.client 和历史 E7E3 签名。

    更新内容

    • DSH 与插件:升级 DSH 0.2.0 rc2 和移动 UI 3.0.5,补齐手机焦点、弹窗及插件卡片交互;第三方插件解析检查后自动启用,支持依赖安装脚本。
    • 附件与图片草稿:文件直接进入系统文档选择器,保留多选及图片过滤;修复草稿残留引用导致保存失败,增加旧引用恢复提示和页面关闭后的图片恢复。
    • ADB 与 shell:修复首次离线依赖准备的 PARENT_LINK / 冷目录问题,校验全部 15 个依赖;无线调试未开启时也可先准备离线依赖。修复聊天 shell 无法创建 /tmp 临时目录。
    • 文件、虚拟屏和局域网:网页支持调用原生分享与保存,补充虚拟屏开启步骤和启动诊断;LAN 失效链接、等待认证等错误提供明确指引,并整理日志显示。
    • 备份与安装:新导出统一为无需密码的 .tar.gz,保留旧加密备份读取;作品与文件导出、存储指南及技能集中到“数据与备份”,优化首次安装的并行解压和离线准备。

    与以前发布版本的区别

    对比版本本版主要变化
    v0.1.7-rc2 / 147,上一个正式版DSH 0.1.7 → 0.2.0 rc2,移动 UI 3.0.3 → 3.0.5;加入插件自动启用、无密码导出,以及附件、草稿、ADB、shell、虚拟屏和 LAN 修复。
    v0.1.5-rc2 / 129还累积包含自动备份、独立应急、按需录音、PiP、Standard 实验性虚拟屏及后续受管更新改进。
    v1.1.10 及更早版本已转为双 APK、受管 Ubuntu/DSH 更新与宿主备份恢复;历史版本的完整直接升级矩阵尚未重新验证。

    下载

    版本适用设备下载大小
    StandardAndroid 11+ / arm64,系统 WebView;实验性虚拟屏APK · SHA-256273.10 MiB
    LowAndroid 6+ / arm64,内置 Gecko 143;暂不支持虚拟屏APK · SHA-256345.27 MiB

    对应源码 · 更新记录 · APK 与证书校验说明

    两版共享应用数据,不能并排安装。使用同签名 APK 覆盖安装;升级前在“数据与备份”导出重要数据。新导出无需密码,旧加密备份仍需原密码;本机副本不保证卸载后存续。

    两版各 45 项关联单测与 Release Lint 通过;Android13 真机完成正式包覆盖、WebView/Gecko 附件与图片草稿、原生 15 个离线依赖准备及最终启动检查,见 build170 验收。历史完整冷安装为 42.412 秒,未达到 30 秒目标;本轮未重测冷安装、完整无线配对、原 vivo Android16、Android6/7、16KiB 真机或原生 SAF 最终保存。

  3. v0.1.7-rc2DSHA v0.1.7-rc2(正式版)2026-09-28 · 2026-09-28 13:35 UTC
    查看更新说明

    由贡献者 @ym2025szz 维护并发布,感谢原作者 @qiannianhuanxiang 和其他贡献者。

    本次为 正式版 / Latest,发布已验收的 build 147。沿用 0.1.7-rc2 名称、com.dsh.client 包名及 E7E3 历史签名;内置 DSH 0.1.7-rc.2、Ubuntu 基础环境 10,GitHub 不标记为预发布。

    更新内容

    • DSH rc2 + 移动插件 3.0.3:定时任务、快捷键、进行中会话启用新工具,以及长对话、插件设置和手机交互修复。
    • 插件下载提速:修复重复加锁卡死,新增自动/npm 官方/npmmirror 源,最多三路并发更新检查、缓存复用和有限回退。
    • 独立应急与录音:正式环境损坏时可进入独立应急 DSH;修复写入仍需原生确认。两种网页内核与应急页按需申请麦克风权限。
    • 稳定性:完善维护、终端、插件事务、文件访问和授权撤销;修复旧系统安装状态误报(#79),补齐后台 LAN 服务与监听恢复(#80)。

    与之前发布版本的区别

    对比版本本版主要增加
    v0.1.7-alpha2 / 145,最近预发布DSH alpha.2 → rc.2、独立应急、按需录音、插件下载优化与后续稳定性修复。
    v0.1.5-rc2 / 129,上一正式版累积加入 DSH 0.1.6/0.1.7 功能、自动备份计划、数据维护改进、PiP 修复、Standard 实验性虚拟屏及本轮更新。

    下载与源码

    版本设备下载大小
    StandardAndroid 11+ / arm64,系统 WebView,支持实验性虚拟屏APK · SHA-256260.95 MiB
    LowAndroid 6+ / arm64,Gecko 备用内核,暂不支持虚拟屏APK · SHA-256333.66 MiB

    对应源码 · 源码 ZIP · 完整说明

    两版共享数据,使用同签名 APK 覆盖安装;升级前导出重要数据并保存备份密码,本机自动副本不保证卸载后存续。

    两版各 807 项单测(806 通过、1 项既有跳过),Release Lint、APK/ELF/签名及插件/应急门禁通过;Android 13 真机各完成 11 项非破坏性验收,包含后台、息屏 LAN 请求。原 #79/#80 设备、Android 6/7/8、长期 Doze、16 KiB 真机及全部模型服务未在本轮覆盖。更多证据见验收记录。

  4. v0.1.7-alpha2DSHA v0.1.7-alpha2(实验性预发布)pre-release2026-09-23 · 2026-09-23 13:37 UTC
    查看更新说明

    DSHA v0.1.7-alpha2 · Pre-release

    由贡献者 @ym2025szz 发布,感谢原作者 @qiannianhuanxiang 和其他贡献者。

    这是一个 GitHub Pre-release,不是稳定版。DSH 最近从 0.1.6/早期接口升级到 0.1.7-alpha.2,Session V4、Agent 预设、插件管理和部分 Web API 都发生了变化。已有用户请先导出重要数据并保存备份密码,再谨慎覆盖更新;旧版自建 .agent-presets/<id>/agent.cordis.yml 目录型预设可能需要按上游新的 @deepseek-ai/dsh-agent-preset 注册方式迁移,详见 上游说明。

    本版内容

    • 实验性虚拟屏(仅 Standard):Android 11/API 30+,通过 ADB、Shizuku 或 Root 创建独立 VirtualDisplay;支持应用内预览、可选悬浮预览、应用选择与启动、触控、滑动、本机键盘输入、AI 点击/按键和无障碍控件树。输入动作绑定最近帧 frameSeq,旧帧会被拒绝。该能力仍在实验阶段,可能受厂商 ROM、授权状态和无障碍服务影响。
    • Low 版暂不支持虚拟屏:兼容版保留原有兼容内核与设备功能,虚拟屏入口和核心均关闭。
    • 修复 PiP 中 WebView/Gecko 流式文字和字体闪烁,进入 PiP 时保持内容渲染,真正离开预览页后再暂停。
    • 统一“数据与备份”页面的自动备份、存储空间卡片;优化 Language 弹窗首帧布局和插件面板标题避让。
    • 内置 dsh-web-mobile 3.0.1 同步上游最新修复,保留 DSHA 的鉴权和请求校验。
    • 内置 DSH 0.1.7-alpha.2、Ubuntu 基础环境 10;版本码 145;两版沿用 E7E3 正式签名。

    与已发布版本的差异

    已发布版本本版变化
    v0.1.5-rc2(版本码 129,当前上一正式版)DSH 升至 0.1.7-alpha.2;增加 PiP 生命周期修复、备份入口整理、插件移动端更新、受管运行时升级校验和 Standard 实验性虚拟屏;保留原有备份、终端、语言、插件与设备通道。
    v1.1.10(版本码 102)从旧架构升级到受管 Ubuntu/DSH 运行时和覆盖更新事务;新增双 flavor、受管插件/备份恢复、现代 Web 兼容层、Standard 虚拟屏实验功能。1.1.10 及更早版本的完整直接升级矩阵仍未重新验证。

    下载

    版本设备APKSHA-256大小
    StandardAndroid 11+ / arm64,系统 WebView,支持实验性虚拟屏dsha-0.1.7-alpha2.apk校验260.29 MiB
    LowAndroid 6+ / arm64,Gecko 备用内核;暂不支持虚拟屏dsha-0.1.7-alpha2low.apk校验333.07 MiB
    3258884e654740f00cf43988b246e6c26483fd43a2f08ec703e98a333aa8b18  dsha-0.1.7-alpha2.apk
    3ee540f491b027c4bfc4284a7cc8df3908ef1f0fb7d944dd8938dd9c6421e82e  dsha-0.1.7-alpha2low.apk
    

    两版共享 com.dsh.client、E7E3 发布证书和数据,不能并排安装。使用同签名包覆盖更新;正式数据操作前请先保留可恢复备份。

    验证范围

    Standard/Low Debug 单测、Release Lint、APK 内容与插件门禁、E7E3 签名、真实 DSH Web 启动和覆盖安装检查通过。Standard 设备已覆盖安装后回到 DSHA READY 页面;本版未宣称所有 Android 厂商 ROM、所有外部模型服务或完整历史升级矩阵均已验证。

  5. v0.1.5-rc2DSHA v0.1.5-rc2(正式版)2026-09-12 · 2026-09-12 10:16 UTC
    查看更新说明

    DSHA v0.1.5-rc2 正式版

    由贡献者 @ym2025szz 维护并发布,感谢原作者 @qiannianhuanxiang 和所有贡献者。

    本次将已验收的 构建 129 发布为正式 Release,并显式设为 Latest。保留 APK 名称 0.1.5-rc2 / 0.1.5-rc2low、原发布签名及包名;上游 dsh 为 0.1.5-rc.2,Ubuntu 基础环境仍为 10。名称中的 rc2 对应随包运行时与既有安装包命名,本次 GitHub 发布不标记为预发布。

    本次正式版的变化

    统一界面与中英文

    • 卡片、按钮、输入框、底栏、权限卡片及日夜主题统一;应用内确认、选择、插件、恢复、下载等弹窗使用同一套样式,短屏和大字体下正文可滚动,底部操作可见。
    • 页面切换使用短淡入淡出与小幅位移,并尊重系统关闭动画设置。安装检查日志能独立上下滚动;诊断报告放入限高滚动框。关于弹窗使用仓库/QQ群信息卡片和独立关闭按钮。
    • 默认中文,可选择 English。原生页面、应用提示、动态状态与 WebView/Gecko 的实际语言服务同步;修复切回中文后仍保留英文插件检测结果等问题。
    • 语言切换只重建界面,终端与 Web 继续运行。聊天、文件名、命令、用户输入和第三方原始错误不做自动替换。

    多终端、插件与平板

    • PTY 和简易终端各自支持新建、切换与关闭标签,保留独立进程、输出、工作目录和输入草稿;跨切页、旋转及语言切换保持状态。
    • 显示编号复用最小空缺:关闭所有终端后,新建仍为“终端 1”。内部会话 ID 继续递增,关闭失败保留标签,过期回调不会关闭新会话。
    • 插件管理的排序和检查更新按钮统一加框;支持名称升序/降序、已启用优先和可更新优先,名称排序处理大小写、数字与中文拼音。
    • 内置 dsh-web-mobile 为 2.4.1-dsha.2。四种 Agent 预设由 Host 确认后应用;已有内容的会话保留,并通过同工作区新会话应用所选预设。
    • 平板触屏宽屏下预设与文件夹入口靠右,去掉默认黑框,保留键盘焦点提示;文件夹按钮实际打开文件面板。

    文件、浏览内核与网络

    • #64 多文件选择:修复系统多选结果在 ClipData 中被丢弃的问题。WebView 与 Gecko 共用解析,保留文件顺序与名称,仍只接收用户选择的 content URI,并保留数量/大小限制。
    • 旧 WebView / PDF:在应用模块加载前补齐 Iterator、Promise、URL、集合和二进制等接口,PDF Worker 单独注入;修正旧 Chromium 的文件资源协议解析。兼容脚本生成避免单行拼接破坏字符串换行。
    • 提前补齐缺失的 AbortSignal.any/timeout 和随机 UUID,保留原生实现、取消原因与监听清理;保留实际插件错误用于诊断。
    • #63 DNS:默认仅在双栈解析返回 EAI_AGAIN/EAI_FAIL 时尝试一次 IPv4;另提供 IPv4 兼容和原生模式。保留用户 DNS 配置,不降级显式 IPv6、不重放 HTTP 请求、不更改 TLS 验证。

    启动、升级与设备能力

    • 首选端口冲突时保留配置,尝试可用备用端口或由 dsh 分配端口;鉴权、保活和局域网使用实际端口。慢鉴权 60 秒只提示,不强行结束启动。
    • 明确的配置/插件故障进入原生恢复页,保留最近脱敏记录;提供健康配置、修复前快照和独立安全启动。快照仅处理固定配置文件,不恢复按启动次数整库备份。
    • 修复旧平板升级时误遍历宿主路径映射与模拟硬链接,先保护、再恢复并逐文件核验;真实文件权限异常仍会中止操作并保留原环境。
    • 设备能力集中授权;Root、Shizuku、ADB 各自核验,命令执行结果未知时不切换通道重放。
    • Shizuku 按 API 权限所属管理器识别改包名版本,用户点击授权时可通过标准 REQUEST_BINDER 恢复连接。严格核对回调来源、服务描述符和请求时效,再交给受保护的 Provider 握手,仍由管理器授权。

    与此前发布版本对比

    已发布版本当时重点本正式版在其基础上的变化
    v0.1.5-rc1(上一正式版,116)dsh 0.1.5-rc.1、模型/文件预览、独立运行时更新、启动诊断dsh 升至 rc.2;汇总界面、多终端、中英文、真实预设、插件排序、旧内核、DNS、多选、Shizuku 与平板修复,版本码升至 129
    v1.2.0-rc1.4安装检查、备份恢复、终端回收、后台下载和界面修订延续这些能力,进一步完善原生恢复、动态端口、进程核验与旧环境迁移
    v1.2.0-rc1.3更新通道、网页插件入口、诊断与安全启动继续保留;补齐实际失败记录、固定配置快照与独立恢复操作
    v1.2.0-rc1.2标准/兼容双版本、插件管理、浏览内核适配完善双内核的语言、文件多选、PDF 和平板交互;兼容版继续支持 API 23 构建
    v1.2.0-rc1Java 17 重构、dsh 0.1.2-rc.1、局域网、终端及设备入口升级完整运行时,扩展插件与恢复能力;采用多标签终端和统一设备授权入口
    v1.2.0-alpha.2重构早期运行环境、移动插件和 Python 恢复延续离线部署基础,完善安装验证、受管更新、备份及恢复流程

    以上比较依据已发布 Release 与后续验收记录;本地构建 117–128 的改进汇总到本次正式版,不把它们伪称为已发布的历史 Release。1.1.10 及以前的历史发布、资产、更新内容保持原样。

    相对上一正式版,标准包从 176.06 MiB 到 176.69 MiB,兼容包从 252.82 MiB 到 253.23 MiB。完整离线 Ubuntu、Node、Python、dsh 与原有模型/文件能力继续保留。

    下载与升级

    版本设备APK校验大小
    标准版Android 11+ / arm64,系统 WebViewdsha-0.1.5-rc2.apkSHA-256176.69 MiB
    兼容版Android 6+ / arm64,内置 Gecko 备用内核dsha-0.1.5-rc2low.apkSHA-256253.23 MiB

    两版共享 com.dsh.client、原发布证书和数据,不能并排安装。重要数据保留手动备份后覆盖安装即可。

    • 基础环境已为 10:事务替换受管运行时,个人目录、会话、配置和第三方插件保持原位。
    • 旧基础环境 9:先保护数据,再重建和恢复;Android 17 平板已完成该路径实测。异常时保留原环境与恢复记录。
    • 1.1.10 及更早架构的所有直接升级路径未在本轮重新验证。
    • 已安装同签名、版本码 129 本地交付包的用户无需重复安装;本次发布直接上传已验收包,没有更换签名或重新编译 APK。

    验证范围

    最终两版各 383 项 JUnit:382 通过、1 跳过、0 失败,Release Lint 无错误;发布签名、SHA-256、arm64、最低 API、16 KiB ZIP 对齐与无插桩入口均已核验。

    • Android 13 / WebView 116:缺失接口恢复、真实页面及重载、实际 PDF.js 模块 Worker 冷启动,共 30 项检查通过。
    • 标准 WebView 与兼容 Gecko:真实文件选择 Activity 回调返回两个文件,逐项核对名称、顺序和字节,并检查取消、空结果、去重、非法来源及数量上限。
    • 标准 API 13.1.5 / 兼容 API 12.2.0:Shizuku Binder 断连恢复、保留现有授权、UserService 绑定与 id 均通过,实际使用 Shizuku 通道返回 uid=2000(shell)。
    • 此系列修订另已验证中英文日夜/短屏/大字体界面、多终端、DNS 故障注入、插件排序、日志滚动、Android 17 平板升级与

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    DSHA

    🤖 下一个 AI / 开发者请先读 AGENTS.md(项目结构、启动契约、踩过的坑),不要先全库扫描。

    正式版 v0.2.1-rc.2 · build190:虚拟屏、全局授权、新旧共存及移动 UI 更新。中文文档索引 · English。

    ❤️ 赞助商


    这是什么

    DeepSeek Harness(@deepseek-ai/dsh)是 DeepSeek 官方的 agent harness,类 Claude Code。 它是为 glibc Linux 写的,直接在安卓上跑会撞上一堆事:原生模块编译不过、link(2) 被 SELinux 挡住、沙箱起不来、前端按桌面布局排版。

    DSHA 把这些全部封在一个 APK 里。 装 APK、准备环境、打开 Web UI —— 不需要 Termux、 不需要 ROOT、不需要敲一行命令。里面是一个完整的 Ubuntu 环境:apt 能用、 交互式 PTY 能用、需要编译的原生模块能装,跟你在服务器上用是同一套东西。

    由贡献者 @ym2025szz 维护并发布,感谢原作者 @qiannianhuanxiang 和其他贡献者。


    下载

    当前正式版 v0.2.1-rc.2 · build190 · Standard 标准版,Android 11+ / arm64 · 278.66 MiB。

    下载 APK · SHA-256 · 完整源码与固定离线构建输入 · 发布说明

    • 新旧共存:新版包名 dsh.android.client,可与旧版 com.dsh.client 并排安装;数据和授权独立,需要迁移时使用备份导出/恢复。同时运行两套服务仍可能遇到设备端口冲突。
    • 虚拟屏与全局授权:实验性虚拟屏通过已授权的 ADB / Root / Shizuku 通道操作;确认策略支持全部手动、按应用和全部允许,仅控制 DSHA 确认,不代替系统授权或系统沙箱。
    • 环境与交互更新:内置 DSH 0.2.1-rc.2、移动 UI 3.2.1,默认 proot、可选 proroot;修复插件启动/管理、局域网与登录、键盘衔接和后台恢复等路径,会话单击切换。画中画默认关闭,由用户主动开启。
    • 备份与数据保护:一键备份/导出,保留用户数据;移除危险的彻底重装,外置工作区内容保留。

    完整版本名 0.2.1-rc.2-20261022.2100-dsh0.2.1-rc.2 / code190,E7E3 正式签名、非调试。保留 APK 原版本字符串,本次发布为 GitHub 正式版 / Latest。本次提供 Standard APK;旧 Low 发布保留,不新增 Low APK。

    开始使用

    1. 安装标准版 APK,首次启动准备内置离线环境。
    2. 解压完成进入主页,Web 在后台启动;就绪后进入 Web UI,在网页中配置模型。
    3. 从旧包迁移请先导出备份,再在新包恢复;以后同包覆盖更新前,请先正常停止 DSH。

    精确 APK 已在 Android 13 对两种运行时、旧会话、插件状态及立即息屏启动做有限检查;页面延迟仍有波动,不承诺所有机型普遍提速或完整 Doze/功耗验收。详见验证范围与已知限制。下载校验;官网与应用内更新清单独立于本次 GitHub 发布。

    下表属于上一 build170 版本的比较说明;v1.1.10 及更早的 Release 正文和历史标签继续保留。

    以前发布的版本本版主要增加
    v0.1.7-rc2 / 147,上一正式版DSH 0.1.7 → 0.2.0 rc2、移动 UI 3.0.3 → 3.0.5,以及上面的文件、草稿、ADB、shell、插件和备份改进。
    v0.1.5-rc2 / 129还累积加入自动备份、独立应急、按需录音、PiP、Standard 实验性虚拟屏及受管更新改进。
    v1.1.10 及更早版本已转为双 APK、受管 Ubuntu/DSH 更新与宿主备份恢复;完整直接升级矩阵尚未重新验证,原版说明保留在历史标签。

    为什么是 DSHA

    说明
    🚫 零命令行门槛内置离线 Ubuntu rootfs,APK 装完就能用。不装 Termux、不配 pkg、不敲命令
    🐧 完整 glibc 环境不是裁剪版:apt / PTY / 原生模块 / Python / git 都在。上游插件不用改就能跑
    ⚙️ 双运行时选择默认proot、可选proroot;实际性能取决于设备、I/O、缓存和插件,不以历史异条件样本给引擎排名
    🔌 手机就是 agent 的手无障碍 + ADB 免 Shizuku 直连 + 独立虚拟屏:读屏、点按、装应用、跑自动化,全部内置
    💾 导出后迁移数据“数据与备份”导出无需密码的 .tar.gz;数据位置可在存储指南查看,本机副本不保证卸载后存续
    🩺 坏了能自己说清哪坏了组件级自检 + 按需修补 + 启动诊断 + 独立应急 DSH;Web 起不来时直接点名是哪个插件

    核心模块

    ① 装机与环境

    能力说明
    内置离线 rootfsUbuntu 24.04 (noble) arm64 打进 APK,无网也能完成环境部署
    六步安装流水线解压 → 基础工具 → Node.js → pnpm → dsh → 补丁,每步先探测再执行、装完即校验;只修失败项,不从头重来
    分步重装 / 更新rootfs、工具、Node、harness 相互独立,可单独重装,不重复下载
    双装机路径预构建包与源码构建都支持,源码路径自动处理 node-pty 等原生模块编译
    离线工具链curl / git / Python / 证书随包锁定版本(packages.lock.json),不依赖用户先跑 apt
    镜像与网络apt 源官方 / 中科大镜像自动回退;DNS 三模式(auto / 强制 IPv4 / 系统原生),AAAA 被拒时仅重试解析、不重放 HTTP 请求
    基础环境版本化Ubuntu 基础环境独立编号;界面更新不重建环境,普通 dsh 更新不递增基础版本

    ② 运行时

    能力说明
    proroot / proot 双运行时默认稳定的 proot;可在“配置”选择 proroot,实际兼容结果依机型
    性能证据有同台有限样本,设备、缓存和插件状态影响明显;见性能记录,不作为普遍引擎排名
    有限兼容回退proroot 在鉴权前明确退出且无插件故障时,确认 guest 退出后仅重试一次 proot;慢启动不触发回退
    Node.js 24 + pnpm 10与上游一致的运行环境,随包锁版本
    分包更新Ubuntu 与 dsh 运行时在 APK 内分包;冷安装两份都解压,局部更新只读 dsh 包
    受管更新试运行新环境先在隔离区真实启动、验证端口 / 鉴权 / 会话读写 / 插件加载,全过后才切换提交,失败自动回切
    前台服务 + 看门狗通知栏可见运行状态;Web 掉了自动拉起,不用手动重启
    慢启动保护等待鉴权不设强杀时限(60 秒仅提示),看门狗不会把慢启动当故障误杀

    ③ 数据与备份

    能力说明
    数据位置与迁移“数据与备份 → 存储指南”查看实际位置;升级保留当前数据,卸载前请导出需要保留的内容
    v5 备份与导出新导出为无需密码的 .tar.gz 完整性归档;内部自动副本仍加密,旧加密原件读取仍需原密码
    自动备份计划默认开启:每天指定时间 / 每隔 1–168 小时 / 停止 DSH 后,三种模式;运行中自动延后不打断工作;保留最近 3 份已验证副本
    分范围备份全量 / 只对话 / 只插件 / 只设置任选,恢复时只覆盖对应内容
    换机恢复导出实际对话、附件、设置及用户插件,先校验摘要和范围再预检恢复,保留当前内容与冲突原件
    凭据不进备份桥 token 整文件排除;.credentials.yaml 字段级剔除本机密钥、保留用户 API key
    兼容旧备份先完整认证/摘要核验再预检;未知或依赖不完整时如实提示。系统插件由当前 APK 重建,用户原件继续保留
    会话损坏隔离坏掉的会话文件挪到 corrupt-backup 可取回,不让一个坏文件卡住整个 Web
    覆盖更新自动清理升级后闲时清理可再生缓存与多余旧副本;保留至少两份健康前代,改过的原件不动
    外置工作区保护彻底重装与完整格式化已移除;维护只断开外置引用,保留其文件和备份

    ④ 设备能力(让 agent 真正操作这台手机)

    agent 通过本机 127.0.0.1:3090 桥调用以下能力(token 门控,/app/help 有完整端点清单):

    能力说明
    屏幕操作无障碍服务实现,不需要 ADB:读屏结构化输出(带可点击区域坐标)、按文字 / 坐标点按、输入、按键、滑动、截屏存 PNG
    独立虚拟屏(实验)Standard / Android 11+,先授权 ADB、Shizuku 或 Root 任一通道,再到虚拟屏页面创建屏幕;仅开启无障碍不会创建虚拟屏,详见开启说明
    ADB 无线直连内置无线配对(TLS 1.3-PSK + SPAKE2)与保活,不需要 Shizuku,重启手机自动恢复
    Shizuku / Root 通道备用设备命令通道,与 ADB 同受命令白名单约束
    与用户交互系统通知、App 内提示、震动(长任务叫醒用户)、弹窗三选项征询、分享 / 打开链接
    文件交换读目录 / 文本文件、导出产物到 Download/DSHA;凭据区(.dsh / .ssh / .android)读写均被拒绝
    传感器与位置光线 / 加速度 / 陀螺仪 / 磁力计 / 气压 / 步数 / 定位 / 手电筒 —— 默认关闭,逐项授权
    剪贴板读写剪贴板(受系统前台限制)
    危险命令守门人设备命令始终走白名单解析:格式化 / 分区 / SELinux / 系统属性等直接拒绝;不认识的命令不放行;拦截返回 [POLICY_BLOCKED] 而不是弹「仍然允许」
    短信读取独立敏感能力,仅限严格只读查询,默认每条确认,授权可撤销、不随备份迁移

    ⑤ 终端

    能力说明
    真 PTY 终端Termux terminal-emulator JNI 实现:vim / htop / tmux 等全屏 TUI 可用
    手机键盘补偿扩展键行(Ctrl / Alt / Esc / 方向键 / Tab),双指缩放调字号
    多标签多会话并存,跨切页 / 旋转 / 语言切换保持进程与状态
    简易终端兜底PTY 在个别机型异常时可切回简易终端,会话保留在后台

    ⑥ Web UI 与访问

    能力说明
    双内核Standard 用系统 WebView;Low 内置 GeckoView 143,不受系统 WebView 版本拖累
    移动端适配内置 dsh-web-mobile 3.2.1(MIT),保留手机快捷键和窄屏适配,修复焦点、弹窗及插件卡片
    画中画默认关闭,用户主动开启后使用 PiP 小窗;正常返回与后台恢复保留同代网页实例
    高刷与省电按用户上限请求刷新率,空闲交还系统;实际帧率依设备和系统,不把请求成功当作性能证明
    深浅色与多语言深色 / 浅色 / 跟随系统;简体中文 / English,默认跟随系统语言
    局域网访问电脑 / 平板浏览器直接用手机上的 dsh。token 鉴权 fail-closed,命中后回设 SameSite=Strict Cookie,不让 token 随外链泄漏
    老浏览器兼容自动注入 AbortSignal.any/timeout 与 crypto.randomUUID polyfill(局域网 HTTP 下必需)
    流式悬浮条AI 输出像歌词一样贴在屏幕顶部,工具调用翻译成人话;底色 / 透明度 / 行数可调;危险命令可直接在悬浮条上批准
    端口可配Web 端口自定义,冲突自动回退并说明

    ⑦ 插件生态

    能力说明
    插件管理安装 / 更新 / 启停 / 删除 / 搜索 / 排序,全在 App 内;配合官网 dsha.cc 插件目录与社区插件
    多样安装方式GitHub 简写 / tree / blob / archive / Release 链接、HTTPS 压缩包直链、本地导入(按内容识别格式)、终端 dsha-plugin install
    多下载源自动择源,支持 npm 官方源与 npmmirror,更新检查多路并发、锁定版本复用缓存、失败有限回退
    依赖与事务随包 pnpm 10.34.5,允许未锁定依赖解析、生命周期脚本和 pnpmfile;记录实际锁与目录摘要,拒绝归档越界并保留回切原件
    安装后自动启用包格式、路径、依赖与摘要检查后自动提交并启用;用户主动禁用和安全模式意图保持,详见插件说明
    硬依赖自动改造插件写死的服务依赖就地改成运行时注入 —— 一个插件不拖挂整棵插件树
    内置插件保护内置插件不可删除;用户禁用过的,升级后保持禁用;配置可导入导出

    主要内置插件包括:dsh-web-mobile(移动端适配)、dsh-status-overlay(悬浮条)、 dsh-task-notifier(回合完成通知)、dsh-device-shell-guide(设备能力引导)、 dsh-computer-use-android(Android Computer Use)、dsh-tool-vscreen(虚拟屏工具)、 dsh-auto-review(官方实验性 Auto review 入口)。

    ⑧ 可靠性与应急

    能力说明
    安装与修复页检查全部六项组件并按需修复(证书 / npm 异常、DNS、会话写入补丁等),只处理失败项
    诊断报告环境检查 + 失败日志可导出;启动诊断保存阶段、实际插件错误与退出码,最近五次脱敏留存
    启动恢复明确的启动 / 插件故障自动进入恢复页;安全启动用独立 profile 只加载官方基础组件,原配置与插件开关保留
    配置快照配置变更前自动留快照(三份健康 + 三份修复前),坏了能回滚
    插件故障人话诊断Web 起不来时直接说「是插件 X、它要的服务不存在、点这里修」,而不是甩一屏 Node 堆栈
    独立应急 DSH正式环境损坏时进入独立应急环境:独立运行根、只读诊断先行,写入修复需原生逐步确认
    脚本增量热更新关键脚本可从 GitHub 增量更新并离线验签(公钥内置,签名不符整批拒绝),不必等新 APK

    ⑨ 安全(默认最小权限)

    层面做法
    什么权限都不给也能用最小配置(不给 ADB、不给文件权限、不开局域网)下 DSHA 照常跑 dsh;每项能力默认关闭、随时撤销
    API keyAndroid Keystore + AES/GCM,密钥不出 Keystore;失败不清空旧密文
    设备命令白名单始终开启,Root / Shizuku / ADB 三通道同一套策略,应用停止前逐个核验归属,防 PID 复用误伤
    桥凭据护栏/app/export、/app/readfile 拒绝凭据区路径,有规范化与 canonical path 检查;已知 Root 递归 READ 子链接缺口见安全文档,不视为完整隔离
    无遥测不上传任何日志或使用数据;更新、插件下载、模型调用之外不发起网络请求
    诚实披露已知弱点(无内核级沙箱、历史明文备份、签名密钥待轮换等)在文档里直接列出

    👉 每项权限到底暴露了什么、agent 碰得到手机的哪些部分,见 安全模型。


    与同类方案的关系

    安卓上跑 dsh 目前有两条路,各有代价,说清楚比互相贴标签有用:

    容器派(DSHA 走这条)Termux bootstrap 派
    做法proot/proroot + 完整 glibc rootfs用 Termux 的包在 Android bionic 上裸跑
    装机装 APK 就完事装 Termux → 敲命令 → 装工具链
    环境完整 Ubuntu,apt 与原生模块随便用需要为 bionic 逐个打补丁 / 重编
    开销存在系统调用与文件 I/O 转译开销,实际耗时依设备与场景无容器层,理论最快
    沙箱两边都受限两边都受限

    已知限制

    诚实列出来,省得你装完才发现:

    项目状态说明
    架构⚠️ 仅 arm64-v8a32 位与 x86 设备不支持
    系统✅ Standard 11+ / Low 6+老系统部分能力受系统限制(无线配对需 11+ 等,见 android-low)
    包体⚠️ 本次 Standard 278.66 MiB内置完整 Ubuntu 环境的代价,换来的是免下载、免命令行
    bash 工具✅ 可用完整 Ubuntu 的 bash,agent 跑 shell 命令没有限制
    bash 的沙箱隔离⚠️ 不可用bubblewrap 要 unprivileged user namespace,Android sepolicy 不给 —— 容器派和 Termux 派都一样绕不过。约束靠 dsh 的权限档位:默认 danger-full-access,可在配置页改成 workspace-write 或 read-only。请自行判断风险
    卓易通 / 鸿蒙 anco❓ 未验证理论可行,尚无真机回归
    悬浮条⚠️ 需要授权用 TYPE_APPLICATION_OVERLAY 自绘;免 ROOT 拿不到真正的「状态栏歌词」接口
    数据位置⚠️ 需要文件权限「所有文件访问」被拒时数据留在私有目录,卸载即丢(自检会明确告知当前状态)

    架构

    ┌──────────────────────── APK ────────────────────────┐
    │ 原生 Android(Java 17 · Material3 · 单模块 :app)    │
    │  ├ 启动 / 安装修复 / 配置 / 工作区 / 插件 / 终端     │
    │  ├ 网页内核:系统 WebView(Standard)/ Gecko(Low)  │
    │  ├ 前台服务 + 看门狗 + 通知 + 画中画                 │
    │  ├ App 桥 :3090(无障碍 / 虚拟屏 / 交互 / 文件)     │
    │  ├ LAN 代理 :3081 · ADB / Shizuku / Root 设备通道    │
    │  └ 悬浮条(TYPE_APPLICATION_OVERLAY)                │
    ├─────────────────────────────────────────────────────┤
    │ proot(默认)/ proroot(可选,依机型核验)           │
    ├─────────────────────────────────────────────────────┤
    │ Ubuntu 24.04 arm64 · Node.js 24 · pnpm 10           │
    │  └ @deepseek-ai/dsh  →  Web UI :auto                │
    └─────────────────────────────────────────────────────┘
    

    数据:实际位置以“数据与备份 → 存储指南”为准;旧 Documents/dshdata 数据继续兼容读取。 API key 由 Android Keystore 保护,本机密钥与自动副本不保证卸载后存续。


    ADB 无线配对(设备 Shell 能力)

    配好之后 agent 就能直接操作这台手机,不需要 Shizuku。

    首次配对(约 1 分钟)

    1. 系统设置 →「关于手机」→ 连点「版本号」7 次开启开发者选项
    2. 开发者选项 → 打开「无线调试」
    3. 进入「无线调试」→「使用配对码配对设备」,记下 IP:端口 与 6 位配对码
    4. 回到 DSHA →「设备能力授权」页 → 填入 → 配对

    无线调试的配对码需要 Android 11+;老系统可走 Shizuku / Root 通道,或直接用无障碍能力(读屏、点按、输入不需要任何配对)。

    无线调试尚未开启时,“验证已有连接”可以先准备内置离线依赖;出现 ADB_OFFLINE_READY 仅表示依赖就绪。之后仍需打开无线调试并完成配对或连接验证。

    配对之后:DSHA 自己维护连接(保活 + 重连),重启手机后也会自动恢复,不用再操作。

    验证:内置终端里跑 adb shell id,输出 uid=2000(shell) 即成功。

    让 agent 用起来:把技能包复制到 agent 的技能目录:

    cp -r agent-skills/device-shell ~/.agents/skills/
    cp -r agent-skills/screen-ocr-operator ~/.agents/skills/
    

    device-shell 覆盖 ADB / Shizuku / Root 三通道的命令用法; screen-ocr-operator 提供截屏 + OCR + 批量屏幕操作(无障碍读屏拿不到内容的 WebView / 游戏画面用)。


    构建

    本地构建需要 JDK 17、Android SDK(API 37)、NDK 26 与 Python 3.9+,详见 BUILD.md:

    bash build.sh                                # 默认构建 Standard Debug
    bash build.sh :app:assembleLowRelease        # 构建 Low Release
    bash build.sh :app:testStandardDebugUnitTest # 纯逻辑单测
    python tools/verify-stability.py             # 稳定性验收门禁
    

    离线 rootfs 不提交 Git;发布流程(签名、门禁、真机验收、产物替换)见 BUILD.md 与 docs/releases/。


    文档索引

    文档内容
    AGENTS.md项目结构、启动契约、技术约束与踩坑记录(AI / 新贡献者入口)
    docs/security-model.md安全模型:每项权限的边界与已知弱点(英文版)
    docs/plugins.md插件安装与打包要求
    CHANGELOG.md完整更新记录
    docs/ROADMAP.md路线图与「明确不做」清单
    docs/android-standard.md / android-low.md两版设备适配说明
    docs/releases/各版本发布与验收记录

    致谢

    交流

    QQ 群 975836806 (二群)—— 测试版、问题反馈、插件交流。 ❗二群已满,请加一群❗ ★QQ 群960636357 (老一群)现已扩容!

    事宜联系
    项目主创(合作/授权/入伙)QQ 2921185884
    现维护者(项目提议/反馈,或直接提 issue)QQ 1876843459
    Email[email protected]

    许可

    MIT。第三方组件许可见 THIRD_PARTY_NOTICES.md。

    Star History

    由 tools/gen-star-history.py 每 12 小时读取 GitHub 星标时间并更新(workflow)。浅色、深色 SVG 保存在本仓库;曲线按当前仍保留的星标汇总。