apk-devkit:在 DSH 里用自然语言做 APK 解包、回编与签名

前言

在 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 等外部程序。

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

  1. apk_decode 解包到 unpacked/
  2. file_list 定位目标 smali
  3. file_read / file_write 修改
  4. apk_build 回编
  5. sign_align → sign_apk → sign_verify

改资源(字符串、图标、ARSC)

  1. apkedit_decode 解码为可编辑 json/xml
  2. file_read / file_write 修改 values-* 等
  3. apkedit_build 重建(自带 zipalign)
  4. 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 与加载日志确认工具数即可开始会话内调试。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