Fuchsia 套件網址

Fuchsia 套件網址如下所示:

fuchsia-pkg://<repository>/<package-name>?hash=<package-hash>#<resource-path>

它由以下元件組成,並形成完整的套件網址:

網址配置

fuchsia-pkg 網址配置結合識別特性 建立參照存放區、套件或 視內含部分而定

語法

必要

fuchsia-pkg://<repository>[/<package-name>[?hash=<package-hash>][#<resource-path>]]

Fuchsia 套件的配置是不區分大小寫的字元 fuchsia-pkg://

雖然標準格式是小寫,但網址配置編碼不區分大小寫,因此 系統會處理所有情況

存放區

套件網址包含存放區「主機名稱」,用於識別套件的 來源。RFC 1123RFC 5890 指定了主機名稱為點序列 (.) 分隔的 IDNA A 標籤,每個標籤包含 1 到 63 個 接續的 latin-1 字元,順序不限:

  • 數字 (09)
  • 小寫字母 (az)
  • 連字號 (-)

不得使用其他字元。

主機名稱的總長度上限為 253 個字元 (含點號)。

存放區根層級驗證 (已知來源)

存放區的根角色 (一或多個公開或私密金鑰組的代數) 建立信任鏈,讓套件的真實性、完整性和 並以加密方式驗證更新間隔。根角色簽署金鑰時 有限角色,這類角色之後可用來簽署套件中繼資料和目標 所發出的呼叫頻率請參閱 TUF 安全性TUF 角色和中繼資料瞭解詳情。

如要驗證套件的真實性,您必須驗證存放區 下載的檔案很真實。

做法是維護已知來源存放區清單 與裝置上的公開金鑰進行比對來源不明的套件會 可能會遭拒,但在某些建構類型中 執行程式碼

語法

必要

fuchsia-pkg://<repository>/<package-name>?hash=<package-hash>#<resource-path>

範例

fuchsia-pkg://fuchsia.com

套件名稱

套件名稱是用於識別套件的符號標籤。套件名稱為 用於尋找存放區內的套件中繼資料必須簽署檔案包中繼資料 由存放區根信任的角色執行

套件名稱包含一系列最多 255 個下列 latin-1 字元 (不限順序):

  • 數字 (09)
  • 小寫字母 (az)
  • 連字號 (-)
  • 底線 (_)
  • 時間範圍 (.)

不得使用其他字元。

存放區中所有套件的名稱都不得重複。 系統會將不同存放區中的套件視為不同的 可以重複使用

語法

必要

fuchsia-pkg://<repository>/<package-name>?hash=<package-hash>#<resource-path>

存放區和套件名稱之間必須有一個 / 字元。

範例

  • fuchsia-pkg://fuchsia.com/fuchsia-shell-utils
  • fuchsia-pkg://fuchsia.com/fuchsia-shell-fonts
  • fuchsia-pkg://fuchsia.com/fuchsia-shell-scenic

套件雜湊

套件雜湊是套件中繼.far 的 merkleroot。由於 套件的中繼資料會編碼檔案的內容位址 變更套件的中繼資料或內容,會產生不同的套件 因此可以區分各個不重複的修訂版本 套件。

如果缺少套件雜湊,套件解析器會擷取資源 來自用戶端可用的最新套件修訂版本。

套件雜湊值是以完全由 64 組成的十六進位編碼字串表示 以下拉丁字母字元..數字 (09) 和小寫字母 (af)。不得使用其他字元。

語法

選用

fuchsia-pkg://<repository>/<package-name>?hash=<package-hash>#<resource-path>

只有在指定套件名稱時才有效。

開頭必須是 ?hash= 字串,後接套件雜湊

範例

fuchsia-pkg://google.com/chrome?hash=80e8721f4eba5437c8b6e1604f6ee384f42aed2b6dfbfd0b616a864839cd7b4a#meta/webview.component

資源路徑

資源路徑是 UTF-8 字串,用來識別套件中的資源。 這是檔案路徑,包含一系列以 / 分隔的序列 路徑區隔,每個片段都是由非零 UTF-8 的非空白序列 字元不等於 .../。必須以 # 個字元開頭。

此值必須與套件的根目錄相關。

包含保留字元的網址元件會根據 RFC 3986。這項定義與 Fuchsia 檔案系統路徑的定義相容 但它的確是 UTF-8 編碼,而非承載任意二進位字串 因為這類字串一律無法編碼為有效網址。

例如,hello/unicode/%F0%9F%98%81 會解碼為 hello/unicode/😁

語法

選用

只有在已指定套件的情況下才有效。

fuchsia-pkg://<repository>/<package-name>?hash=<package-hash>#<resource-path>

範例

  • fuchsia-pkg://fuchsia.com/fuchsia-shell-utils#bin/ls
  • fuchsia-pkg://google.com/chrome#meta/webview.component
  • fuchsia-pkg://google.com/chrome#lib/mylibrary.so

建立套件網址

您可以使用可編輯的變數建構套件網址,然後複製該網址:

fuchsia-pkg://repository/package-name?hash=package-hash#resource-path