软件更新系统

Fuchsia 项目会持续获取新功能、增强功能和 和安全修复程序Fuchsia 的软件更新系统利用 更新框架 (TUF) 1.0 版。 但是,Fuchsia 与 TUF 之间存在一些差异:

规范版本

在 Fuchsia 代码库中,Fucsia 代码库版本被列为 顶级属性。这个示例显示了 规范版本的格式:

{
  ...

  "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。软件包的 Merkle 根哈希的十六进制字符串 Meta FAR。
  • 位置:BLOB_SIZE。面孔大小:INT。由 MERKLE_ROOT 标识的未加密 BLOB 的大小(以字节为单位)。