# 2026-10-01 项目本机测试环境迁移 ## 结果与范围 - 项目 SSH、镜像编辑器专用 Python 环境在本机测试目录 `.local/` 重建,按原环境版本锁定完整依赖与 Windows wheel SHA-256;全部离线安装并通过版本校验和 pip check。 - API 35 / Google APIs / x86_64 revision 9 系统镜像迁入项目;保留官方包登记和许可证,新增项目专用 `qms-local-api35` AVD。未重新下载系统镜像,未声称重新验证已不存在的历史 ZIP。 - 三个旧项目专用全局目录已移出 `.codex-tools/bin`,TOOLS.md 对应三项登记已删除;通用 APK/ADB/Java/Gradle/SSH/Emulator 等工具保留。旧 SDK Emulator 目录联接仅移除链接本身,共享 Emulator 可执行文件仍存在。 - 旧项目 AVD 索引指向的实际数据目录,以及旧 SSH 主机密钥文件均不存在。失效索引保存在迁移备份;缺失数据没有伪造为成功迁移,没有连接设备建立新的信任。 - 自动审批拒绝批量及单目录递归删除,返回 `blocked by policy`,未提供进一步原因。采用无损迁回项目的方案:旧 venv/SDK 元数据和工具登记快照保存在被忽略的 `.local/private/migration/`,测试入口只使用新环境。用户可删除该备份目录。 ## 选择验证与证据 本轮影响是主机环境归属、测试私有路径及 Android 路径入口。选择依赖/解释器、路径保护、测试场景选择、编辑器单元测试,以及独立模拟器 settings/baseline;没有产品行为变化,不跑无关页面、BLE、真实切网、性能或 systemd 生命周期验证。 | 验证 | 实际结果 | | --- | --- | | SSH、编辑器依赖版本与 pip check | 通过;SSH 模块导入及项目内私有路径核对通过,未发起 SSH | | 迁移/路径/Windows 联接生命周期及依赖更新门禁单元测试 | 7 项通过 | | Android 场景选择及不访问设备保护测试 | 9 项通过 | | 镜像编辑器单元测试 | 14 项通过;未重新发布 EXE | | 主工作区独立 uiTest debug 构建 | 通过;只构建测试 APK,未发布产品 APK | | 主工作区 settings/baseline 模拟器 | 通过;字体、方向、密度恢复无错误,只关闭本次进程 | | 中文及空格的隔离副本 | 全部 12 个验证步骤通过,见下文 | | Git 边界 | 新环境、镜像、私有状态、日志被忽略;搭建入口、锁文件、说明和测试源码未被忽略 | | 仓库卫生与 diff 空白检查 | 通过;没有输出秘密值 | 隔离副本复制 662 个 Git 候选文件的实际内容,不复制 venv、真实凭据、手机登记或主机密钥。仅复用版本锁定的 wheel 与迁入项目的系统镜像文件;在新位置重新创建两个 venv、生成本机工具配置和全新项目 AVD。12 步包括三组 setup/check、迁移保护、9 项场景选择、14 项编辑器测试、按文档 `build-ui android`、settings/baseline 冒烟和完成后的 Android 路径检查,全部通过。最后补充依赖更新门禁后,同步隔离入口并复核 7 项主机测试及两组 Python check,均通过。通用已安装工具是文档明确的前置条件,没有调用旧项目专用全局环境。 本机原始日志、JSON、构建和隔离副本位于 `.local/work/`,包含本机路径,不提交。隔离副本 `.local/work/隔离 复建/` 在查验后可删除。仓库只保留这份脱敏结果。 ## 问题、修正与复测 1. 中文路径下 Emulator 能发现 AVD,却在开机前退出;日志显示写文件失败、中文路径损坏及 kernel 无法读取。用 ASCII 临时目录联接后同一镜像的 settings/baseline 通过。复建入口现在自动提供临时索引和路径,实际文件仍在项目内,并在结束后只删除联接及临时索引。 2. Android 构建入口原先 resolve 了 ASCII 联接,展开为中文目标后被自己的路径门禁拒绝;保留显式 ASCII 拼写后主工作区和隔离副本均构建通过。 3. Emulator 把 config.ini 重写为带键值空格的格式,严格逐行匹配产生失效路径误报;改为按 INI 键值修剪空白,并在会话结束恢复持久 image 路径。完成后的路径检查和联接生命周期测试均通过。 4. 读取启动日志时 Python GBK 输出替换字符触发编码错误;本次诊断进程显式使用 `-X utf8`,不改系统编码。 复用经验已写入本机测试环境 README、Android 常见问题与排障、构建说明及协作规则。未测试的真实 SSH/真机/板端/实屏不计入本轮通过结论;产品接口、协议、驱动、发布版本和 FEATURE_UPDATED_AT 未修改。