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

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

ACK ที่ใหม่กว่า (เวอร์ชัน 5.4 ขึ้นไป) เรียกอีกอย่างว่า เคอร์เนล GKI เคอร์เนล GKI รองรับการแยกโค้ด เคอร์เนลหลักทั่วไปที่ ไม่เชื่อเรื่องฮาร์ดแวร์และ โมดูล GKI ออกจาก โมดูลผู้จำหน่าย เฉพาะฮาร์ดแวร์

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

สถาปัตยกรรม GKI
รูปที่ 1 สถาปัตยกรรม GKI

อภิธานศัพท์เคอร์เนล

ส่วนนี้ประกอบด้วยคำศัพท์ที่ใช้ในเอกสารประกอบเคอร์เนล

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

เคอร์เนลทั่วไปของ Android (ACK)
เคอร์เนลที่ดาวน์สตรีมของเคอร์เนล LTS และรวมแพตช์ที่น่าสนใจสำหรับชุมชน Android ที่ยังไม่ได้รวมเข้ากับเคอร์เนล Linux mainline หรือ Long Term Supported (LTS) ACK ที่ใหม่กว่า (เวอร์ชัน 5.4 ขึ้นไป) มีเรียกอีกอย่างว่าเคอร์เนล GKI เนื่องจากรองรับการแยกโค้ดเคอร์เนลทั่วไปที่ไม่เชื่อเรื่องฮาร์ดแวร์และโมดูล GKI ที่ไม่เชื่อเรื่องฮาร์ดแวร์
เคอร์เนลโครงการโอเพ่นซอร์ส Android (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-เมนไลน์
สาขาการพัฒนาหลักสำหรับฟีเจอร์ของ Android เมื่อมีการประกาศ เคอร์เนล LTS ใหม่อัปสตรี ม เคอร์เนล GKI ใหม่ที่เกี่ยวข้องจะถูกแยกจาก android-mainline
ลินุกซ์เมนไลน์
สาขาการพัฒนาหลักสำหรับเคอร์เนลอัปสตรีม Linux รวมถึงเคอร์เนล LTS

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

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

อะไรต่อไป?