Skip to content

Repository files navigation

Android Agent

Android Agent 是一个纯 Android、本地运行的双 APK 项目:

  • fake-ticket-app:复现目标票务流程和异常状态,为状态机、OCR、动作校验与停止机制提供可重置测试基线。
  • android-agent:在目标应用前台运行时,通过无障碍节点、必要时截图/OCR、规则决策和动作校验执行用户明确授权的票务页面辅助任务。

项目不依赖 PC、Web 管理端、云端后端或远程调度。工程基线为 minSdk 26;完整兼容验证覆盖 Android 10 至 16,并且只报告实际验证过的设备和系统。

执行入口

00_项目执行总览.md 是唯一阶段入口。当前执行体系为 v2;docs/stages/v2/ 中一次只能有一个 READYIN_PROGRESS 阶段。根级 docs/stages/ 中原有 01-15 文档是 v1 历史任务包,不再决定实施顺序或安全边界。

稳定规范:

决策链

Accessibility 节点
-> 必要时截图和本地 OCR
-> 页面状态检测
-> RuleDecisionProvider
-> ActionValidator
-> ActionExecutor
-> 页面变化验证

定位顺序为 resource-id/contentDescription/文本与节点关系、同一有效帧的 OCR 文本和区域。证据不足、候选冲突或数据过期时停止,不以固定绝对坐标补偿。

目标模式

FakeTicketApp 是完整自动化与异常回归基线。真实目标当前只允许用户逐次启用、包名/版本/签名均通过受控配置验证的 Android 大麦应用。用户手动打开大麦并将约定入口页返回前台,AndroidAgent 不主动启动或重启真实目标,只在前台身份验证通过后接管。能力按以下模式逐级解锁:

  1. READ_ONLY:只识别页面与候选,不分发屏幕动作。
  2. NAVIGATION:从首页搜索并进入唯一匹配的演出、城市和预约页面。
  3. PURCHASE_ASSIST:在用户配置的场次、票档、数量和总额上限内执行;提交订单后在支付页停止。

连续抢票点击默认间隔 200 ms,硬下限 100 ms。检测到排队后立即停止点击并观察;验证码、风控、登录失效、歧义、包失焦、金额超限和支付页均停止。项目不实现真实支付,也不绕过平台或 Android 安全机制。完整要求见安全边界

历史文档

规划.md01_项目总体规划.mdAndroid-Agent完整设计方案.md 和 v1 阶段任务包仅用于追溯。与 v2 总览、ADR 或 reference 冲突时,以 v2 规范为准。

About

一款抢票的软件

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages