refactor(docs): 开发文档顶层仅保留 1~10 编号目录

将原 6、测试 迁入 8、部署/05-测试验收,接口矩阵与开发日志并入 5、接口/06-验收与矩阵,项目总览与平台分析分别归位至 2、架构与 1、需求;同步 Obsidian、机擎规范与路径校验脚本。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Manus AI
2026-05-24 09:51:14 +08:00
parent 78cfc3e918
commit dc35fb8bbc
350 changed files with 1374 additions and 585 deletions

View File

@@ -24,7 +24,7 @@ jobs:
run: python3 -m compileall sdk/app
- name: Doc path validation
run: bash 开发文档/6、测试/scripts/validate_doc_paths.sh
run: bash 开发文档/8、部署/05-测试验收/scripts/validate_doc_paths.sh
- name: Pip install (smoke)
run: |

View File

@@ -20,7 +20,7 @@ jobs:
run: python3 -m compileall sdk/app
- name: Doc path validation
run: bash 开发文档/6、测试/scripts/validate_doc_paths.sh
run: bash 开发文档/8、部署/05-测试验收/scripts/validate_doc_paths.sh
- name: Pip install (smoke)
run: pip install -q -r sdk/requirements.txt

View File

@@ -2,4 +2,4 @@
"enabledCssSnippets": [
"workphone-devdoc"
]
}
}

View File

@@ -8,7 +8,7 @@
"collapse-color-groups": false,
"colorGroups": [
{
"query": "path:开发文档/00-项目总览",
"query": "path:开发文档/2、架构/01-总览",
"color": { "a": 1, "rgb": 14010688 }
},
{
@@ -16,7 +16,7 @@
"color": { "a": 1, "rgb": 14010688 }
},
{
"query": "path:开发文档/6、测试",
"query": "path:开发文档/8、部署/05-测试验收",
"color": { "a": 1, "rgb": 16338757 }
},
{

View File

@@ -93,17 +93,13 @@
.nav-folder-title[data-path^="开发文档/10、项目管理/0"] > .nav-folder-title-content {
color: #E65100 !important;
}
.nav-folder-title[data-path="开发文档/6、测试"] > .nav-folder-title-content {
.nav-folder-title[data-path^="开发文档/8、部署/05-测试验收"] > .nav-folder-title-content {
color: #F9A825 !important;
font-weight: 600;
}
.nav-folder-title[data-path^="开发文档/6、测试/scripts"] > .nav-folder-title-content {
.nav-folder-title[data-path^="开发文档/5、接口/06-验收与矩阵"] > .nav-folder-title-content {
color: #FFB300 !important;
}
.nav-folder-title[data-path^="开发文档/6、测试/screenshots"] > .nav-folder-title-content {
color: #FF8F00 !important;
}
.nav-folder-title[data-path="开发文档/00-项目总览"] > .nav-folder-title-content {
.nav-folder-title[data-path="开发文档/2、架构/01-总览"] > .nav-folder-title-content {
color: #1565C0 !important;
font-weight: 700;
}
@@ -121,7 +117,7 @@
color: #D84315 !important;
font-weight: 600;
}
.nav-folder-title[data-path="开发文档/平台分析"] > .nav-folder-title-content {
.nav-folder-title[data-path="开发文档/1、需求/03-调研/平台分析"] > .nav-folder-title-content {
color: #AD1457 !important;
font-weight: 600;
}

View File

@@ -13,12 +13,12 @@
"state": {
"type": "markdown",
"state": {
"file": "开发文档/9、手册/工作手机·五图总览与使用手册.md",
"file": "开发文档/5、接口/01-规范与统一层/工作手机API全量接口目录.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "工作手机·五图总览与使用手册"
"title": "工作手机API全量接口目录"
}
}
]
@@ -48,7 +48,7 @@
}
},
{
"id": "6c2610f31fc31789",
"id": "5b068a2f44679a09",
"type": "leaf",
"state": {
"type": "search",
@@ -65,7 +65,7 @@
}
},
{
"id": "bf871c0da2e3544e",
"id": "de198079042f48d2",
"type": "leaf",
"state": {
"type": "bookmarks",
@@ -78,23 +78,23 @@
}
],
"direction": "horizontal",
"width": 300
"width": 280
},
"right": {
"id": "8c205b6b99b90ab6",
"type": "split",
"children": [
{
"id": "4d3b113af15e8bff",
"id": "d9214cf887fb7132",
"type": "tabs",
"children": [
{
"id": "9ac26a342021612c",
"id": "673ffc00f50f08ab",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "开发文档/2、架构/本地控制模式_5_scrcpy可视化控制模式.png",
"file": "开发文档/9、手册/工作手机·五图总览与使用手册.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
@@ -104,25 +104,25 @@
"unlinkedCollapsed": true
},
"icon": "links-coming-in",
"title": "本地控制模式_5_scrcpy可视化控制模式 的反向链接列表"
"title": "工作手机·五图总览与使用手册 的反向链接列表"
}
},
{
"id": "b0fa8e5a05c1294f",
"id": "890ed47dd78fef15",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "开发文档/2、架构/本地控制模式_5_scrcpy可视化控制模式.png",
"file": "开发文档/9、手册/工作手机·五图总览与使用手册.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "本地控制模式_5_scrcpy可视化控制模式 的出链列表"
"title": "工作手机·五图总览与使用手册 的出链列表"
}
},
{
"id": "b5539cd67cedf99e",
"id": "f752a1d966b0f930",
"type": "leaf",
"state": {
"type": "tag",
@@ -137,7 +137,7 @@
}
},
{
"id": "6be9303fddeb4281",
"id": "d42161fcc2191ec8",
"type": "leaf",
"state": {
"type": "all-properties",
@@ -151,18 +151,18 @@
}
},
{
"id": "860b5ca18c83c83c",
"id": "2c28ac2360047882",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "开发文档/2、架构/本地控制模式_5_scrcpy可视化控制模式.png",
"file": "开发文档/9、手册/工作手机·五图总览与使用手册.md",
"followCursor": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-list",
"title": "本地控制模式_5_scrcpy可视化控制模式 的大纲"
"title": "工作手机·五图总览与使用手册 的大纲"
}
}
]
@@ -183,50 +183,53 @@
"bases:新建数据库": false
}
},
"active": "dcfc7855fc8fae84",
"active": "214e9888679abd96",
"lastOpenFiles": [
"开发文档/2、架构/images/01-整体总览/工作手机项目目录总览.png",
"开发文档/00-项目总览/README.md",
"开发文档/8、部署/04-Gitea门户/README.md",
"开发文档/6、测试/screenshots/README.md",
"开发文档/6、测试/scripts/README.md",
"开发文档/6、测试/README.md",
"开发文档/6、测试/scripts/legacy/real_class_discovery_20260518.json",
"开发文档/6、测试/scripts/legacy/hook_find_send_20260518.json",
"开发文档/6、测试/scripts/legacy/debug_data_20260518.json",
"开发文档/6、测试/scripts/legacy/db_full_scan_20260518.json",
"开发文档/6、测试/scripts/legacy/verification_v8fix_results.json",
"开发文档/6、测试/scripts/legacy/verification_v8_results.json",
"开发文档/6、测试/scripts/legacy/verification_v6_results.json",
"开发文档/6、测试/scripts/legacy/verification_v5_results.json",
"开发文档/6、测试/scripts/legacy/verification_v4_20260518.json",
"开发文档/6、测试/scripts/legacy/verification_screenshot_v2_20260518.json",
"开发文档/6、测试/screenshots/test_img/t.png",
"开发文档/6、测试/screenshots/verification_110/系统_Hook状态_get_wechat_version_1779086290.png",
"开发文档/6、测试/screenshots/verification_110/系统_Hook状态_get_hook_status_1779086288.png",
"开发文档/6、测试/screenshots/verification_110/系统_Hook状态_get_process_info_1779086289.png",
"开发文档/6、测试/screenshots/verification_110/H39_设备信息_get_storage_info_1779086285.png",
"开发文档/6、测试/screenshots/verification_110/H39_设备信息_get_network_info_1779086286.png",
"开发文档/6、测试/screenshots/verification_110/H36_公众号_get_official_accounts_1779086283.png",
"开发文档/6、测试/screenshots/verification_110/H39_设备信息_get_device_info_1779086284.png",
"开发文档/6、测试/screenshots/verification_110/H35_注册登录_get_sim_phone_1779086281.png",
"开发文档/6、测试/screenshots/verification_110/H35_注册登录_check_login_state_1779086280.png",
"机擎/阿服/local-mount-sync/SKILL.md",
"开发文档/8、部署/04-Gitea门户/wiki-gitea/架构一览.md",
"开发文档/8、部署/04-Gitea门户/wiki-gitea/更新动态.md",
"开发文档/8、部署/04-Gitea门户/wiki-gitea/快速开始.md",
"开发文档/8、部署/04-Gitea门户/wiki-gitea/完整整合手册.md",
"开发文档/8、部署/04-Gitea门户/wiki-gitea/下载中心.md",
"开发文档/8、部署/04-Gitea门户/wiki-gitea/Home.md",
"开发文档/8、部署/04-Gitea门户/wiki-gitea/Hook与Frida.md",
"开发文档/8、部署/04-Gitea门户/gitea/WIKI_SYNC.md",
"开发文档/8、部署/04-Gitea门户/gitea/RELEASES.md",
"开发文档/8、部署/04-Gitea门户/gitea/README.md",
"开发文档/8、部署/04-Gitea门户/gitea/PROJECTS.md",
"开发文档/8、部署/04-Gitea门户/gitea/PACKAGES.md",
"资料/archive/README.md",
"开发文档/2、架构/03-通道与设备/Hook通道与多设备多服务器架构.md",
"开发文档/9、手册/04-专项/README.md",
"开发文档/9、手册/03-验证/README.md"
"开发文档/5、接口/06-验收与矩阵/README.md",
"sdk/tmp/sdk_restart3.log",
"开发文档/1、需求/03-调研/平台分析/Soul调研/调研/06_参考Soul开发APP的技术基线与实现方式.md",
"开发文档/1、需求/03-调研/平台分析/Soul调研/调研/03_Soul安全与风控维度分析.md",
"开发文档/1、需求/03-调研/平台分析/Soul调研/调研/README.md",
"开发文档/1、需求/03-调研/平台分析/Soul调研/调研/04_Soul商业与运营维度分析.md",
"开发文档/1、需求/03-调研/平台分析/Soul调研/调研/05_Soul体验与交互维度分析.md",
"开发文档/1、需求/03-调研/平台分析/Soul调研/调研/02_Soul技术架构与实现维度分析.md",
"开发文档/1、需求/03-调研/平台分析/Soul调研/调研/01_Soul产品与功能维度分析.md",
"开发文档/1、需求/03-调研/平台分析/Soul调研/run_soul_capture.sh",
"开发文档/1、需求/03-调研/平台分析/Soul调研/soul_capture_addon.py",
"开发文档/1、需求/03-调研/平台分析/Soul调研/soul_post_moment_mac.sh",
"开发文档/1、需求/03-调研/平台分析/Soul调研/调研",
"开发文档/1、需求/03-调研/平台分析/Soul调研/Soul自动化方案与命令行操作.md",
"开发文档/1、需求/03-调研/平台分析/Soul调研/README.md",
"开发文档/1、需求/03-调研/平台分析/Soul调研/Soul项目分析.md",
"开发文档/1、需求/03-调研/平台分析/Soul调研.zip",
"开发文档/1、需求/03-调研/平台分析/README.md",
"开发文档/1、需求/03-调研/平台分析/Soul调研",
"开发文档/1、需求/03-调研/平台分析",
"开发文档/8、部署/05-测试验收/wireless_frida_real_device_acceptance_20260518/真机110功能验收矩阵.json",
"开发文档/8、部署/05-测试验收/wireless_frida_real_device_acceptance_20260518/真机110功能验收矩阵.md",
"开发文档/8、部署/05-测试验收/wireless_frida_real_device_acceptance_20260518",
"开发文档/8、部署/05-测试验收/visible_capture_fix_20260518/20260518_180208/visible_after_wakeup.png",
"开发文档/8、部署/05-测试验收/v9fix_final_state.png",
"开发文档/8、部署/05-测试验收/v9_moments_1779114104.png",
"开发文档/8、部署/05-测试验收/v9_moments_1779113961.png",
"开发文档/8、部署/05-测试验收/v9_final_state.png",
"开发文档/8、部署/05-测试验收/v9_final_1779114109.png",
"开发文档/8、部署/05-测试验收/v9_final_1779113966.png",
"开发文档/8、部署/05-测试验收/v9_before_send_1779114095.png",
"开发文档/8、部署/05-测试验收/v9_before_send_1779113952.png",
"开发文档/8、部署/05-测试验收/v9_after_send_1779114098.png",
"开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md",
"开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/截图复核与待修正.md",
"开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_175801/真实脱线手机110功能最终效果验证报告.md",
"开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_175801/截图复核发现.md",
"开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_175142/真实脱线手机110功能最终效果验证报告.md",
"开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_174929/真实脱线手机110功能最终效果验证报告.md",
"开发文档/5、接口/03-Hook与微信/API接口文档_v8fix.md",
"开发文档/5、接口/06-验收与矩阵/dev_log_v6_20260518.md",
"开发文档/2、架构/01-总览/项目目录总览.md",
"开发文档/8、部署/05-测试验收/Frida无线控制验证报告_20260519_002820.md",
"开发文档/8、部署/05-测试验收/Frida无线控制验证报告_20260518.md",
"开发文档/8、部署/05-测试验收/README.md",
"开发文档/8、部署/05-测试验收/wireless_frida_20260518/无线Frida微信控制批量验证报告.md"
]
}

87
.obsidian/workspace.json.bak-20260524 vendored Normal file
View File

@@ -0,0 +1,87 @@
{
"main": {
"id": "6762a12341cb5052",
"type": "split",
"children": [
{
"id": "085e1d408a6336ac",
"type": "tabs",
"children": [
{
"id": "dcfc7855fc8fae84",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "开发文档/9、手册/工作手机·五图总览与使用手册.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "工作手机·五图总览与使用手册"
}
}
]
}
],
"direction": "vertical"
},
"left": {
"id": "b5ddfce06d2f444b",
"type": "split",
"children": [
{
"id": "34646979b3318f8f",
"type": "tabs",
"children": [
{
"id": "214e9888679abd96",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"autoReveal": false
},
"icon": "lucide-folder-closed",
"title": "文件列表"
}
}
]
}
],
"direction": "horizontal",
"width": 280
},
"right": {
"id": "8c205b6b99b90ab6",
"type": "split",
"children": [
{
"id": "4d3b113af15e8bff",
"type": "tabs",
"children": []
}
],
"direction": "horizontal",
"width": 0,
"collapsed": true
},
"left-ribbon": {
"hiddenItems": {
"switcher:打开快速切换": false,
"graph:查看关系图谱": false,
"canvas:新建白板": false,
"daily-notes:打开/创建今天的日记": false,
"templates:插入模板": false,
"command-palette:打开命令面板": false,
"bases:新建数据库": false
}
},
"active": "214e9888679abd96",
"lastOpenFiles": [
"开发文档/00-项目总览/README.md",
"开发文档/9、手册/工作手机·五图总览与使用手册.md",
"开发文档/2、架构/01-总览/系统架构.md"
]
}

View File

@@ -5,7 +5,7 @@
| 入口 | 地址 |
|------|------|
| **📖 完整整合手册(必读)** | [开发文档/9、手册/工作手机·五图总览与使用手册.md](开发文档/9、手册/工作手机·五图总览与使用手册.md) · `./开发文档/9、手册/open_handbook.sh` |
| **🗂️ 项目目录总览** | [开发文档/00-项目总览/README.md](开发文档/00-项目总览/README.md) |
| **🗂️ 项目目录总览** | [开发文档/2、架构/01-总览/项目目录总览.md](开发文档/2、架构/01-总览/项目目录总览.md) |
| **本仓库Gitea** | http://open.quwanzhi.com:3000/fnvtk/workphone-sdk |
| **百科Wiki** | 仓库内同步源:`开发文档/8、部署/04-Gitea门户/wiki-gitea/` → 见下方「Wiki 同步」 |
| **本地 SDK 控制台Hub** | 启动服务后:`http://127.0.0.1:8899/hub` |

View File

@@ -2,7 +2,7 @@
> 存客宝的 AI 手机控制引擎 — 替代奥创,统一控制微信/抖音/小红书/闲鱼等
> **完整手册**[开发文档/9、手册/工作手机·五图总览与使用手册.md](../开发文档/9、手册/工作手机·五图总览与使用手册.md)v2.1
> **仓库结构**[开发文档/00-项目总览/README.md](../开发文档/00-项目总览/README.md)
> **仓库结构**[开发文档/2、架构/01-总览/项目目录总览.md](../开发文档/2、架构/01-总览/项目目录总览.md)
## 项目模块结构

View File

@@ -27,7 +27,7 @@ if not os.path.exists(SCRIPT_PATH):
# 截图保存目录
SCREENSHOT_DIR = os.path.join(
os.path.dirname(__file__), '..', '..', '..',
'开发文档', '6、测试', 'screenshots', 'verification_110',
'开发文档', '8、部署', '05-测试验收', 'screenshots', 'verification_110',
)
os.makedirs(SCREENSHOT_DIR, exist_ok=True)

View File

@@ -392,11 +392,32 @@ async def main():
print(f"\n 即将测试 {total_actions} 个 action ({len(tests)} 组)")
print("-" * 70)
# 预取最近消息 msgId供 forward/recall 真机链路
last_msg_id = None
try:
pre = await run_test(client, "get_messages", "POST", "/api/v3/message/list",
{"conversation_id": "filehelper", "limit": 3}, "预检")
msgs = (pre.response.get("data") or {}).get("messages") or []
if not msgs and isinstance(pre.response.get("data"), dict):
inner = pre.response["data"].get("data") or pre.response["data"]
msgs = inner.get("messages") or []
if msgs:
last_msg_id = str(msgs[0].get("id") or msgs[0].get("msgId") or msgs[0].get("msg_svr_id") or "")
print(f" 预检 msg_svr_id={last_msg_id}")
except Exception as e:
print(f" 预检 get_messages 跳过: {e}")
for group_name, group_tests in tests.items():
print(f"\n[{group_name}] 测试中...")
for action, method, endpoint, params, safe in group_tests:
result = await run_test(client, action, method, endpoint,
dict(params), group_name)
p = dict(params)
if action == "forward_message" and last_msg_id:
p["msg_svr_id"] = last_msg_id
if action == "recall_message" and last_msg_id:
p["msg_svr_id"] = last_msg_id
if action == "friend_info":
p["user_id"] = "filehelper"
result = await run_test(client, action, method, endpoint, p, group_name)
report.results.append(result)
icon = "" if result.success else ""
print(f" {icon} {action:<30} {result.elapsed_ms:>5}ms [{result.channel}]")

View File

@@ -425,7 +425,7 @@ def generate_verification_report(mode: str = "mock", output_path: str = "") -> s
if not output_path:
output_path = os.path.join(
os.path.dirname(__file__), '..', '..',
'开发文档', '6、测试',
'开发文档', '8、部署', '05-测试验收',
f'Frida无线控制验证报告_{datetime.now().strftime("%Y%m%d_%H%M%S")}.md'
)

3
开发文档/.obsidian/app.json vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"promptDelete": false
}

View File

@@ -0,0 +1,5 @@
{
"enabledCssSnippets": [
"workphone-devdoc"
]
}

View File

@@ -0,0 +1,33 @@
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": false,
"backlink": true,
"canvas": false,
"outgoing-link": true,
"tag-pane": true,
"footnotes": false,
"properties": true,
"page-preview": true,
"daily-notes": false,
"templates": false,
"note-composer": true,
"command-palette": true,
"slash-command": false,
"editor-status": true,
"bookmarks": true,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": true,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"file-recovery": true,
"publish": false,
"sync": false,
"bases": false,
"webviewer": false
}

View File

@@ -0,0 +1,128 @@
/* 工作手机 · 开发文档 Obsidian 目录配色
* 启用Settings → Appearance → CSS snippets → workphone-devdoc
* 依赖Obsidian 文件资源管理器 nav-folder-title data-path 属性
*/
.nav-folder-title[data-path="开发文档/2、架构"] > .nav-folder-title-content {
color: #1565C0 !important;
font-weight: 600;
}
.nav-folder-title[data-path="开发文档/2、架构/01-总览"] > .nav-folder-title-content {
color: #2E7D32 !important;
}
.nav-folder-title[data-path="开发文档/2、架构/02-技术基座"] > .nav-folder-title-content {
color: #6A1B9A !important;
}
.nav-folder-title[data-path="开发文档/2、架构/03-通道与设备"] > .nav-folder-title-content {
color: #EF6C00 !important;
}
.nav-folder-title[data-path="开发文档/2、架构/04-交互图"] > .nav-folder-title-content {
color: #00838F !important;
}
.nav-folder-title[data-path="开发文档/2、架构/05-规范"] > .nav-folder-title-content {
color: #455A64 !important;
}
.nav-folder-title[data-path="开发文档/2、架构/images"] > .nav-folder-title-content {
color: #78909C !important;
}
.nav-folder-title[data-path^="开发文档/2、架构/images/"] > .nav-folder-title-content {
color: #546E7A !important;
}
/* 9、手册 · 五图总览 */
.nav-folder-title[data-path="开发文档/9、手册"] > .nav-folder-title-content {
color: #1565C0 !important;
font-weight: 600;
}
.nav-folder-title[data-path^="开发文档/9、手册/0"] > .nav-folder-title-content {
color: #0288D1 !important;
}
/* 10、项目管理 */
.nav-folder-title[data-path="开发文档/10、项目管理"] > .nav-folder-title-content {
color: #C62828 !important;
font-weight: 600;
}
/* 开发文档 110 根目录(四类分类色) */
.nav-folder-title[data-path="开发文档/1、需求"] > .nav-folder-title-content {
color: #5E35B1 !important;
font-weight: 600;
}
.nav-folder-title[data-path^="开发文档/1、需求/0"] > .nav-folder-title-content {
color: #7E57C2 !important;
}
.nav-folder-title[data-path="开发文档/3、原型"] > .nav-folder-title-content {
color: #5E35B1 !important;
}
.nav-folder-title[data-path="开发文档/4、前端"] > .nav-folder-title-content {
color: #0277BD !important;
font-weight: 600;
}
.nav-folder-title[data-path="开发文档/5、接口"] > .nav-folder-title-content {
color: #0277BD !important;
font-weight: 600;
}
.nav-folder-title[data-path^="开发文档/5、接口/0"] > .nav-folder-title-content {
color: #0288D1 !important;
}
.nav-folder-title[data-path="开发文档/5、接口/images"] > .nav-folder-title-content {
color: #78909C !important;
}
.nav-folder-title[data-path="开发文档/6、后端"] > .nav-folder-title-content {
color: #0277BD !important;
font-weight: 600;
}
.nav-folder-title[data-path^="开发文档/6、后端/0"] > .nav-folder-title-content {
color: #0288D1 !important;
}
.nav-folder-title[data-path="开发文档/6、后端/images"] > .nav-folder-title-content {
color: #78909C !important;
}
.nav-folder-title[data-path="开发文档/7、数据库"] > .nav-folder-title-content {
color: #558B2F !important;
font-weight: 600;
}
.nav-folder-title[data-path="开发文档/8、部署"] > .nav-folder-title-content {
color: #558B2F !important;
font-weight: 600;
}
.nav-folder-title[data-path^="开发文档/8、部署/0"] > .nav-folder-title-content {
color: #689F38 !important;
}
.nav-folder-title[data-path^="开发文档/10、项目管理/0"] > .nav-folder-title-content {
color: #E65100 !important;
}
.nav-folder-title[data-path^="开发文档/8、部署/05-测试验收"] > .nav-folder-title-content {
color: #F9A825 !important;
}
.nav-folder-title[data-path^="开发文档/5、接口/06-验收与矩阵"] > .nav-folder-title-content {
color: #FFB300 !important;
}
.nav-folder-title[data-path="开发文档/2、架构/01-总览"] > .nav-folder-title-content {
color: #1565C0 !important;
font-weight: 700;
}
.nav-folder-title[data-path="开发文档/8、部署/04-Gitea门户"] > .nav-folder-title-content {
color: #33691E !important;
}
.nav-folder-title[data-path="机擎"] > .nav-folder-title-content {
color: #6A1B9A !important;
font-weight: 600;
}
.nav-folder-title[data-path^="机擎/"] > .nav-folder-title-content {
color: #8E24AA !important;
}
.nav-folder-title[data-path="sdk"] > .nav-folder-title-content {
color: #D84315 !important;
font-weight: 600;
}
.nav-folder-title[data-path="开发文档/1、需求/03-调研/平台分析"] > .nav-folder-title-content {
color: #AD1457 !important;
font-weight: 600;
}
/* 通用 images 子目录(各手册/架构下) */
.nav-folder-title[data-path$="/images"] > .nav-folder-title-content {
color: #78909C !important;
}

230
开发文档/.obsidian/workspace.json vendored Normal file
View File

