ภาพรวมเคอร์เนล

เคอร์เนล Android อิงตามเคอร์เนล Linux Long Term Supported (LTS) ต้นน้ำ ที่ Google เคอร์เนล LTS จะถูกรวมเข้ากับแพตช์เฉพาะของ Android เพื่อสร้างสิ่งที่เรียกว่า Android Common Kernels (ACK)

ACK ที่ใหม่กว่า (เวอร์ชัน 5.4 ขึ้นไป) เรียกอีกอย่างว่า เมล็ด GKI เนื่องจากรองรับการแยกโค้ด เคอร์เนล Generic Core แบบไม่เชื่อเรื่องพระเจ้าของฮาร์ดแวร์และ โมดูล GKI ที่ไม่เชื่อเรื่องฮาร์ดแวร์ เคอร์เนล GKI โต้ตอบกับ โมดูลผู้จำหน่าย เฉพาะฮาร์ดแวร์ที่มีระบบบนชิป (SoC) และรหัสเฉพาะบอร์ด การโต้ตอบระหว่างเคอร์เนล GKI และโมดูลผู้ขายเปิดใช้งานโดย Kernel Module Interface (KMI) ซึ่งประกอบด้วยรายการสัญลักษณ์ที่ระบุฟังก์ชันและข้อมูลส่วนกลางที่โมดูลผู้ขายต้องการ รูปที่ 1 แสดงสถาปัตยกรรมเคอร์เนล GKI และโมดูลผู้ขาย: สถาปัตยกรรมเคอร์เนล GKI และโมดูลผู้ขาย

รูปที่ 1 สถาปัตยกรรมเคอร์เนล GKI และโมดูลผู้ขาย

คำศัพท์เคอร์เนล

ส่วนนี้มีข้อกำหนดที่ใช้ตลอดทั้งเอกสารประกอบเคอร์เนล

ประเภทเคอร์เนล

เคอร์เนลทั่วไปของ Android (ACK)
เคอร์เนลที่อยู่ปลายน้ำของเคอร์เนล LTS และรวมแพตช์ที่น่าสนใจสำหรับชุมชน Android ที่ยังไม่ได้รวมเข้ากับเคอร์เนล Linux mainline หรือเคอร์เนลที่รองรับระยะยาว (LTS) ACK ที่ใหม่กว่า (เวอร์ชัน 5.4 ขึ้นไป) เรียกอีกอย่างว่าเคอร์เนล GKI เนื่องจากรองรับการแยกโค้ดเคอร์เนลทั่วไปที่ไม่เชื่อเรื่องพระเจ้าของฮาร์ดแวร์และโมดูล GKI ที่ไม่เชื่อเรื่องพระเจ้าของฮาร์ดแวร์
เคอร์เนล Android Open Source Project (AOSP)
ดู เคอร์เนลทั่วไปของ Android
คุณสมบัติเคอร์เนล
เคอร์เนลที่รับประกันว่าคุณลักษณะการเปิดตัวของแพลตฟอร์มจะถูกนำมาใช้ ตัวอย่างเช่น ใน Android 12 ฟีเจอร์เคอร์เนลทั้งสองคือ android12-5.4 และ android12-5.10 ฟีเจอร์ของ Android 12 ไม่สามารถแบ็คพอร์ตเป็นเคอร์เนล 4.19 ได้ ชุดคุณสมบัติจะคล้ายกับอุปกรณ์ที่เปิดตัวด้วย 4.19 บน R และอัปเกรดเป็น S)
เคอร์เนลหลักทั่วไป
ส่วนของ เคอร์เนล GKI ที่พบได้ทั่วไปในอุปกรณ์ทั้งหมด
เคอร์เนลรูปภาพเคอร์เนลทั่วไป (GKI) เคอร์เนล
เคอร์เนล ACK ที่ใหม่กว่า (5.4 ขึ้นไป) (ปัจจุบันเป็น aarch64 เท่านั้น) เคอร์เนลนี้มีสองส่วน: เคอร์เนล GKI หลักที่มีรหัสร่วมกันในอุปกรณ์ทั้งหมดและโมดูลเคอร์เนล GKI ที่พัฒนาโดย Google ซึ่งสามารถโหลดแบบไดนามิกบนอุปกรณ์ที่เกี่ยวข้องได้
เคอร์เนลโมดูลอินเทอร์เฟซ (KMI) เคอร์เนล
ดู เคอร์เนล GKI
เปิดเคอร์เนล
เคอร์เนลที่ถูกต้องสำหรับการเปิดใช้อุปกรณ์สำหรับการเปิดตัวแพลตฟอร์ม Android ที่กำหนด ตัวอย่างเช่น ใน Android 12 เคอร์เนลการเปิดใช้ที่ถูกต้องคือ 4.19, 5.4 และ 5.10
เคอร์เนลที่รองรับระยะยาว (LTS)
เคอร์เนล Linux ที่ได้รับการสนับสนุนเป็นเวลา 2 ถึง 6 ปี เคอร์เนล LTS ออกปีละครั้งและเป็นพื้นฐานสำหรับ ACK ของ Google แต่ละรายการ

