跳到主要内容

Linux 平台: FIT 和 Android 对比

文件标识:RK-SM-YF-135

发布版本:V1.0.0

日期:2020-12-05

文件密级:□绝密 □秘密 □内部资料 ■公开

免责声明

本文档按“现状”提供,瑞芯微电子股份有限公司(“本公司”,下同)不对本文档的任何陈述、信息和内容的准确性、可靠性、完整性、适销性、特定目的性和非侵权性提供任何明示或暗示的声明或保证。本文档仅作为使用指导的参考。

由于产品版本升级或其他原因,本文档将可能在未经任何通知的情况下,不定期进行更新或修改。

商标声明

“Rockchip”、“瑞芯微”、“瑞芯”均为本公司的注册商标,归本公司所有。

本文档可能提及的其他所有注册商标或商标,由其各自拥有者所有。

版权所有 © 2020 瑞芯微电子股份有限公司

超越合理使用范畴,非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。

瑞芯微电子股份有限公司

Rockchip Electronics Co., Ltd.

地址: 福建省福州市铜盘路软件园A区18号

网址: www.rock-chips.com

客户服务电话: +86-4007-700-590

客户服务传真: +86-591-83951833

客户服务邮箱: fae@rock-chips.com


前言

本文主要介绍 FIT 相比 Android 固件格式的优势,建议在 Linux 平台上采用 FIT。

概述

本文档(本指南)主要适用于以下工程师:

技术支持工程师

软件开发工程师

修订记录

版本号作者修改日期修改说明
V1.00陈健洪2020-12-05初始版本

目录

[TOC]

固件方案

  1. RK+Android
Miniloader => trust.img => uboot.img => boot.img/recovery.img (Android)
  1. 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 的优势有哪些?目前的评估结果:无。