เคอร์เนลทั่วไป AOSP (หรือที่เรียกว่าเคอร์เนลทั่วไปของ Android หรือ ACKs) เป็นเคอร์เนลดาวน์สตรีมของ kernel.org และรวมแพตช์ ที่น่าสนใจสำหรับชุมชน Android ที่ยังไม่ได้ผสานรวมเป็นเคอร์เนลหลักหรือเคอร์เนลที่รองรับระยะยาว (LTS) แพตช์เหล่านี้อาจรวมถึงสิ่งต่อไปนี้
- แบ็กพอร์ตและฟังก์ชันอัปสตรีมที่จำเป็นสำหรับฟีเจอร์ของ 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
หลังจากสร้าง Branch ของเคอร์เนลทั่วไปใหม่แล้ว พาร์ทเนอร์จะเปลี่ยนแหล่งที่มาของการผสานไปยัง Branch ใหม่ได้อย่างราบรื่น
สาขาเคอร์เนลทั่วไปอื่นๆ จะได้รับการผสานเป็นประจำจากเคอร์เนล LTS ที่เกี่ยวข้อง
โดยปกติแล้วการรวมเหล่านี้จะดำเนินการทันทีหลังจากที่โพสต์การเผยแพร่ LTS ตัวอย่างเช่น เมื่อมีการโพสต์ Linux 6.1.75 ระบบได้ผสานรวมเข้ากับเคอร์เนลทั่วไป 6.1 (android14-6.1
) เราขอแนะนำให้พาร์ทเนอร์อัปเดตเคอร์เนลเพื่อให้อัปเดต LTS และการแก้ไขข้อบกพร่องเฉพาะสำหรับ Android อยู่เสมอ
ACK KMI สาขาเคอร์เนล
เคอร์เนล GKI มีอินเทอร์เฟซของโมดูล Kernel ที่เสถียร มีการระบุ KMI ที่ไม่ซ้ำกันโดยเวอร์ชันเคอร์เนลและรุ่นแพลตฟอร์ม Android ดังนั้นสาขาจึงใช้ชื่อว่า ANDROID_RELEASE
-KERNEL_VERSION
ตัวอย่างเช่น เคอร์เนล GKI 6.1 สำหรับ Android 14 มีชื่อว่า android14-6.1
สำหรับ Android 15 (เวอร์ชันทดลอง AOSP) ก็ได้เปิดตัวเคอร์เนล GKI android15-6.6
ฟีเจอร์และเปิดใช้งานเคอร์เนล
ก่อน Android 15 (เวอร์ชันทดลอง AOSP) เคอร์เนล 3 รายการล่าสุดสามารถใช้ในการเปิดตัวอุปกรณ์ได้ ตั้งแต่ Android 15 (เวอร์ชันทดลอง AOSP) จะมีการใช้เคอร์เนล 2 เวอร์ชันล่าสุดในการเปิดตัวอุปกรณ์ได้ เคอร์เนลการเปิดตัวสำหรับ Android 15 (เวอร์ชันทดลอง AOSP) คือ android15-6.6
และ android14-6.1
เนื่องจากไม่จำเป็นต้องอัปเกรดเคอร์เนลเมื่ออัปเดตรุ่นแพลตฟอร์ม เคอร์เนลที่ขาดฟีเจอร์ล่าสุดสำหรับรุ่นของแพลตฟอร์มจะยังคงนำมาใช้เพื่อเปิดตัวอุปกรณ์ได้ ดังนั้นเคอร์เนลที่ออกแบบมาสำหรับ Android 14 เช่น android14-6.1
จึงใช้งานได้ในอุปกรณ์แม้จะอัปเกรดแพลตฟอร์มที่เปิดตัวเป็น Android 15 แล้ว (เวอร์ชันทดลอง AOSP)
การเปิดตัวแพลตฟอร์ม Android | เปิดเคอร์เนล | เคอร์เนลฟีเจอร์ |
---|---|---|
Android 15 (เวอร์ชันทดลอง AOSP) (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.101
|
android14-6.1
android14-5.15
|
Android 13 (2022) |
android13-5.15
android13-5.10
android12-5.101
android12-5.41
android11-5.41
|
android13-5.15
android13-5.10
|
Android 12 (2021) |
android12-5.10
android12-5.4
android11-5.41
android-4.19-stable
|
android12-5.10
android12-5.4
|
Android 11 (2020) |
android11-5.4
android-4.19-stable
|
android11-5.4
android-4.19-stable
|
1 อาจมีข้อจำกัดเพิ่มเติมหาก BSP ที่เกี่ยวข้องได้รับการอัปเดตสำหรับแพลตฟอร์มรุ่นนั้นๆ โดยทั่วไปแล้ว หมายเลขรุ่น Android ของเคอร์เนลต้องมากกว่าหรือเท่ากับเวอร์ชัน FCM เป้าหมาย ดูรายละเอียดได้ที่ออบเจ็กต์อินเทอร์เฟซผู้ให้บริการ - ตรงกับสาขาของเคอร์เนล |
ลำดับชั้นทั่วไปของเคอร์เนล
สาขาจาก Android-mainline
ระดับบนสุดของลำดับชั้นของเคอร์เนลทั่วไปจะแสดงในรูปที่ 1
รูปที่ 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 (เวอร์ชันทดลอง AOSP) (2024) เคอร์เนล GKI ใหม่มีเพียง 1 รายการต่อเคอร์เนลเท่านั้น (ไม่มีเคอร์เนล android15-6.1
)
วงจรชีวิตของสาขา ACK KMI
วงจรชีวิตของสาขา ACK KMI จะแสดงด้านล่างในรูปที่ 2
รูปที่ 2 6.6 ACK วงจรการใช้งานของสาขา KMI
เพื่อชี้แจงขั้นตอนการพัฒนาและวงจรของสาขา รูปที่ 2 มุ่งเน้นที่ Branch ของ ACK KMI สำหรับ 6.6
ACK KMI แต่ละสาขาจะหมุนเวียนผ่าน 3 เฟสที่ระบุไว้ในรูปที่ 2 โดยใช้สีต่างๆ ในแต่ละสาขา ดังที่เห็น ระบบผสานรวม LTS เป็นประจำโดยไม่คำนึงถึงเฟส
ช่วงการพัฒนา
เมื่อมีการสร้าง Branch ของ ACK KMI จะเข้าสู่ระยะการพัฒนา (ติดป้ายกำกับเป็น dev ในรูปที่ 2) และจะเปิดสําหรับการสนับสนุนฟีเจอร์สําหรับแพลตฟอร์ม Android รุ่นถัดไป ในรูปที่ 2 android15-6.6
สร้างขึ้นเมื่อมีการประกาศเวอร์ชัน 6.6 เป็นเคอร์เนล LTS ต้นทางใหม่
ช่วงลดการสั่นไหว
เมื่อประกาศฟีเจอร์สำหรับ ACK KMI เสร็จสมบูรณ์แล้ว ฟีเจอร์ดังกล่าวจะเข้าสู่ระยะการป้องกันภาพสั่นไหว (ติดป้ายกำกับเป็น stable ในรูปที่ 2) ระบบยังคงยอมรับฟีเจอร์ของพาร์ทเนอร์และการแก้ไขข้อบกพร่อง แต่การติดตาม KMI เปิดใช้เพื่อตรวจหาการเปลี่ยนแปลงที่มีผลต่ออินเทอร์เฟซ ในระยะนี้ การเปลี่ยนแปลงที่เป็นการละเมิด KMI จะได้รับการยอมรับ และอัปเดตคำจำกัดความของ KMI ตามช่วงเวลาที่กำหนดไว้ล่วงหน้า (โดยปกติคือทุก 2 สัปดาห์) ดูรายละเอียดเกี่ยวกับการตรวจสอบ KMI ได้ในภาพรวม GKI
เฟสของ KMI ถูกระงับ
ก่อนที่จะมีการพุชรุ่นแพลตฟอร์มใหม่ไปยัง AOSP ส่วน ACK KMI จะถูกหยุดไว้และจะยังคงถูกระงับไว้ตลอดอายุการใช้งานของ Branch ซึ่งหมายความว่าจะไม่มีการยอมรับการเปลี่ยนแปลงการละเมิด KMI เว้นแต่จะตรวจพบปัญหาด้านความปลอดภัยที่ร้ายแรง ซึ่งไม่สามารถบรรเทาได้โดยไม่ส่งผลกระทบต่อ KMI ที่คงที่ เพื่อหลีกเลี่ยงความเสียหายของ KMI ระบบอาจแก้ไขหรือลดแพตช์บางส่วนที่ผสานจาก LTS หากไม่จำเป็นต้องมีการแก้ไขสำหรับอุปกรณ์ Android
เมื่อสาขา ACK KMI หยุดทำงาน ระบบจะยอมรับการแก้ไขข้อบกพร่องและฟีเจอร์ของพาร์ทเนอร์ได้ ตราบใดที่เคอร์เนลทั่วไปของ 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 (เวอร์ชันทดลอง AOSP) และรุ่นใหม่กว่า เนื่องจากการเปิดตัวแพลตฟอร์ม Android ใช้งานกับเวอร์ชันก่อนหน้าได้ด้วย เคอร์เนล android14-6.1
จึงใช้สำหรับอุปกรณ์ Android 15 (เวอร์ชันทดลอง AOSP) สำหรับการเปิดตัวหรือการอัปเกรดได้
หมายเลขรุ่น 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 (เวอร์ชันทดลอง AOSP) (2024) ได้อย่างปลอดภัย ความเข้ากันได้จะได้รับการยืนยันผ่านการทดสอบ VTS และ CTS อย่างต่อเนื่องของเคอร์เนล GKI กับรุ่นที่รองรับทั้งหมด
KMI มีความเสถียรเพื่อให้อัปเดตเคอร์เนลได้โดยไม่ต้องสร้างโมดูลเคอร์เนลใหม่ในอิมเมจของผู้ให้บริการ
ระบบไม่รักษาความเข้ากันได้ของ KMI ระหว่างเคอร์เนล GKI ต่างๆ ตัวอย่างเช่น เคอร์เนล android14-6.1
จะแทนที่ด้วยเคอร์เนล android15-6.6
ไม่ได้หากไม่สร้างโมดูลทั้งหมดใหม่
เคอร์เนล GKI รองรับเฉพาะรุ่นแรกและรุ่นต่อๆ ไปเท่านั้น
โดยจะไม่รองรับในรุ่นที่เก่ากว่า จึงไม่รองรับเคอร์เนล android15-6.6
สำหรับอุปกรณ์ Devics ที่ใช้ Android 14 (2023)
เมทริกซ์ความเข้ากันได้
ตารางนี้แสดงเวอร์ชันเคอร์เนลที่รองรับและทดสอบกับแพลตฟอร์ม Android แต่ละรุ่น
การเปิดตัวแพลตฟอร์ม Android | เคอร์เนลที่รองรับสำหรับการอัปเกรด | เคอร์เนลที่รองรับการเปิดใช้งาน |
---|---|---|
Android 15 (เวอร์ชันทดลอง AOSP) (2024) |
android15-6.6
|
android15-6.6
|
Android 14 (2023) |
android14-6.1
|
android14-6.1
|
Android 13 (2022) |
android13-5.15
|
android13-5.15
|
Android 12 (2021) |
android12-5.10
|
android-4.19-stable
|
Android 11 (2020) |
android11-5.4
|
android11-5.4
|
รองรับอายุการใช้งานและแพตช์ความปลอดภัย
เคอร์เนลทั่วไปของ Android จะได้รับการสนับสนุนจนกว่าระบบจะไม่รองรับเคอร์เนล LTS ที่เกี่ยวข้องหรือแพลตฟอร์ม Android อีกต่อไป แม้ว่าระบบจะรองรับเคอร์เนล แต่จะยังได้รับการผสาน LTS จากอัปสตรีมและการแก้ไขข้อบกพร่องสำหรับโค้ดเฉพาะสำหรับ Android อยู่ต่อไป การแก้ไขเหล่านี้รวมถึงแพตช์ด้านความปลอดภัยของเคอร์เนลทั้งหมดที่อ้างถึงในกระดานข่าวสารด้านความปลอดภัยของ Android รายเดือนที่เกี่ยวข้องกับเคอร์เนลทั่วไปของ Android
พาร์ทเนอร์จะมั่นใจได้ว่าการใช้เคอร์เนล GKI จะได้รับแพตช์ความปลอดภัยของเคอร์เนลทั้งหมด
การทดสอบเคอร์เนลทั่วไป
เคอร์เนลทั่วไปจะได้รับการทดสอบกับระบบ CI หลายระบบนอกเหนือจากการทดสอบดาวน์สตรีมโดยผู้ให้บริการ
การทดสอบฟังก์ชันการทำงานของเคอร์เนล Linux
Linux Kernel Functional Test (LKFT) จะเริ่มชุดการทดสอบต่างๆ ซึ่งรวมถึง kselftest, LTP, VTS และ CTS บนชุดอุปกรณ์ Physical Arm32 และ arm64 ดูผลการทดสอบล่าสุดได้ที่นี่
การทดสอบ KernelCI
การทดสอบบิลด์และเปิดเครื่องของ KernelCI จะเริ่มต้นเมื่อใดก็ตามที่มีสัญญาผูกมัดแพตช์ใหม่กับ Branch ของเคอร์เนลทั่วไป มีการทดสอบการกำหนดค่าบิลด์หลายร้อยรายการและเปิดเครื่องในกระดานต่างๆ ดูผลลัพธ์ล่าสุดสำหรับเคอร์เนล Android ได้ที่นี่
การทดสอบการส่งล่วงหน้าและการทดสอบหลังการส่งของ Android
การทดสอบการส่งล่วงหน้าใช้เพื่อป้องกันการแสดงความล้มเหลวในเคอร์เนลทั่วไปของ Android ข้อมูลสรุปผลการทดสอบจะอยู่ในแท็บ "การตรวจสอบ" ของการเปลี่ยนแปลงโค้ดในเคอร์เนล เจอร์ริตทั่วไปของ Android
การทดสอบหลังส่งของ Android จะดำเนินการในบิลด์ใหม่ที่เผยแพร่ใน Branch ของ Kernel ทั่วไปของ Android เมื่อมีการคอมมิตแพตช์ใหม่กับ Branch ทั่วไปของ Android ใน ci.android.com เมื่อป้อน aosp_kernel
เป็นชื่อสาขาบางส่วนใน ci.android.com คุณจะเห็นรายการ Kernel Branch ที่มีผลลัพธ์ ตัวอย่างเช่น ผลการค้นหา android-mainline
จะดูได้ที่นี่ เมื่อคลิกบิลด์ที่ต้องการ คุณจะเห็นสถานะการทดสอบในแท็บTest Results
การทดสอบที่กำหนดโดยการแมปการทดสอบกับกลุ่มทดสอบ kernel-presubmit
ในโครงสร้างแหล่งที่มาของแพลตฟอร์ม Android จะเรียกใช้เป็นการส่งล่วงหน้าสำหรับสาขาเคอร์เนลของ Android ตัวอย่างเช่น การกำหนดค่าต่อไปนี้ใน test/vts/tests/kernel_proc_file_api_test/TEST_MAPPING จะเปิดใช้ vts_kernel_proc_file_api_test เป็นการทดสอบ presbumit ที่การตรวจสอบรหัสเคอร์เนลทั่วไปของ Android
{
"kernel-presubmit": [
{
"name": "vts_kernel_proc_file_api_test"
}
]
}
การทดสอบ 0 วัน
การทดสอบ 0 วันจะทำการทดสอบแบบแพตช์ต่อแพตช์ใน Kernel ทั่วไปทั้งหมดของ Android เมื่อมีการคอมมิตแพตช์ใหม่ จะมีการทดสอบการเปิดเครื่อง การทำงาน และประสิทธิภาพการทำงานหลายๆ อย่าง เข้าร่วมกลุ่มสาธารณะ cros-kernel-buildreports
เมทริกซ์ทดสอบ
เคอร์เนลทั่วไปของ Android | รุ่นต่างๆ ของแพลตฟอร์ม Android | ชุดทดสอบ | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
หลัก | 15 | 14 | 13 | 12 | 11 | 10 | LKFT | เคอร์เนล CI | ก่อนส่ง | ส่งโพสต์ | 0 วัน | |
android-mainline
|
✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
android5-6.6
|
✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
android14-6.1
|
✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
android13-5.15
|
✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
android12-5.10
|
✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
android11-5.4
|
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
android-4.19-stable
|
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
สนับสนุนเคอร์เนลทั่วไปของ Android
โดยทั่วไปแล้ว การพัฒนาฟีเจอร์ควรทำใน Linux หลัก ไม่ใช่บนเคอร์เนลทั่วไปของ Android ขอแนะนำเป็นอย่างยิ่งให้ใช้การพัฒนาอัปสตรีม และหลังจากที่ระบบยอมรับการพัฒนาแล้ว สามารถย้อนกลับไปยัง Branch ที่เฉพาะเจาะจงได้อย่างง่ายดายตามต้องการ ทีม Android Kernel ยินดีสนับสนุนความพยายามในการอัปสตรีมเพื่อประโยชน์ของระบบนิเวศของ Android
ส่งแพตช์ไปยัง Gerrit และปฏิบัติตามหลักเกณฑ์การมีส่วนร่วม