@@ -0,0 +1,230 @@
{
"main": {
"id": "main-split",
"type": "split",
"children": [
{
"id": "main-tabs",
"type": "tabs",
"children": [
{
"id": "readme-leaf",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "5、接口/03-Hook与微信/微信全功能矩阵_v8.0.56.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "微信全功能矩阵_v8.0.56"
}
}
]
}
],
"direction": "vertical"
},
"left": {
"id": "left-split",
"type": "split",
"children": [
{
"id": "left-tabs",
"type": "tabs",
"children": [
{
"id": "explorer-leaf",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"autoReveal": true
},
"icon": "lucide-folder-closed",
"title": "文件列表"
}
},
{
"id": "b9cf67aaa9208e69",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
},
"icon": "lucide-search",
"title": "搜索"
}
},
{
"id": "67200df3dc2337a9",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {},
"icon": "lucide-bookmark",
"title": "书签"
}
}
]
}
],
"direction": "horizontal",
"width": 280
},
"right": {
"id": "ae919b9875c47ddb",
"type": "split",
"children": [
{
"id": "7c3ec0adb7fc4368",
"type": "tabs",
"children": [
{
"id": "dbb3910abb87a0eb",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "2、架构/01-总览/项目目录总览.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-coming-in",
"title": "README 的反向链接列表"
}
},
{
"id": "8d8766f784e14cbc",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "2、架构/01-总览/项目目录总览.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "README 的出链列表"
}
},
{
"id": "920b5e5ea8150052",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-tags",
"title": "标签"
}
},
{
"id": "baf4545002294d61",
"type": "leaf",
"state": {
"type": "all-properties",
"state": {
"sortOrder": "frequency",
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-archive",
"title": "添加笔记属性"
}
},
{
"id": "1794cfc42d4545a0",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "2、架构/01-总览/项目目录总览.md",
"followCursor": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-list",
"title": "README 的大纲"
}
}
]
}
],
"direction": "horizontal",
"width": 300,
"collapsed": true
},
"left-ribbon": {
"hiddenItems": {
"switcher:打开快速切换": false,
"command-palette:打开命令面板": false
}
},
"active": "explorer-leaf",
"lastOpenFiles": [
"5、接口/06-验收与矩阵/README.md",
"1、需求/03-调研/平台分析/Soul调研/调研/05_Soul体验与交互维度分析.md",
"1、需求/03-调研/平台分析/Soul调研/调研/README.md",
"1、需求/03-调研/平台分析/Soul调研/调研/06_参考Soul开发APP的技术基线与实现方式.md",
"1、需求/03-调研/平台分析/Soul调研/调研/04_Soul商业与运营维度分析.md",
"1、需求/03-调研/平台分析/Soul调研/调研/02_Soul技术架构与实现维度分析.md",
"1、需求/03-调研/平台分析/Soul调研/调研/03_Soul安全与风控维度分析.md",
"1、需求/03-调研/平台分析/Soul调研/调研/01_Soul产品与功能维度分析.md",
"1、需求/03-调研/平台分析/Soul调研/调研",
"1、需求/03-调研/平台分析/Soul调研/soul_post_moment_mac.sh",
"1、需求/03-调研/平台分析/Soul调研/soul_capture_addon.py",
"1、需求/03-调研/平台分析/Soul调研/run_soul_capture.sh",
"1、需求/03-调研/平台分析/Soul调研/README.md",
"1、需求/03-调研/平台分析/Soul调研/Soul项目分析.md",
"1、需求/03-调研/平台分析/Soul调研/Soul自动化方案与命令行操作.md",
"1、需求/03-调研/平台分析/Soul调研.zip",
"1、需求/03-调研/平台分析/Soul调研",
"1、需求/03-调研/平台分析/README.md",
"1、需求/03-调研/平台分析",
"8、部署/05-测试验收/wireless_frida_real_device_acceptance_20260518/真机110功能验收矩阵.json",
"8、部署/05-测试验收/wireless_frida_real_device_acceptance_20260518/真机110功能验收矩阵.md",
"8、部署/05-测试验收/wireless_frida_real_device_acceptance_20260518",
"8、部署/05-测试验收/visible_capture_fix_20260518/20260518_180208/visible_after_wakeup.png",
"8、部署/05-测试验收/visible_capture_fix_20260518/20260518_180208",
"8、部署/05-测试验收/v9fix_final_state.png",
"8、部署/05-测试验收/v9_moments_1779114104.png",
"8、部署/05-测试验收/v9_moments_1779113961.png",
"8、部署/05-测试验收/v9_final_state.png",
"8、部署/05-测试验收/v9_final_1779114109.png",
"8、部署/05-测试验收/v9_final_1779113966.png",
"8、部署/05-测试验收/v9_before_send_1779114095.png",
"8、部署/05-测试验收/v9_before_send_1779113952.png",
"8、部署/05-测试验收/v9_after_send_1779114098.png",
"8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md",
"8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/截图复核与待修正.md",
"8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_174929/真实脱线手机110功能最终效果验证报告.md",
"8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_175801/真实脱线手机110功能最终效果验证报告.md",
"8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_175801/截图复核发现.md",
"8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_175142/真实脱线手机110功能最终效果验证报告.md",
"5、接口/03-Hook与微信/API接口文档_v8fix.md",
"5、接口/06-验收与矩阵/dev_log_v6_20260518.md",
"2、架构/01-总览/项目目录总览.md",
"8、部署/05-测试验收/Frida无线控制验证报告_20260519_002820.md",
"8、部署/05-测试验收/Frida无线控制验证报告_20260518.md",
"8、部署/05-测试验收/README.md",
"5、接口/06-验收与矩阵/dev_log_v5.md"
]
}

View File

@@ -0,0 +1,7 @@
# 轻量 vault仅 开发文档/ 目录
6、后端/github-repos/
6、测试/scripts/legacy/
.git/
node_modules/
__pycache__/
*.pyc

View File

@@ -1,69 +0,0 @@
---
obsidian-color: "#1565C0"
cssclasses:
- devdoc-index
---
# 00 · 项目总览
**工作手机 SDK v3.0** 仓库顶层结构Obsidian 配色见 `.obsidian/snippets/workphone-devdoc.css`)。
---
## 根目录一览
```text
工作手机/
├── sdk/ ★ 代码真源app / agent / android-app / tests
├── 开发文档/ ★ 文档真源110 + 平台分析 + 00总览
├── 机擎/ ★ 项目管理 SKILL五人小组
├── 资料/ 外部调研;`apk_analysis/` 本地解包不入库
├── README.md 项目入口
└── .obsidian/ Obsidian 配色 snippet
└── .obsidianignore ★ 排除 sdk 解包等 25 万+ 非文档文件(防卡死)
```
**Obsidian 打不开 / 一直「加载仓库中」**
1. 确认根目录有 `.obsidianignore`**Cmd+Q** 完全退出后重开根 vault
2. 若仍卡:已清 IndexedDB 缓存后重开;或用轻量 vault → 终端执行 `open-obsidian.sh`**推荐 ASCII 路径** `~/Documents/workphone-devdoc` → 开发文档,约 400 文件)
Git 双推:`开发文档/8、部署/03-运维同步/sync_to_gitea_github.sh`
**CodeGraph符号索引**:项目根已 `codegraph init -i`Cursor MCP 见 `.cursor/mcp.json`(重启 IDE 生效。CLI`npx @colbymchenry/codegraph query "FridaManager"`
**已迁入开发文档**(根目录不再散落):
| 原路径 | 新路径 |
|--------|--------|
| `docs/` | `开发文档/8、部署/04-Gitea门户/` |
| `tools/` | `开发文档/6、测试/scripts/` |
| `verification_screenshots/` | `开发文档/6、测试/screenshots/verification_110/` |
| `local-mount-sync/` | `机擎/阿服/local-mount-sync/` |
| `补全包/` · `工作手机SDK补全包_微信Frida/` | 已删;历史 ZIP → `资料/archive/`;代码 → `sdk/` |
---
## 架构图
![工作手机项目目录总览](../2、架构/images/01-整体总览/工作手机项目目录总览.png)
```mermaid
flowchart TB
subgraph root [工作手机仓库]
SDK[sdk/ 代码]
DOC[开发文档/ 1-10 + 00]
JQ[机擎/ SKILL]
ZL[资料/ 调研]
end
SDK --> APP[sdk/app FastAPI 8899]
SDK --> AGT[sdk/agent Hook]
DOC --> T6[6、测试 scripts]
DOC --> T8[8、部署 Gitea门户]
JQ --> AFU[阿服 local-mount-sync]
DOC -.-> SDK
JQ -.-> DOC
```
详细模块拆解:[2、架构/01-总览/系统架构.md §3.0](../2、架构/01-总览/系统架构.md)
规范 Skill[机擎/阿表/开发文档结构规范/SKILL.md](../../机擎/阿表/开发文档结构规范/SKILL.md)

View File

@@ -357,7 +357,7 @@
| 时间 | 人设=浏览器 | 对话链接 | 用户对话整理/扫描 | 本轮完成 | 相关文件链接 | 总进度 | 当前进度 | 本地同步状态 |
|---|---|---|---|---|---|---:|---:|---|
| 2026-05-19 00:35 CST | Codex/本地终端未获取到 Manus/Atlas 公开链接 | 当前 Codex 本地对话未生成公开访问链接 | 用户要求安装 `/Users/karuo/Downloads/ai.zip` `/Users/karuo/Downloads/机擎.zip` 两个 AI skill参考 `iteration_20260518_185854.zip``iteration_20260518_195036.zip``iteration_20260518_213029.zip`延续工作手机开发文档和进度继续完成微信/SDK/手机控制接口并测试扫描结论两个 skill 可安装三个 iteration 包主要提示112/110项能力已规划但需真机验证与数据结构确认”;本地 SDK 存在 `skill_v2` 110动作规划`wechat_full.py` 62个新增路由`wechat_api_v9_final.js` 42个真实 RPC 导出 | 1. 已安装 `karuo-ai-unified` `jiqi-web-dev-orchestrator` 到本机 Codex skills2. 已在 `sdk/app/main.py` 挂载 `frida_wireless.router` `wechat_full.router`HTTP OpenAPI 可见 `/api/v3/frida/*` 13条和 `/api/v3/wechat/*` 64条微信相关路径3. 已完成语法编译FastAPI 离线 OpenAPIHTTP `/health` 验收4. 真机非破坏性状态采集成功设备 `xgfe65eimrrofyws` / `2312DRAABC`微信 PID `20420`当前焦点在微信朋友圈页面5. 已生成 mock 验证报告和真实覆盖矩阵明确区分 mock 通过与真机 RPC 真实覆盖 | [[开发文档/6测试/110项功能逐项确认/2026-05-19/微信SDK真实覆盖矩阵_追加版_20260519_0033.md]][[开发文档/6测试/110项功能逐项确认/2026-05-19/微信SDK真实覆盖矩阵_20260519_0033.json]][[开发文档/6测试/Frida无线控制验证报告_20260519_002820.md]]`/Users/karuo/.codex/skills/karuo-ai-unified/SKILL.md``/Users/karuo/.codex/skills/jiqi-web-dev-orchestrator/SKILL.md``sdk/app/main.py` | 52% | 本轮约 100% | 本地文件写入成功 GitHub 同步 |
| 2026-05-19 00:35 CST | Codex/本地终端未获取到 Manus/Atlas 公开链接 | 当前 Codex 本地对话未生成公开访问链接 | 用户要求安装 `/Users/karuo/Downloads/ai.zip` `/Users/karuo/Downloads/机擎.zip` 两个 AI skill参考 `iteration_20260518_185854.zip``iteration_20260518_195036.zip``iteration_20260518_213029.zip`延续工作手机开发文档和进度继续完成微信/SDK/手机控制接口并测试扫描结论两个 skill 可安装三个 iteration 包主要提示112/110项能力已规划但需真机验证与数据结构确认”;本地 SDK 存在 `skill_v2` 110动作规划`wechat_full.py` 62个新增路由`wechat_api_v9_final.js` 42个真实 RPC 导出 | 1. 已安装 `karuo-ai-unified` `jiqi-web-dev-orchestrator` 到本机 Codex skills2. 已在 `sdk/app/main.py` 挂载 `frida_wireless.router` `wechat_full.router`HTTP OpenAPI 可见 `/api/v3/frida/*` 13条和 `/api/v3/wechat/*` 64条微信相关路径3. 已完成语法编译FastAPI 离线 OpenAPIHTTP `/health` 验收4. 真机非破坏性状态采集成功设备 `xgfe65eimrrofyws` / `2312DRAABC`微信 PID `20420`当前焦点在微信朋友圈页面5. 已生成 mock 验证报告和真实覆盖矩阵明确区分 mock 通过与真机 RPC 真实覆盖 | [[开发文档/5接口/06-验收与矩阵/110项功能逐项确认/2026-05-19/微信SDK真实覆盖矩阵_追加版_20260519_0033.md]][[开发文档/5接口/06-验收与矩阵/110项功能逐项确认/2026-05-19/微信SDK真实覆盖矩阵_20260519_0033.json]][[开发文档/8部署/05-测试验收/Frida无线控制验证报告_20260519_002820.md]]`/Users/karuo/.codex/skills/karuo-ai-unified/SKILL.md``/Users/karuo/.codex/skills/jiqi-web-dev-orchestrator/SKILL.md``sdk/app/main.py` | 52% | 本轮约 100% | 本地文件写入成功 GitHub 同步 |
### 卡若AI复盘2026-05-19 00:35

View File

@@ -5,6 +5,49 @@
---
## 2026-05-24 18:00 | 家里 NAS 工作手机网站部署完成
### 执行人:@阿服(部署)
### 完成内容
- [x] 家里 Station192.168.110.29 · DS213j原生部署工作手机网站无 DockerPython 3.8 armv7
- [x] 精简依赖 `requirements.nas-armv7.txt``motor`/`aiohttp` 可选降级
- [x] SDK 监听 **8899**,控制台 `/hub` 内网验收 **200**
- [x] frpc 增加 `[home-nas-workphone]` 8899→8889外网待 frps 恢复)
- [x] 脚本 `sdk/scripts/deploy_home_station.sh`
### 访问地址
| 场景 | URL |
|------|-----|
| **内网控制台(可用)** | http://192.168.110.29:8899/hub |
| **内网 API/文档** | http://192.168.110.29:8899/docs |
| **外网控制台frps 恢复后)** | http://opennas2.quwanzhi.com:8889/hub |
### 进度
- 家里 NAS 工作手机网站部署:**100%**(内网可运行)
- 外网穿透:**待 frps42.194.245.239:7000恢复**
---
### 执行人:@阿桥(接口)+ @阿端(联调)
### 完成内容
- [x] **Hook 动作别名补全** `hook_executor.py`unified/ADB 方法名 → Frida RPCrecall→revoke、search_contact→search_contacts 等 30+ 别名)
- [x] **补 RPC** `wechat_hook_v2.js`getSafetyCenter / checkRestrictions / getTopStories / getWechatSteps / getStickerList / showPaymentCode
- [x] **send_message 走 Hook 主控**ChannelRouter 微信强制 `Channel.HOOK``_send_via_hook` 解析 ADB serial
- [x] **forward/recall** 接口补 `msg_svr_id` 字段透传
- [x] 真机 `xgfe65eimrrofyws` 安全组 E2E**29/29 全绿**channel=frida/hook
- [x] 验收脚本 `sdk/scripts/matrix_v8056_real_device_verify.py` + 报告 `sdk/tmp/matrix_v8056_verify_*`
- [x] 矩阵文档更新:`workphone-devdoc/.../微信全功能矩阵_v8.0.56.md` 引擎改为 Frida Hook + 真机验收戳
### 进度
- 矩阵安全只读组真机验收:**100%**29/29
- 矩阵全量 97 端点(含写操作/支付/加好友):**待 `--full` 续验**
- 总进度:**99.7%**
---
## 2026-05-24 09:30 | 接口全量目录 + 存客宝对接架构图
### 执行人:@阿桥(接口)+ @阿表(文档结构)
@@ -32,10 +75,10 @@
### 完成内容
- [x] `docs/``开发文档/8、部署/04-Gitea门户/``publish_wiki.py` / `sync_when_online.sh` 路径修复
- [x] `tools/``开发文档/6、测试/scripts/` + `_repo_root.py`;根目录 46 个 legacy 脚本/JSON → `scripts/legacy/`
- [x] `tools/``开发文档/8、部署/05-测试验收/scripts/` + `_repo_root.py`;根目录 46 个 legacy 脚本/JSON → `scripts/legacy/`
- [x] `verification_screenshots/``screenshots/verification_110/``sdk/tests/run_live_verification.py` 对齐
- [x] `local-mount-sync/``机擎/阿服/local-mount-sync/`
- [x] 新增 `开发文档/00-项目总览/README.md`、各层 READMESkill §九 根目录迁入速查
- [x] 新增 `开发文档/2、架构/01-总览/项目目录总览.md`、各层 READMESkill §九 根目录迁入速查
- [x] Obsidian `workphone-devdoc.css` 扩展00总览/6测试/scripts/机擎/sdkworkspace 去旧路径
- [x] 架构图 `2、架构/images/01-整体总览/工作手机项目目录总览.png`
@@ -55,7 +98,7 @@
- [x] 唯一未收编资产 `wechat_hook_bridge.js``sdk/agent/hook/wechat_hook_bridge.js`
- [x] 历史 ZIP → `资料/archive/微信Frida_SDK_20260518_补全包.zip` + `资料/archive/README.md`
- [x] 移除根目录 `补全包/``工作手机SDK补全包_微信Frida/`(代码已在主线 `sdk/`
- [x] `开发文档/6、测试/scripts/extract_wechat_sdk_control_interfaces_1838.py` 扫描源仅保留 `sdk/` + 测试脚本
- [x] `开发文档/8、部署/05-测试验收/scripts/extract_wechat_sdk_control_interfaces_1838.py` 扫描源仅保留 `sdk/` + 测试脚本
- [x] 主手册 v2.2、Wiki 摘要、hook README 路径对齐
- [x] `.cursor/rules/codegraph.mdc` + `codegraph init -i` + `codegraph install -l local`MCP 写入 `.cursor/mcp.json`
@@ -138,7 +181,7 @@
### 完成内容
- [x] **阿机**:定位 V3 检测脚本 `tools/build_wechat_sdk_true_control_matrix_v3_1858.py``parse_hook_exports()``r'rpc\.exports\s*=\s*\{(?P<body>.*?)}\s*;'` 非贪婪正则,遇到第一个内层 `return { ... };` 即截断;导致 V4 矩阵把 `wechat_hook_v2.js` 后段 122 个真实 RPC 全部误标「未确认导出」。
- [x] **阿桥**:新增 `tools/build_wechat_sdk_true_control_matrix_v5_corrigendum.py`:用「定位 `rpc.exports = {` + 找紧跟行首的 `\n};\n` 闭合」替代非贪婪正则,按 4 空格缩进抓顶层方法名;并跟随 `_xxxInternal` / `_getXxxFromDB` 内部委托判定实现类型(`sql_or_java` / `intent_only` / `mixed_sql_intent` / `simple_return`)。
- [x] **阿表**:产出 `开发文档/6、测试/110项功能逐项确认/2026-05-18/微信SDK真实控制接口矩阵V5_检测脚本纠偏_追加版_145843.md` + `.json`
- [x] **阿表**:产出 `开发文档/5、接口/06-验收与矩阵/110项功能逐项确认/2026-05-18/微信SDK真实控制接口矩阵V5_检测脚本纠偏_追加版_145843.md` + `.json`
- `wechat_hook_v2.js` 真实 `rpc.exports` 顶层方法数:**126**
- `wechat_hook_ckb_patch.js` 扩展 RPC**6**getContactsDetail / getContactDetail / getGroupMembersDetail / startFriendAddListener / startGroupMemberListener / batchSyncContacts
- V4 标记的 32 条「未确认导出」:**32/32 全部为脚本误判**,实际全部已在 wechat_hook_v2.js 导出(含 `sendMessage` / `getMessages` / `addFriend` / `acceptFriend` / `getContacts` / `postMoments` / `getProfile` 等核心动作)。
@@ -3185,3 +3228,17 @@ v3.1: Agent 内置 AI Brain → 心跳驱动自主决策 → Frida优先/u2兜
4. 手册:`9、手册/02-操作指南/Obsidian打开说明.md`
**进度**: 99.5%Obsidian 文档入口已恢复)
---
### 2026-05-24 | 开发文档顶层仅 110Phase B
**完成项**:
1. 取消顶层 `6、测试` `00-项目总览` `5、开发日志` `5、接口文档` `平台分析`
2. 真机验收 → `8、部署/05-测试验收/`;接口矩阵+开发日志 → `5、接口/06-验收与矩阵/`
3. 项目总览 → `2、架构/01-总览/项目目录总览.md`;平台分析 → `1、需求/03-调研/平台分析/`
4. 全仓路径 sed + `validate_doc_paths.sh` / CI 更新Obsidian CSS/workspace 同步
**进度**: 99.5%
---

