หน้านี้อธิบายวิธีเผยแพร่ 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* | a17-6.18* | |
|---|---|---|---|---|---|---|---|---|---|
| ต.ค. 2025 |
เวลาเช็คอิน สิ้นสุด |
16 ต.ค. | 1 ต.ค. | 1 ต.ค. | |||||
| GKI พร้อมโหลดล่วงหน้า | 31 ต.ค. | 15 ต.ค. | 15 ต.ค. | ||||||
| ธ.ค. 2025 |
เวลาเช็คอิน สิ้นสุด |
1 ธ.ค. | 1 ธ.ค. | 1 ธ.ค. | 1 ธ.ค. | ||||
| GKI พร้อมโหลดล่วงหน้า | 15 ธ.ค. | 15 ธ.ค. | 15 ธ.ค. | 15 ธ.ค. | |||||
| ม.ค. 2026 |
เวลาเช็คอิน สิ้นสุด |
16 ม.ค. | 2 ม.ค. | 2 ม.ค. | |||||
| GKI พร้อมโหลดล่วงหน้า | 31 ม.ค. | 15 ม.ค. | 15 ม.ค. | ||||||
| ก.พ. 2026 |
เวลาเช็คอิน สิ้นสุด |
||||||||
| GKI พร้อมโหลดล่วงหน้า | |||||||||
| มี.ค. 2026 |
เวลาเช็คอิน สิ้นสุด |
1 มี.ค. | 1 มี.ค. | 15 มี.ค. | |||||
| GKI พร้อมโหลดล่วงหน้า | 15 มี.ค. | 15 มี.ค. | 31 มี.ค. | ||||||
| เม.ย. 2026 |
เวลาเช็คอิน สิ้นสุด |
16 เม.ย. | 1 เม.ย. | 1 เม.ย. | |||||
| GKI พร้อมโหลดล่วงหน้า | 30 เม.ย. | 15 เม.ย. | 15 เม.ย. | ||||||
| พฤษภาคม 2026 |
เวลาเช็คอิน สิ้นสุด |
||||||||
| GKI พร้อมโหลดล่วงหน้า | |||||||||
| มิ.ย. 2026 |
เวลาเช็คอิน สิ้นสุด |
1 มิ.ย. | 1 มิ.ย. | 15 มิ.ย. | 15 มิ.ย. | ||||
| GKI พร้อมโหลดล่วงหน้า | 15 มิ.ย. | 15 มิ.ย. | 30 มิ.ย. | 30 มิ.ย. | |||||
| ก.ค. 2026 |
เวลาเช็คอิน สิ้นสุด |
16 ก.ค. | 1 ก.ค. | 1 ก.ค. | |||||
| GKI พร้อมโหลดล่วงหน้า | 31 ก.ค. | 15 ก.ค. | 15 ก.ค. | ||||||
| ส.ค. 2026 |
เวลาเช็คอิน สิ้นสุด |
||||||||
| GKI พร้อมโหลดล่วงหน้า | |||||||||
| ก.ย. 2026 |
เวลาเช็คอิน สิ้นสุด |
1 ก.ย. | 1 ก.ย. | 16 ก.ย. | 16 ก.ย. | ||||
| GKI พร้อมโหลดล่วงหน้า | 15 ก.ย. | 15 ก.ย. | 30 ก.ย. | 30 ก.ย. | |||||
| ต.ค. 2026 |
เวลาเช็คอิน สิ้นสุด |
16 ต.ค. | 1 ต.ค. | 1 ต.ค. | |||||
| GKI พร้อมโหลดล่วงหน้า | 31 ต.ค. | 15 ต.ค. | 15 ต.ค. | ||||||
| พ.ย. 2026 |
เวลาเช็คอิน สิ้นสุด |
||||||||
| GKI พร้อมโหลดล่วงหน้า | |||||||||
| ธ.ค. 2026 |
เวลาเช็คอิน สิ้นสุด |
1 ธ.ค. | 1 ธ.ค. | 1 ธ.ค. | 1 ธ.ค. | ||||
| GKI พร้อมโหลดล่วงหน้า | 15 ธ.ค. | 15 ธ.ค. | 15 ธ.ค. | 15 ธ.ค. | |||||
ความถูกต้องของบิลด์ GKI สำหรับ OEM
OEM สามารถใช้ Android GKI ที่เพิ่งเปิดตัวได้ OEM สามารถเปิดตัวบิลด์ที่ได้รับการรับรอง GKI ได้ตราบใดที่เป็นไปตามข้อกำหนดของเคอร์เนลที่ได้รับการสนับสนุนระยะยาว (LTS) ในประกาศข่าวสารด้านความปลอดภัยของ Android (ASB)
การเปิดตัวที่ได้รับการรับรองรายไตรมาส
การเผยแพร่ GKI ทุกไตรมาสจะมี boot.img ที่ผ่านการทดสอบแล้ว ซึ่งมีใบรับรองที่ Google
แทรกไว้เพื่อยืนยันว่าไบนารีสร้างขึ้นจากซอร์สโค้ด
พื้นฐานที่ทราบ
ในแต่ละไตรมาส ระบบจะเลือก GKI รุ่นทดสอบรายไตรมาส (ไม่ได้รับการรับรอง) หลังจากวันที่สิ้นสุดการเช็คอิน หลังจากเลือกเวอร์ชันทดลองที่เผยแพร่รายไตรมาสแล้ว ระบบจะไม่ยอมรับการเปลี่ยนแปลงใหม่ๆ ในรุ่นของเดือนนั้น ในช่วงเวลาที่ปิดรับการเปลี่ยนแปลง เราจะแก้ไขได้เฉพาะข้อบกพร่องที่ทำให้การทดสอบล้มเหลวเท่านั้น รุ่นที่พร้อมใช้งานจะผ่านการประกันคุณภาพตามที่อธิบายไว้ในส่วนการรับรอง GKI เพื่อยืนยันว่าการทดสอบการปฏิบัติตามข้อกำหนดผ่านในบิลด์ GSI+GKI ที่มีอุปกรณ์อ้างอิงและ Cuttlefish
รูปที่ 1 ลำดับเวลาการเผยแพร่ GKI
การรับรอง GKI
| ประเภทของบิลด์ GKI | การบังคับใช้คุณภาพ | Notes |
|---|---|---|
| รายไตรมาส (ได้รับการรับรอง) | การทดสอบ Cuttlefish
|
|
| การหมุนซ้ำ (ได้รับการรับรอง) | การทดสอบ Cuttlefish
|
|
แหล่งที่มาของอาร์ติแฟกต์บิลด์
OEM สามารถรับอาร์ติแฟกต์สำหรับการเผยแพร่ทั้งหมดได้จาก ci.android.com
ดูข้อมูลเพิ่มเติมเกี่ยวกับ CI รวมถึงผลการทดสอบได้ในแดชบอร์ดการผสานรวมอย่างต่อเนื่องของ Android
คำถามที่พบบ่อย
คำถามที่พบบ่อยเกี่ยวกับการเผยแพร่ GKI มีดังนี้
เป็นไปได้ไหมที่จะสร้างไบนารี GKI ใหม่โดยอิงตาม GKI ที่เผยแพร่แล้ว
ใช่ เราเรียกการกระทำนี้ว่าการปั่น กระบวนการ Respin จะได้รับการสนับสนุนตราบใดที่บิลด์ GKI ที่เผยแพร่ (ซึ่งมีการขอ Respin) เป็นไปตามข้อกำหนด 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/manifestmv manifest_7364300.xml .repo/manifestsrepo init -m manifest_7364300.xml --depth=1repo sync # build the GKI images # You may want to use LTO=thin to build faster for developmentBUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh # (optional) build virtual platform modulesBUILD_CONFIG=common-modules/virtual-device/build.config.virtual_device.aarch64 build/build.sh
คุณสามารถดึงสำเนาอาร์ติแฟกต์ GKI ได้จาก out/.../dist
ไบนารี GKI (รวมถึงแพตช์การหมุนฉุกเฉิน) สร้างขึ้นในโค้ดเบสล่าสุดหรือไม่
ไม่ได้ การหมุนซ้ำจะมีเฉพาะแพตช์ที่อยู่เหนือเคอร์เนลที่ได้รับการรับรองรายไตรมาสซึ่งได้รับการเลือก การส่งกลับเหล่านี้มีการแก้ไขข้อบกพร่องที่บล็อกการเปิดตัวทั้งหมด ที่ OEM รายงานจนถึงเวลาใดก็ตามโดยใช้รุ่นรายไตรมาสพื้นฐานที่เกี่ยวข้อง ดูตัวอย่างต่อไปนี้เกี่ยวกับวิธีเกิดสถานการณ์ประเภทนี้
- OEM1 และ OEM2 ตัดสินใจใช้ไบนารี GKI ที่เผยแพร่ตั้งแต่เดือนพฤศจิกายน 2021
- OEM1 และ OEM2 พบปัญหาที่ต้องใช้แพตช์เพื่อรองรับ แพตช์เหล่านี้อาจแตกต่างกันหรือเหมือนกันก็ได้
- การส่งกลับที่อยู่เหนือไบนารีของเดือนพฤศจิกายน 2021 มีการแก้ไขการบล็อกการเปิดตัว ที่รายงานโดยทั้ง OEM1 และ OEM2 ในช่วงเวลาการส่งกลับ แต่ไม่มีการแก้ไขอื่นๆ
- ปัญหาที่กล่าวถึงในหัวข้อย่อยที่ 2 จะรวมอยู่ในการเผยแพร่ GKI รายไตรมาสครั้งต่อๆ ไปด้วย
การหมุนรอบใหม่ในเดือนตุลาคมมีแพตช์ทั้งหมดที่ OEM ส่งมา แต่แพตช์อื่นๆ ของ OEM ส่งผลกระทบต่อเราเนื่องจากยังไม่ได้ทดสอบกับผลิตภัณฑ์ของเราโดยเฉพาะ เราจะรวมเฉพาะแพตช์ของเราได้ไหม
ซึ่งทำไม่ได้ เส้นทางการหมุนซ้ำสำหรับ OEM แต่ละรายไม่สามารถปรับขนาดได้ แต่ทีม GKI จะตรวจสอบการเปลี่ยนแปลงทุกรายการที่รวมอยู่ในการสร้าง Respin และ ทดสอบการเปลี่ยนแปลงกับฮาร์ดแวร์ทั้งหมดที่มีก่อนที่จะสร้างบิลด์ใหม่ หากทีม GKI พบว่าปัญหาดังกล่าวเกิดขึ้นเฉพาะกับ OEM, อุปกรณ์ หรือรุ่นใดรุ่นหนึ่ง ทีม GKI จะยืนยันได้ว่าโค้ดที่เพิ่มโดยการเปลี่ยนแปลงจะทำงานเฉพาะในอุปกรณ์ รุ่น หรือ SKU ที่ได้รับผลกระทบ
ประโยชน์หลักของการหมุนซ้ำแบบรวมคืออุปกรณ์ทุกเครื่องที่ใช้ฐานการเผยแพร่เดียวกันจะได้รับประโยชน์จากกันและกัน โดยเฉพาะอย่างยิ่งหากข้อบกพร่องที่พบเป็นข้อบกพร่องทั่วไปและใช้ได้กับผู้ใช้ทุกคน ข้อบกพร่องของเคอร์เนลหลักที่พบในการทดสอบของผู้ให้บริการเป็นตัวอย่างที่เฉพาะเจาะจงของแนวคิดนี้
มีสถานการณ์ใดบ้างที่ Google ให้ข้อมูลเฉพาะเกี่ยวกับแพตช์ของ OEM และสถานการณ์ปัญหา เพื่อให้ OEM ประเมินผลกระทบและความเสี่ยงของการใช้แพตช์กับผลิตภัณฑ์ของตนได้
Google จะไม่เปลี่ยนแปลงการสร้างการหมุนซ้ำจนกว่าทีม GKI จะเข้าใจปัญหาและรวบรวมรายละเอียดทั้งหมด คุณดูข้อมูลนี้ได้ในบันทึกการเปลี่ยนแปลง (ข้อความคอมมิต) Google ไม่ได้ระบุว่าอุปกรณ์ใดที่ได้รับผลกระทบ แต่ OEM จะดูคำอธิบายปัญหาและวิธีแก้ปัญหาได้เสมอในบันทึกการเปลี่ยนแปลง