เคอร์เนลทั่วไปของ Android

เคอร์เนลทั่วไปของ AOSP (หรือที่เรียกว่าเคอร์เนลทั่วไปของ Android หรือ ACK) เป็นเคอร์เนลดาวน์สตรีมของ kernel.org และมีแพตช์ที่ชุมชน Android สนใจซึ่งยังไม่ได้ผสานรวมเข้ากับเคอร์เนลหลักหรือเคอร์เนลที่รองรับระยะยาว (LTS) ซึ่งอาจรวมถึงรายการต่อไปนี้

  • การพอร์ตย้อนหลังและการเลือกฟังก์ชันการทำงานจาก upstream ที่จำเป็นสำหรับฟีเจอร์ของ Android
  • ฟีเจอร์พร้อมใช้งานสำหรับอุปกรณ์ Android แต่อยู่ระหว่างการพัฒนาในเวอร์ชันสำหรับนักพัฒนาซอฟต์แวร์
  • ฟีเจอร์ของผู้ให้บริการ/OEM ที่เป็นประโยชน์สำหรับพาร์ทเนอร์ระบบนิเวศรายอื่นๆ

android-mainline เป็นสาขาการพัฒนาหลักสำหรับฟีเจอร์ Android ระบบจะผสาน Linux หลักเข้ากับ android-mainline ทุกครั้งที่ Linus Torvalds โพสต์รุ่นหรือรุ่นที่พร้อมใช้งาน ก่อนปี 2019 เคอร์เนลทั่วไปของ Android จะสร้างขึ้นโดยการโคลนเคอร์เนล LTS ที่ประกาศล่าสุดและเพิ่มแพตช์เฉพาะ Android กระบวนการนี้เปลี่ยนแปลงไปในปี 2019 เพื่อแยกเคอร์เนล Android ทั่วไปเวอร์ชันใหม่จาก android-mainline รูปแบบใหม่นี้ช่วยหลีกเลี่ยงความพยายามอย่างมากในการส่งต่อพอร์ตและทดสอบแพตช์ Android โดยให้ผลลัพธ์เดียวกัน android-mainline ได้รับการทดสอบอย่างต่อเนื่องอย่างสำคัญ โมเดลนี้จึงช่วยให้มั่นใจได้ว่าเคอร์เนลมีคุณภาพสูงตั้งแต่วันแรกที่เผยแพร่

เมื่อมีการประกาศ LTS ใหม่ในอัปสตรีม ระบบจะแยกเคอร์เนลทั่วไปที่เกี่ยวข้องออกจาก android-mainline ซึ่งจะช่วยให้พาร์ทเนอร์เริ่มโปรเจ็กต์ได้ก่อนที่จะมีการประกาศเวอร์ชัน LTS โดยการผสานจาก android-mainline หลังจากสร้างสาขาเคอร์เนลทั่วไปใหม่แล้ว พาร์ทเนอร์จะเปลี่ยนแหล่งที่มาของการผสานเป็นสาขาใหม่ได้อย่างราบรื่น

ส่วนสาขาเคอร์เนลทั่วไปอื่นๆ จะได้รับการผสานเป็นประจำจากเคอร์เนล LTS ที่เกี่ยวข้อง โดยปกติการผสานเหล่านี้จะดำเนินการทันทีหลังจากที่มีการโพสต์รุ่น LTS ตัวอย่างเช่น เมื่อมีการเผยแพร่ Linux 6.1.75 ระบบจะผสานเข้ากับเคอร์เนลทั่วไป 6.1 (android14-6.1) เราขอแนะนำให้พาร์ทเนอร์อัปเดตเคอร์เนลเพื่อให้เป็นเวอร์ชันล่าสุดอยู่เสมอ รวมถึงอัปเดตข้อบกพร่องเฉพาะ LTS และ Android

ACK สาขาเคอร์เนล KMI

เคอร์เนล GKI มีอินเทอร์เฟซโมดูลเคอร์เนลที่เสถียร KMI จะระบุเวอร์ชันเคอร์เนลและรุ่นแพลตฟอร์ม Android ที่ไม่ซ้ำกัน ดังนั้นสาขาจึงมีชื่อว่า ANDROID_RELEASE-KERNEL_VERSION ตัวอย่างเช่น เคอร์เนล GKI เวอร์ชัน 6.1 สำหรับ Android 14 มีชื่อว่า android14-6.1 สำหรับ Android 15 เราได้เปิดตัวเคอร์เนล GKI android15-6.6

ฟีเจอร์และเคอร์เนลที่เปิดใช้งาน