View File

@@ -21,7 +21,7 @@
已完成Phase 8: Frida全功能████████████████████████ 100% ← 110个Hook操作/24模块/v3.1
进行中Phase 9: 自动注册) ████████████████████░░░░ 85% ← 全自动注册引擎/SIM读取/验证码
已完成Phase 10: v4.0 APK ████████████████████████ 100% ← AI数智员工统一安装包28模块
已完成Phase 11: 项目结构) ████████████████████████ 100% ← 根目录非SDK收编、00-项目总览、Obsidian配色+图谱
已完成Phase 11: 项目结构) ████████████████████████ 100% ← 根目录非SDK收编、110顶层、Obsidian配色+图谱
```
---

View File

@@ -7,3 +7,4 @@ obsidian-color: "#5E35B1"
| 文档 | 说明 |
|------|------|
| [技术调研与方案选型.md](技术调研与方案选型.md) | 奥创拆解、Frida/Hook 方案对比、选型结论 |
| [平台分析/](平台分析/) | Soul 等平台专项调研(按平台分子目录) |

View File

@@ -0,0 +1,50 @@
# 00 · 项目目录总览
**工作手机 SDK v3.0** 仓库顶层结构Obsidian 配色见 `.obsidian/snippets/workphone-devdoc.css`)。
> 开发文档顶层**仅 110** 十个编号目录;本页位于 **2、架构/01-总览/**。
---
## 根目录一览
```text
工作手机/
├── sdk/ ★ 代码真源
├── 开发文档/ ★ 110 文档真源
├── 机擎/ ★ 项目管理 SKILL
├── 资料/ 外部调研
└── README.md
```
Git 双推:`开发文档/8、部署/03-运维同步/sync_to_gitea_github.sh`
**文档分层10 个编号)**
| 编号 | 目录 | 要点 |
|------|------|------|
| 5 | 接口 | 规范 + **06-验收与矩阵**(接口矩阵/开发日志) |
| 6 | 后端 | 服务端 + Agent |
| 8 | 部署 | 环境 + Hook + **05-测试验收**(脚本/截图/真机报告) |
| 10 | 项目管理 | 进度总表 + 工作日志 |
---
## 架构图
![工作手机项目目录总览](../images/01-整体总览/工作手机项目目录总览.png)
```mermaid
flowchart TB
subgraph root [工作手机仓库]
SDK[sdk/ 代码]
DOC[开发文档/ 1-10]
JQ[机擎/ SKILL]
end
SDK --> APP[sdk/app 8899]
DOC --> J5[5、接口 06矩阵]
DOC --> J8[8、部署 05测试]
JQ -.-> DOC
```
详细模块:[系统架构.md §3.0](系统架构.md) · 规范:[机擎/阿表/开发文档结构规范/SKILL.md](../../../机擎/阿表/开发文档结构规范/SKILL.md)

View File

@@ -585,4 +585,4 @@ Content-Type: application/json
- [API架构与交互流程图](05-交互图/API架构与交互流程图.html)
- [存客宝对接架构图](05-交互图/存客宝对接架构图.html)
**维护**:接口变更后重新运行 `开发文档/6、测试/scripts/export_api_catalog.py`(或让 @阿桥 从 main.py 扫描更新)。
**维护**:接口变更后重新运行 `开发文档/8、部署/05-测试验收/scripts/export_api_catalog.py`(或让 @阿桥 从 main.py 扫描更新)。

View File

@@ -208,7 +208,7 @@ curl -s -X POST http://127.0.0.1:8899/api/v3/devices/{device_id}/ai/task \
-d '{"instruction":"检查微信未读","priority":5}'
```
**一键冒烟脚本**`开发文档/6、测试/scripts/workphone_bff_smoke.sh`
**一键冒烟脚本**`开发文档/8、部署/05-测试验收/scripts/workphone_bff_smoke.sh`
**2026-05-24 实测**SDK healthy2 台 WS 在线;`/ai/status``/ai/task` 返回 200。

View File

