กระบวนการเผยแพร่อิมเมจ Kernel ทั่วไป (GKI)

หน้านี้อธิบายวิธีเผยแพร่ GKI ซึ่งรวมถึงการเผยแพร่รายสัปดาห์ รายไตรมาส และการเผยแพร่ฉุกเฉินนอกแบนด์ เป้าหมายของเอกสารนี้คือการให้คำแนะนำแก่ OEM เกี่ยวกับตำแหน่งที่จะรับ GKI รวมถึงกระบวนการสำหรับการแก้ไขฉุกเฉินนอกแบนด์ นอกจากนี้ OEM ยังใช้การพัฒนา GKI เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีทำงานร่วมกับทีม Android Kernel เพื่อเพิ่มประสิทธิภาพ เคอร์เนล GKI สำหรับผลิตภัณฑ์ของตนได้ด้วย

จังหวะการเปิดตัว GKI

GKI จะเผยแพร่ทุกไตรมาสหลังจากที่ KMI หยุดการเปลี่ยนแปลง

เดือนที่เผยแพร่ a12-5.10 a13-5.10 a13-5.15 a14-5.15 a14-6.1 a15-6.6 a16-6.12
มิถุนายน
2025
การตัดสิทธิ์เช็คอิน
GKI ที่โหลดไว้ล่วงหน้าพร้อมใช้งาน
16 มิ.ย.
30 มิ.ย.
2 มิ.ย.
16 มิ.ย.
2 มิ.ย.
16 มิ.ย.
2 มิ.ย.
18 มิ.ย.
กรกฎาคม
2025
การตัดสิทธิ์เช็คอิน
GKI ที่โหลดไว้ล่วงหน้าพร้อมใช้งาน
16 ก.ค.
31 ก.ค.
16 ก.ค.
31 ก.ค.
16 ก.ค.
31 ก.ค.
1 ก.ค.
15 ก.ค.
1 ก.ค.
15 ก.ค.
1 ก.ค.
15 ก.ค.
สิงหาคม
2025
การตัดสิทธิ์เช็คอิน
GKI ที่โหลดไว้ล่วงหน้าพร้อมใช้งาน
1 ส.ค.
15 ส.ค.
1 ส.ค.
15 ส.ค.
1 ส.ค.
15 ส.ค.
กันยายน
2025
การตัดสิทธิ์เช็คอิน
GKI ที่โหลดไว้ล่วงหน้าพร้อมใช้งาน
16 ก.ย.*
30 ก.ย.*
16 ก.ย.
30 ก.ย.
1 ก.ย.
15 ก.ย.
1 ก.ย.
15 ก.ย.
1 ก.ย.
15 ก.ย.
ตุลาคม
2025
การตัดสิทธิ์เช็คอิน
GKI ที่โหลดไว้ล่วงหน้าพร้อมใช้งาน
16 ต.ค.
31 ต.ค.
1 ต.ค.
15 ต.ค.
1 ต.ค.
15 ต.ค.
พฤศจิกายน
2025
การตัดสิทธิ์เช็คอิน
GKI ที่โหลดไว้ล่วงหน้าพร้อมใช้งาน
ธันวาคม
2025
การตัดสิทธิ์เช็คอิน
GKI ที่โหลดไว้ล่วงหน้าพร้อมใช้งาน
1 ธ.ค.
15 ธ.ค.
1 ธ.ค.*
15 ธ.ค.*
1 ธ.ค.
15 ธ.ค.
1 ธ.ค.
15 ธ.ค.

ความถูกต้องของการสร้าง GKI สำหรับ OEM

OEM สามารถใช้ Android GKI ที่เพิ่งเปิดตัวได้ OEM สามารถเปิดตัวด้วยบิลด์ที่ได้รับการรับรอง GKI ตราบใดที่เป็นไปตามข้อกำหนด LTS ใน กระดานข่าวความปลอดภัยของ Android (ASB)

การเผยแพร่การพัฒนาประจำสัปดาห์

