Fuchsia 项目会持续接收新功能、增强功能和安全修复程序的更新。Fuchsia 的软件更新系统使用更新框架 (TUF) 1.0 版。不过,Fuchsia 与 TUF 有一些不同:
规范版本
在 Fuchsia 代码库中,Fuchsia 代码库版本作为目标角色的签名数据的顶级属性列出。以下示例展示了规范版本的格式:
{
...
"signed": {
"_type": ROLE,
"spec_version": "1",
"custom": {
"fuchsia_spec_version": <FUCHSIA_SPEC_VERSION>,
}
...
}
值的定义:
- 位置:
FUCHSIA_SPEC_VERSION
。面孔大小:INT
。Fuchsia 代码库规范版本的值。例如1
。
文件包整理
Fuchsia 代码库中用于处理 Fuchsia 软件包的 TUF 目标包含指向软件包元数据归档的自定义元数据。以下示例展示了软件包的格式:
{
...
"targets": {
"/PACKAGE_PATH": {
...
}
...
}
}
值的定义:
PACKAGE_PATH
:代码库基准网址中的软件包的相对路径。
Merkle 根
在 Fuchsia 代码库中,每个软件包目标都以自定义属性的形式包含软件包元 FAR 的 merkle 根。以下示例展示了 Merkle 根的格式:
{
...
"targets" : {
PACKAGEPATH : {
"length" : LENGTH,
"hashes" : HASHES,
"custom" : {
"merkle" : <MERKLE_ROOT>,
"size" : <BLOB_SIZE>,
}
}
...
}
}
值的定义:
- 位置:
MERKLE_ROOT
。面孔大小:STRING
。软件包的元 FAR 的 Merkle 根哈希的十六进制字符串。 - 位置:
BLOB_SIZE
。面孔大小:INT
。由MERKLE_ROOT
标识的未加密 BLOB 的大小(以字节为单位)。