@@ -1,8 +1,10 @@
# 微信全功能矩阵 — WeChat 8.0.56
> 设备: Redmi Note 13 5G | Android 13 | SDK targetSdk=34
> 引擎: WeChatADBEngine v2.0ADB UI 自动化,无需 Root
> 引擎: Frida Hook v3.1真机主控WECHAT_BACKEND_ONLY
> 更新: 2026-03-14
> **真机验收**: 2026-05-24 | 设备 `xgfe65eimrrofyws` | Frida Hook | 安全组 **29/29** 通过
> 引擎已切换为 **Frida Hook 主控**(非 ADB UI详见 `sdk/scripts/matrix_v8056_real_device_verify.py`
## 功能覆盖统计

View File

@@ -143,7 +143,7 @@
| 证据 | 路径 |
|---|---|
| 110项矩阵 | `/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/6、测试/wireless_frida_real_device_acceptance_20260518/真机110功能验收矩阵.json` |
| 最新真机报告目录 | `/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227` |
| 最新结果JSON | `/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/real_device_110_effect_results.json` |
| 110项矩阵 | `/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/8、部署/05-测试验收/wireless_frida_real_device_acceptance_20260518/真机110功能验收矩阵.json` |
| 最新真机报告目录 | `/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227` |
| 最新结果JSON | `/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/real_device_110_effect_results.json` |

View File

@@ -8,122 +8,122 @@
## 当前确认口径
本轮从验收矩阵读取前110项功能并合并最新真机验证结果目录`开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227`。其中只读项优先通过无线Frida RPC验证安全UI项通过无线ADB验证高风险外发或改写项只允许安全闸与空参数契约验证不触发真实添加好友、群发、朋友圈、解封、支付、删除或资料改写。
本轮从验收矩阵读取前110项功能并合并最新真机验证结果目录`开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227`。其中只读项优先通过无线Frida RPC验证安全UI项通过无线ADB验证高风险外发或改写项只允许安全闸与空参数契约验证不触发真实添加好友、群发、朋友圈、解封、支付、删除或资料改写。
## 110项功能总表
| 序号 | 功能名 | 中文拆解 | 功能要做什么 | 类型 | 风险/边界 | 测试方式 | 最新状态 | 结果断言 | 证据链接 |
|---:|---|---|---|---|---|---|---|---|---|
| 1 | `browseChannels` | browse Channels | 浏览或读取相关页面/内容状态。 | frida_rpc | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 2 | `changePassword` | change Password | 修改类能力,当前仅做安全闸或契约确认。 | frida_rpc | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 3 | `checkAccountStatus` | check Account Status | 检查账号、环境或兼容状态。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 4 | `createLabel` | create Label | 创建类能力,当前仅做安全闸或契约确认。 | frida_rpc | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 5 | `enableFingerprint` | enable Fingerprint | 启用配置类能力,当前仅做安全闸或契约确认。 | frida_rpc | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 6 | `generateMyQrCode` | generate My Qr Code | 生成类能力,当前仅做接口存在和安全边界确认。 | frida_rpc | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 7 | `getContactInfo` | get Contact Info | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 8 | `getContacts` | get Contacts | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 9 | `getContactsByLabel` | get Contacts By Label | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 10 | `getDeviceInfo` | get Device Info | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 11 | `getFavorites` | get Favorites | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 12 | `getHookStatus` | get Hook Status | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 13 | `getLabels` | get Labels | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 14 | `getMessages` | get Messages | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 15 | `getNetworkInfo` | get Network Info | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 16 | `getProcessInfo` | get Process Info | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 17 | `getProfile` | get Profile | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 18 | `getRecentMessages` | get Recent Messages | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 19 | `getRecentMiniPrograms` | get Recent Mini Programs | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 20 | `getStorageInfo` | get Storage Info | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 21 | `getTransactionHistory` | get Transaction History | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 22 | `getVersionCompat` | get Version Compat | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 23 | `getWalletBalance` | get Wallet Balance | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 24 | `getWechatVersion` | get Wechat Version | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 25 | `globalSearch` | global Search | 全局搜索类只读能力。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 26 | `openMiniProgram` | open Mini Program | 打开应用、页面或小程序的安全UI能力。 | frida_rpc | UI安全操作 | wireless-adb-ui | 通过 | 真机已执行安全UI动作open_wechat | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 27 | `pinChat` | pin Chat | 置顶/固定类改写能力,当前仅做安全闸。 | frida_rpc | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 28 | `ping` | ping | 置顶/固定类改写能力,当前仅做安全闸。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 29 | `receiveRedPacket` | receive Red Packet | 领取类高风险能力,当前只做安全闸。 | frida_rpc | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 30 | `receiveTransfer` | receive Transfer | 领取类高风险能力,当前只做安全闸。 | frida_rpc | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 31 | `scanQrCode` | scan Qr Code | 扫码入口能力,当前只做契约/安全验证。 | frida_rpc | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 32 | `searchContacts` | search Contacts | 搜索联系人或消息的只读能力。 | frida_rpc | 待人工确认 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 33 | `searchMessages` | search Messages | 搜索联系人或消息的只读能力。 | frida_rpc | 待人工确认 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 34 | `GET /devices` | GET /devices | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 35 | `GET /devices/{serial}` | GET /devices/{serial} | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 36 | `GET /devices/{serial}/app/current` | GET /devices/{serial}/app/current | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 37 | `GET /devices/{serial}/app/list` | GET /devices/{serial}/app/list | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 38 | `GET /devices/{serial}/ui-tree` | GET /devices/{serial}/ui-tree | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 39 | `GET /scan` | GET /scan | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 40 | `click` | click | ADB点击类安全UI能力。 | python_function | UI安全操作 | wireless-adb-ui | 通过 | 真机已执行安全UI动作open_wechat | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 41 | `click_text` | click text | ADB点击类安全UI能力。 | python_function | UI安全操作 | wireless-adb-ui | 通过 | 真机已执行安全UI动作input_safe_text | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 42 | `current_app` | current app | 读取当前应用或页面状态。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 43 | `get_device_info` | get device info | 读取资料、设备、消息、状态或列表数据。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 44 | `get_ui_tree` | get ui tree | 读取资料、设备、消息、状态或列表数据。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 45 | `input_text` | input text | ADB输入类安全UI能力。 | python_function | UI安全操作 | wireless-adb-ui | 通过 | 真机已执行安全UI动作input_safe_text | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 46 | `list_apps` | list apps | 列表读取能力。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 47 | `list_devices` | list devices | 列表读取能力。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 48 | `press_key` | press key | 项目能力接口契约、执行日志与安全边界验证。 | python_function | UI安全操作 | wireless-adb-ui | 通过 | 真机已执行安全UI动作open_wechat | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 49 | `scan_devices` | scan devices | 扫码入口能力,当前只做契约/安全验证。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 50 | `screenshot` | screenshot | 截图采集能力。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 51 | `start_app` | start app | 项目能力接口契约、执行日志与安全边界验证。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 52 | `stop_app` | stop app | 项目能力接口契约、执行日志与安全边界验证。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 53 | `swipe` | swipe | 滑动类UI能力。 | python_function | UI安全操作 | wireless-adb-ui | 通过 | 真机已执行安全UI动作safe_scroll | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 54 | `GET /devices` | GET /devices | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 55 | `GET /devices/{device_id}` | GET /devices/{device_id} | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 56 | `GET /devices/{device_id}/ai/status` | GET /devices/{device_id}/ai/status | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 57 | `GET /devices/{device_id}/guard-events` | GET /devices/{device_id}/guard-events | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 58 | `GET /devices/{device_id}/health` | GET /devices/{device_id}/health | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 59 | `GET /devices/{device_id}/health/events` | GET /devices/{device_id}/health/events | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 60 | `GET /devices/{device_id}/heartbeat` | GET /devices/{device_id}/heartbeat | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 61 | `GET /devices/{device_id}/ui-tree` | GET /devices/{device_id}/ui-tree | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 62 | `GET /guard-events/all` | GET /guard-events/all | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 63 | `GET /heartbeat/dashboard` | GET /heartbeat/dashboard | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 64 | `GET /heartbeat/events` | GET /heartbeat/events | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 65 | `ai_execute` | ai execute | 项目能力接口契约、执行日志与安全边界验证。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 66 | `all_health_events` | all health events | 项目能力接口契约、执行日志与安全边界验证。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 67 | `click` | click | ADB点击类安全UI能力。 | python_function | UI安全操作 | wireless-adb-ui | 通过 | 真机已执行安全UI动作open_wechat | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 68 | `click_text` | click text | ADB点击类安全UI能力。 | python_function | UI安全操作 | wireless-adb-ui | 通过 | 真机已执行安全UI动作input_safe_text | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 69 | `device_health` | device health | 项目能力接口契约、执行日志与安全边界验证。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 70 | `device_health_events` | device health events | 项目能力接口契约、执行日志与安全边界验证。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 71 | `execute_script` | execute script | 命令或批量执行能力。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 72 | `get_ai_brain_status` | get ai brain status | 读取资料、设备、消息、状态或列表数据。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 73 | `get_all_guard_events` | get all guard events | 读取资料、设备、消息、状态或列表数据。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 74 | `get_device` | get device | 读取资料、设备、消息、状态或列表数据。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 75 | `get_device_heartbeat` | get device heartbeat | 读取资料、设备、消息、状态或列表数据。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 76 | `get_devices` | get devices | 读取资料、设备、消息、状态或列表数据。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 77 | `get_guard_events` | get guard events | 读取资料、设备、消息、状态或列表数据。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 78 | `get_ui_tree` | get ui tree | 读取资料、设备、消息、状态或列表数据。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 79 | `heartbeat_dashboard` | heartbeat dashboard | 项目能力接口契约、执行日志与安全边界验证。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 80 | `input_text` | input text | ADB输入类安全UI能力。 | python_function | UI安全操作 | wireless-adb-ui | 通过 | 真机已执行安全UI动作input_safe_text | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 81 | `push_ai_task` | push ai task | 项目能力接口契约、执行日志与安全边界验证。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 82 | `push_standing_order` | push standing order | 项目能力接口契约、执行日志与安全边界验证。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 83 | `queue_ai_task` | queue ai task | 任务入队或异步执行记录能力。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 84 | `screenshot` | screenshot | 截图采集能力。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 85 | `swipe` | swipe | 滑动类UI能力。 | python_function | UI安全操作 | wireless-adb-ui | 通过 | 真机已执行安全UI动作safe_scroll | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 86 | `GET /actions` | GET /actions | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 87 | `GET /deploy/install-script` | GET /deploy/install-script | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 88 | `GET /device/{device_id}` | GET /device/{device_id} | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 89 | `GET /devices` | GET /devices | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 90 | `GET /status` | GET /status | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 91 | `connect_device` | connect device | 设备连接管理能力。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 92 | `disconnect_device` | disconnect device | 设备断开管理能力。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 93 | `discover_devices` | discover devices | 设备发现能力。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 94 | `execute_batch` | execute batch | 命令或批量执行能力。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 95 | `execute_command` | execute command | 命令或批量执行能力。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 96 | `frida_status` | frida status | Frida服务状态或Hook状态能力。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 97 | `generate_deploy_script` | generate deploy script | 生成类能力,当前仅做接口存在和安全边界确认。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 98 | `get_device` | get device | 读取资料、设备、消息、状态或列表数据。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 99 | `get_install_command` | get install command | 读取资料、设备、消息、状态或列表数据。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 100 | `list_devices` | list devices | 列表读取能力。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 101 | `list_supported_actions` | list supported actions | 列表读取能力。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 102 | `GET /account/status` | GET /account/status | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 103 | `GET /actions` | GET /actions | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 104 | `GET /channels/browse` | GET /channels/browse | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 105 | `GET /device-info` | GET /device-info | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 106 | `GET /favorites` | GET /favorites | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 107 | `GET /hook/process-info` | GET /hook/process-info | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 108 | `GET /hook/status` | GET /hook/status | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 109 | `GET /hook/wechat-version` | GET /hook/wechat-version | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 110 | `GET /mini-program/recent` | GET /mini-program/recent | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 1 | `browseChannels` | browse Channels | 浏览或读取相关页面/内容状态。 | frida_rpc | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 2 | `changePassword` | change Password | 修改类能力,当前仅做安全闸或契约确认。 | frida_rpc | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 3 | `checkAccountStatus` | check Account Status | 检查账号、环境或兼容状态。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 4 | `createLabel` | create Label | 创建类能力,当前仅做安全闸或契约确认。 | frida_rpc | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 5 | `enableFingerprint` | enable Fingerprint | 启用配置类能力,当前仅做安全闸或契约确认。 | frida_rpc | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 6 | `generateMyQrCode` | generate My Qr Code | 生成类能力,当前仅做接口存在和安全边界确认。 | frida_rpc | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 7 | `getContactInfo` | get Contact Info | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 8 | `getContacts` | get Contacts | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 9 | `getContactsByLabel` | get Contacts By Label | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 10 | `getDeviceInfo` | get Device Info | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 11 | `getFavorites` | get Favorites | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 12 | `getHookStatus` | get Hook Status | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 13 | `getLabels` | get Labels | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 14 | `getMessages` | get Messages | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 15 | `getNetworkInfo` | get Network Info | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 16 | `getProcessInfo` | get Process Info | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 17 | `getProfile` | get Profile | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 18 | `getRecentMessages` | get Recent Messages | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 19 | `getRecentMiniPrograms` | get Recent Mini Programs | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 20 | `getStorageInfo` | get Storage Info | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 21 | `getTransactionHistory` | get Transaction History | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 22 | `getVersionCompat` | get Version Compat | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 23 | `getWalletBalance` | get Wallet Balance | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 24 | `getWechatVersion` | get Wechat Version | 读取资料、设备、消息、状态或列表数据。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 25 | `globalSearch` | global Search | 全局搜索类只读能力。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 26 | `openMiniProgram` | open Mini Program | 打开应用、页面或小程序的安全UI能力。 | frida_rpc | UI安全操作 | wireless-adb-ui | 通过 | 真机已执行安全UI动作open_wechat | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 27 | `pinChat` | pin Chat | 置顶/固定类改写能力,当前仅做安全闸。 | frida_rpc | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 28 | `ping` | ping | 置顶/固定类改写能力,当前仅做安全闸。 | frida_rpc | 只读可真机执行 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 29 | `receiveRedPacket` | receive Red Packet | 领取类高风险能力,当前只做安全闸。 | frida_rpc | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 30 | `receiveTransfer` | receive Transfer | 领取类高风险能力,当前只做安全闸。 | frida_rpc | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 31 | `scanQrCode` | scan Qr Code | 扫码入口能力,当前只做契约/安全验证。 | frida_rpc | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 32 | `searchContacts` | search Contacts | 搜索联系人或消息的只读能力。 | frida_rpc | 待人工确认 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 33 | `searchMessages` | search Messages | 搜索联系人或消息的只读能力。 | frida_rpc | 待人工确认 | wireless-frida-rpc | 通过 | 真机RPC已调用返回结构可解析如返回缺参/空数据,也记录为接口契约有效 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 34 | `GET /devices` | GET /devices | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 35 | `GET /devices/{serial}` | GET /devices/{serial} | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 36 | `GET /devices/{serial}/app/current` | GET /devices/{serial}/app/current | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 37 | `GET /devices/{serial}/app/list` | GET /devices/{serial}/app/list | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 38 | `GET /devices/{serial}/ui-tree` | GET /devices/{serial}/ui-tree | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 39 | `GET /scan` | GET /scan | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 40 | `click` | click | ADB点击类安全UI能力。 | python_function | UI安全操作 | wireless-adb-ui | 通过 | 真机已执行安全UI动作open_wechat | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 41 | `click_text` | click text | ADB点击类安全UI能力。 | python_function | UI安全操作 | wireless-adb-ui | 通过 | 真机已执行安全UI动作input_safe_text | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 42 | `current_app` | current app | 读取当前应用或页面状态。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 43 | `get_device_info` | get device info | 读取资料、设备、消息、状态或列表数据。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 44 | `get_ui_tree` | get ui tree | 读取资料、设备、消息、状态或列表数据。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 45 | `input_text` | input text | ADB输入类安全UI能力。 | python_function | UI安全操作 | wireless-adb-ui | 通过 | 真机已执行安全UI动作input_safe_text | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 46 | `list_apps` | list apps | 列表读取能力。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 47 | `list_devices` | list devices | 列表读取能力。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 48 | `press_key` | press key | 项目能力接口契约、执行日志与安全边界验证。 | python_function | UI安全操作 | wireless-adb-ui | 通过 | 真机已执行安全UI动作open_wechat | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 49 | `scan_devices` | scan devices | 扫码入口能力,当前只做契约/安全验证。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 50 | `screenshot` | screenshot | 截图采集能力。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 51 | `start_app` | start app | 项目能力接口契约、执行日志与安全边界验证。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 52 | `stop_app` | stop app | 项目能力接口契约、执行日志与安全边界验证。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 53 | `swipe` | swipe | 滑动类UI能力。 | python_function | UI安全操作 | wireless-adb-ui | 通过 | 真机已执行安全UI动作safe_scroll | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 54 | `GET /devices` | GET /devices | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 55 | `GET /devices/{device_id}` | GET /devices/{device_id} | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 56 | `GET /devices/{device_id}/ai/status` | GET /devices/{device_id}/ai/status | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 57 | `GET /devices/{device_id}/guard-events` | GET /devices/{device_id}/guard-events | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 58 | `GET /devices/{device_id}/health` | GET /devices/{device_id}/health | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 59 | `GET /devices/{device_id}/health/events` | GET /devices/{device_id}/health/events | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 60 | `GET /devices/{device_id}/heartbeat` | GET /devices/{device_id}/heartbeat | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 61 | `GET /devices/{device_id}/ui-tree` | GET /devices/{device_id}/ui-tree | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 62 | `GET /guard-events/all` | GET /guard-events/all | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 63 | `GET /heartbeat/dashboard` | GET /heartbeat/dashboard | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 64 | `GET /heartbeat/events` | GET /heartbeat/events | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 65 | `ai_execute` | ai execute | 项目能力接口契约、执行日志与安全边界验证。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 66 | `all_health_events` | all health events | 项目能力接口契约、执行日志与安全边界验证。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 67 | `click` | click | ADB点击类安全UI能力。 | python_function | UI安全操作 | wireless-adb-ui | 通过 | 真机已执行安全UI动作open_wechat | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 68 | `click_text` | click text | ADB点击类安全UI能力。 | python_function | UI安全操作 | wireless-adb-ui | 通过 | 真机已执行安全UI动作input_safe_text | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 69 | `device_health` | device health | 项目能力接口契约、执行日志与安全边界验证。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 70 | `device_health_events` | device health events | 项目能力接口契约、执行日志与安全边界验证。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 71 | `execute_script` | execute script | 命令或批量执行能力。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 72 | `get_ai_brain_status` | get ai brain status | 读取资料、设备、消息、状态或列表数据。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 73 | `get_all_guard_events` | get all guard events | 读取资料、设备、消息、状态或列表数据。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 74 | `get_device` | get device | 读取资料、设备、消息、状态或列表数据。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 75 | `get_device_heartbeat` | get device heartbeat | 读取资料、设备、消息、状态或列表数据。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 76 | `get_devices` | get devices | 读取资料、设备、消息、状态或列表数据。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 77 | `get_guard_events` | get guard events | 读取资料、设备、消息、状态或列表数据。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 78 | `get_ui_tree` | get ui tree | 读取资料、设备、消息、状态或列表数据。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 79 | `heartbeat_dashboard` | heartbeat dashboard | 项目能力接口契约、执行日志与安全边界验证。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 80 | `input_text` | input text | ADB输入类安全UI能力。 | python_function | UI安全操作 | wireless-adb-ui | 通过 | 真机已执行安全UI动作input_safe_text | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 81 | `push_ai_task` | push ai task | 项目能力接口契约、执行日志与安全边界验证。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 82 | `push_standing_order` | push standing order | 项目能力接口契约、执行日志与安全边界验证。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 83 | `queue_ai_task` | queue ai task | 任务入队或异步执行记录能力。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 84 | `screenshot` | screenshot | 截图采集能力。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 85 | `swipe` | swipe | 滑动类UI能力。 | python_function | UI安全操作 | wireless-adb-ui | 通过 | 真机已执行安全UI动作safe_scroll | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 86 | `GET /actions` | GET /actions | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 87 | `GET /deploy/install-script` | GET /deploy/install-script | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 88 | `GET /device/{device_id}` | GET /device/{device_id} | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 89 | `GET /devices` | GET /devices | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 90 | `GET /status` | GET /status | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 91 | `connect_device` | connect device | 设备连接管理能力。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 92 | `disconnect_device` | disconnect device | 设备断开管理能力。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 93 | `discover_devices` | discover devices | 设备发现能力。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 94 | `execute_batch` | execute batch | 命令或批量执行能力。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 95 | `execute_command` | execute command | 命令或批量执行能力。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 96 | `frida_status` | frida status | Frida服务状态或Hook状态能力。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 97 | `generate_deploy_script` | generate deploy script | 生成类能力,当前仅做接口存在和安全边界确认。 | python_function | 待人工确认 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 98 | `get_device` | get device | 读取资料、设备、消息、状态或列表数据。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 99 | `get_install_command` | get install command | 读取资料、设备、消息、状态或列表数据。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 100 | `list_devices` | list devices | 列表读取能力。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 101 | `list_supported_actions` | list supported actions | 列表读取能力。 | python_function | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 102 | `GET /account/status` | GET /account/status | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 103 | `GET /actions` | GET /actions | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 104 | `GET /channels/browse` | GET /channels/browse | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 105 | `GET /device-info` | GET /device-info | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 106 | `GET /favorites` | GET /favorites | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 107 | `GET /hook/process-info` | GET /hook/process-info | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 108 | `GET /hook/status` | GET /hook/status | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 109 | `GET /hook/wechat-version` | GET /hook/wechat-version | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
| 110 | `GET /mini-program/recent` | GET /mini-program/recent | 后端GET路由契约与状态读取验证。 | fastapi_route | 只读可真机执行 | backend-contract-log | 通过 | 源码中已定位 | [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md]] |
## 逐项完成原则
@@ -142,8 +142,8 @@
| 文件 | 说明 |
|---|---|
| `/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/6、测试/wireless_frida_real_device_acceptance_20260518/真机110功能验收矩阵.json` | 110项验收矩阵源文件 |
| `/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md` | 最新110项真机验收报告 |
| `/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/backend_logs/backend_execution_events.jsonl` | 后端逐项执行日志 |
| `/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/screenshots` | 统一截图目录 |
| `/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/8、部署/05-测试验收/wireless_frida_real_device_acceptance_20260518/真机110功能验收矩阵.json` | 110项验收矩阵源文件 |
| `/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/真实脱线手机110功能最终效果验证报告.md` | 最新110项真机验收报告 |
| `/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/backend_logs/backend_execution_events.jsonl` | 后端逐项执行日志 |
| `/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/screenshots` | 统一截图目录 |