เราทดสอบรุ่นต่างๆ ด้วย Cuttlefish เพื่อให้มั่นใจว่ารุ่นเหล่านั้นผ่านเกณฑ์คุณภาพขั้นต่ำ

ไบนารี GKI พร้อมให้บริการแบบบริการตนเองจาก Android CI เมื่อมีการผสานรวมการเปลี่ยนแปลง บิลด์รายสัปดาห์จะไม่ได้รับการรับรอง แต่สามารถใช้เป็น พื้นฐานสำหรับการพัฒนาและการทดสอบได้ คุณใช้บิลด์รายสัปดาห์กับ บิลด์อุปกรณ์ที่ใช้งานจริงสำหรับผู้ใช้ปลายทางไม่ได้

การเปิดตัวที่ได้รับการรับรองรายไตรมาส

การเผยแพร่ GKI ทุกไตรมาสจะมี boot.img ที่ผ่านการทดสอบแล้ว ซึ่งมีใบรับรองที่ Google แทรกไว้เพื่อยืนยันว่าไบนารีสร้างขึ้นจากซอร์สโค้ด พื้นฐานที่ทราบ

ในแต่ละไตรมาส ระบบจะเลือก GKI Quarterly Release Candidate (ไม่ได้รับการรับรอง) หลังจากวันที่สิ้นสุดการเช็คอิน ซึ่งโดยปกติคือบิลด์รายสัปดาห์ที่ 2 ของ เดือนนั้น หลังจากเลือกเวอร์ชันทดลองที่เผยแพร่ทุกไตรมาสแล้ว ระบบจะไม่ยอมรับการเปลี่ยนแปลงใหม่ ในการเผยแพร่ของเดือนนั้น ในช่วงเวลาที่ปิด เราจะแก้ไขได้เฉพาะข้อบกพร่องที่ทำให้การทดสอบล้มเหลวเท่านั้น รุ่นที่พร้อมใช้งานจะได้รับการประกันคุณภาพตามที่อธิบายไว้ในส่วนการ รับรอง GKI เพื่อให้มั่นใจว่าการทดสอบการปฏิบัติตามข้อกำหนดจะผ่านใน บิลด์ GSI+GKI ที่มีอุปกรณ์อ้างอิงและ Cuttlefish

ไทม์ไลน์รอบการเผยแพร่ GKI รูปที่ 1 ลำดับเวลาการเปิดตัว GKI

กระบวนการหมุนใหม่ฉุกเฉิน

Respin หมายถึงกระบวนการผสานใหม่ สร้างใหม่ ทดสอบใหม่ และ รับรองไบนารีอีกครั้งหลังจาก การเผยแพร่เคอร์เนล GKI ต่อสาธารณะ คุณขอให้หมุนไบนารีที่ผ่านการรับรองอีกครั้งได้ในกรณีต่อไปนี้

  • วิธีอัปเดตรายการสัญลักษณ์
  • เพื่อใช้การแก้ไขข้อบกพร่อง รวมถึงข้อบกพร่องที่พบระหว่างการอนุมัติในห้องทดลองของผู้ให้บริการ
  • วิธีเพิ่มHook ของผู้ให้บริการ
  • หากต้องการใช้แพตช์กับฟีเจอร์ที่มีอยู่
  • ใช้แพตช์ความปลอดภัย (หลังจาก 6 เดือน)

ระบบจะผสานรวมแพตช์ความปลอดภัยเข้ากับกิ่งก้านของรุ่นโดยอัตโนมัติเป็นเวลาสูงสุด 6 เดือนหลังจากที่กิ่งก้านนั้นเผยแพร่ หลังจากพ้นกำหนด 6 เดือน คุณต้อง ขอรีสปินเพื่อใช้แพตช์ความปลอดภัยกับสาขา

หลักเกณฑ์เกี่ยวกับคำขอหมุนใหม่

