这个项目能做什么

这是一个把 DeepSeek Harness(dsh)搬到安卓手机上的壳应用,应用名 DeepCode,包名 com.dsharnessmobile.shell,当前版本 0.14.0-preview,内置引擎 @deepseek-ai/dsh 0.1.5-rc.1。 核心思路是「解压即跑」:APK 内嵌一份 xz 压缩的 Termux 运行时快照,包含 node、git、bash、coreutils、dsh、插件、pnpm 以及 python/perl/ruby。首次启动需要解压 2-4 分钟,之后引擎监听 127.0.0.1:3080,完全离线运行,不需要用户另外安装 Termux 应用。 运行时与生命周期方面,支持 manifest 驱动的在线运行时更新:下载、校验 sha256、原子切换、自动重启,换树是单事务操作,中断可回滚,且不触碰用户数据(会话、附件、设置、凭据、工作区)。APK 自更新需在启动页手动点「检查更新」触发,不自动检查,会查 GitHub latest release 并按设备 ABI 匹配资产。保活机制包括前台服务、5 秒看门狗自动重拉挂死引擎、3 秒 UI 轮询和崩溃回退闸门。另有一个独立 bash 交互控制台,引擎未运行时也能排查问题。 AI 浏览器是一个与主界面完全隔离的第二个 WebView 工作台,AI 可开多个页签,人也能直接查看。分辨率按 CSS 视口注入,window.innerWidth 精确等于请求值,支持 PC/手机身份切换。 虚拟屏功能通过 Shizuku 特权通道创建独立屏幕运行第三方 App,不挤占用户前台,单实例上限 1 块。跨屏拉起走壳侧 Shizuku UserService 的 am start --display 路径。坐标输入在虚拟屏上使用绝对 x/y 加 screenId,归一化坐标被明确拒绝以避免误点真屏。截图会落到目标 displayId 并使用该屏自身像素作为分辨率锚点。虚拟屏空闲 10 分钟自动回收。 手机控制提供无障碍与 Shizuku 双通道:无障碍通道负责语义树、ref 动作;Shizuku 通道以 uid 2000 执行 screencap、uiautomator、dumpsys、input 等只读与输入类命令,系统配置写面一律拒绝。 附件与文件方面,回形针上拉菜单单击即出「上传附件/上传图片」,分别走系统文件选择器与系统相册。通过「使用其他应用打开/分享」可把文件直达会话,自动新建临时工作区,7 天 TTL 清理。SAF 桥可把所选目录映射为真实路径。 桥协议 v1 暴露 51 个 @JavascriptInterface 方法,页面按 androidBridge.version 做特性检测,因此 APK 与 dsh 版本解耦。模型可见的工具全部来自插件,当前 45 个,按能力组渐进披露,需先调用 android_capabilities 解锁,分为 phone、browser、virtual-display 等组。 权限包括 INTERNET、POST_NOTIFICATIONS、前台服务、MANAGE_EXTERNAL_STORAGE、REQUEST_INSTALL_PACKAGES。虚拟屏与特权 shell 需要用户自行安装并授权 Shizuku。 发布提供 arm64 与 x86_64 双 ABI 包,ABI 必须与设备匹配,否则引擎启动即崩。构建要求 JDK 17+、Android SDK(compileSdk 36),Gradle 8.11.1 由 wrapper 提供,快照构建与打包在协调仓库完成。 README 中明确提示:内置插件市场的大多数第三方插件在手机端不一定可用、大概率有 bug,beta 阶段以可用性验证与反馈为主,暂不建议作为生产依赖。项目采用 MIT 许可,并做了 GPL 合规处理。