DSH-Android README

The project's README from github.com/jackwener/DSH-Android. As one markdown file: README.md.

DSH-Android:让 DSH 替你用手机

不要 root,不用电脑,直接跑在你的安卓手机上。真正的手机 Agent,替你把手机上的事干完。

在安卓手机上运行 DeepSeek Harness(dsh):让它操作 App、整理文件、修改系统设置,或者自动执行任务。

Release Android ABI Engine Root License

下载 APK • 快速开始 • 架构 • 从源码构建


亮点

界面一览

界面一览:首页、操作手机、轨迹、随处唤起、手机权限、会话列表

快速开始

  1. 从 Releases 下载 APK 并安装(arm64,Android 10 及以上)。
  2. 登录 DeepSeek 账号,或者填入 API key;也可以在 设置 → 模型服务 里添加其他服务商。
  3. 直接说要做什么,比如“列出下载目录里最大的 5 个文件”。用到某项权限时,App 会再引导你开启。
  4. 可选:在 设置 → 手机权限 里一键安装 Shizuku,并在 Shizuku 里打开“开机启动(无线调试)”。

能做什么

架构

flowchart LR
  subgraph main[":main 进程(Kotlin · Compose)"]
    UI["对话 · 轨迹 · 审批<br/>唤起层 · 设置"]
    CAP["CapabilityHub<br/>设备工具"]
    TRG["TriggerHub<br/>自动化"]
    SVC["无障碍 · 通知监听<br/>系统助手 · 输入法"]
  end
  subgraph engine[":engine 进程(前台服务)"]
    NODE["libnode.so<br/>Node 24 · bionic"]
    DSH["dsh --profile android<br/>+ device / guard / account 插件"]
  end
  SHZ["Shizuku(可选)"]
  API["DeepSeek API"]

  UI <-- "dsh SDK JSON-RPC(stdio)" --> DSH
  DSH <-- "能力桥 JSON-RPC(socketpair)" --> CAP
  TRG --> DSH
  CAP --- SVC
  CAP -. shell 权限 .-> SHZ
  NODE --- DSH
  DSH -- HTTPS --> API

系统要求

Android 10 及以上,arm64-v8a;安装包约 110 MB,建议预留 500 MB 可用空间;需要能访问 DeepSeek API。

安装失败怎么办

安装时提示“已屏蔽有害应用”

DSH-Android 不在 Google Play 上分发,又用到了无障碍、通知读取、短信等能力,Google Play 保护机制可能把它误判为有害应用。核对过下载的 APK 和发布说明里的 SHA-256 一致后,可以这样安装:

当前限制

开发者

从源码构建

需要 JDK 21、Android SDK(compileSdk 37.2)、NDK r29。在 arm64 Linux 主机上构建时,需要额外传入 -Pandroid.aapt2FromMavenOverride=<arm64 版 aapt2 的路径>。

# 1. 原生库(libnode 等):下载预编译产物并校验哈希,不用自己编 Node
native/prebuilt.sh fetch            # → toolchains/out/jniLibs/arm64-v8a/

# 2. 引擎包:dsh + 插件 + 补丁 → engine.zip
OUT_DIR=<engineOut> js/build-engine.sh

# 3. APK
./gradlew :app:assembleDebug -Pdsh.engineOut=<engineOut>
  • 预编译产物的标签由 Node 版本加上全部原生补丁的哈希生成(比如 native-node24.22.1-caacecde44)。只有升级 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/        Android App(Kotlin · Compose · Hilt · Room)
  core/engine/       引擎进程、JNI 启动、崩溃恢复
  core/capability/   设备工具(文件、屏幕、系统、通知、媒体……)
  core/trigger/      自动化规则和事件源
  feature/           界面:对话、轨迹、快捷面板、自动化、设置、登录
