服務組合更新

服務套裝組合可以 APEX 套件的形式更新,不必等待系統全面更新。在 SDV 中,這項更新程序是由 SDV 更新管理員管理。 如要讓更新生效,請重新啟動裝置。

服務套件更新支援兩種 APEX:

  • 預先安裝的 APEX其中一個唯讀分割區 (/system/system_ext/product/vendor/odm) 已有舊版 APEX 套件。

  • 新 APEX任何唯讀分割區上,都不存在與 apex_manifest.json 中宣告的名稱相同的 APEX 套件。

預先安裝的 APEX

這是更新服務套裝組合最常見且建議使用的方法。如要讓這項更新生效,新的 APEX 套件必須符合下列規定:

  • apex_manifest.json 中的套件名稱與預先安裝的 APEX 相同。

  • apex_manifest.json 中宣告高於預先安裝 APEX 的版本代碼。

  • 使用與預先安裝 APEX 相同的金鑰組簽署 APEX。

新 APEX

雖然使用預先安裝的 APEX 是確保安全性的最佳做法,但我們也支援新的 APEX。採用這種做法時,合作夥伴必須負責維護完整的安全通訊協定,包括:

  • 安全地管理用於這些 APEX 的簽署金鑰。

  • 建立完善的流程,找出並封鎖惡意套件。

  • 盡可能在後續系統更新中,將新的 APEX 轉換為預先安裝的 APEX。

如要安裝或更新新的 APEX,必須進行下列設定。

預先安裝信任的公開金鑰

如要安裝新的 APEX,必須先在目標分割區預先安裝公開簽署金鑰。請將公開金鑰放在 /partition/etc/brand_new_apex/,其中 /partition/ 代表 APEX 根據 Treble 規則關聯的分割區。舉例來說,如果系統根據 /vendor/etc/brand_new_apex/ 中的公開金鑰驗證 APEX 的簽章,該 APEX 就會成為供應商 APEX。如果新的 APEX 未使用與預先安裝的公開金鑰相應的金鑰簽署,系統就會拒絕。

封鎖惡意的新 APEX

如果系統在安裝後發現新的 APEX 含有惡意內容,就必須透過系統更新封鎖該 APEX。如要這麼做,請將 APEX 套件名稱新增至 /partition/etc/brand_new_apex/blocklist.json 中的封鎖清單檔案。這個封鎖清單必須放在 APEX 的目標磁碟分割區 (與預先安裝公開金鑰的磁碟分割區相同)。每個磁碟分割區都有專屬的封鎖清單檔案。