
DSH-Android 是什么
DSH-Android 是一个将 DeepSeek Harness 直接运行在安卓设备上的社区项目。安装 APK 后,你可以用自然语言描述任务,让 agent 整理文件、操作 App、修改系统设置,或者创建按时间与设备事件触发的自动化任务。
项目不需要 Root,也不依赖 Termux。它把 Node 24 和未经 fork 的 dsh 引擎嵌入 App,并通过 Kotlin 实现的设备能力与安卓系统交互。当前版本要求 Android 10 及以上和 arm64-v8a 设备。
DSH-Android 是社区项目,与 DeepSeek 官方无关联,也未获得其背书。

主要功能
文件与文档处理
你可以让 DSH-Android 查找、整理、移动和重命名文件,也可以执行压缩与解压。它还能读取 PDF、Word、Excel 和 PPT 文件中的文字。
- 查找占用空间较大的文件。
- 按照类型或日期整理下载目录。
- 批量移动或重命名文件。
- 读取常见办公文档中的文本。
屏幕和 App 操作
启用无障碍服务后,DSH-Android 可以读取屏幕、点击、滑动和输入文字,还能打开 App 或跳转到指定页面。这适合完成需要操作图形界面的多步骤任务。

系统设置与通知
项目支持控制亮度、音量、勿扰模式、闹钟、Wi-Fi、蓝牙和定位,也能读取与回复通知、控制媒体播放。部分系统能力可直接使用,另一些能力需要额外授权或借助可选的 Shizuku。
自动化触发
除了立即执行命令,你还可以创建定时任务,或者在连接 Wi-Fi、连接蓝牙、开始充电、到达某地、收到通知等条件下触发任务。
完整的 dsh 能力
App 中运行的是原版 dsh,而不是单独维护的 fork,因此可以继续使用技能、MCP、子 agent 和网页搜索等能力。任务轨迹会按轮次展示 agent 执行过的操作,方便检查过程。

安装前的准备
开始前,请确认设备满足以下条件:
- Android 10 或更高版本。
- 处理器 ABI 为 arm64-v8a。
- 安装包约 110 MB,建议至少预留 500 MB 可用空间。
- 设备能够访问所配置的模型 API。
- 拥有 DeepSeek 账号、DeepSeek API key,或受支持的第三方模型服务凭证。
安装与初始设置
从项目的 Releases 页面下载最新 APK,并在安卓设备上安装。
打开 App,登录 DeepSeek 账号,或者填写从 DeepSeek 平台获取的 API key。
如果希望使用其他模型,进入设置 → 模型服务,添加对应服务商并填写 API key,然后拉取模型列表。
返回首页,输入一个简单任务。首次使用某项设备能力时,App 会引导你授予对应权限。
权限采用按需申请方式,不必一开始开放全部权限。你可以在设置 → 手机权限中统一查看和管理。

第一次执行任务
示例一:查找大文件
在首页输入:
列出下载目录里最大的 5 个文件agent 会根据任务调用文件能力并返回结果。如果需要进一步处理,可以在同一会话中继续输入:
把其中超过 500 MB 的文件整理到一个名为“大文件”的目录,但不要删除任何文件涉及移动、修改或其他敏感操作时,请仔细检查 App 显示的任务步骤与审批提示。
示例二:调整手机状态
你可以直接描述目标,例如:
把媒体音量调低,并打开勿扰模式具体操作能否直接完成取决于安卓版本、设备 ROM 和已经授予的权限。需要权限时,App 会给出开启指引。
示例三:操作 App
启用无障碍服务后,可以尝试:
打开系统设置,进入蓝牙页面屏幕操作依赖当前界面状态。任务完成后,可以进入轨迹页面,按轮次回看 agent 的动作和结果。
设置快捷唤起方式
DSH-Android 支持通过悬浮球、系统助手、快捷磁贴和系统分享入口唤起。根据你的使用习惯启用相应入口后,无需每次返回 App 首页即可提交任务。

