Linux 平台: FIT 和 Android 对比
文件标识:RK-SM-YF-135
发布版本:V1.0.0
日期:2020-12-05
文件密级:□绝密 □秘密 □内部资料 ■公开
免责声明
本文档按“现状”提供,瑞芯微电子股份有限公司(“本公司”,下同)不对本文档的任何陈述、信息和内容的准确性、可靠性、完整性、适销性、特定目的性和非侵权性提供任何明示或暗示的声明或保证。本文档仅作为使用指导的参考。
由于产品版本升级或其他原因,本文档将可能在未经任何通知的情况下,不定期进行更新或修改。
商标声明
“Rockchip”、“瑞芯微”、“瑞芯”均为本公司的注册商标,归本公司所有。
本文档可能提及的其他所有注册商标或商标,由其各自拥有者所有。
版权所有 © 2020 瑞芯微电子股份有限公司
超越合理使用范畴,非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
瑞芯微电子股份有限公司
Rockchip Electronics Co., Ltd.
地址: 福建省福州市铜盘路软件园A区18号
客户服务电话: +86-4007-700-590
客户服务传真: +86-591-83951833
客户服务邮箱: fae@rock-chips.com
前言
本文主要介绍 FIT 相比 Android 固件格式的优势,建议在 Linux 平台上采用 FIT。
概述
本文档(本指南)主要适用于以下工程师:
技术支持工程师
软件开发工程师
修订记录
| 版本号 | 作者 | 修改日期 | 修改说明 |
|---|---|---|---|
| V1.00 | 陈健洪 | 2020-12-05 | 初始版本 |
目录
[TOC]
固件方案
- RK+Android
Miniloader => trust.img => uboot.img => boot.img/recovery.img (Android)
- FIT
SPL => uboot.img(FIT: trust+uboot+mcu) => boot.img/recovery.img (Android or FIT)
Rockchip Linux SDK 一直使用方案 1,RV1126 开始切到方案 2(以实际 SDK 为准)。其中方案 2 支持动态判断并引导 Android 或 FIT 格式的 boot.img/recovery.img。
FIT 优势
FIT 相比 Android (v0 header) 固件格式有很多优势:
- FIT 是 U-Boot 主线支持且主推的一种灵活性极高的固件方案,一直在被不断优化和维护。
- FIT 支持打包任意多个固件;Android 目前只支持打包三个固件。
- FIT 的 Header 支持任意增加新属性;Android 的 Header 是固定的。
- FIT 通过 DTS/DTB 的语法组织和生成固件,固件的解析可直接复用 FDT 库函数和工具包。
- FIT 不仅限于 uboot.img/boot.img/recovery.img,任意的数据、文件、固件集合都可以打包成 FIT 格式(需要签名验证的场景下更有优势)。例如:网络升级时的远程固件、脚本等可以打包成一个 FIT 固件合集,包含:签名、hash、子固件等等。
- FIT 的安全启动:
- FIT 的安全启动流程比 Android 更加精简、清晰。全程可以只用一把 Key,而 Android 需要多把 Key;
- FIT 的安全启动全程可以只用一把 Key,但有需求的情况下也能支持多把 Key;
- FIT 支持 RK 格式的 Key 加速因子(c or np),可以用 Crypto 硬件模块完成加解密;Android 格式不支持;
- FIT 只需要对安全头进行签名校验(几 KB 大小),但是 Android 只能针对整个固件进行签名校验;
- FIT 支持对单个子固件进行完整性校验,但是 Android 只能针对整个固件进行完整性校验。
- FIT 支持增加任意新属性,这让安全启动方案的制定变得非常灵活。
- 快速开机的需求下,Android 格式是完全没有优势的:几乎不可能启用完整性校验和签名验证,但是 FIT 有可能。
Android 相比 FIT 的优势有哪些?目前的评估结果:无。