docs: record Android overlay lifecycle evidence

This commit is contained in:
key
2026-07-29 01:56:23 +08:00
parent 8d291d1483
commit fd59421574
4 changed files with 14 additions and 10 deletions
+3
View File
@@ -26,6 +26,8 @@
同日,候选包继续升级为 `0.1.8 (108)`,大小 `33,921,705` 字节,SHA-256 为 `E252140645F3AAD14B3594FD78E76BDF1A2122F7DC70EBD21CC5DF53223C7878`。新增的项目根原生清单与 `network_security_config.xml` 已进入实际云打包输入,193 项移动端测试、类型检查、App 构建及联网法务预检通过;APK 反编译确认包内资源与当前编译产物一致、`usesCleartextTraffic=false`、`networkSecurityConfig` 引用、系统证书信任配置、签名和敏感值扫描均通过。虚拟机卸载旧实例后全新安装,Launcher 冷启动总耗时 `2.904s`,最新原生隐私弹窗真实显示,四项敏感权限均为 `granted=false`,crash 缓冲区为空。仍未代替用户点击拒绝或同意。
同一 `0.1.8` APK 又在虚拟机完成保留数据的同版本覆盖安装。覆盖后冷启动 `3.092s`、标准 Launcher Intent 暖启动 `0.538s`、从系统桌面恢复热启动 `0.120s`;原生隐私弹窗和四项未授权状态始终保持,未发现 FATAL 或 ANR。该结果证明当前 APK 的安装升级、入口解析和首次弹窗前生命周期基线,不证明登录后前后台、弱网、录音或业务闭环。
## 已完成的 Android 基座证据
- [x] 自定义基座包名、版本、API 35、单签名、v2 签名和 SHA-256 可重复校验。
@@ -36,6 +38,7 @@
- [x] 清除本 App 测试数据后首次启动先显示原生隐私弹窗,服务协议与隐私政策链接均可在系统浏览器打开。
- [x] `0.1.6 (106)` 当前候选包完成同签名覆盖安装、冷启动和启动权限复核,包内资源与当前 App-Plus 编译产物一致。
- [x] `0.1.8 (108)` 在本机 Android 15/API 35 虚拟机完成卸载重装和冷启动,最新包原生隐私弹窗真实显示,四项敏感权限保持未授权、网络安全配置已进入 APK 且未见崩溃。
- [x] `0.1.8 (108)` 在同一虚拟机完成保留数据覆盖安装、标准 Launcher 启动和首次隐私弹窗前的后台/前台恢复,未见 FATAL 或 ANR。
## Android(最低 Android 10 + 一台当前主流机型)
@@ -1,6 +1,6 @@
# 帮道 8 月 1 日 Android 内测 Go/No-Go
> 评估时间:2026-07-29 01:48(CST)
> 评估时间:2026-07-29 01:55(CST)
>
> 评估对象:2026-08-01 受控内部测试 APK,不代表正式发布、应用商店上架或阶段一严格试点验收。
>
@@ -25,7 +25,7 @@
| 独立 APK | `com.yincheng.wygj`,`0.1.8 (108)`,`targetSdkVersion=35`,v2 签名,明文 HTTP 关闭且网络安全资源已进入 APK;SHA-256 `E252140645F3AAD14B3594FD78E76BDF1A2122F7DC70EBD21CC5DF53223C7878` |
| APK 内容门禁 | 包内业务资源等于当前 App-Plus 编译产物;法务链接、手机号、固定测试验证码、私钥和常见令牌扫描通过 |
| 真机安装启动 | vivo V2443A(Android 15)完成 `0.1.6` 覆盖安装和冷启动;相机、录音、媒体权限保持未授权,未见 `FATAL EXCEPTION` |
| 虚拟机干净安装 | 本机 `Medium_Phone` Android 15/API 35 完成 `0.1.8` 卸载重装和冷启动;最新包真实显示原生隐私弹窗,四项敏感权限未授权,crash 缓冲区为空 |
| 虚拟机安装与生命周期 | 本机 `Medium_Phone` Android 15/API 35 完成 `0.1.8` 卸载重装、同版本覆盖安装、冷启动、后台/前台恢复和标准 Launcher Intent 启动;覆盖安装后冷启动 `3.092s`,Launcher 暖启动 `0.538s`,后台恢复热启动 `0.120s`,原生隐私弹窗与四项未授权状态保持,未见 FATAL/ANR |
| 首次隐私弹窗 | 最新包已在虚拟机干净启动显示原生弹窗;前一候选包的两个 HTTPS 链接已在 vivo 系统浏览器打开,仍需用户亲自执行拒绝/同意反例 |
| 法务静态页 | `https://peilian.njzhmj.top/legal/terms.html` 与 `https://peilian.njzhmj.top/legal/privacy.html` 已部署并可访问;发布前站点备份为 `/opt/wygj/backups/www-20260728224710` |
@@ -103,7 +103,7 @@
| `ruoyi-aihr` 后端全量测试 | 通过 | 698 个测试,0 失败、0 错误;包含正式场景占位来源/回合/Rubric 禁止发布的新增回归;Windows CRLF 引发的 7 个源码契约误判已通过读取时统一 LF 修复并全量复跑 |
| 法务配置技术链路 | 通过 | 登录协议默认不勾选;协议未配置时禁止验证码与登录;配置生成器和发布联网校验已接入,发布包拒绝开发验证码提示 |
| 正式 App 发布配置校验 | **技术通过,法务签认阻断** | 受控内测版协议正文已通过 Caddy 公网 HTTPS 发布,原生弹窗、登录页和联网门禁使用同一组地址;公司法务尚未正式签认正文,不能视为正式发布通过 |
| Android 设备、调试基座、测试签名和真机门禁 | **部分通过,仍阻断** | HBuilderX 5.22 已识别 vivo V2443A(Android 15);API 35 自定义基座和可独立安装的 DCloud 云证书内测 APK 均已生成。干净启动真实显示原生隐私弹窗,两个协议链接可打开;用户同意/拒绝、登录后录音允许/拒绝和完整反例仍未通过 |
| Android 设备、调试基座、测试签名和真机门禁 | **部分通过,仍阻断** | HBuilderX 5.22 已识别 vivo V2443A(Android 15);API 35 自定义基座和可独立安装的 DCloud 云证书内测 APK 均已生成。`0.1.8` 在 Android 15 虚拟机完成卸载重装、同版本覆盖、冷启动、后台恢复和标准 Launcher 启动,始终显示原生隐私弹窗且四项敏感权限未授权;用户同意/拒绝、登录后录音允许/拒绝和完整反例仍未通过 |
统一 RC 脚本已在干净代码候选提交 `8764031d4acf2fbaa4870c76f520c1fffbae1ec4` 上完整复跑,证据目录为 `output/aug1-rc/0.1.8-108-8764031d-frozen/`,结果为 `releaseEligible=true`。本地最小交付包为 `output/aug1-release/bangdao-aug1-0.1.8-108-8764031d.zip`,SHA-256 为 `6103A91917BD37D31FF7BEDB95549D23D855E60D3E9449E86D6239A40D0CB855`,已完成解压后逐文件 SHA-256 复验。上述本地自动化冻结不替代生产后端发布授权和人工验收。
@@ -127,6 +127,7 @@
- `0.1.6 (106)` 已在同一设备完成保留数据的覆盖安装和 Launcher 冷启动;相机、录音和媒体权限保持未授权,未见 `FATAL EXCEPTION`。覆盖安装保留了前一版本的隐私状态,因此最新包的拒绝/同意反例仍须由用户亲自执行。
- 本机 Android Studio `Medium_Phone` 虚拟机已启动为 Android 15/API 35(`1080×2400`、密度 `420`)。在此前未安装本应用的虚拟机上,`0.1.6 (106)` 首次安装和 Launcher 冷启动成功,最新包真实显示原生隐私弹窗,四项相机、录音、图片和视频权限均未授予,crash 缓冲区为空。虚拟机只补充干净安装和 API 35 权限基线,不替代真机媒体、WebRTC、弱网与系统浏览器验收;拒绝/同意仍由用户亲自执行。
- `0.1.8 (108)` 进一步把 Android 原生清单和 `network_security_config.xml` 纳入 App 构建链及 APK 反编译门禁。独立内测 APK 大小 `33,921,705` 字节,SHA-256 为 `E252140645F3AAD14B3594FD78E76BDF1A2122F7DC70EBD21CC5DF53223C7878`;APK 反编译确认 `usesCleartextTraffic=false`、`networkSecurityConfig` 引用和系统证书信任配置均已进入安装包,本机虚拟机卸载旧实例后全新安装并在 `2.904s` 内冷启动,最新隐私弹窗真实显示,四项敏感权限未授予且 crash 缓冲区为空。
- 同一 `0.1.8` APK 随后在虚拟机完成保留数据的覆盖安装:覆盖后冷启动 `3.092s`、标准 Launcher Intent 暖启动 `0.538s`、切到系统桌面再恢复热启动 `0.120s`;三次均回到 `PandoraEntryActivity`,隐私弹窗保持可见,四项权限仍为 `granted=false`,未发现 FATAL 或 ANR。该证据只完成安装与首次弹窗前的生命周期基线,未代替用户选择隐私选项。
- 自定义基座和独立内测 APK 均使用 DCloud 云端测试证书,不是企业正式签名 APK;当前 `0.1.8` 已关闭明文流量并内置网络安全配置,但仍只可用于 8 月 1 日受控内测。公司法务签认、企业签名、用户实际同意/拒绝、登录后权限反例仍是正式发布阻断。
## 4. P0 工作分解
@@ -290,19 +291,19 @@
### 6.1 安装与原生能力
- [ ] APK 文件名、版本号、`versionCode`、SHA-256 和构建源提交可追溯。
- [ ] 全新安装、覆盖安装、卸载重装均可正常启动。
- [x] APK 文件名、版本号、`versionCode`、SHA-256 和构建源提交可追溯。
- [x] 全新安装、覆盖安装、卸载重装均可正常启动。
- [x] 干净首次启动显示原生隐私弹窗,服务协议和隐私政策链接均可通过系统浏览器访问。
- [ ] 用户实际拒绝后退出、同意后才进入登录,并保留相应验收证据。
- [ ] 同意麦克风后可录音;拒绝后不循环申请,并提供明确的文字或文件降级。
- [ ] 图片、视频、文档和音频选择取消后不残留错误状态。
- [ ] 前后台切换、网络断开和恢复不出现白屏或重复提交。
- [ ] 图标、启动图、状态栏和底部手势区显示正常。
- [x] 图标、启动图、状态栏和底部手势区显示正常。
### 6.2 核心业务路径
- [ ] 手机号登录、验证码错误、登录失效重登符合预期。
- [ ] 查/练/问在 `390×844` 首屏无需滚动即可进入;学、大喇叭和直通车现有入口可达。
- [x] 查/练/问在 `390×844` 首屏无需滚动即可进入;学、大喇叭和直通车现有入口可达。
- [ ] 至少 5 个正式生活顾问场景可开始、完成、评分并进入主管复盘。
- [ ] “问制度”标准问题有引用,无依据问题明确拒绝编造。
- [ ] 固定 30 题已经保留向量补齐前后结果,业务人工抽检可用率不低于 80%。
@@ -313,11 +314,11 @@
### 6.3 发布门禁
- [ ] App 静态资源预检与 App-Plus 构建通过。
- [x] App 静态资源预检与 App-Plus 构建通过。
- [ ] APK、后端 JAR、管理端/H5 和 schema 的变更范围、构建源、验证结果与回退物已逐项签认。
- [ ] 若本轮宣称完整包发布,管理端、移动端、后端和 schema 的完整 `release-preflight` 已通过。
- [ ] 关键自动化、类型检查和受影响模块测试通过。
- [ ] 当前正式 HTTPS API 健康检查通过。
- [x] 关键自动化、类型检查和受影响模块测试通过。
- [x] 当前正式 HTTPS API 健康检查通过。
- [ ] 无阻断级缺陷;一般问题已进入已知问题清单并有负责人。
- [ ] 上一可用版本和回退步骤已经验证。