เคอร์เนล Android อิงตามอัปสตรีม เคอร์เนลที่รองรับระยะยาว (LTS) ของ Linux ที่ Google, LTS เคอร์เนลจะรวมเข้ากับแพตช์เฉพาะสำหรับ Android เพื่อสร้างสิ่งที่เรียกว่า เคอร์เนลทั่วไปของ Android (ACK)
ACK รุ่นใหม่ (เวอร์ชัน 5.4 ขึ้นไป) เรียกอีกอย่างว่าเคอร์เนล GKI เคอร์เนล GKI รองรับฟังก์ชัน การแยกโค้ดเคอร์เนลหลักทั่วไปซึ่งไม่ขึ้นอยู่กับฮาร์ดแวร์และ โมดูล GKI จาก เฉพาะฮาร์ดแวร์ โมดูลของผู้ให้บริการ
เคอร์เนล GKI จะโต้ตอบกับโมดูลผู้ให้บริการเฉพาะฮาร์ดแวร์ซึ่งมีระบบใน ชิป (SoC) และโค้ดเฉพาะกระดาน การโต้ตอบระหว่างเคอร์เนล GKI และโมดูลผู้ให้บริการ เปิดใช้งานโดย Kernel Module Interface (KMI) ซึ่งประกอบด้วยรายการสัญลักษณ์ที่ระบุถึง และข้อมูลทั่วโลกที่โมดูลผู้ให้บริการต้องใช้ รูปที่ 1 แสดงเคอร์เนลและผู้ให้บริการ GKI สถาปัตยกรรมโมดูล:
อภิธานศัพท์ของเคอร์เนล
ส่วนนี้ประกอบด้วยคำที่ใช้ทั่วทั้งเอกสารประกอบของเคอร์เนล
ประเภทเคอร์เนล
- เคอร์เนลทั่วไปใน Android (ACK)
- เคอร์เนลที่เป็นดาวน์สตรีมของเคอร์เนล LTS และมีแพตช์ที่น่าสนใจสำหรับ Android ชุมชนที่ยังไม่ได้ผสานรวมเข้ากับเคอร์เนลหลักของ Linux หรือการสนับสนุนระยะยาว (LTS) ACK ใหม่ (เวอร์ชัน 5.4 ขึ้นไป) เรียกอีกอย่างว่าเคอร์เนล GKI เนื่องจากรองรับ การแยกรหัสเคอร์เนลทั่วไปและโมดูล GKI ที่ไม่ขึ้นอยู่กับฮาร์ดแวร์
- เคอร์เนลโครงการโอเพนซอร์ส Android (AOSP)
- ดูเคอร์เนลทั่วไปของ Android
- ฟีเจอร์เคอร์เนล
- เคอร์เนลที่มีการรับประกันว่าจะใช้ฟีเจอร์การเผยแพร่ของแพลตฟอร์มได้ สำหรับ ตัวอย่างเช่น ใน Android 12 เคอร์เนลฟีเจอร์ 2 รายการคือ android12-5.4 และ android12-5.10 ฟีเจอร์ของ Android 12 ไม่สามารถพอร์ตไปยังเคอร์เนล 4.19 ได้ ชุดฟีเจอร์จะคล้ายกัน ไปยังอุปกรณ์ที่เปิดตัวด้วย 4.19 ใน Android 11 และอัปเกรดเป็น Android 12
- เคอร์เนลแกนทั่วไป
- ส่วนของเคอร์เนล GKI ที่ใช้กันทั่วไปในอุปกรณ์ทั้งหมด
- เคอร์เนลทั่วไปสำหรับอิมเมจเคอร์เนล (GKI)
- เคอร์เนล ACK ใดๆ ที่ใหม่กว่า (5.4 ขึ้นไป) (ปัจจุบันเป็น aArc64 เท่านั้น) ช่วงเวลานี้ เคอร์เนลมี 2 ส่วน ได้แก่ เคอร์เนล GKI หลักที่มีโค้ดเหมือนกันในอุปกรณ์ทั้งหมดและโมดูล GKI ที่พัฒนาโดย Google ซึ่งสามารถโหลดแบบไดนามิกบนอุปกรณ์ได้ หากมี
- เคอร์เนล Kernel Module Interface (KMI)
- ดูเคอร์เนล GKI
- เปิดเคอร์เนล
- เคอร์เนลที่ใช้ในการเปิดตัวอุปกรณ์สำหรับแพลตฟอร์ม Android รุ่นนั้นๆ ได้ สำหรับ เช่น ใน Android 12 เคอร์เนลการเปิดตัวที่ถูกต้องคือ 4.19, 5.4 และ 5.10
- เคอร์เนลที่รองรับระยะยาว (LTS)
- เคอร์เนลของ Linux ที่รองรับ 2-6 ปี LTS เคอร์เนลจะเผยแพร่ปีละครั้ง และเป็นพื้นฐานสำหรับแต่ละ ACK ของ Google
ประเภทสาขา
- ACK KMI สาขาเคอร์เนล
- Branch ที่สร้างเคอร์เนล GKI เช่น android12-5.10 และ android13-5.15
- เมนไลน์ Android
- สาขาการพัฒนาหลักสำหรับฟีเจอร์ของ Android เมื่อ LTS ใหม่ มีการประกาศเคอร์เนลเป็นอัปสตรีม เคอร์เนล GKI ใหม่ที่เกี่ยวข้องคือ แยกออกจาก android-mainline
- เมนไลน์ Linux
- สาขาการพัฒนาหลักสำหรับเคอร์เนลอัปสตรีมของ Linux รวมถึงเคอร์เนล LTS
คำศัพท์อื่นๆ
- อิมเมจการเปิดเครื่องที่ได้รับการรับรอง
- เคอร์เนลนำส่งในรูปแบบไบนารี (
boot.img
) และกะพริบบนอุปกรณ์ รูปภาพนี้ได้รับการรับรองในลักษณะที่มีใบรับรองแบบฝังเพื่อให้ Google ดำเนินการต่อไปนี้ได้ ตรวจสอบว่าอุปกรณ์จัดส่งโดยใช้เคอร์เนลที่ผ่านการรับรองจาก Google - โมดูลเคอร์เนลที่โหลดแบบไดนามิกได้ (DLKM)
- โมดูลที่โหลดแบบไดนามิกได้ระหว่างการบูตอุปกรณ์ตามความต้องการของ
อุปกรณ์ GKI และโมดูลผู้ให้บริการเป็น DLKM ทั้ง 2 ประเภท DLKM วางจำหน่ายแล้วใน
.ko
อาจเป็นไดรเวอร์หรือสามารถนำส่งฟังก์ชันการทำงานอื่นๆ ของเคอร์เนลได้ - โปรเจ็กต์ GKI
- โปรเจ็กต์ Google ที่จัดการการกระจายตัวของเคอร์เนลด้วยการแยกเคอร์เนลหลักทั่วไป ฟังก์ชันจากการสนับสนุนเฉพาะผู้ให้บริการและคณะกรรมการเป็นโมดูลที่โหลดได้
- อิมเมจเคอร์เนลทั่วไป (GKI)
- อิมเมจการเปิดเครื่องที่ Google รับรองซึ่งมีเคอร์เนล GKI สร้างขึ้น แผนผังต้นทาง ACK และเหมาะสำหรับการแฟลชพาร์ติชันการเปิดเครื่องของ อุปกรณ์ Android
- กม.
- อินเทอร์เฟซระหว่างเคอร์เนล GKI และโมดูลผู้ให้บริการที่ช่วยให้ผู้ให้บริการ โมดูลนี้จะได้รับการอัปเดตโดยไม่ขึ้นอยู่กับเคอร์เนล GKI อินเทอร์เฟซนี้ประกอบด้วยเคอร์เนล และข้อมูลทั่วโลกที่พบว่าเป็นทรัพยากร Dependency ของผู้ให้บริการ/OEM โดยใช้ รายการสัญลักษณ์ต่อพาร์ทเนอร์
- โมดูล GKI
- โมดูลเคอร์เนลที่ Google สร้างขึ้นซึ่งโหลดแบบไดนามิกในอุปกรณ์ที่เกี่ยวข้องได้
โมดูลเหล่านี้สร้างขึ้นเป็นอาร์ติแฟกต์ของเคอร์เนล GKI และนำส่ง
ควบคู่ไปกับ GKI เป็นที่เก็บถาวร
system_dlkm_staging_archive.tar.gz
โมดูล GKI ลงนามโดย Google โดยใช้คู่คีย์เวลาบิลด์เคอร์เนลและใช้ได้กับ GKI เท่านั้น เคอร์เนลในตัวได้อีกด้วย - โมดูลผู้ให้บริการ
- โมดูลเฉพาะฮาร์ดแวร์ที่พัฒนาโดยพาร์ทเนอร์และมี SoC และอุปกรณ์เฉพาะ โมดูลผู้ให้บริการเป็นโมดูลเคอร์เนลที่โหลดแบบไดนามิกได้
สิ่งต่อไปที่ควรทำ
- หากคุณเพิ่งเริ่มใช้การพัฒนาเคอร์เนลของ Android คุณอาจต้องเริ่มด้วยการอ่าน ดังต่อไปนี้:
- เคอร์เนลเสถียรในระยะยาว - พื้นหลังเกี่ยวกับเคอร์เนล LTS ต้นทางที่ฟีดเข้าสู่ ACK
- เคอร์เนลทั่วไปของ Android - พื้นหลังของ ACK
- ถ้าคุณเพิ่งเริ่มใช้การพัฒนาเคอร์เนล GKI ให้เริ่มด้วยการอ่าน การพัฒนา GKI
- หากคุณใช้เคอร์เนลเวอร์ชัน 4.19 หรือเก่ากว่าและกำลังมองหาเอกสารที่เกี่ยวข้อง โปรดดูก่อนหน้า เคอร์เนล (<=4.19) ภาพรวม