前言¶
在 DeepSeek Harness(DSH)里做 Android 逆向或二次打包时,常见做法是自己在终端里串 apktool、apksigner、baksmali 等命令,再把输出路径贴回对话。步骤多、路径容易写错,AI 也难以直接参与文件级修改。
apk-devkit 是社区维护者 qftuftfutg 发布的 DSH 插件,把上述工具链封装成 AI 可调用的约 38 个工具,覆盖解包、回编、签名、DEX、压缩包、文件、图片与哈希等操作。下面介绍它的定位、能力与安装方式。
这是什么¶
apk-devkit 面向 DeepSeek Harness(DSH),让会话中的 AI 通过工具调用完成 APK 相关开发调试,而不必手写完整命令行。底层通过子进程调用 apktool、aapt2、apksigner、zipalign、baksmali、smali、d8、APKEditor 等外部程序。
- 维护者:qftuftfutg
- 社区分类:admin-security
- 包版本(package.json):0.1.0
- 自研代码许可:MIT
- 目录页:https://www.skillhub.cn/plugins/qftuftfutg/apk-devkit
- 源码:https://github.com/qftuftfutg/apk-devkit
DSH 生态采用「一切皆插件」的思路;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。安装插件前建议自行阅读仓库源码与许可证,插件以当前 dsh 进程权限运行。
平台与依赖¶
仅支持 Windows 10/11(64 位)。 package.json 声明 os: ["win32"]、cpu: ["x64", "arm64"],在 Linux、macOS、Termux 上 npm install 会因 EBADPLATFORM 被拒绝;32 位 Windows(ia32)也不支持。
| 依赖 | 要求 |
|---|---|
| Node.js | ≥ 18(推荐 20 LTS) |
| JDK | 17+,java -version 须可用 |
| 外部工具 | 见下文,可放在插件 tools/windows/ 或 APK_TOOLS_DIR |
外部工具查找顺序:<tool>.exe → .bat / .cmd → .jar(java -jar)→ 系统 PATH。APK_TOOLS_DIR 指向工具目录本身,不会再拼接 windows 子目录。
核心功能¶
插件共 10 个模块、38 个工具(正常加载时日志里 N 应为 38)。完整清单可用 npm run list-tools 查看。
APK 与资源¶
- apk(3):
apk_info读包名、版本、minSdk、权限;apk_decode解包;apk_build回编未签名 APK。 - apkedit(7):基于 APKEditor 的深度信息、二进制资源解码/回编、分割包合并(目录形式可用)、资源反混淆、XML 字符串池与树形打印等。
签名与 DEX¶
- sign(3):V1/V2/V3 签名、验签、
zipalign对齐。 - dex(3):DEX ↔ smali、JAR → DEX。
- dex2jar(1):DEX → JAR(d2j-dex2jar)。
文件、压缩包与其它¶
- file(12):读写、列目录、stat、删建、复制移动改名、十六进制读写与 patch——
file_list常被 AI 用来定位 smali 或资源文件。 - zip(4):列表、解压、添加、删除条目。
- diff(2):文本行对比、目录递归对比。
- hash(1):md5 / sha1 / sha256。
- img(2):
img_convert、img_resize(依赖可选包sharp;不装 sharp 时其余约 35 个工具仍可用)。
所有路径操作经 lib/runner.js#guard 限制在 workspace 内;未安装的外部工具会返回明确报错,不会静默失败。
环境变量¶
| 变量 | 默认值 | 说明 |
|---|---|---|
APK_WORKSPACE |
./workspace |
工作区根目录 |
APK_TOOLS_DIR |
./tools |
外部工具目录 |
APK_KS_PASS |
— | keystore 密码(可选) |
APK_KEY_PASS |
— | 私钥密码(可选) |
安装与启用¶
任选一种方式安装(命令来自仓库 README):
本地目录(开发调试,link 方式):
cd /path/to/parent
dsh plugin --profile web add ./apk-devkit
npm:
dsh plugin --profile web add apk-devkit
GitHub 源:
dsh plugin --profile web add github:qftuftfutg/apk-devkit
验证是否挂载:
dsh --profile web --dump-config | grep apk-devkit
dsh --profile web
期望现象包括:--dump-config 中出现 apk-devkit;启动日志有 [apk-devkit] loaded; registering N tools; workspace=...(N 应为 38);会话中 AI 能列出 apk_decode、file_read、apkedit_decode 等工具。若工具数少于 38,日志中可能出现模块未加载的排查信息,需按 README 检查依赖与 patch 配置。
外部工具需自行准备并放入约定目录;apkeditor.jar 可从 REAndroid/APKEditor releases 下载并重命名为小写 apkeditor.jar。
典型用法¶
改 smali¶
apk_decode解包到unpacked/file_list定位目标 smalifile_read/file_write修改apk_build回编sign_align→sign_apk→sign_verify
改资源(字符串、图标、ARSC)¶
apkedit_decode解码为可编辑 json/xmlfile_read/file_write修改values-*等apkedit_build重建(自带 zipalign)sign_apk→sign_verify
在 DSH 里可直接用自然语言描述意图,例如:把 workspace 里的 app.apk 解包,改完 AndroidManifest 后回编并签名。
插件还提供 MCP stdio 入口(server.js),工具名形如 mcp__apk-devkit__apk_decode,与 Cordis 主入口 plugin.mjs 共用同一套 orchestrator,能力一致;主入口安装后即生效,MCP 需额外配置。
适用场景与注意¶
适合谁: 在 Windows 上对自己拥有完整著作权的 APK 做调试、二次打包、签名与资源编辑的 DSH 用户;希望把重复命令行交给 AI 编排的场景。
合规: 仓库明确禁止用于破解第三方应用、绕过签名校验或规避著作权保护技术措施;开源许可只说明「能否使用该工具」,不说明「能否处理某个具体 APK」。
已知限制(节选):
file_read仅支持utf8/utf16le/latin1,GBK / GB18030 可能乱码。- 不提供 GUI 预览、任意 shell 执行或 DEX/RES 混淆对抗。
- 大 ZIP(>100MB)有内存压力;workspace 沙箱不防符号链接逃逸,勿放入来源不明的 symlink。
file_list单次最多返回 5000 条。
安装前请阅读 GitHub 仓库 的 README、NOTICE 与合规声明;社区目录页:https://www.skillhub.cn/plugins/qftuftfutg/apk-devkit。
结尾¶
apk-devkit 把常见 Android 命令行工具收成 DSH 可调用的 38 个工具,在 Windows 上用自然语言即可完成解包、改 smali 或资源、回编与签名链路。按 README 安装插件、补齐 JDK 与外部工具后,用 --dump-config 与加载日志确认工具数即可开始会话内调试。