在部分国产 ROM 上,悬浮球和后台自动化还需要手动允许后台弹出界面与自启动。可以查看 App 的体检页,根据提示调整系统设置。
配置 Shizuku 解锁更多系统能力
Shizuku 不是基本使用的必需项,但可以提供 shell 权限,从而解锁更多系统开关。项目内置了官方安装包,可按以下步骤配置:
进入设置 → 手机权限。
使用一键安装功能安装 Shizuku。
按照 Shizuku 的指引完成启动和授权。
如果设备为 Android 11 或更高版本,并且 Shizuku 版本不低于 13.6,建议开启开机启动(无线调试)。
设备重启后,Shizuku 通常需要重新启动。开启无线调试开机启动可以减少重复操作,但实际行为仍取决于系统版本和厂商限制。
创建自动化任务
自动化任务可以按固定时间执行,也可以由设备事件触发。支持的事件包括连接 Wi-Fi、连接蓝牙、开始充电、到达某地和收到通知等。
创建任务时,建议清楚写出触发条件、执行动作和必要的限制条件。例如:
每天晚上 11 点打开勿扰模式,并把媒体音量调到较低水平连接到家里的 Wi-Fi 后执行指定任务第二个示例仍需在 App 中配置实际的网络条件和具体动作。涉及定位、通知或后台运行的规则,需要授予相应权限。对于可能修改或移动数据的自动化,建议先用无破坏性的操作测试。
使用第三方模型服务
除 DeepSeek 外,项目还允许添加 OpenAI、Claude、Gemini、Grok、OpenRouter、Kimi、智谱 GLM、通义千问、火山方舟、MiniMax、硅基流动、阶跃星辰,或任意兼容接口。
打开设置 → 模型服务。
选择服务商或配置兼容接口。
填写 API key,并拉取模型列表。
在模型选择器中切换到需要使用的模型。
第三方模型目前只支持通过 HTTPS 访问的 OpenAI 兼容 Chat Completions 接口。上下文统一按 128K 计算,不提供推理等级选择。工具调用效果取决于所选模型。如果要使用 DeepSeek 提供的联网搜索,即使主模型来自第三方,也需要另外配置 DeepSeek API key。

进阶使用建议
用轨迹检查复杂任务
对于多步骤操作,不要只查看最终回答。任务完成后打开轨迹,检查 agent 每轮调用了什么能力、执行了哪些动作。这样更容易发现权限不足、界面变化或模型判断偏差。
把任务写得更明确
自然语言指令最好包含目标、范围和安全边界。例如,相比“整理下载目录”,下面的写法更可控:
把下载目录中的 PDF 移动到 Documents/PDF,文件重名时不要覆盖,其他文件保持不变如果任务涉及删除、覆盖、发送消息或回复通知,建议明确要求先列出候选项或等待确认。
区分界面操作和系统能力
锁屏后,文件、系统设置和通知等系统 API 类任务仍可执行;但在启用安全锁屏的情况下,安卓不允许 App 操作其他 App 的界面。这类任务会暂停,并提示你解锁后继续。
为冷启动预留时间
当前引擎冷启动大约需要 5 秒。首次打开 App 或引擎尚未运行时,任务响应可能稍慢。
管理会话和权限
将不同目的的任务放在不同会话中,有助于保持上下文清晰。定期检查手机权限、无障碍服务、通知访问权和后台运行设置,不再使用的能力可以关闭。
从源码构建
如果你要参与开发,需要准备 JDK 21、Android SDK,其中 compileSdk 为 37.2,以及 NDK r29。在 arm64 Linux 主机上构建时,还需要传入 arm64 版 aapt2 的路径。
首先下载并校验 libnode 等预编译原生库:
native/prebuilt.sh fetch产物会写入:
toolchains/out/jniLibs/arm64-v8a/然后构建包含 dsh、插件和补丁的引擎包:
OUT_DIR=<engineOut> js/build-engine.sh最后构建 Debug APK:
./gradlew :app:assembleDebug -Pdsh.engineOut=<engineOut>如果在 arm64 Linux 主机上执行 Gradle,还需按环境补充:
-Pandroid.aapt2FromMavenOverride=<arm64 版 aapt2 的路径>通常不需要自行编译 Node。只有升级 Node 或修改原生补丁时,才需要先运行:
native/build.sh之后通过以下命令发布预编译产物:
native/prebuilt.sh publish运行主机端到端测试
项目提供会真实调用 DeepSeek API 的主机端到端测试:
node js/test/host-e2e.mjs将 API key 保存在文件中,再通过 DSH_E2E_KEY_FILE 指定路径。默认路径为:
~/.config/dsh/deepseek_api_key架构概览
App 主进程使用 Kotlin 与 Compose,负责对话、轨迹、审批、设置、设备能力和自动化触发。Node 24 以安卓原生共享库形式运行在独立的 :engine 前台服务中,并通过 JNI 启动 dsh。
界面与 dsh 通过 SDK JSON-RPC 通信;设备能力由 Kotlin 实现,并通过私有 socket 通道暴露给 dsh。可选的 Shizuku 为部分能力提供 shell 权限,模型请求则通过 HTTPS 发送到相应 API。
这种设计不使用 proot 或 Termux,也避免依赖额外的独立 Node 进程。dsh 本身不做 fork,安卓适配集中在插件和少量补丁中。
总结
DSH-Android 把完整的 dsh agent 引擎封装进一个安卓 APK,让自然语言任务可以连接文件、App 界面、系统设置、通知和自动化触发器。初次使用时,建议从只读文件查询等低风险任务开始,按需授予权限,再逐步配置无障碍服务、Shizuku、快捷入口和自动化规则。
项目采用 Apache License 2.0,但内置的 Node.js、dsh、Shizuku、ripgrep 等第三方组件分别遵循各自许可证。