ก่อน Android 15 คุณสามารถใช้เคอร์เนลล่าสุด 3 รายการใดก็ได้ในการเปิดตัวอุปกรณ์ ตั้งแต่ Android 15 เป็นต้นไป คุณจะใช้เคอร์เนล 2 เวอร์ชันล่าสุดเพื่อเปิดตัวอุปกรณ์ได้ เคอร์เนลที่ใช้งานจริงสำหรับ Android 15 คือ android15-6.6 และ android14-6.1

เนื่องจากไม่จําเป็นต้องอัปเกรดเคอร์เนลเมื่ออัปเดตรุ่นแพลตฟอร์ม คุณจึงยังใช้เคอร์เนลที่ไม่มีฟีเจอร์ล่าสุดสําหรับรุ่นแพลตฟอร์มเพื่อเปิดใช้งานอุปกรณ์ได้ ดังนั้นเคอร์เนลที่ออกแบบมาสำหรับ Android 14 เช่น android14-6.1 จึงสามารถใช้ในอุปกรณ์ได้แม้ว่าจะอัปเกรดแพลตฟอร์มเป็น Android 15 แล้วก็ตาม

แพลตฟอร์ม Android เปิดตัวเคอร์เนล เมล็ดฟีเจอร์
Android 15 (2024) android15-6.6
android14-6.1
android15-6.6
Android 14 (2023) android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10
android14-6.1
android14-5.15
Android 13 (2022) android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
android13-5.15
android13-5.10
Android 12 (2021) android12-5.10
android12-5.4
android11-5.4
android12-5.10
android12-5.4
Android 11 (2020) android11-5.4 android11-5.4

1 อาจมีข้อจำกัดเพิ่มเติมหาก BSP ที่เกี่ยวข้องได้รับการอัปเดตสำหรับรุ่นแพลตฟอร์ม กล่าวอย่างกว้างๆ ก็คือ หมายเลขรุ่น Android ของเคิร์กัลต้องสูงกว่าหรือเท่ากับเวอร์ชัน FCM เป้าหมาย ดูรายละเอียดได้ที่หัวข้อออบเจ็กต์อินเทอร์เฟซของผู้ให้บริการ - จับคู่สาขาเคอร์เนล

ลำดับชั้นเคอร์เนลทั่วไป

สาขาจาก android-mainline

ระดับบนสุดของลําดับชั้นเคอร์เนลทั่วไปแสดงอยู่ในรูปภาพ 1

การสร้างเคอร์เนลทั่วไปจากเคอร์เนล android-mainline

รูปที่ 1 การสร้างเคอร์เนลทั่วไปจากเคอร์เนล android-mainline

โปรดทราบว่าเคอร์เนลทั่วไปของ Android android14-6.1 ใหม่แยกมาจาก android-mainline ในปี 2022 ในปี 2023 เมื่อมีการประกาศ LTS ถัดไป android15-6.6 ได้แยกออกมาจาก android-mainline

ดังที่แสดงในรูปที่ 1 แต่ละเวอร์ชันของเคิร์กัลสามารถใช้เป็นพื้นฐานของเคิร์กัล GKI ได้ 2 เวอร์ชัน ตัวอย่างเช่น เคอร์เนล v5.15 2 รายการคือ android13-5.15 และ android14-5.15 ซึ่งทั้ง 2 รายการเป็นเคอร์เนลฟีเจอร์สำหรับรุ่นแพลตฟอร์มที่เกี่ยวข้อง เช่นเดียวกับ 5.10 android12-5.10 สร้างขึ้นเมื่อมีการประกาศ LTS และ android13-5.10 แยกมาจาก android12-5.10 เมื่อถึงเหตุการณ์สำคัญที่มีฟีเจอร์เคอร์เนลครบถ้วนในฤดูใบไม้ผลิปี 2021 เพื่ออนุญาตให้พัฒนาฟีเจอร์สำหรับ Android 13 ตั้งแต่ Android 15 (2024) เป็นต้นไป จะมีเคอร์เนล GKI ใหม่เพียง 1 เคอร์เนลต่อเวอร์ชัน (ไม่มีเคอร์เนล android15-6.1)

วงจรสาขา ACK KMI

วงจรชีวิตของสาขา ACK KMI แสดงอยู่ในรูปที่ 2 ด้านล่าง

6.6 วงจรของสาขา ACK KMI

รูปที่ 2 6.6 วงจรของสาขา ACK KMI

รูปที่ 2 เน้นที่สาขา ACK KMI สำหรับ 6.6 เพื่อชี้แจงกระบวนการพัฒนาและวงจรของสาขา

