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

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

ช่วงเวลาเผยแพร่ GKI

GKI เผยแพร่ตามแผนการสนทนารายเดือนหลังจาก KMI หยุดทำงาน

รุ่น GKI ของ Android 13, 14 และ 15

ตารางต่อไปนี้เกี่ยวข้องกับ android13-5.10 android13-5.15 และ android14-5.15 โปรดดูวันที่เผยแพร่ในเดือนกันยายน 2024 ในประกาศนี้

บิลด์ที่ได้รับการรับรองรายเดือนของ GKI วันที่ยกเลิกเช็คอิน วันที่พร้อมโหลด GKI ล่วงหน้า ยืนยันหรือไม่
พฤศจิกายน 11 พฤศจิกายน 2024 27 พฤศจิกายน 2024 ใช่
มกราคม 17 มกราคม 2025 31 มกราคม 2025 ใช่
กุมภาพันธ์ 14 กุมภาพันธ์ 2025 28 กุมภาพันธ์ 2025 ใช่

ตารางต่อไปนี้เกี่ยวข้องกับ android14-6.1 และ android15-6.6 โปรดดูวันที่เผยแพร่ในเดือนกันยายน 2024 ในประกาศนี้

บิลด์ที่ได้รับการรับรองรายเดือนของ GKI วันที่ยกเลิกเช็คอิน วันที่พร้อมโหลด GKI ล่วงหน้า ยืนยันแล้วใช่ไหม
ตุลาคม 1 ตุลาคม 2024 14 ตุลาคม 2024 ใช่
พฤศจิกายน 1 พฤศจิกายน 2024 15 พฤศจิกายน 2024 ใช่
ธันวาคม 2 ธันวาคม 2024 16 ธันวาคม 2024 ใช่
มกราคม 6 มกราคม 2025 22 มกราคม 2025 ใช่

เปิดตัว Android 12 GKI

หลังเดือนพฤษภาคม 2024 การเผยแพร่ GKI android12-5.10 รายการจะเกิดขึ้นตามกำหนดการรายไตรมาสและ ในช่วงกลางเดือน ตารางต่อไปนี้เกี่ยวข้องกับ android12-5.10

บิลด์ที่ได้รับการรับรองรายเดือนของ GKI วันที่ยกเลิกเช็คอิน วันที่พร้อมโหลด GKI ล่วงหน้า ยืนยันหรือไม่
กรกฎาคม 3 กรกฎาคม 2023 14 กรกฎาคม 2023 ใช่
กันยายน 1 กันยายน 2023 15 กันยายน 2023 ใช่
พฤศจิกายน 3 พฤศจิกายน 2023 17 พฤศจิกายน 2023 ใช่
มกราคม 5 มกราคม 2024 19 มกราคม 2024 ใช่
มีนาคม 4 มีนาคม 2024 15 มีนาคม 2024 ใช่
พฤษภาคม 1 พฤษภาคม 2024 17 พฤษภาคม 2024 ใช่
สิงหาคม 1 สิงหาคม 2024 16 สิงหาคม 2024 ใช่
พฤศจิกายน 1 พฤศจิกายน 2024 15 พฤศจิกายน 2024 ใช่
กุมภาพันธ์ 3 กุมภาพันธ์ 2025 17 กุมภาพันธ์ 2025 ใช่

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

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

เวอร์ชันสำหรับการพัฒนารายสัปดาห์

รุ่นจะได้รับการทดสอบกับ Cuttlefish เพื่อให้ผ่านเกณฑ์คุณภาพขั้นต่ำ

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

รุ่นที่ได้รับการรับรองรายเดือน

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

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

ลำดับเวลาการเผยแพร่ GKI รูปที่ 1 ลำดับเวลาการเผยแพร่ GKI

กระบวนการส่งแอปอีกครั้งในกรณีฉุกเฉิน

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

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

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

หลักเกณฑ์การส่งคำขออีกครั้ง

ก่อนที่จะส่งคำขอรีสตาร์ท โปรดดูหลักเกณฑ์ต่อไปนี้

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

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

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

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

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

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

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

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

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

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

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

ส่งคำขอหมุนอีกครั้ง

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

กระบวนการให้แสดงอีกครั้งในกรณีฉุกเฉิน รูปที่ 2 กระบวนการหมุนอีกครั้ง

วิธีเข้าสู่กระบวนการส่งอีกครั้ง

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

คุณสมบัติของ GKI

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

จะหาอาร์ติแฟกต์ของบิลด์ได้จากที่ใด

คุณรับอาร์ติแฟกต์สำหรับการเผยแพร่ทั้งหมดได้จาก 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/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 (รวมถึงชุดแพตช์ฉุกเฉิน) สร้างขึ้นจากฐานของโค้ดล่าสุดหรือไม่

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

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

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

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

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

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

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