「重新建構」是指在公開發布 GKI 核心後,重新合併、重新建構、重新測試及重新認證二進位檔的程序。
申請重新製作前,請注意下列規範。
資格條件和生命週期
- 時間:只有在季度版本首次公開發布後,您才能要求重新發布版本分支。在初始公開版本發布後,最多六個月內,可要求針對特定版本分支版本重新編譯供應商掛鉤或其他功能。
- 安全性與 LTS:六個月後,分支版本僅符合 Android 安全性公告提及的安全性修補程式或重大錯誤修正的重製資格。
- 淘汰:如果 Android 安全性公告 (ASB) 定義的 LTS 需求導致分支版本不相容,該分支版本就會遭到淘汰。系統不會接受已淘汰分支的重製要求。
- 特定 GKI 發布分支的淘汰日期會列在「發布」下方的每季 GKI 發布子版本建構作業注意事項中。舉例來說,2025 年 9 月發布的版本支援重新發布,直到 2027 年 3 月為止。這個日期反映了 LTS 2.0 核心版本的生命週期,2025 年 9 月起推出的版本為 18 個月 (2025 年 9 月前推出的版本為 12 個月)。
- 範圍:僅限緊急修正錯誤、更新符號清單,或套用修補程式修正現有功能時,才可要求重新建構。
- 16 KB GKI 版本:支援的 16 KB GKI 分支版本 (
android15-6.6、android16-6.12和android17-6.18) 的隨選重製版本,與 4 KB 建構版本遵循相同的重製要求表單、修補程式提交標準和資格程序。您不需要同時更新 4 KB 和 16 KB 核心,但建議您這麼做。
修補程式提交標準
為符合重新發布要求處理作業的預期標準解決時間 (ESRT),提交至發布分支版本的所有修補程式都必須遵守下列技術規則。
可靠資料來源和挑選
- 先開發分支版本:所有要併入季發布分支版本的修補程式,都必須先併入主要 GKI 開發分支版本。舉例來說,如果需要修補程式才能重新旋轉
android15-6.6-2025-08,則必須先將修補程式合併至android15-6.6。 - 乾淨挑選:您必須直接從開發分支挑選修補程式。請勿從其他發布分支版本中挑選 (例如,請勿從
2025-08挑選至2025-09),因為這可能會導致作者或提交資訊與開發分支版本中的版本不一致。如果資訊不一致,我們將不接受修正。 - 保留中繼資料:保留原始修訂版本中繼資料 (例如作者、原始時間戳記)。使用
git cherry-pick -x保留中繼資料。
提交鏈
- 連續鏈結:如果重新旋轉要求涉及多個修補程式,請將這些修補程式上傳為單一連續鏈結的提交。
- ABI 和 KMI 的位置:如果多個修補程式重新旋轉包含核心模組介面 (KMI) 和應用程式二進位檔介面 (ABI) 更新 (例如符號清單變更或 XML/STG 檔案更新),請將這些提交內容放在提交鏈的最後。
- 重定基準:如果您編輯鏈結中的父項修訂版本,則必須根據父項修訂版本的最新修訂版本,重定所有子項修訂版本的基準,以免建構失敗。
- 解決衝突:確認任何修補程式中都沒有衝突標記。
- 建構驗證:整個修訂版本鏈結必須建構成功。
必要標記
如果提交訊息中沒有下列標記,重新發布要求就會遭到封鎖:
Change-Id:必須與開發分支版本變更的Change-Id相同。- 例外狀況:如果修補程式已併入開發分支版本,做為 LTS 更新的一部分,則應從 LTS 版本挑選,並格式化為
UPSTREAM修補程式。請參閱「如何將修補程式提交至 Android 常見核心」。
- 例外狀況:如果修補程式已併入開發分支版本,做為 LTS 更新的一部分,則應從 LTS 版本挑選,並格式化為
Bug(現有):不得移除原始開發分支版本中的現有Bug: XYZ標記。Bug(重新提交):您必須新增Bug: XYZ標記,其中 XYZ 對應至與目前重新提交要求相關聯的錯誤 ID。- 視需要更新
UPSTREAM提交標記:從開發分支版本挑選 CL 至發布分支版本,且 CL 標記為UPSTREAM時,請考量下列情境:- 如果 CL 能順利套用至發布分支版本,您就不需要採取任何其他動作。
- 如果 CL 無法順利套用,請修正衝突、將標記更新為
BACKPORT,並記錄為解決衝突所執行的作業,請參閱「從主線 Linux 進行回溯移植的規定」。
優先順序和 ESRT
為重新旋轉要求指派優先順序 (緊急程度),協助 GKI 團隊判斷優先順序。這項優先順序可協助 GKI 團隊及時為合作夥伴提供更完善的服務。
- 如果是重大問題或要求本身具有時效性,請將優先順序標示為 P0。
- 如果是 P0 和 P1 要求,您也必須說明緊急程度。
下表列出錯誤優先順序和解決時間 (ESRT) 的對應關係:
| 優先順序 | ESRT |
|---|---|
| P0 | 2 個工作天 |
| P1 | 5 個工作天 |
| P2 | 10 個工作天 |
| P3 | 15 個工作天 |
SLA 政策
- 為每個發布分支版本分別提交重新發布要求。
- 如果已標示為修正的重新旋轉要求有變更,請提交新的重新旋轉要求。請勿重新開啟要求來新增其他變更清單 (CL)。
- 如果重新製作要求需要您回覆,而您未在三個工作天內回覆,優先順序會降級一級,例如 P0 降級為 P1。
- 如果兩週內未回覆,系統會將錯誤標示為「不會修正 (已過時)」。
提交重新製作要求
下圖顯示重新製作程序。OEM 合作夥伴 (您) 提交重新製作要求後,程序就會開始。
圖 1. 緊急重製程序。
如要提交重新製作要求,請按照下列步驟操作:
填寫 GKI 重新旋轉要求表單,並立即與 Google 聯絡窗口聯絡。
- 這份表單會建立 GKI 重新編譯要求錯誤。
準備修補程式:
- 確認修補程式已合併至 GKI 開發分支。
- 將修補程式套用至適當的 GKI 發布分支。
- 修改精選修補程式,加入
Bug: XYZ標記,並引用重新建構要求 ID。
範例: 如要從
android16-6.12挑選 CL 至android16-6.12-2025-12:# 1. Checkout the target release branch git checkout android16-6.12-2025-12 # 2. Fetch the upstream development branch (Source of Truth) git fetch aosp android16-6.12 # 3. Cherry-pick the commit (Preserving metadata) git cherry-pick -x <commit_hash> # 4. Update the commit message to include the Respin Bug ID # (Do not remove existing Bug IDs or change the Change-Id)提交錯誤。提交要求後,系統會執行下列操作:
提交後審查程序:
- Google GKI 團隊會審查要求,並核准要求或指派回給您 (如需更多資訊)。
- 修正方式確定後,Google GKI 團隊會審查變更。審查期間,ESRT 計時器會持續計時。不過,如果修補程式遭到拒絕或需要重新製作,ESRT 計時器就會重設。
- GKI 團隊會合併、建構、測試迴歸,並認證變更。
版本:
- 二進位檔會發布至 ci.android.com。
- ESRT 時間範圍結束,Google GKI 團隊將要求標示為「已修正」,並參照 respin 建構版本。
- 重製 (respin) 版本也會發布在通用核心映像檔 (GKI) 發布子版本頁面。