สาขา ACK KMI แต่ละสาขาจะวนผ่าน 3 ระยะที่ระบุไว้ในรูปที่ 2 โดยแต่ละสาขาจะมีสีแตกต่างกัน ดังที่แสดง LTS จะผสานเป็นประจำไม่ว่าจะอยู่ในระยะใดก็ตาม

ระยะการพัฒนา

เมื่อสร้างแล้ว สาขา ACK KMI จะเข้าสู่ระยะการพัฒนา (มีป้ายกำกับเป็น dev ในรูปที่ 2) และพร้อมรับการมีส่วนร่วมในฟีเจอร์สำหรับรุ่นแพลตฟอร์ม Android รุ่นถัดไป ในรูปที่ 2 android15-6.6 สร้างขึ้นเมื่อมีการประกาศ 6.6 เป็นเคอร์เนล LTS ใหม่ใน upstream

ระยะคงที่

เมื่อสาขา KMI ของ ACK ประกาศว่าฟีเจอร์เสร็จสมบูรณ์แล้ว สาขาดังกล่าวจะเข้าสู่ระยะการทำให้เสถียร (มีป้ายกำกับว่าเสถียรในรูปที่ 2) ระบบจะยังคงยอมรับฟีเจอร์ของพาร์ทเนอร์และการแก้ไขข้อบกพร่อง แต่จะมีการเปิดใช้การติดตาม KMI เพื่อตรวจหาการเปลี่ยนแปลงที่ส่งผลต่ออินเทอร์เฟซ ในขั้นตอนนี้ ระบบจะยอมรับการเปลี่ยนแปลงที่ส่งผลกับ KMI และอัปเดตคำจำกัดความของ KMI ตามช่วงเวลาที่กำหนดไว้ล่วงหน้า (ปกติทุก 2 สัปดาห์) ดูรายละเอียดการตรวจสอบ KMI ได้ในภาพรวม GKI

ระยะที่ KMI หยุดทำงาน

ก่อนที่จะมีการพุชแพลตฟอร์มรุ่นใหม่ไปยัง AOSP ระบบจะหยุดสาขา ACK KMI ไว้และจะหยุดไว้ตลอดอายุของสาขา ซึ่งหมายความว่าเราจะไม่ยอมรับการเปลี่ยนแปลงที่ส่งผลต่อ KMI เว้นแต่จะมีการระบุปัญหาด้านความปลอดภัยร้ายแรงที่ไม่สามารถแก้ไขได้โดยไม่ส่งผลกระทบต่อ KMI ที่เสถียร เพื่อหลีกเลี่ยงการหยุดทำงานของ KMI ระบบอาจแก้ไขหรือยกเลิกการรวมแพตช์บางรายการที่ผสานมาจาก LTS หากการแก้ไขไม่จำเป็นสำหรับอุปกรณ์ Android

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

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

struct foo {
  int original_field1;
  int original_field2;
  int new_field;  // Not allowed
};

int do_foo(struct foo &myarg)
{
  do_stuff(myarg);
}
EXPORT_SYMBOL_GPL(do_foo);

แต่การเพิ่มฟังก์ชันใหม่นั้นทำได้

struct foo2 {
  struct foo orig_foo;
  int new_field;
};

int do_foo2(struct foo2 &myarg)
{
  do_stuff2(myarg);
}
EXPORT_SYMBOL_GPL(do_foo2);

ตลอดอายุการใช้งานของเคิร์ก GKI ระบบจะรักษาความเข้ากันได้แบบย้อนหลังกับพื้นที่ผู้ใช้เพื่อให้ใช้เคอร์กกับแพลตฟอร์ม Android เวอร์ชันที่เปิดตัวอุปกรณ์ได้อย่างปลอดภัย การทดสอบอย่างต่อเนื่องกับรุ่นก่อนหน้าช่วยให้มั่นใจได้ว่าจะใช้งานร่วมกันได้ ดังนั้นในรูปที่ 2 android15-6.6 เคอร์เนลจึงใช้ได้กับอุปกรณ์ Android 15 ขึ้นไป เนื่องจากแพลตฟอร์ม Android เวอร์ชันนี้ใช้ร่วมกับเวอร์ชันก่อนหน้าได้ จึงสามารถใช้เคอร์เนล android14-6.1 สำหรับอุปกรณ์ Android 15 ในการเปิดตัวหรืออัปเกรด

หมายเลขรุ่น KMI

หากมีการผสาน LTS ในระยะการทำให้เสถียร หรือปัญหาด้านความปลอดภัย หรือเหตุการณ์อื่นๆ หลังจากนี้ซึ่งกำหนดให้ต้องยอมรับการแพตช์ที่เปลี่ยนแปลง KMI ระบบจะเพิ่มหมายเลขรุ่น KMI ที่บันทึกไว้ใน build.config.common คุณดูรุ่น KMI ปัจจุบันได้โดยใช้คําสั่ง uname ดังนี้