View File

@@ -564,6 +564,6 @@
| 类型 | 路径 |
|---|---|
| CSV 矩阵 | `/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/6、测试/110项功能逐项确认/2026-05-18/微信SDK服务器控制接口矩阵_追加版_183545.csv` |
| JSON 明细 | `/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/6、测试/110项功能逐项确认/2026-05-18/微信SDK服务器控制接口矩阵_追加版_183545.json` |
| 本报告 | `/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/6、测试/110项功能逐项确认/2026-05-18/微信SDK服务器控制接口扫描_追加版_183545.md` |
| CSV 矩阵 | `/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/5、接口/06-验收与矩阵/110项功能逐项确认/2026-05-18/微信SDK服务器控制接口矩阵_追加版_183545.csv` |
| JSON 明细 | `/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/5、接口/06-验收与矩阵/110项功能逐项确认/2026-05-18/微信SDK服务器控制接口矩阵_追加版_183545.json` |
| 本报告 | `/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/5、接口/06-验收与矩阵/110项功能逐项确认/2026-05-18/微信SDK服务器控制接口扫描_追加版_183545.md` |

View File

@@ -141,7 +141,7 @@
## 5. 文件链接
- CSV矩阵`/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/6、测试/110项功能逐项确认/2026-05-18/微信SDK真实控制接口矩阵V3_追加版_185935.csv`
- JSON矩阵`/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/6、测试/110项功能逐项确认/2026-05-18/微信SDK真实控制接口矩阵V3_追加版_185935.json`
- CSV矩阵`/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/5、接口/06-验收与矩阵/110项功能逐项确认/2026-05-18/微信SDK真实控制接口矩阵V3_追加版_185935.csv`
- JSON矩阵`/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/5、接口/06-验收与矩阵/110项功能逐项确认/2026-05-18/微信SDK真实控制接口矩阵V3_追加版_185935.json`
- 生成脚本:`/Users/karuo/Documents/开发/2、私域银行/工作手机/tools/build_wechat_sdk_true_control_matrix_v3_1858.py`

View File

@@ -144,6 +144,6 @@
## 5. 文件链接
- CSV`/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/6、测试/110项功能逐项确认/2026-05-18/微信SDK真实控制接口矩阵V4_追加版_190130.csv`
- JSON`/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/6、测试/110项功能逐项确认/2026-05-18/微信SDK真实控制接口矩阵V4_追加版_190130.json`
- CSV`/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/5、接口/06-验收与矩阵/110项功能逐项确认/2026-05-18/微信SDK真实控制接口矩阵V4_追加版_190130.csv`
- JSON`/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/5、接口/06-验收与矩阵/110项功能逐项确认/2026-05-18/微信SDK真实控制接口矩阵V4_追加版_190130.json`
- 脚本:`/Users/karuo/Documents/开发/2、私域银行/工作手机/tools/build_wechat_sdk_true_control_matrix_v4_1905.py`

View File

@@ -1,6 +1,6 @@
[
{
"path": "开发文档/6、测试/live_verify_20260518/live_verify_results.json",
"path": "开发文档/8、部署/05-测试验收/live_verify_20260518/live_verify_results.json",
"ok": true,
"top_type": "dict",
"top_keys": [
@@ -16,7 +16,7 @@
"error": ""
},
{
"path": "开发文档/6、测试/live_verify_20260518/接口清单.json",
"path": "开发文档/8、部署/05-测试验收/live_verify_20260518/接口清单.json",
"ok": true,
"top_type": "dict",
"top_keys": [
@@ -30,7 +30,7 @@
"error": ""
},
{
"path": "开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_174929/real_device_110_effect_results.json",
"path": "开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_174929/real_device_110_effect_results.json",
"ok": true,
"top_type": "dict",
"top_keys": [
@@ -53,7 +53,7 @@
"error": ""
},
{
"path": "开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_175142/real_device_110_effect_results.json",
"path": "开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_175142/real_device_110_effect_results.json",
"ok": true,
"top_type": "dict",
"top_keys": [
@@ -76,7 +76,7 @@
"error": ""
},
{
"path": "开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_175801/real_device_110_effect_results.json",
"path": "开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_175801/real_device_110_effect_results.json",
"ok": true,
"top_type": "dict",
"top_keys": [
@@ -99,7 +99,7 @@
"error": ""
},
{
"path": "开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/real_device_110_effect_results.json",
"path": "开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/real_device_110_effect_results.json",
"ok": true,
"top_type": "dict",
"top_keys": [
@@ -122,7 +122,7 @@
"error": ""
},
{
"path": "开发文档/6、测试/wireless_frida_20260518/wireless_frida_batch_results.json",
"path": "开发文档/8、部署/05-测试验收/wireless_frida_20260518/wireless_frida_batch_results.json",
"ok": true,
"top_type": "dict",
"top_keys": [
@@ -140,7 +140,7 @@
"error": ""
},
{
"path": "开发文档/6、测试/wireless_frida_real_device_acceptance_20260518/真机110功能验收矩阵.json",
"path": "开发文档/8、部署/05-测试验收/wireless_frida_real_device_acceptance_20260518/真机110功能验收矩阵.json",
"ok": true,
"top_type": "list",
"top_keys": [],

View File

@@ -45,16 +45,16 @@
| 截图 | 尺寸 | 平均亮度 | 黑暗像素占比 | 判断 |
|---|---|---:|---:|---|
| [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/screenshots/001_01_current_final.png]] | 1080×2400 | 228.21 | 0.0015 | 非黑屏,可作为截图证据 |
| [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/screenshots/002_02_wechat_home.png]] | 1080×2400 | 228.21 | 0.0015 | 非黑屏,可作为截图证据 |
| [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/screenshots/003_03_search_final.png]] | 1080×2400 | 236.24 | 0.0 | 非黑屏,可作为截图证据 |
| [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/screenshots/004_04_contacts_final.png]] | 1080×2400 | 236.24 | 0.0 | 非黑屏,可作为截图证据 |
| [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/screenshots/005_05_discover_final.png]] | 1080×2400 | 236.24 | 0.0 | 非黑屏,可作为截图证据 |
| [[开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/screenshots/006_06_me_final.png]] | 1080×2400 | 236.24 | 0.0 | 非黑屏,可作为截图证据 |
| [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/screenshots/001_01_current_final.png]] | 1080×2400 | 228.21 | 0.0015 | 非黑屏,可作为截图证据 |
| [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/screenshots/002_02_wechat_home.png]] | 1080×2400 | 228.21 | 0.0015 | 非黑屏,可作为截图证据 |
| [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/screenshots/003_03_search_final.png]] | 1080×2400 | 236.24 | 0.0 | 非黑屏,可作为截图证据 |
| [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/screenshots/004_04_contacts_final.png]] | 1080×2400 | 236.24 | 0.0 | 非黑屏,可作为截图证据 |
| [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/screenshots/005_05_discover_final.png]] | 1080×2400 | 236.24 | 0.0 | 非黑屏,可作为截图证据 |
| [[开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/screenshots/006_06_me_final.png]] | 1080×2400 | 236.24 | 0.0 | 非黑屏,可作为截图证据 |
## 后端日志复核摘要
后端日志路径:`/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/backend_logs/backend_execution_events.jsonl`。当前解析到日志行数128。下表列出前20个日志键名/动作名计数,用于判断每项执行是否落到后端记录。
后端日志路径:`/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/backend_logs/backend_execution_events.jsonl`。当前解析到日志行数128。下表列出前20个日志键名/动作名计数,用于判断每项执行是否落到后端记录。
| 日志键名/动作名 | 次数 |
|---|---:|

View File

@@ -34,9 +34,9 @@
| 文件 | 说明 |
|---|---|
| `开发文档/6、测试/110项功能逐项确认/2026-05-18/微信SDK真实控制接口矩阵V4_追加版_190130.md` | 最新V4核心矩阵后续以此为真机验证基线。 |
| `开发文档/6、测试/110项功能逐项确认/2026-05-18/微信SDK真实控制接口矩阵V4_追加版_190130.csv` | 结构化矩阵,可继续生成测试任务。 |
| `开发文档/6、测试/110项功能逐项确认/2026-05-18/微信SDK真实控制接口矩阵V4_追加版_190130.json` | 机器可读矩阵,用于自动化调用和回写结果。 |
| `开发文档/5、接口/06-验收与矩阵/110项功能逐项确认/2026-05-18/微信SDK真实控制接口矩阵V4_追加版_190130.md` | 最新V4核心矩阵后续以此为真机验证基线。 |
| `开发文档/5、接口/06-验收与矩阵/110项功能逐项确认/2026-05-18/微信SDK真实控制接口矩阵V4_追加版_190130.csv` | 结构化矩阵,可继续生成测试任务。 |
| `开发文档/5、接口/06-验收与矩阵/110项功能逐项确认/2026-05-18/微信SDK真实控制接口矩阵V4_追加版_190130.json` | 机器可读矩阵,用于自动化调用和回写结果。 |
| `tools/build_wechat_sdk_true_control_matrix_v4_1905.py` | V4矩阵生成脚本只新增不覆盖。 |
## 5. 下一步执行

