公开副本:本地路径及实验主机已脱敏;图片/数据拆为站内资源。原报告中的校验哈希对应本地原件,不认证公开副本字节。研究分类与范围仍未获人工金标或外部独立审查。
方法、图和证据边界
归档图与执行不是同一个分母
复用前两轮六条 COMPLETED_VALID Pure 白名单的收尾 jev-graph.json;节点为 APE State,边为 StateTransition(含 source、target、ModelAction、fingerprint)。不同 Action 的平行边保留;删除按edge ID执行,不能把一对 source/target 的所有边顺手删掉。Back、scroll、long click、self-loop、跨 Activity 都在原图内。重启的实际 entry State 由归档 roots 保留;没有虚构一条 restart 转换,也没有只选最早 Root 来扩大结果。无 SCC 压缩。
执行频率来自 NATIVE_TRANSITION(input_confirmed=true),通过 input、receipt、GUI、抽象版本关联,绝不将一条图边算作一次执行。final_exact 要求历史 source/target/observed ModelAction 能与收尾边精确对接。原输入 ModelAction 与观察后 ModelAction 都保留,可能因 APE 更新不同,不能强改为同值。36 次Ⅰ输入不能精确映射收尾边;它们依然是实际执行,但不会被凭空投影成可删除的边。
收尾图也有未关联 confirmed 输入的拓扑边。B 保留它们;反例路径明确写 confirmed=0。这种路径证明归档拓扑中的可达性,不冒充一条连续真实执行轨迹。analysis/path-witnesses.json 保存每边实际确认记录 IDs。
A:现有结构机制
当前源码是 roots 可达集上的 State dominator fixed point,再建 immediate dominator tree、收集非 Root Header 的整棵子树,包含 Header。不是在线逐 State 删除,也不是旧论文 action-edge 算法。见 native/src/com/android/commands/monkey/ape/jev/JevRegion.java:67–104。
本轮复用上一轮所有结构子树,并用 NetworkX immediate_dominators 加虚拟 super-root 连接全部原 roots独立核对每个子树。虚拟点只供等价多 Root 计算,不加入报告 Region。
主表 A 为上轮所选 Header。另给「附近与 C 重叠最多的单 Header」和「所有精确入口 Target 的子树并集」作有利基线;后两者是离线诊断,不是当前 Locator 真实输出。Pure 在线 Region 关闭,所以没有可追溯的在线最终选中事实。本轮不做候选门槛或决策分析。
B:同功能组联合删边
对已确认Ⅰ类入口每次输入,收集其 final_exact edge ID,得到 K。同一输入来源可能有多个 Target,全部观察到且精确关联的转换都会进入 K。Concrete 身份、源 GUI、输入回执仍按次保留,不按 resource ID 模糊扩张。
原图 G、原 Root 集 R 下,定义:
L(G,K) = Reach(G,R) − Reach(G\K,R)。
去返回图 F 先移除 MODEL_BACK 及归档执行证据一致指向明确 Navigate up/Back 控件的拓扑边(含核对过的 Places 左箭头)。Cancel、Save、Clear、普通 scroll 均保留。再分别计算 Reach(F,R) 和 Reach(F\K,R)。去返回已令其不可达的 State 不计入入口删除损失。 F 只是此操作定义下的图,不保证有向无环,也不能预设比原图正确。
全图可能有多 Root、共享页、环、未观测的业务入口和跨抽象版本历史。本轮测量只对已归档图成立,不推断未探索业务空间。
另列的敏感性,绝不取代主结果
- State/ModelAction 展开:删掉已见入口
(source,ModelAction)的全部图上结果边。没有确认 Concrete 对应的边明确标注为拓扑展开,不认证为真入口。 - 待确认入口加入:Wikipedia Places 与编辑器 Link 保留待确认;只作范围敏感性,不并入全站Ⅰ入口结论。
- 每个 Source 单独删、留一个 Source 未删:量化多源关系。
- ODK 命名跨功能观察边额外移除:只证明结果对单边敏感,不自动清洗归档或声称其为语义入口。
- 若同一拓扑边还承接组外 Concrete 执行,本应标记 collision 并保守对照。本批确认 K 中此类 collision=0,不能据此认证所有未确认历史。
C:功能发生范围参考
从每次确认Ⅰ输入的实际 Target 开始,仅沿相邻确认记录、相同 target/source GUI ID、相同抽象版本的轨迹分析,不按固定 hop 数截取。遇到 GUI 断裂、版本变化、目标未知、归档结束显式停止为未知;不会跳过缺口把远处同名 State 接成连续轨迹。
案例特定、可审核的阶段边界:
- ODK:下载列表、连接/错误状态、排序和列表内过滤;返回 MainMenu 即退出。
- ActivityDiary:Add 触发后的编辑/颜色阶段;完成/返回主或管理页退出。
quickFixButton1明示拒绝当前新建并打开同名已有活动,即使还在 EditActivity 也算业务移交。 - Wikipedia:Ⅰ开启后的搜索 landing、查询、结果及 namespace;点击文章进入 PageActivity 算阅读移交,语言设置单列可选扩展;切其他 tab、保存/分享等结果命令算移交。SearchActivity 中的 Places、阅读列表对话框不凭 Activity 自动合并。
只有能以精确收尾转换映射的发生 State 进入 A/B/C 比较;另保留历史功能 State 数。C 是 agent 依据 GUI/动作/结果审核的有限参考,不是人工金标、不保证完整,不给 State 排他归属。 C 外节点需要再看 GUI,不能直接当误收;C 内被其他上下文共享也不能抹掉本次发生。
对齐与审核
截图优先同 GUI ID/timestamp 审计截图;没有则用同 State 历史代表图,并保留 alignment=unverified_state_representative。未证明同次对齐的图不能用于认定触摸故障或 New/Edit 错误合并。原图 hash、输入 bounds、source GUI 属性均可查。缩放/JPEG 副本的红框为投影,不是人工标注金标。
GUI Tree 保存并不完整。 ODK两个Rep的审计GUI快照只有14/13份,本轮C下载State没有可关联的完整审计树,逐次事件亦无同GUI ID/timestamp树;入口属性和bounds来自真实input,功能画面来自明确标注的State代表截图。不能说已恢复每次完整树。ActivityDiary的C参考5/4个State中,各只有1个State有审计树;Wikipedia为21/26、24/39。缺少的树保留缺失,不补造。便携包206份GUI原件是本轮输入能按同GUI ID/timestamp关联的快照,不涵盖每次输入。
本轮 agent 阅读 contact sheets 并核对 GUI/结果;没有调用外部模型或让人类复核,human_confirmed=false。入口组可以由研究者在查看器逐项接受/拒绝。分类、范围、因果确定性分别标注。