$ uname -r
6.6.30-android15-6-g86d10b30f51f

ตัวเลขหลังรุ่นแพลตฟอร์มคือรุ่น KMI (ในกรณีนี้คือ 6)

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

ความเข้ากันได้ระหว่างเคอร์เนล

ข้อกำหนดความเข้ากันได้ระหว่างเคอร์เนลในตระกูล LTS เดียวกันจะเปลี่ยนแปลงโดยเริ่มจากเคอร์เนล GKI ใหม่

เคอร์เนล GKI

เคอร์เนล GKI จะยังคงใช้งานร่วมกับแพลตฟอร์ม Android เวอร์ชันเก่าทั้งหมดที่รองรับเวอร์ชันเคอร์เนลได้ นอกจากนี้ แพลตฟอร์ม Android เวอร์ชันต่างๆ ยังใช้งานร่วมกับเคอร์เนล GKI จากเวอร์ชันก่อนหน้าได้ คุณจึงใช้เคอร์เนล android14-6.1 ที่พัฒนาขึ้นสำหรับ Android 14 (2023) ในอุปกรณ์ที่ใช้ Android 15 (2024) ได้อย่างปลอดภัย ความเข้ากันได้ได้รับการยืนยันผ่านการทดสอบ VTS และ CTS อย่างต่อเนื่องของเคอร์เนล GKI กับรุ่นที่รองรับทั้งหมด

KMI มีความเสถียรเพื่อให้อัปเดตเคอร์เนลได้โดยไม่ต้องสร้างโมดูลเคอร์เนลในอิมเมจของผู้ให้บริการขึ้นมาใหม่

เมล็ด GKI แต่ละเมล็ดจะไม่รักษาความเข้ากันได้ของ KMI ดังนั้น ตัวอย่างเช่น คุณไม่สามารถแทนที่เคอร์เนล android14-6.1 ด้วยเคอร์เนล android15-6.6 ได้หากไม่สร้างโมดูลทั้งหมดขึ้นมาใหม่

รองรับเคอร์เนล GKI สำหรับรุ่นแรกและรุ่นต่อๆ ไปเท่านั้น เวอร์ชันเก่าจะไม่รองรับ ดังนั้นอุปกรณ์ที่ใช้ Android 14 (2023) จึงไม่รองรับเคอร์เนล android15-6.6

เมทริกซ์ความเข้ากันได้

ตารางนี้แสดงเวอร์ชันเคอร์เนลที่รองรับและทดสอบกับแพลตฟอร์ม Android แต่ละรุ่น

แพลตฟอร์ม Android เคอร์เนลที่รองรับสำหรับการอัปเกรด เคอร์เนลที่รองรับสำหรับการเปิดตัว
Android 15 (2024) android15-6.6
android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
android15-6.6
android14-6.1
Android 14 (2023) android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10
Android 13 (2022) android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
Android 12 (2021) android12-5.10
android12-5.4
android11-5.4
android11-5.4
android12-5.4
android12-5.10
Android 11 (2020) android11-5.4 android11-5.4

รองรับอายุการใช้งานและแพตช์ความปลอดภัย

ACK จะได้รับการผสาน LTS จากอัปสตรีมและการแก้ไขข้อบกพร่องสำหรับโค้ดเฉพาะ Android การแก้ไขเหล่านี้รวมถึงแพตช์ความปลอดภัยของเคอร์เนลทั้งหมดที่ระบุไว้ในกระดานข่าวสารด้านความปลอดภัยของ Android รายเดือนซึ่งเกี่ยวข้องกับ ACK

ACK อาจได้รับการรองรับนานกว่าเคอร์เนลเสถียรที่เป็นต้นทางซึ่งเทียบเท่าใน kernel.org ในกรณีนี้ Google จะให้การสนับสนุนเพิ่มเติมจนถึงวันที่หยุดให้บริการ (EOL) ที่แสดงในส่วนนี้ เมื่อถึง EOL แล้ว Google จะไม่รองรับเคอร์เนลดังกล่าวอีกต่อไป และอุปกรณ์ที่ใช้เคอร์เนลดังกล่าวจะถือว่ามีช่องโหว่

ตั้งแต่เคอร์เนล 6.6 เป็นต้นไป อายุการรองรับสำหรับเคอร์เนลที่เสถียรจะนาน 4 ปี

ตารางนี้แสดงอายุของ ACK ที่รองรับ

