SuperAPI AI 工具集

snap-o-tweaks

办公与效率

查看项目

更新于 10-16 03:05

技能介绍

用途:检查已启用调试的 Android 应用通过 Snap-O 暴露的实时调校值(tweak)与应用自有动作。发现、读取和流式观察均为只读;仅在被明确要求时才修改、重置值或调用动作;仅在被明确要求时重置全部内容。

主要能力:

  • 发现运行中的、支持 tweak 的应用:"$SNAPO_BIN" apps --json。清单使用 ADB 进程与包信息,JSON 行含 pid、processName、packageName,未解析的身份字段为 null;不加载友好应用名与图标。
  • 列出、读取与观察:list、get、watch。watch 可输出完整快照,--once 在首个完整快照后退出,--json 输出换行分隔的 JSON。list 与 watch 发出完整的 tweak 与 action 快照。事件流只包含当前活跃的声明;历史值调整需用 list --all。
  • 扩展列表:list --all、get NAME --all 会合并当前 tweak/action 与先前调整过的普通或应用自有 tweak 的保留快照。历史调整保留有效值与修改状态,不含来源、回调或观察者。"modified": true 表示存在未还原的改动;字段缺失恒表示 false。action 从不包含 modified。不同屏幕可复用同名 tweak 但声明不同,应保留 list --all 中的每个描述符,不要按名称去重。get NAME --all 在多个声明匹配时报错。历史 tweak 可在非活跃时检查,但只有其声明活跃时才能修改或重置;action 仅活跃可用。

用法要点:Agent、shell、自动化或 CI 默认使用 snapo-tweaks CLI,仅需 Python 3 及 macOS/Linux 上的 Android Platform Tools。直接集成使用 REST 与 server-sent events。桌面检查使用 Snap-O 的 macOS Tweaks 工具。应用内控件集成 SnapOTweakOverlay。自定义界面可构建浏览器、原生或 Compose UI;浏览器需要同源代理。

CLI 路径:使用随技能捆绑的可执行文件 scripts/snapo-tweaks,相对于包含 SKILL.md 的目录解析,而非当前工作目录,记为 $SNAPO_BIN;若缺失说明技能安装不完整。ADB 依次从 PATH、ANDROID_SDK_ROOT 或 ANDROID_HOME 解析,可用 --adb <path> 或 SNAPO_ADB 覆盖;远程 ADB 需同时传 --adb-host <host> 与 --adb-port <port>。

设备与套接字选择:用 -s <serial>、-d(USB)或 -e(模拟器)选择设备;除 apps 外,当选择有歧义时每个子命令都需用 -n <socket> 指定应用套接字。引号规则:名称含空格或 /、含空格的字符串值、十六进制颜色都需加引号。set 按声明的 int、float、boolean、color、string、enum、bezier 类型解析;enum 描述符在 options 中给出有序枚举名列表,设置时使用精确选项名。成功的更新与重置无输出。

动作调用:应用用 TweakAction(name) { ... } 组合式声明动作,从 com.openai.snapo.tweaks.TweakAction 导入;声明返回 Unit,仅当持有者仍在组合中时注册回调,组合期间不执行回调。action 的 "type":"action",无值与默认值。仅当用户明确要求其应用定义行为时调用,如 "$SNAPO_BIN" action 'Preview/Refresh visible content' -s <serial> -n <socket>。该命令只按给定名称发送已注册名称,不接受参数,也不执行任意代码。"conflicted":true 表示有多个活跃所有者,无法调用;应报告服务器冲突并请应用方只注册一次或使用明确、稳定、唯一的名称。不要对回调去重,也不要自行添加数字后缀。reset --all 忽略 action。

限制与失败:tweak 使用应用本地 snapo_tweaks_<pid> 套接字,通常仅在启用调试的应用中存在。若无套接字,检查设备授权与选择、应用是否运行、其 Tweaks 依赖/集成、调试/运行时策略以及服务器启动。若套接字存在但 /tweaks 为空,则当前 Compose UI 无活跃 tweak 声明;list --all 仍可返回保留的调整。调整历史仅在该 Android 应用进程存活期间有效。未经明确请求,不要启用 release 服务器,也不要修改应用或依赖。保留验证错误;CLI 会自行清理其临时 ADB 转发。