js/         dsh 的 android profile、插件、补丁,build-engine.sh → engine.zip
native/     Node 24 安卓构建、JNI 包装、原生插件、预编译产物脚本
tools/      字符串、图标、README 首图(tools/ui/hero.py)、App 内更新清单(make-update-manifest.py)等生成脚本
update/     latest.json:App 内更新读取的最新版本清单(docs/RELEASE.md)
docs/       架构说明、引擎契约、设计 token、截图
翻译 / 添加界面语言

app/src/main/res/values/ 是中文(默认),values-en/ 是英文。添加一种语言只需两步:

  1. 新建 app/src/main/res/values-<语言代码>/,复制 values-en/ 下的全部 strings*.xml 并翻译(lint 的 MissingTranslation 会报漏翻的条目);
  2. 在 app/src/main/res/xml/locales_config.xml 里加一行 <locale android:name="<语言代码>" />。

设置 → 通用 → 语言 的选项和 Android 13+ 系统设置里的“应用语言”都读这份列表,不用改代码;单元测试 LocalesConfigTest 会检查两者一致。引擎拿到的语言(DSH_ANDROID_LOCALE)跟随 App 语言。

设计文档

致谢

声明

本项目是社区项目,与 DeepSeek 官方无关联,也未获其背书。“DeepSeek”及相关商标归其各自所有者所有。

许可证

Apache License 2.0。内置的第三方组件(Node.js、dsh、dsh-llm-service-lite、Shizuku、ripgrep 等)遵循各自的许可证。

DSH-Android (jackwener/DSH-Android)

android-automation
Searching Database…

What is this?DSH-Android lets you run a full AI agent (DeepSeek Harness) directly on your Android phone as a single APK, with no root and no Termux needed, so it can operate apps, manage files, change settings and automate tasks on your behalf.
Does it run as a full agent engine on the phone, or just connect to one?It is a standalone Android app that embeds the dsh engine (Node.js compiled to a native library) directly inside its own process via JNI, so the full DeepSeek Harness runs natively on the phone instead of through Termux or a remote server.
How do I install and get started?Download the APK from the Releases page (arm64, Android 10+), log in with your DeepSeek account or paste an API key, then just tell it what to do; it will prompt you to grant permissions as they're needed.
Do I need root, Termux, or a DeepSeek API key?No root or Termux is required - just install the APK. You need either a DeepSeek account/API key or an OpenAI-compatible key from another provider (OpenAI, Claude, Gemini, Grok, OpenRouter, Kimi, GLM, Qwen, etc.).
Any limitations I should know about?It can't operate other apps while the phone is on a secure lock screen (system-level tasks like files/settings still run); Shizuku needs re-enabling after a reboot; some Chinese ROMs need manual permission for background popups; third-party models only support OpenAI-compatible Chat Completions over HTTPS; and cold start takes about 5 seconds.
What can the agent actually do on my phone?It can send WeChat messages and summarize group chats, browse Xiaohongshu, apply for jobs on BOSS Zhipin, place Taobao orders, manage files (find/move/rename/zip), read screens and tap/type via the accessibility service, and change system settings like brightness, Wi-Fi, Bluetooth and Do Not Disturb.
What is Shizuku used for here?Shizuku (optional, Apache-2.0, bundled in the app) lets the agent operate the phone through a virtual screen without taking over your real display, enabling a 'do not disturb' mode on Android 14+ once wireless ADB is set up.
Can I also control a computer or server with it?Yes - DSH-Android can connect over SSH or DSH Remote to a DeepSeek Harness instance running on a PC or server, and in remote-only mode the phone doesn't even need a local engine installed.
Which AI models can I use besides DeepSeek?You can add OpenAI, Claude, Gemini, Grok, OpenRouter, Kimi, Zhipu GLM, Qwen, Volcano Ark, MiniMax, SiliconFlow, StepFun, or any OpenAI-compatible endpoint by entering an API key under Settings > Model Services.
What are similar projects?Mika, DSHA, buddy-android, Operit, andee, mobile-mcp, dsh-Go, dsh-ios
Creator
jackwener
Size
3.7 MB
Stars
753
Age
6d
Commits · 90 Days