โปรดทราบหลักเกณฑ์ต่อไปนี้ก่อนขอให้หมุนซ้ำ

  • อนุญาตให้หมุนได้เฉพาะในสาขาที่เผยแพร่หลังจากการเผยแพร่ต่อสาธารณะครั้งแรก ของบิลด์รายไตรมาสที่เปิดตัวแล้ว

  • เราจะรับคำขอ Respin สำหรับสาขาการเผยแพร่ที่กำหนดเท่านั้นเป็นเวลาสูงสุด 6 เดือนหลังจากเผยแพร่ต่อสาธารณะครั้งแรก หลังจาก 6 เดือน สาขาจะมีสิทธิ์หมุนซ้ำเฉพาะแพตช์ความปลอดภัยที่อ้างอิงในกระดานข่าวความปลอดภัยของ Android เท่านั้น

  • เมื่อข้อกำหนด LTS ที่กำหนดโดยกระดานข่าวความปลอดภัยของ Android (ASB) ทำให้สาขาไม่เป็นไปตามข้อกำหนด ระบบจะเลิกใช้งานสาขานั้น ระบบจะไม่ยอมรับคำขอส่งใหม่ สำหรับสาขาที่เลิกใช้งานแล้ว วันที่เลิกใช้งานสำหรับสาขาการเผยแพร่ GKI ที่ระบุจะรวมอยู่ในหมายเหตุการสร้างการเผยแพร่ GKI รายไตรมาสในส่วน การเผยแพร่ สำหรับการวางแผนในอนาคต เราจะอัปเดตข้อกำหนด LTS ในเดือนพฤษภาคมและพฤศจิกายน ทุกปี ตัวอย่างเช่น ระบบไม่รองรับandroid12-5.10-2023-07 สาขา (5.10.177) สำหรับการหมุนซ้ำหลังจากวันที่ 1 พฤษภาคม 2024 เนื่องจากandroid12-5.10-2023-07 สาขา (5.10.177) ไม่เป็นไปตามข้อกำหนด LTS ของ ASB-2024-05

  • การส่งกลับใช้ได้เฉพาะกับการแก้ไขข้อบกพร่องเร่งด่วน การอัปเดตรายการสัญลักษณ์ หรือ การใช้แพตช์เพื่อแก้ไขฟีเจอร์ที่มีอยู่

  • แพตช์ทั้งหมดที่จะเข้าสู่สาขาการเผยแพร่รายไตรมาสต้องผสานรวมเข้ากับ สาขาการพัฒนา GKI หลักแล้ว ตัวอย่างเช่น หากต้องใช้แพตช์สำหรับandroid12-5.10-2022-09ที่ส่งอีกครั้ง จะต้องผสานรวมแพตช์ดังกล่าวเข้ากับandroid12-5.10แล้ว

  • คุณต้องเลือกแพตช์จากสาขาการพัฒนา GKI หลักและ อัปโหลดแพตช์ไปยังสาขาการเผยแพร่รายไตรมาส

  • ในคำขอหมุนใหม่ คุณต้องกำหนดลำดับความสำคัญ (ความเร่งด่วน) ให้กับคำขอ ลำดับความสำคัญนี้จะช่วยให้ทีม GKI ช่วยเหลือพาร์ทเนอร์ได้ดียิ่งขึ้นอย่างทันท่วงที สำหรับคำขอเร่งด่วนหรือมีความสำคัญ โปรดทำเครื่องหมายลำดับความสำคัญเป็น P0 สำหรับคำขอที่มีลำดับความสำคัญ P0 และ P1 คุณต้องให้เหตุผลถึงความเร่งด่วนด้วย ตารางต่อไปนี้แสดง การแมประดับความสำคัญของข้อบกพร่องและเวลาในการแก้ไข (ESRT)

    ลำดับความสำคัญ ESRT
    P0 2 วันทำการ
    P1 5 วันทำการ
    P2 10 วันทำการ
    P3 15 วันทำการ
  • คุณต้องส่งคำขอการหมุนแยกต่างหากต่อสาขาการเผยแพร่ เช่น หากต้องส่งคำขอให้หมุนกลับทั้งสำหรับ android12-5.10-2022-08 และ android12-5.10-2022-09 คุณต้องสร้างคำขอให้หมุนกลับ 2 รายการ

  • หลังจากที่ได้รับบิลด์และมีการทำเครื่องหมายคำขอ Respin ว่าแก้ไขแล้ว คุณไม่ควรเปิดคำขอ Respin อีกครั้งเพื่อเพิ่ม CL เพิ่มเติม คุณต้องส่งคำขอ การทดสอบใหม่หากมีแพตช์เพิ่มเติมที่ต้องผสานรวม

  • เพิ่มแท็กต่อไปนี้สำหรับ CL แต่ละรายการที่พิจารณา

    • Bug: ต้องเพิ่มรหัสข้อบกพร่องในข้อความคอมมิตสำหรับ CL แต่ละรายการ
    • Change-Id: ต้องเหมือนกับ Change-Id ของการเปลี่ยนแปลงกิ่งฐาน
  • หากคำขอหมุนซ้ำต้องมีการตอบกลับจากคุณ แต่คุณไม่ตอบกลับภายใน 3 วันทำการ ระบบจะลดระดับความสำคัญลง 1 ระดับ (เช่น P0 จะลดระดับเป็น P1) หากคุณไม่ตอบกลับภายใน 2 สัปดาห์ ระบบจะทําเครื่องหมายข้อบกพร่องเป็นจะไม่แก้ไข (ล้าสมัย)

