軟體更新系統

Fuchsia 是持續更新的專案,會提供新功能、強化功能和安全性修正。Fuchsia 的軟體更新系統使用 Update Framework (TUF) 1.0 版。 不過,Fuchsia 與 TUF 還是有些差異:

規格版本

Fuchsia 存放區中的 Fuchsia 存放區版本列為 目標角色已簽署資料的頂層屬性。以下範例說明規格版本的格式:

{
  ...

  "signed": {
    "_type": ROLE,
    "spec_version": "1",
    "custom": {
      "fuchsia_spec_version": <FUCHSIA_SPEC_VERSION>,
  }

  ...
}

值定義:

  • 位於FUCHSIA_SPEC_VERSIONINT。Fuchsia 存放區規格的值 版本。例如:1

套件整理

在 Fuchsia 存放區中,針對 Fuchsia 套件的 TUF 目標包含指向套件中繼資料封存庫的自訂中繼資料。這個範例顯示 套件的格式:

{
  ...

  "targets": {
    "/PACKAGE_PATH": {
      ...
    }

  ...
  }
}

值的定義:

  • PACKAGE_PATH。來自存放區中套件的相對路徑 基準網址。

Merkle 根

在 Fuchsia 存放區中,每個套件目標都包含 套件中繼 FAR 的 merkle root,當做自訂屬性。 以下範例顯示梅克爾根的格式:

{
  ...

  "targets" : {
    PACKAGEPATH : {
      "length" : LENGTH,
      "hashes" : HASHES,
      "custom" : {
        "merkle" : <MERKLE_ROOT>,
        "size" : <BLOB_SIZE>,
      }
    }

    ...
  }
}

值的定義:

  • 位於MERKLE_ROOTSTRING。套件元資料 FAR 的梅克爾根雜湊十六進位字串。
  • 位於BLOB_SIZEINTMERKLE_ROOT 所識別的未加密 BLOB 大小,以位元組為單位。