ประเภทสาขา

ACK KMI สาขาเคอร์เนล
สาขาที่สร้าง เมล็ด GKI ตัวอย่างเช่น android12-5.10 และ android13-5.15
Android-mainline
สาขาการพัฒนาหลักสำหรับคุณสมบัติ Android เมื่อมีการประกาศ เคอร์เนล LTS ใหม่ อัปสตรีม เคอร์เนล GKI ใหม่ที่เกี่ยวข้องจะแยกสาขาจาก android-mainline
ลินุกซ์ เมนไลน์
สาขาการพัฒนาหลักสำหรับเคอร์เนลอัพสตรีม รวมถึงเคอร์เนล LTS

เงื่อนไขอื่นๆ

ภาพบูตที่ผ่านการรับรอง
เคอร์เนลส่งในรูปแบบไบนารี ( boot.img ) และแฟลชบนอุปกรณ์ ภาพนี้ได้รับการรับรองในแง่ที่ว่ามีใบรับรองแบบฝัง เพื่อให้ Google สามารถตรวจสอบได้ว่าอุปกรณ์นั้นมาพร้อมกับเคอร์เนลที่รับรองโดย Google
โมดูลเคอร์เนลที่โหลดได้แบบไดนามิก (DLKM)
โมดูลที่สามารถโหลดไดนามิกระหว่างการบู๊ตอุปกรณ์ขึ้นอยู่กับความต้องการของอุปกรณ์ โมดูล GKI และผู้ขายเป็น DLKM ทั้งสองประเภท .ko เผยแพร่ในรูปแบบ .ko และสามารถเป็นไดรเวอร์หรือสามารถส่งมอบฟังก์ชันเคอร์เนลอื่นๆ ได้
โครงการ GKI
โปรเจ็กต์ Google ที่จัดการกับการแตกแฟรกเมนต์เคอร์เนลโดยแยกฟังก์ชันเคอร์เนลหลักทั่วไปออกจาก SoC เฉพาะผู้จำหน่ายและการสนับสนุนบอร์ดออกเป็นโมดูลที่โหลดได้
รูปภาพเคอร์เนลทั่วไป (GKI)
อิมเมจสำหรับบูตที่รับรองโดย Google ที่มี เคอร์เนล GKI ที่สร้างจากทรีซอร์ส ACK และเหมาะที่จะแฟลชไปยังพาร์ติชั่นสำหรับเริ่มระบบของอุปกรณ์ Android
KMI
อินเทอร์เฟซระหว่าง เคอร์เนล GKI และโมดูลผู้ขายช่วยให้โมดูลผู้ขายสามารถอัปเดตโดยไม่ขึ้นกับเคอร์เนล GKI อินเทอร์เฟซนี้ประกอบด้วยฟังก์ชันเคอร์เนลและข้อมูลส่วนกลางที่ได้รับการระบุว่าเป็นการขึ้นต่อกันของผู้ขาย/OEM โดยใช้รายการสัญลักษณ์ต่อพาร์ทเนอร์
โมดูลเคอร์เนล GKI
โมดูลที่โหลดได้แบบไดนามิกที่สร้างโดย Google ซึ่งสามารถโหลดแบบไดนามิกบนอุปกรณ์ที่เกี่ยวข้องได้ โมดูลเหล่านี้สร้างขึ้นด้วย เคอร์เนล GKI และจัดส่งควบคู่ไปกับ GKI เป็นอิมเมจ system_dlkm โมดูลเคอร์เนล GKI ลงนามโดย Google โดยใช้คู่คีย์เวลาสร้างเคอร์เนลและเข้ากันได้กับเคอร์เนลหลักทั่วไปที่สร้างขึ้นด้วยเท่านั้น โมดูลเคอร์เนล GKI เป็นประเภทของ DLKM
.
โมดูลผู้ขาย
โมดูลเฉพาะฮาร์ดแวร์ที่พัฒนาโดยคู่ค้าและมีฟังก์ชัน SoC และเฉพาะอุปกรณ์ โมดูลผู้ขายเป็นประเภทของโมดูลเคอร์เนลที่สามารถโหลดได้แบบไดนามิก

อะไรต่อไป?

  • หากคุณยังใหม่ต่อการพัฒนาเคอร์เนลของ Android คุณอาจต้องการเริ่มต้นด้วยการอ่านสิ่งต่อไปนี้:
  • หากคุณยังใหม่ต่อการพัฒนาเคอร์เนล GKI ให้เริ่มต้นด้วยการอ่าน GKI development
  • หากคุณกำลังใช้เคอร์เนลเวอร์ชัน 4.19 หรือเก่ากว่าและกำลังมองหาเอกสารที่เกี่ยวข้อง โปรดดูส่วน ภาพรวมเคอร์เนลก่อนหน้า (<=4.19)