Android เปลี่ยนไปใช้รุ่น "อัปสตรีมก่อน" สำหรับฟีเจอร์เคอร์เนล Linux ใหม่

click fraud protection

Google วางแผนที่จะเปลี่ยนไปใช้โมเดลการพัฒนาแบบ "อัปสตรีมก่อน" สำหรับฟีเจอร์เคอร์เนล Linux ใน Android ตั้งแต่ปี 2023 อ่านเพื่อเรียนรู้เพิ่มเติม.

เมื่อคุณเห็นคำว่า "Android" และ "fragmentation" ในประโยคเดียวกัน ใจคุณคงกระโดดไปที่ แผนภูมิการเผยแพร่เวอร์ชัน Android. มีหน่วยงานไม่กี่แห่งที่คนส่วนใหญ่ชี้นิ้วเมื่อบ่นว่าการอัปเดตระบบปฏิบัติการ Android นั้นช้าในการเปิดตัวทั่วกระดาน แต่มีเพียง Google เท่านั้นที่สามารถทำได้ บังคับ OEM เพื่อพัฒนาและเผยแพร่การอัปเดตได้รวดเร็วยิ่งขึ้น อย่างไรก็ตาม สิ่งที่ Google ทำได้คือลดเวลาในการพัฒนาและลดต้นทุนในการเปิดตัวการอัปเดต

ความคิดริเริ่มสำคัญประการแรกในโครงการระยะยาวของ Google เพื่อลดภาระในการพัฒนาคือ โครงการเสียงแหลม. ประกาศพร้อมกับ Android 8.0 Oreo ในปี 2560 Project Treble ทำให้ Android เป็นโมดูลโดยแยกเฟรมเวิร์กระบบปฏิบัติการออกจากการใช้งานของผู้จำหน่าย (HAL และเคอร์เนลเคอร์เนล Linux เฉพาะอุปกรณ์) ซึ่งทำให้ง่ายขึ้นสำหรับ Android OEM ที่จะรีบูตระบบปฏิบัติการของตนโดยใช้เฟรมเวิร์ก AOSP ล่าสุด เนื่องจากสามารถบูตเวอร์ชันล่าสุดได้โดยไม่ต้องใช้โค้ดที่อัปเดตจากผู้ขาย เป็นผลให้ OEM สามารถเตรียม Android forks แบบกำหนดเองได้เร็วกว่าที่เคย และด้วยการขยายเวลา จะทำให้การเปิดตัวการอัปเดตระบบปฏิบัติการหลัก ๆ เร็วขึ้น

ขั้นตอนต่อไปในแผนของ Google คือการปรับปรุงการส่งมอบการอัปเดตไปยังส่วนประกอบหลักของ Android Google เรียกความคิดริเริ่มนี้ เมนไลน์โครงการ เมื่อเปิดตัวพร้อมกับ Android 10 ในปี 2019 โดยพื้นฐานแล้ว Google เข้าควบคุมส่วนประกอบระบบปฏิบัติการหลักและห้ามไม่ให้ OEM ปรับเปลี่ยนส่วนประกอบเหล่านั้น จากนั้นพวกเขาจึงตั้งค่ากลไกการจัดส่งผ่าน Google Play เพื่อให้สามารถเผยแพร่การอัปเดตสำหรับส่วนประกอบหลักเหล่านี้จากระยะไกลได้โดยไม่ต้องรอให้ OEM ลงแพตช์ด้วยตนเอง Mainline ปรับปรุงความเร็วอย่างมากที่อุปกรณ์ได้รับเวอร์ชันอัปเดตของส่วนประกอบระบบปฏิบัติการที่สำคัญ ในทางกลับกัน ก็เป็นการปรับปรุงความปลอดภัยของระบบนิเวศ Android โดยรวมด้วย

แต่สิ่งที่จะเกิดขึ้นต่อไปนั้นสำคัญยิ่งกว่าเดิม และถือเป็นส่วนที่สำคัญที่สุดในกลยุทธ์ระยะยาวของ Google เมื่อเราชี้ให้เห็นก่อนหน้านี้ว่า Treble ทำให้ Android เป็นโมดูลโดยการแยกเฟรมเวิร์กระบบปฏิบัติการออกจาก การใช้งานของผู้จำหน่าย เราได้รวม "เคอร์เนลเคอร์เนล Linux เฉพาะอุปกรณ์" ไว้เป็นส่วนหนึ่งของผู้จำหน่ายรายนั้น รหัส. ใครก็ตามที่คุ้นเคยกับ Linux บนเดสก์ท็อปจะรับรู้ปัญหาที่นั่น: เหตุใดจึงรวมเข้ากับรหัสผู้จำหน่ายแบบปิด ปัญหาคือในขณะที่อุปกรณ์ Android มาพร้อมกับเคอร์เนล Linux แต่เคอร์เนลนั้นมีคุณสมบัติ a มาก ของโค้ดนอกแผนผัง

