SuperAPI AI 工具集

quokka

quokka 是一个面向 Mac 的命令行工具,用于检查和清理通过 USB 连接的 iPhone 或 Android 设备。它无需越狱或 root 权限,可读取存储、电池、应用、媒体、设备身份和实时系统日志,并支持清理空间、卸载应用和重启设备。支持 iOS 17+ 和 Android 8+,所有查询命令可通过 --json 输出数据以便管道处理。项目采用 MIT 许可证,提供 Homebrew、一键安装脚本和 Cargo 源码编译三种安装方式。

访问官网

工具介绍

quokka 是一个 Mac 命令行工具(CLI),用于检查和管理通过 USB 连接的手机设备,支持 iPhone 和 Android。它的核心特点是不需要越狱或 root 权限,也不依赖系统提权即可完成大部分操作。

用途

quokka 面向开发者、测试人员或需要快速管理测试设备的用户。它可以从终端读取设备存储、电池、应用、媒体、设备身份和实时系统日志,并执行清理空间、卸载应用和重启设备等操作。

主要能力

  • 日志查看:qk logs 打开 TUI 查看器,支持按级别或进程过滤、搜索、暂停和保存;--no-tui 可输出纯文本用于管道或 CI。
  • 空间清理:qk analyze 按大小排序最占空间的媒体文件;qk media -d 分组疑似重复文件,两者都可通过交互式选择器删除文件。
  • 应用管理:qk apps 按大小列出用户应用并支持通过 bundle id 卸载,--yes 可用于脚本。
  • 设备状态读取:qk status 和 qk info 以清晰块状输出设备和存储状态;--redact 可遮蔽序列号、UDID、IMEI 和 MAC 以便安全截图。
  • 其他:无参数运行 qk 打开交互式启动器;qk card 可生成包含设备信息的图像;qk capture(仅 iOS)提供实时 TUI 抓包。

使用方式

quokka 自动检测连接的设备是 iPhone(通过 usbmuxd)还是 Android(通过 adb),也可用 --platform ios|android 或环境变量 QK_PLATFORM 强制指定。多设备连接时,裸 qk 启动器会在侧边栏列出所有设备供切换;子命令可使用全局标志 --udid(长格式,无短格式)指定设备,也读取环境变量 QK_UDID。

环境要求

  • 一台 Mac,手机通过数据线连接。
  • iPhone:需要 Xcode 命令行工具(xcode-select --install)提供 usbmuxd;首次连接需解锁并信任电脑;iOS 17+。
  • Android:需要 adb 在 PATH 中(brew install android-platform-tools),启用 USB 调试并接受授权;Android 8+。
  • 无 root 时部分字段为尽力而为:应用名称显示为包名,电池健康/循环次数不可用,抓包(qk capture)仅限 iOS。

安装

  • Homebrew(推荐):brew install dutradotdev/tap/quokka(支持 Apple Silicon 和 Intel)。
  • 一键安装(无 Homebrew):curl -fsSL https://raw.githubusercontent.com/dutradotdev/quokka/main/install.sh | sh,从 GitHub Releases 拉取预编译二进制到 ~/.cargo/bin,重复运行即可更新。
  • Cargo(源码编译):cargo install --git https://github.com/dutradotdev/quokka,编译较慢,适合跟踪 main 分支。

所有安装方式都会在 PATH 中放置两个二进制:quokka 和更短的 qk,功能相同。

适用场景

  • 调试时实时查看设备日志。
  • 清理测试设备上的冗余媒体文件或卸载占空间的应用。
  • 快速获取设备状态、存储和身份信息,并可脱敏后截图。
  • 通过 --json 输出结构化数据,集成到脚本或 CI 流程中(logs --json 输出 NDJSON)。

限制

  • 仅支持 Mac 作为主机。
  • iPhone 需要 iOS 17+,Android 需要 Android 8+。
  • 无 root 时部分功能受限(如上文所述)。
  • 项目为 MIT 许可证,但未提供具体的定价或商业支持信息。
  • 代码仓库为 Cargo workspace,包含 quokka-core 和 quokka-cli 两个 crate,有 CI 覆盖格式检查、clippy、测试、cargo audit 和 cargo deny。