Branch ACK วันที่เปิดตัว
รองรับ
ตลอดอายุการใช้งาน
(ปี)
EOL
android11-5.4 2019-11-24 6 2026-01-01
android12-5.4 2019-11-24 6 2026-01-01
android12-5.10 2020-12-13 6 2027-07-01
android13-5.10 2020-12-13 6 2027-07-01
android13-5.15 2021-10-31 6 2028-07-01
android14-5.15 2021-10-31 6 2028-07-01
android14-6.1 2022-12-11 6 2029-07-01
android15-6.6 2023-10-29 4 2028-07-01

การทดสอบเคอร์เนลทั่วไป

มีการทดสอบเคอร์เนลทั่วไปกับระบบ CI หลายระบบ นอกเหนือจากการทดสอบดาวน์สตรีมโดยผู้ให้บริการ

การทดสอบฟังก์ชันของเคิร์นลินุกซ์

การทดสอบฟังก์ชันการทำงานของเคอร์เนล Linux (LKFT) จะทดสอบชุดทดสอบต่างๆ ซึ่งรวมถึง kselftest, LTP, VTS และ CTS ในชุดอุปกรณ์จริงที่ใช้ ARM32 และ ARM64 ดูผลการทดสอบล่าสุดได้ที่นี่

การทดสอบ KernelCI

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

การทดสอบก่อนและหลังส่งสำหรับ Android

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

การทดสอบหลังส่งของ Android จะดำเนินการกับบิลด์ที่เผยแพร่ใหม่ในสาขาเคอร์เนลทั่วไปของ Android เมื่อมีการคอมมิตแพตช์ใหม่ไปยังสาขาเคอร์เนลทั่วไปของ Android ใน ci.android.com เมื่อป้อน aosp_kernel เป็นชื่อสาขาบางส่วนใน ci.android.com คุณจะเห็นรายการสาขาเคอร์เนลที่มีผลลัพธ์ เช่น ผลการค้นหาสำหรับ android-mainline จะดูได้ที่นี่ เมื่อคลิกบิลด์ที่เฉพาะเจาะจง คุณจะเห็นสถานะการทดสอบในแท็บ Test Results

การทดสอบที่กําหนดโดย test-mapping ที่มีกลุ่มทดสอบ kernel-presubmit ในลําดับชั้นซอร์สโค้ดของแพลตฟอร์ม Android จะทํางานเป็นการทดสอบก่อนส่งสําหรับสาขาเคอร์เนล Android ตัวอย่างเช่น การกําหนดค่าต่อไปนี้ใน test/vts/tests/kernel_proc_file_api_test/TEST_MAPPING จะเปิดใช้ vts_kernel_proc_file_api_test เป็นทดสอบก่อนส่งที่การเช็คอินโค้ดเคอร์เนลทั่วไปของ Android

{
  "kernel-presubmit": [
    {
      "name": "vts_kernel_proc_file_api_test"
    }
  ]
}

การทดสอบวันศูนย์

การทดสอบ0 วันจะทำการทดสอบแพตช์ทีละรายการในสาขาเคอร์เนลทั่วไปทั้งหมดของ Android เมื่อมีการคอมมิตแพตช์ใหม่ ระบบจะทำการทดสอบการบูต ฟังก์ชันการทำงาน และประสิทธิภาพต่างๆ เข้าร่วมกลุ่มสาธารณะ cros-kernel-buildreports

เมทริกซ์ทดสอบ

เคอร์เนลทั่วไปของ Android รุ่นต่างๆ ของแพลตฟอร์ม Android ชุดทดสอบ
หลัก 15 14 13 12 11 10 LKFT KernelCI ก่อนส่ง หลังส่ง 0 วัน
android-mainline
android15-6.6
android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4

มีส่วนร่วมในเคอร์เนลทั่วไปของ Android

โดยทั่วไปแล้ว การพัฒนาฟีเจอร์ควรทำใน Linux หลัก ไม่ใช่ในเคอร์เนลทั่วไปของ Android เราขอแนะนำให้พัฒนาในเวอร์ชัน upstream และหลังจากที่ยอมรับการพัฒนาแล้ว ก็สามารถพอร์ตกลับไปใช้กับสาขา ACK ที่เฉพาะเจาะจงได้ง่ายๆ ตามต้องการ ทีมเคอร์เนล Android ยินดีให้การสนับสนุนการอัปสตรีมเพื่อประโยชน์ของระบบนิเวศ Android

ส่งแพตช์ไปยัง Gerrit และปฏิบัติตามหลักเกณฑ์การมีส่วนร่วมเหล่านี้