3.7 KiB
3.7 KiB
1. 系统升级流程
当 U 盘中存在 update.zip 时,执行以下流程:
update.zip
↓
读取压缩包内容(不解压)
↓
判断根目录是否存在 ValidationFile.ini
├── 存在
│ ↓
│ 按新版签名包处理
│ ↓
│ 解压
│ ↓
│ 校验内层 update.zip 与 ValidationFile.ini
│ ↓
│ 校验通过后升级内层 update.zip
│
└── 不存在
↓
按旧版标准 升级包处理
↓
直接解析并升级原始 update.zip
说明
-
update.zip为系统升级包; -
使用 Java
ZipFile接口读取压缩包内容,不进行解压; -
判断压缩包内部是否包含
ValidationFile.ini; -
若存在
ValidationFile.ini:-
认为该文件是新版签名升级包;
-
解压升级包;
-
对解压后的内层
update.zip和ValidationFile.ini执行签名/完整性校验; -
校验通过后开始升级内层
update.zip; -
校验失败时升级失败,不得回退到旧版直接升级流程;
-
-
若不存在
ValidationFile.ini:-
认为该文件是旧版标准 升级包;
-
不解压、不执行新增签名校验;
-
直接解析原始
update.zip并执行系统升级基础校验; -
基础校验通过后开始升级。
-
系统升级包结构
旧版标准 升级包:
U盘/update.zip
├── payload.bin
├── payload_properties.txt
└── META-INF/com/android/metadata
新版签名升级包:
U盘/update.zip
├── update.zip
└── ValidationFile.ini
2. MCU 升级流程
2.1 update_mcu.zip 升级
当 U 盘中存在 update_mcu.zip 时,执行以下流程:
update_mcu.zip
↓
解压
↓
校验
↓
升级
说明
-
update_mcu.zip为 MCU 压缩升级包; -
解压后执行校验;
-
校验通过后开始 MCU 升级。
2.2 cortex-gdm4.bin 升级
当 U 盘中存在 cortex-gdm4.bin 时,执行以下流程:
cortex-gdm4.bin
↓
直接升级
说明
-
cortex-gdm4.bin为 MCU 二进制升级文件; -
不进行解压及校验;
-
直接执行 MCU 升级。
2.3 MCU 文件优先级
当同一个 U 盘中同时存在 update_mcu.zip 和 cortex-gdm4.bin 时:
优先使用 update_mcu.zip
说明
-
update_mcu.zip带签名/完整性校验,安全性更高; -
cortex-gdm4.bin仅用于兼容旧版 MCU 升级方式; -
若两者同时存在,默认按新版
update_mcu.zip流程处理。
3. MCU 文件识别规则
| 文件名称 | 处理方式 |
|---|---|
| update_mcu.zip | 解压 → 校验 → 升级 |
| cortex-gdm4.bin | 直接升级 |
| 其它文件 | 不处理 |
4. 整体流程汇总
系统升级:
update.zip
↓
读取 ZIP 内容(不解压)
↓
根目录是否存在 ValidationFile.ini?
├── 是 → 新版签名包 → 解压 → 校验内层 update.zip → 升级内层 update.zip
└── 否 → 旧版标准 升级 包 → 直接解析并升级原始 update.zip
MCU升级:
① update_mcu.zip
↓
解压
↓
校验
↓
升级
② cortex-gdm4.bin
↓
直接升级
说明:
- 系统升级中,只要检测到 `ValidationFile.ini`,就必须完成签名校验;
- 签名校验失败时,不允许回退为旧版直接升级;
- MCU 升级中,`update_mcu.zip` 优先级高于 `cortex-gdm4.bin`;
- `cortex-gdm4.bin` 仅作为旧版 MCU 升级兼容路径保留。