ส่งคำขอให้หมุนใหม่

แผนภาพต่อไปนี้แสดงกระบวนการหมุนใหม่ กระบวนการจะเริ่มต้นเมื่อพาร์ทเนอร์ OEM (คุณ) ส่งคำขอ Respin

กระบวนการหมุนใหม่ฉุกเฉิน รูปที่ 2 กระบวนการหมุนใหม่

หากต้องการเข้าสู่กระบวนการหมุนซ้ำ ให้ทำดังนี้

  1. กรอกแบบฟอร์มคำขอ GKI Respin และติดต่อผู้จัดการลูกค้าด้านเทคนิคของ Google ทันที แบบฟอร์มนี้ สร้างข้อบกพร่องคำขอ GKI Respin คุณ (ผู้ขอ) ทีม GKI และบุคคลที่คุณเพิ่มลงในรายการสำเนาของข้อบกพร่องจะมองเห็นข้อบกพร่องของคำขอหมุนใหม่
    • หากคุณมีวิธีแก้ไขอยู่แล้ว คำขอควรชี้ไปยังการส่งแพตช์ใน AOSP เพื่อให้ Google ตรวจสอบได้ หากส่งแพตช์ไม่ได้ จะต้องแนบแพตช์เป็นไฟล์ข้อความไปกับคำขอ
    • หากคุณไม่มีวิธีแก้ไข คำขอต้องมีข้อมูลให้มากที่สุดเท่าที่จะเป็นไปได้ ซึ่งรวมถึงหมายเลขเวอร์ชันของเคอร์เนลและบันทึก เพื่อให้ Google ช่วยแก้ไขข้อบกพร่องของปัญหาได้
  2. ทีม GKI ของ Google จะตรวจสอบคำขอและอนุมัติ หรือส่งกลับให้คุณหากต้องการข้อมูลเพิ่มเติม
  3. หลังจากตกลงการแก้ไขแล้ว ทีม GKI ของ Google จะตรวจสอบโค้ด (CR+2) ของการเปลี่ยนแปลง การตรวจสอบจะเริ่มในกรอบเวลา ESRT ทีม GKI จะผสาน สร้าง ทดสอบ เพื่อการถดถอย และรับรองการเปลี่ยนแปลง
  4. ไบนารีจะเผยแพร่ไปยัง ci.android.com กรอบเวลา ESRT จะสิ้นสุดลงและทีม Google GKI จะทำเครื่องหมายคำขอว่าแก้ไขแล้วและ อ้างอิงบิลด์ที่สร้างใหม่ นอกจากนี้ ระบบจะโพสต์บิลด์การหมุนซ้ำในหน้าบิลด์การเผยแพร่ของ Generic Kernel Image (GKI) ด้วย