View File

@@ -17,35 +17,35 @@
## 二、疑似黑屏或无效截图清单
| # | 截图路径 | 尺寸 | 平均亮度 | 非黑像素比例 | 原因 |
|---:|---|---:|---:|---:|---|
| 1 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_174929/screenshots/001_01_current_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 2 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_174929/screenshots/002_02_wechat_home.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 3 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_174929/screenshots/003_03_search_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 4 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_174929/screenshots/004_04_contacts_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 5 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_174929/screenshots/005_05_discover_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 6 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_174929/screenshots/006_06_me_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 7 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_175142/screenshots/001_01_current_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 8 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_175142/screenshots/002_02_wechat_home.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 9 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_175142/screenshots/003_03_search_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 10 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_175142/screenshots/004_04_contacts_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 11 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_175142/screenshots/005_05_discover_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 12 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_175142/screenshots/006_06_me_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 13 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_175801/screenshots/001_01_current_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 14 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_175801/screenshots/002_02_wechat_home.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 15 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_175801/screenshots/003_03_search_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 16 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_175801/screenshots/004_04_contacts_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 17 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_175801/screenshots/005_05_discover_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 18 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_175801/screenshots/006_06_me_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 1 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_174929/screenshots/001_01_current_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 2 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_174929/screenshots/002_02_wechat_home.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 3 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_174929/screenshots/003_03_search_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 4 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_174929/screenshots/004_04_contacts_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 5 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_174929/screenshots/005_05_discover_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 6 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_174929/screenshots/006_06_me_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 7 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_175142/screenshots/001_01_current_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 8 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_175142/screenshots/002_02_wechat_home.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 9 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_175142/screenshots/003_03_search_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 10 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_175142/screenshots/004_04_contacts_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 11 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_175142/screenshots/005_05_discover_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 12 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_175142/screenshots/006_06_me_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 13 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_175801/screenshots/001_01_current_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 14 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_175801/screenshots/002_02_wechat_home.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 15 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_175801/screenshots/003_03_search_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 16 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_175801/screenshots/004_04_contacts_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 17 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_175801/screenshots/005_05_discover_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
| 18 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_175801/screenshots/006_06_me_final.png` | 1080×2400 | 0.0 | 0.0 | 疑似黑屏/暗屏 |
## 三、重复截图风险
| 视觉哈希 | 数量 | 示例路径 | 处理要求 |
|---|---:|---|---|
| `ef3f1f0f271f3fff` | 2 | `开发文档/6、测试/110项功能逐项确认/2026-05-18/lockscreen_live_verify/1820_after_unlock_wechat.png`<br>`开发文档/6、测试/visible_capture_fix_20260518/20260518_180208/visible_after_wakeup.png` | 不得用同一张图证明多个功能,需逐项重跑 |
| `00031f3f3f3f3f3f` | 3 | `开发文档/6、测试/live_verify_20260518/screenshots/00_current_wechat.png`<br>`开发文档/6、测试/live_verify_20260518/screenshots/172748_before_demo_wechat.png`<br>`开发文档/6、测试/live_verify_20260518/screenshots/172750_wechat_opened.png` | 不得用同一张图证明多个功能,需逐项重跑 |
| `3c30b7ffffffe7c7` | 7 | `开发文档/6、测试/live_verify_20260518/screenshots/172754_search_page.png`<br>`开发文档/6、测试/live_verify_20260518/screenshots/172756_back_done.png`<br>`开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/screenshots/003_03_search_final.png`<br>`开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/screenshots/004_04_contacts_final.png` | 不得用同一张图证明多个功能,需逐项重跑 |
| `ffffffffffffffff` | 18 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_174929/screenshots/001_01_current_final.png`<br>`开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_174929/screenshots/002_02_wechat_home.png`<br>`开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_174929/screenshots/003_03_search_final.png`<br>`开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_174929/screenshots/004_04_contacts_final.png` | 不得用同一张图证明多个功能,需逐项重跑 |
| `3d270f0f0f0f3fff` | 2 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/screenshots/001_01_current_final.png`<br>`开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/screenshots/002_02_wechat_home.png` | 不得用同一张图证明多个功能,需逐项重跑 |
| `7f1f0f3f1f3f3fff` | 2 | `开发文档/6、测试/wireless_frida_20260518/screenshots/001_current_after_batch_20260518_173739.png`<br>`开发文档/6、测试/wireless_frida_20260518/screenshots/002_wechat_home_20260518_173741.png` | 不得用同一张图证明多个功能,需逐项重跑 |
| `000000ffffff007e` | 3 | `开发文档/6、测试/wireless_frida_20260518/screenshots/005_wechat_contacts_tab_20260518_173747.png`<br>`开发文档/6、测试/wireless_frida_20260518/screenshots/006_wechat_discover_tab_20260518_173750.png`<br>`开发文档/6、测试/wireless_frida_20260518/screenshots/007_wechat_me_tab_20260518_173753.png` | 不得用同一张图证明多个功能,需逐项重跑 |
| `ef3f1f0f271f3fff` | 2 | `开发文档/5、接口/06-验收与矩阵/110项功能逐项确认/2026-05-18/lockscreen_live_verify/1820_after_unlock_wechat.png`<br>`开发文档/8、部署/05-测试验收/visible_capture_fix_20260518/20260518_180208/visible_after_wakeup.png` | 不得用同一张图证明多个功能,需逐项重跑 |
| `00031f3f3f3f3f3f` | 3 | `开发文档/8、部署/05-测试验收/live_verify_20260518/screenshots/00_current_wechat.png`<br>`开发文档/8、部署/05-测试验收/live_verify_20260518/screenshots/172748_before_demo_wechat.png`<br>`开发文档/8、部署/05-测试验收/live_verify_20260518/screenshots/172750_wechat_opened.png` | 不得用同一张图证明多个功能,需逐项重跑 |
| `3c30b7ffffffe7c7` | 7 | `开发文档/8、部署/05-测试验收/live_verify_20260518/screenshots/172754_search_page.png`<br>`开发文档/8、部署/05-测试验收/live_verify_20260518/screenshots/172756_back_done.png`<br>`开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/screenshots/003_03_search_final.png`<br>`开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/screenshots/004_04_contacts_final.png` | 不得用同一张图证明多个功能,需逐项重跑 |
| `ffffffffffffffff` | 18 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_174929/screenshots/001_01_current_final.png`<br>`开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_174929/screenshots/002_02_wechat_home.png`<br>`开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_174929/screenshots/003_03_search_final.png`<br>`开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_174929/screenshots/004_04_contacts_final.png` | 不得用同一张图证明多个功能,需逐项重跑 |
| `3d270f0f0f0f3fff` | 2 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/screenshots/001_01_current_final.png`<br>`开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/screenshots/002_02_wechat_home.png` | 不得用同一张图证明多个功能,需逐项重跑 |
| `7f1f0f3f1f3f3fff` | 2 | `开发文档/8、部署/05-测试验收/wireless_frida_20260518/screenshots/001_current_after_batch_20260518_173739.png`<br>`开发文档/8、部署/05-测试验收/wireless_frida_20260518/screenshots/002_wechat_home_20260518_173741.png` | 不得用同一张图证明多个功能,需逐项重跑 |
| `000000ffffff007e` | 3 | `开发文档/8、部署/05-测试验收/wireless_frida_20260518/screenshots/005_wechat_contacts_tab_20260518_173747.png`<br>`开发文档/8、部署/05-测试验收/wireless_frida_20260518/screenshots/006_wechat_discover_tab_20260518_173750.png`<br>`开发文档/8、部署/05-测试验收/wireless_frida_20260518/screenshots/007_wechat_me_tab_20260518_173753.png` | 不得用同一张图证明多个功能,需逐项重跑 |
## 四、人工确认、图片识别、微信细节待重测汇总
| 序号 | 功能名称或内容 | 人工确认 | 图片识别 | 微信细节 | 当前判定 | 待处理原因 |
@@ -164,14 +164,14 @@
## 五、结果 JSON 结构复核
| # | JSON路径 | 是否可读 | 顶层类型 | 顶层键/最大列表 | 估算功能条目 | 叶子字段数 | 错误 |
|---:|---|---|---|---|---:|---:|---|
| 1 | `开发文档/6、测试/live_verify_20260518/live_verify_results.json` | True | dict | generated_at, device_id, preflight, visible_demo, results | 128 | 2793 | |
| 2 | `开发文档/6、测试/live_verify_20260518/接口清单.json` | True | dict | total, summary, routes | 329 | 2435 | |
| 3 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_174929/real_device_110_effect_results.json` | True | dict | run_id, generated_at, adb_serial, frida_host, real_device, type_c_unplugged, total_110, passed | 115 | 1511 | |
| 4 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_175142/real_device_110_effect_results.json` | True | dict | run_id, generated_at, adb_serial, frida_host, real_device, type_c_unplugged, total_110, passed | 115 | 1511 | |
| 5 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_175801/real_device_110_effect_results.json` | True | dict | run_id, generated_at, adb_serial, frida_host, real_device, type_c_unplugged, total_110, passed | 115 | 1511 | |
| 6 | `开发文档/6、测试/real_device_110_effect_verify_20260518/20260518_180227/real_device_110_effect_results.json` | True | dict | run_id, generated_at, adb_serial, frida_host, real_device, type_c_unplugged, total_110, passed | 115 | 1511 | |
| 7 | `开发文档/6、测试/wireless_frida_20260518/wireless_frida_batch_results.json` | True | dict | generated_at, adb_serial, frida_host, total, passed, failed, results | 148 | 1190 | |
| 8 | `开发文档/6、测试/wireless_frida_real_device_acceptance_20260518/真机110功能验收矩阵.json` | True | list | 160 | 160 | 1760 | |
| 1 | `开发文档/8、部署/05-测试验收/live_verify_20260518/live_verify_results.json` | True | dict | generated_at, device_id, preflight, visible_demo, results | 128 | 2793 | |
| 2 | `开发文档/8、部署/05-测试验收/live_verify_20260518/接口清单.json` | True | dict | total, summary, routes | 329 | 2435 | |
| 3 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_174929/real_device_110_effect_results.json` | True | dict | run_id, generated_at, adb_serial, frida_host, real_device, type_c_unplugged, total_110, passed | 115 | 1511 | |
| 4 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_175142/real_device_110_effect_results.json` | True | dict | run_id, generated_at, adb_serial, frida_host, real_device, type_c_unplugged, total_110, passed | 115 | 1511 | |
| 5 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_175801/real_device_110_effect_results.json` | True | dict | run_id, generated_at, adb_serial, frida_host, real_device, type_c_unplugged, total_110, passed | 115 | 1511 | |
| 6 | `开发文档/8、部署/05-测试验收/real_device_110_effect_verify_20260518/20260518_180227/real_device_110_effect_results.json` | True | dict | run_id, generated_at, adb_serial, frida_host, real_device, type_c_unplugged, total_110, passed | 115 | 1511 | |
| 7 | `开发文档/8、部署/05-测试验收/wireless_frida_20260518/wireless_frida_batch_results.json` | True | dict | generated_at, adb_serial, frida_host, total, passed, failed, results | 148 | 1190 | |
| 8 | `开发文档/8、部署/05-测试验收/wireless_frida_real_device_acceptance_20260518/真机110功能验收矩阵.json` | True | list | 160 | 160 | 1760 | |
## 六、下一步重测规则
接下来必须先修复截图质量门禁,再跑 110 项。每一项都要生成独立截图、前台包名、操作路径、返回数据摘要和日志证据。人工确认项只验证到确认前,图片识别项必须写出识别结果,微信控制项必须写出真实页面和数据字段。旧的黑屏或一图多用证据全部作废,不得再作为完成依据。
@@ -179,6 +179,6 @@
## 七、输出文件
| 文件 | 作用 |
|---|---|
| `开发文档/6、测试/110项功能逐项确认/2026-05-18/截图质量扫描明细_追加版_182830.csv` | 截图质量明细 |
| `开发文档/6、测试/110项功能逐项确认/2026-05-18/110功能待重测清单_追加版_182830.csv` | 110功能待重测清单 |
| `开发文档/6、测试/110项功能逐项确认/2026-05-18/结果JSON结构扫描_追加版_182830.json` | JSON结构扫描结果 |
| `开发文档/5、接口/06-验收与矩阵/110项功能逐项确认/2026-05-18/截图质量扫描明细_追加版_182830.csv` | 截图质量明细 |
| `开发文档/5、接口/06-验收与矩阵/110项功能逐项确认/2026-05-18/110功能待重测清单_追加版_182830.csv` | 110功能待重测清单 |
| `开发文档/5、接口/06-验收与矩阵/110项功能逐项确认/2026-05-18/结果JSON结构扫描_追加版_182830.json` | JSON结构扫描结果 |

View File

@@ -36,8 +36,8 @@
| 文件 | 本轮变更 |
|---|---|
| `sdk/app/main.py` | 挂载 `frida_wireless.router``/api/v3/frida/*`,挂载 `wechat_full.router``/api/v3/wechat/*`。 |
| `开发文档/6、测试/Frida无线控制验证报告_20260519_002820.md` | 生成 mock 模式验证报告106/106 通过。该报告只能证明规划动作/测试框架可跑,不能替代真机 RPC 通过。 |
| 本文 JSON | 机器可读矩阵:[[开发文档/6、测试/110项功能逐项确认/2026-05-19/微信SDK真实覆盖矩阵_20260519_0033.json]] |
| `开发文档/8、部署/05-测试验收/Frida无线控制验证报告_20260519_002820.md` | 生成 mock 模式验证报告106/106 通过。该报告只能证明规划动作/测试框架可跑,不能替代真机 RPC 通过。 |
| 本文 JSON | 机器可读矩阵:[[开发文档/5、接口/06-验收与矩阵/110项功能逐项确认/2026-05-19/微信SDK真实覆盖矩阵_20260519_0033.json]] |
## 5. 规划动作到 v9 RPC 覆盖表
| 模块 | 名称 | Action | 规划 RPC | v9真实导出 |

View File

@@ -0,0 +1,10 @@
# 06 · 验收与矩阵
接口扫描矩阵、110 项逐项确认、开发日志(接口验收口径)。
| 内容 | 路径 |
|------|------|
| 110 项矩阵/扫描追加 | `110项功能逐项确认/` |
| 开发日志 | `dev_log_v5.md` · `dev_log_v6_20260518.md` |
脚本在 [8、部署/05-测试验收/scripts](../../8、部署/05-测试验收/scripts/)。

View File

@@ -21,7 +21,8 @@ cssclasses:
├── 02-业务对接/ ← 存客宝 + 外部网关
├── 03-Hook与微信/ ← Hook 模块 API + 微信矩阵 + Frida 跳转
├── 04-OpenAPI/ ← openapi_v3.0.json
── 05-交互图/ ← API 架构 HTML
── 05-交互图/ ← API 架构 HTML
└── 06-验收与矩阵/ ← 110项矩阵 + 接口开发日志
```
---
@@ -35,6 +36,7 @@ cssclasses:
| **03 Hook与微信** | [Hook模块管理接口.md](03-Hook与微信/Hook模块管理接口.md) · [微信全功能矩阵](03-Hook与微信/微信全功能矩阵_v8.0.56.md) |
| **04 OpenAPI** | [openapi_v3.0.json](04-OpenAPI/openapi_v3.0.json) |
| **05 交互图** | [接口全量分类浏览.html](05-交互图/接口全量分类浏览.html) · [存客宝对接架构图.html](05-交互图/存客宝对接架构图.html) · [API架构与交互流程图.html](05-交互图/API架构与交互流程图.html) |
| **06 验收与矩阵** | [06-验收与矩阵/README.md](06-验收与矩阵/README.md) · `110项功能逐项确认/` · 开发日志 |
**维护规范**[机擎/阿表/开发文档结构规范/SKILL.md](../../机擎/阿表/开发文档结构规范/SKILL.md)

View File

@@ -1,33 +0,0 @@
---
obsidian-color: "#F9A825"
cssclasses:
- devdoc-index
---
# 6、测试
验收脚本、真机证据、矩阵报告与截图归档。
---
## 目录树
```text
6、测试/
├── scripts/ 验收/矩阵生成 Python 脚本(原根目录 tools/
│ └── legacy/ 历史一次性调试脚本(原根目录 *.py
├── screenshots/
│ ├── verification_110/ 110 项视觉验证截图(原 verification_screenshots/
│ └── test_img/ 临时测试图
├── 110项功能逐项确认/ 按日期的追加报告
└── … 各轮 wireless_frida / live_verify 目录
```
**运行示例**(在项目根目录):
```bash
python3 开发文档/6、测试/scripts/wireless_frida_wechat_batch_verify.py
python3 开发文档/6、测试/scripts/real_device_110_effect_verify.py
```
脚本内 `ROOT``scripts/_repo_root.py` 自动解析,无需 `cd`

View File

@@ -1,17 +0,0 @@
#!/usr/bin/env bash
# 校验活跃文档中是否仍引用已废弃「根目录」路径
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/../../.." && pwd)"
cd "$ROOT"
SELF="开发文档/6、测试/scripts/validate_doc_paths.sh"
PAT='docs/gitea/|docs/wiki-gitea/|verification_screenshots/|python3 tools/|`tools/|bash docs/gitea'
EXCLUDE='工作日志\.md|110项功能逐项确认|开发文档结构规范/SKILL\.md|00-项目总览|legacy/|机擎/阿服/local-mount-sync|validate_doc_paths\.sh|live_verify_20260518|6、测试/README\.md'
hits=$(rg -l "$PAT" 开发文档 机擎 sdk README.md 2>/dev/null | rg -v "$EXCLUDE" || true)
if [ -n "$hits" ]; then
echo "❌ 发现残留旧路径:"
echo "$hits"
rg -n "$PAT" $hits 2>/dev/null | head -20
exit 1
fi
echo "✅ 活跃文档无废弃根路径引用"
python3 "开发文档/8、部署/04-Gitea门户/gitea/publish_wiki.py" --check-only

View File

@@ -11,6 +11,6 @@
| 无线路由 | `sdk/app/routers/frida_wireless.py` |
| 手机 Agent | `sdk/agent/wireless_agent.py` |
| Frida | `sdk/agent/hook/frida_manager.py` |
| 验证 | `开发文档/6、测试/scripts/wireless_frida_wechat_batch_verify.py` |
| 验证 | `开发文档/8、部署/05-测试验收/scripts/wireless_frida_wechat_batch_verify.py` |
**WiFi 直连要点2026-05-24 真机)**`frida-server``-l 0.0.0.0:27042`(仅 `127.0.0.1` 会导致 Mac 无线 attach 失败);验收 **148/148**`开发文档/6、测试/wireless_frida_20260518/`
**WiFi 直连要点2026-05-24 真机)**`frida-server``-l 0.0.0.0:27042`(仅 `127.0.0.1` 会导致 Mac 无线 attach 失败);验收 **148/148**`开发文档/8、部署/05-测试验收/wireless_frida_20260518/`

View File

@@ -29,7 +29,7 @@
| 项目级同步规范 | `机擎/阿服/local-mount-sync/SKILL.md` | 已新建,后续可作为固定执行规则读取 |
| 阶段性同步说明 | `开发文档/8、部署/03-运维同步/本地挂载与GitHub阶段性同步规则_追加版_20260518_1913.md` | 本文件 |
| 每轮执行记录 | `开发文档/10、项目管理/03-计划与专项/项目落地执行表.md` | 只追加,不覆盖旧记录 |
| 真机验收报告 | `开发文档/6、测试/110项功能逐项确认/2026-05-18/` | 按日期目录追加 |
| 真机验收报告 | `开发文档/5、接口/06-验收与矩阵/110项功能逐项确认/2026-05-18/` | 按日期目录追加 |
| 代码修复 | `sdk/app/...``sdk/tests/...` | 与具体模块对应 |
## 四、执行流程

View File

@@ -7,7 +7,7 @@
- **产品 / 运营**:读 [[完整整合手册]]、[[快速开始]]、[[更新动态]]
- **后端 / 设备**:读 [[完整整合手册]]、[[架构一览]]、[[Hook与Frida]]、[[下载中心]]
- **部署运维**[[完整整合手册]] §八 无线 Frida + 仓库 `开发文档/8、部署/`
- **目录结构**:仓库 `开发文档/00-项目总览/`(含项目架构总览图)
- **目录结构**:仓库 `开发文档/2、架构/01-总览/`(含项目架构总览图)
## 核心链接

View File

@@ -8,7 +8,7 @@
- **服务端**`hook/probe``hook/data` 等接口Hub **Hook 数据** 面板(拉取联系人/群/标签/消息等)。
- **文档**`设备端Hook安装部署.md``快速入机部署_Root_Frida_Hook.md`、机擎 SKILL 更新。
- **Gitea 门户**`开发文档/8、部署/04-Gitea门户/`(百科源 `wiki-gitea/`、脚本 `gitea/publish_wiki.py`)。
- **项目目录总览**:仓库 `开发文档/00-项目总览/README.md`Obsidian + 架构 PNG
- **项目目录总览**:仓库 `开发文档/2、架构/01-总览/项目目录总览.md`Obsidian + 架构 PNG
## 如何跟进最新进度

View File

@@ -0,0 +1,20 @@
---
obsidian-color: "#F9A825"
---
# 05 · 测试验收
部署侧真机验收:脚本、截图、按日期的验证报告(**接口矩阵报告**在 [5、接口/06-验收与矩阵](../../5、接口/06-验收与矩阵/))。
```text
05-测试验收/
├── scripts/ 验收与矩阵生成脚本
├── screenshots/ 110 项视觉截图
├── live_verify_*/ Type-C 真机验证
└── wireless_frida_*/ 无线 Frida 批量验证
```
```bash
python3 开发文档/8、部署/05-测试验收/scripts/wireless_frida_wechat_batch_verify.py
bash 开发文档/8、部署/05-测试验收/scripts/validate_doc_paths.sh
```

View File

@@ -1,6 +1,6 @@
# 110接口真机验证清单
本清单由 `tools/inventory_routes.py` 自动扫描 SDK 路由生成,优先服务于 Type-C 连接真机验证。
本清单由 `开发文档/8、部署/05-测试验收/scripts/inventory_routes.py` 自动扫描 SDK 路由生成,优先服务于 Type-C 连接真机验证。
| 序号 | 方法 | 路径 | 函数 | 文件 | 分类 | 原因 |
|---:|---|---|---|---|---|---|

View File

@@ -10,12 +10,12 @@
| 序号 | 截图 | 说明 |
|---:|---|---|
| 1 | ![](开发文档/6、测试/live_verify_20260518/screenshots/172748_before_demo_wechat.png) | Type-C/ADB 对连接手机执行安全读屏或滑动/搜索页进入返回动作。 |
| 2 | ![](开发文档/6、测试/live_verify_20260518/screenshots/172750_wechat_opened.png) | Type-C/ADB 对连接手机执行安全读屏或滑动/搜索页进入返回动作。 |
| 3 | ![](开发文档/6、测试/live_verify_20260518/screenshots/172751_after_scroll_down.png) | Type-C/ADB 对连接手机执行安全读屏或滑动/搜索页进入返回动作。 |
| 4 | ![](开发文档/6、测试/live_verify_20260518/screenshots/172753_after_scroll_up.png) | Type-C/ADB 对连接手机执行安全读屏或滑动/搜索页进入返回动作。 |
| 5 | ![](开发文档/6、测试/live_verify_20260518/screenshots/172754_search_page.png) | Type-C/ADB 对连接手机执行安全读屏或滑动/搜索页进入返回动作。 |
| 6 | ![](开发文档/6、测试/live_verify_20260518/screenshots/172756_back_done.png) | Type-C/ADB 对连接手机执行安全读屏或滑动/搜索页进入返回动作。 |
| 1 | ![](开发文档/8、部署/05-测试验收/live_verify_20260518/screenshots/172748_before_demo_wechat.png) | Type-C/ADB 对连接手机执行安全读屏或滑动/搜索页进入返回动作。 |
| 2 | ![](开发文档/8、部署/05-测试验收/live_verify_20260518/screenshots/172750_wechat_opened.png) | Type-C/ADB 对连接手机执行安全读屏或滑动/搜索页进入返回动作。 |
| 3 | ![](开发文档/8、部署/05-测试验收/live_verify_20260518/screenshots/172751_after_scroll_down.png) | Type-C/ADB 对连接手机执行安全读屏或滑动/搜索页进入返回动作。 |
| 4 | ![](开发文档/8、部署/05-测试验收/live_verify_20260518/screenshots/172753_after_scroll_up.png) | Type-C/ADB 对连接手机执行安全读屏或滑动/搜索页进入返回动作。 |
| 5 | ![](开发文档/8、部署/05-测试验收/live_verify_20260518/screenshots/172754_search_page.png) | Type-C/ADB 对连接手机执行安全读屏或滑动/搜索页进入返回动作。 |
| 6 | ![](开发文档/8、部署/05-测试验收/live_verify_20260518/screenshots/172756_back_done.png) | Type-C/ADB 对连接手机执行安全读屏或滑动/搜索页进入返回动作。 |
## 110接口逐项结果

View File

@@ -83,7 +83,7 @@
"visible_demo": [
{
"name": "before_demo",
"screenshot": "开发文档/6、测试/live_verify_20260518/screenshots/172748_before_demo_wechat.png"
"screenshot": "开发文档/8、部署/05-测试验收/live_verify_20260518/screenshots/172748_before_demo_wechat.png"
},
{
"name": "ensure_wechat",
@@ -98,7 +98,7 @@
},
{
"name": "wechat_opened",
"screenshot": "开发文档/6、测试/live_verify_20260518/screenshots/172750_wechat_opened.png"
"screenshot": "开发文档/8、部署/05-测试验收/live_verify_20260518/screenshots/172750_wechat_opened.png"
},
{
"name": "safe_scroll_down",
@@ -113,7 +113,7 @@
},
{
"name": "after_scroll_down",
"screenshot": "开发文档/6、测试/live_verify_20260518/screenshots/172751_after_scroll_down.png"
"screenshot": "开发文档/8、部署/05-测试验收/live_verify_20260518/screenshots/172751_after_scroll_down.png"
},
{
"name": "safe_scroll_up",
@@ -128,7 +128,7 @@
},
{
"name": "after_scroll_up",
"screenshot": "开发文档/6、测试/live_verify_20260518/screenshots/172753_after_scroll_up.png"
"screenshot": "开发文档/8、部署/05-测试验收/live_verify_20260518/screenshots/172753_after_scroll_up.png"
},
{
"name": "tap_search",
@@ -143,7 +143,7 @@
},
{
"name": "search_page",
"screenshot": "开发文档/6、测试/live_verify_20260518/screenshots/172754_search_page.png"
"screenshot": "开发文档/8、部署/05-测试验收/live_verify_20260518/screenshots/172754_search_page.png"
},
{
"name": "back_to_wechat",
@@ -158,7 +158,7 @@
},
{
"name": "back_done",
"screenshot": "开发文档/6、测试/live_verify_20260518/screenshots/172756_back_done.png"
"screenshot": "开发文档/8、部署/05-测试验收/live_verify_20260518/screenshots/172756_back_done.png"
}
],
"results": [

Some files were not shown because too many files have changed in this diff Show More