เราไปถึงที่นั่นได้อย่างไร? ปัญหาดังที่ Todd Kjos วิศวกรซอฟต์แวร์ของ Google ระบุไว้ที่ การประชุม Linux Plumbers Conference ปีนี้ (ทาง อาทเทคนิค) เนื่องจากเคอร์เนล mainline Linux ถูกแยกหลายครั้งก่อนที่จะจัดส่งบนอุปกรณ์ Android Google แยกเคอร์เนล mainline Linux แต่ละตัวเป็น "เคอร์เนลทั่วไปของ Android" ซึ่งติดตามการเปิดตัวเวอร์ชันหลักอย่างใกล้ชิด แต่เพิ่มแพตช์เฉพาะของ Android บางส่วน ผู้จำหน่าย SoC เช่น Qualcomm, MediaTek และ Samsung ก็แยกทางกัน ที่ เคอร์เนลสำหรับ SoC แต่ละตัวที่พวกเขาสร้าง จากนั้น OEM จะนำเคอร์เนลเฉพาะ SoC นั้นและเพิ่มแพตช์เพิ่มเติมเพื่อใช้การสนับสนุนสำหรับฮาร์ดแวร์เฉพาะที่พวกเขาต้องการจัดส่ง

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

ในความพยายามที่จะแก้ไขปัญหานี้ Google กำลังทำงานบน Android Generic Kernel Image (GKI) ซึ่งเป็นเคอร์เนลที่คอมไพล์โดยตรงจากสาขา ACK GKI แยกผู้จำหน่าย SoC และการปรับแต่ง OEM ออกเป็นปลั๊กอินโมดูล กำจัดโค้ดที่ไม่อยู่ในแผนผัง และอนุญาตให้ Google พุชการอัปเดตเคอร์เนลไปยังผู้ใช้ปลายทางโดยตรง เป็นเวลากว่าหนึ่งปีแล้วที่ Google พยายามส่งการอัปเดต GKI ผ่าน Play Store ผ่านการใช้โมดูล Mainline.

ตามแหล่งที่มาของเรา อุปกรณ์ที่เปิดตัวด้วย แอนดรอยด์ 12 และมาพร้อมกับเคอร์เนล Linux 5.10 จะต้องปรับใช้อิมเมจสำหรับบูตที่ลงนามโดย Google ของ Google เอง พิกเซล 6 ซีรีส์นี้จะเปิดตัวพร้อมกับ Android 12 ตั้งแต่แกะกล่องและมาพร้อมกับ Linux kernel 5.10 ดังนั้นโทรศัพท์ทั้งสองเครื่องอาจเป็นอุปกรณ์ตลาดมวลชนเครื่องแรกที่มาพร้อมกับ GKI

นอกจากนี้ Todd Kjos จาก Google ยังเปิดเผยว่าบริษัทวางแผนที่จะเปลี่ยนมาใช้โมเดลการพัฒนา "อัปสตรีมก่อน" สำหรับฟีเจอร์เคอร์เนล Linux ใหม่ สิ่งนี้จะช่วยให้ Google มั่นใจได้ว่าโค้ดใหม่จะลงจอดเป็นอันดับแรกในเคอร์เนล Linux หลัก ซึ่งจะช่วยลดภาระทางเทคนิคในอนาคตที่เกิดจากการลงโค้ดนอกระบบบนอุปกรณ์ Android มากขึ้น

ในการประชุม Linux Plumbers Conference ในสัปดาห์นี้ Kjos กล่าวว่า "เนื่องจากโมดูลนอกระบบมีความสำคัญอย่างยิ่งต่อกรณีการใช้งานของเรา เราจึงคาดหวังว่าเราจะมีชุดการส่งออกและบางสิ่งที่แตกต่างหรือเพิ่มเติมจากสิ่งที่ ต้นน้ำ แต่โปรเจ็กต์ทั้งหมดนี้เป็นโปรเจ็กต์ที่ใช้เวลาหลายปีที่ทำงานเพื่อกำจัดแพตช์ที่อยู่นอกแผนผังให้มากที่สุดเท่าที่เราจะทำได้ และจัดแนวให้มากที่สุดเท่าที่จะเป็นไปได้ด้วย ต้นน้ำ” Google ตั้งเป้าที่จะดำเนินการอัปสตรีมฟีเจอร์ที่มีอยู่ให้แล้วเสร็จและแยกการเปลี่ยนแปลงของผู้ให้บริการออกภายในสิ้นปี 2022 และตั้งแต่ปี 2566 บริษัทวางแผนที่จะนำโมเดลการพัฒนา "ต้นน้ำมาก่อน" นี้มาใช้ เพื่อหลีกเลี่ยงปัญหาดังกล่าวใน อนาคต.