การรับรอง GKI

ประเภทของบิลด์ GKI การบังคับใช้คุณภาพ Notes
รายสัปดาห์ การทดสอบ Cuttlefish
  • การเปิด
  • เซ็ตย่อยของ VTS
  • ชุดย่อยของ CTS
  • ไม่ได้รับการรับรอง ใช้สำหรับการทดสอบและ
    การเริ่มต้นใช้งานอุปกรณ์เท่านั้น
  • ใช้เปิดตัวอุปกรณ์ไม่ได้
รายไตรมาส (ได้รับการรับรอง) การทดสอบ Cuttlefish
  • การเปิด
  • VTS
  • CTS
การทดสอบฮาร์ดแวร์อ้างอิง
  • การเปิด
  • VTS
  • CTS
การหมุนซ้ำ (ได้รับการรับรอง) การทดสอบ Cuttlefish
  • การเปิด
  • VTS
  • ชุดย่อยของ CTS
การทดสอบอุปกรณ์อ้างอิง
  • การเปิด
  • VTS
  • สร้างขึ้นบนบิลด์ที่ได้รับการรับรอง GKI
  • บิลด์จะได้รับการรับรองหลังจากผ่านการรับรอง

แหล่งที่มาของอาร์ติแฟกต์บิลด์

คุณสามารถรับอาร์ติแฟกต์สำหรับการเผยแพร่ทั้งหมดได้จาก ci.android.com

ดูข้อมูลเพิ่มเติมเกี่ยวกับ CI รวมถึงผลการทดสอบได้ในแดชบอร์ดการผสานรวมอย่างต่อเนื่องของ Android

คำถามที่พบบ่อย

คำถามที่พบบ่อยเกี่ยวกับการเผยแพร่ GKI มีดังนี้

เป็นไปได้ไหมที่จะสร้างไบนารี GKI ใหม่โดยอิงตาม GKI ที่เผยแพร่แล้ว

ใช่ เราเรียกการกระทำนี้ว่าการรีสปิน กระบวนการรีสปินจะได้รับการรองรับตราบใดที่บิลด์ GKI ที่เผยแพร่ (ซึ่งมีการขอรีสปิน) เป็นไปตามข้อกำหนด LTS ในกระดานข่าวความปลอดภัยของ Android (ASB)

เป็นไปได้ไหมที่จะสร้างไบนารี GKI ซ้ำ

ได้ ตัวอย่างเช่น

GKI 2.0
5.10 kernel prebuilts from build 7364300
https://ci.android.com/builds/submitted/7364300/kernel_aarch64/latest

หากต้องการสร้างตัวอย่างซ้ำ ให้ดาวน์โหลด manifest_$id.xml และเรียกใช้คำสั่งต่อไปนี้

repo init -u https://android.googlesource.com/kernel/manifest
mv manifest_7364300.xml .repo/manifests
repo init -m manifest_7364300.xml --depth=1
repo sync
# build the GKI images
# You may want to use LTO=thin to build faster for development
BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh
# (optional) build virtual platform modules
BUILD_CONFIG=common-modules/virtual-device/build.config.virtual_device.aarch64 build/build.sh

คุณสามารถดึงสำเนาอาร์ติแฟกต์ GKI ได้จาก out/.../dist

ไบนารี GKI (รวมถึงแพตช์การหมุนฉุกเฉิน) สร้างขึ้นในโค้ดเบสล่าสุดหรือไม่

ไม่ได้ Respin จะมีเฉพาะแพตช์ที่อยู่เหนือเคอร์เนลที่ได้รับการรับรองรายไตรมาสซึ่งเลือกไว้ การหมุนใหม่เหล่านี้มีการแก้ไขข้อบกพร่องที่บล็อกการเปิดตัวทั้งหมด ที่ OEM รายงานจนถึงเวลาใดก็ตามโดยใช้รุ่นไตรมาสพื้นฐานที่เกี่ยวข้อง ดูตัวอย่างต่อไปนี้เกี่ยวกับวิธีที่สถานการณ์ประเภทนี้เกิดขึ้น

  • OEM1 และ OEM2 ตัดสินใจใช้ไบนารี GKI ที่เผยแพร่ตั้งแต่เดือนพฤศจิกายน 2021
  • OEM1 และ OEM2 พบปัญหาที่ต้องใช้แพตช์เพื่อรองรับ แพตช์เหล่านี้ อาจแตกต่างกันหรือเหมือนกันก็ได้
  • การรีสปินที่อยู่เหนือไบนารีของเดือนพฤศจิกายน 2021 มีการแก้ไขการบล็อกการเปิดตัว ที่ทั้ง OEM1 และ OEM2 รายงานในช่วงเวลาการรีสปิน แต่ไม่มีการแก้ไขอื่นๆ
  • ปัญหาที่กล่าวถึงในหัวข้อย่อยที่ 2 จะรวมอยู่ใน GKI รุ่นรายไตรมาสต่อๆ ไปด้วย

การหมุนเวียนในเดือนตุลาคมมีแพตช์ทั้งหมดที่ OEM ส่งมา แต่แพตช์อื่นๆ ของ OEM ส่งผลกระทบต่อเราเนื่องจากไม่ได้ทดสอบกับผลิตภัณฑ์ของเราโดยเฉพาะ เป็นไปได้ไหมที่จะรวมเฉพาะแพตช์ของเรา

ซึ่งเป็นไปไม่ได้ เส้นทางการหมุนซ้ำ "ต่อ OEM" ไม่สามารถปรับขนาดได้ แต่ทีม GKI จะตรวจสอบการเปลี่ยนแปลงทุกรายการที่รวมอยู่ในการสร้างใหม่ และทดสอบการเปลี่ยนแปลงกับฮาร์ดแวร์ทั้งหมดที่มีก่อนที่จะสร้าง บิลด์ใหม่ หากทีม GKI พบว่าปัญหาเกิดขึ้นกับ OEM, อุปกรณ์ หรือ รุ่นใดรุ่นหนึ่งโดยเฉพาะ ทีม GKI จะตรวจสอบว่าโค้ดที่เพิ่มโดยการเปลี่ยนแปลงจะทำงานใน อุปกรณ์ รุ่น หรือ SKU ที่ได้รับผลกระทบเท่านั้น

ประโยชน์หลักของการหมุนซ้ำแบบรวมคืออุปกรณ์ทุกเครื่องที่ใช้ฐานการเผยแพร่เดียวกันจะได้รับประโยชน์จากกันและกัน โดยเฉพาะอย่างยิ่งหากข้อบกพร่องที่พบเป็นข้อบกพร่องทั่วไปและใช้ได้กับผู้ใช้ทุกคน ข้อบกพร่องของเคอร์เนลหลักที่พบ ในการทดสอบของผู้ให้บริการเป็นตัวอย่างที่เฉพาะเจาะจงของแนวคิดนี้

มีสถานการณ์ที่ Google ให้ข้อมูลเฉพาะเกี่ยวกับแพตช์ OEM และสถานการณ์ปัญหาเพื่อให้ OEM ประเมินผลกระทบและความเสี่ยงของการใช้แพตช์กับผลิตภัณฑ์ของตนได้หรือไม่

Google จะไม่เพิ่มการเปลี่ยนแปลงลงในบิลด์ที่สร้างใหม่จนกว่าจะเข้าใจปัญหา และรวบรวมรายละเอียดทั้งหมดแล้ว ซึ่งจะเห็นได้ในบันทึกการเปลี่ยนแปลง (ข้อความคอมมิต) Google ไม่ได้เปิดเผยว่าอุปกรณ์ใดที่ได้รับผลกระทบ แต่ OEM สามารถดูคำอธิบายปัญหาและวิธีแก้ปัญหาได้เสมอในบันทึกการเปลี่ยนแปลง