Dự án Hình ảnh hạt nhân chung (GKI)

Trang này mô tả dự án Hình ảnh hạt nhân chung (GKI) và cách dự án này tăng độ ổn định của Android cũng như cải thiện tính bảo mật.

Nhật ký

Mọi thiết bị chạy Android đều cần một nhân sản xuất. Trước GKI, các nhân là tuỳ chỉnh và dựa trên Nhân chung của Android (ACK), với những thay đổi dành riêng cho thiết bị do các nhà cung cấp Hệ thống trên một chip (SoC) và OEM thực hiện.

Việc tuỳ chỉnh này có thể dẫn đến việc có đến 50% mã hạt nhân là mã ngoài cây và không phải từ các hạt nhân Linux ngược dòng hoặc ACK. Do đó, bản chất tuỳ chỉnh của các nhân trước GKI đã dẫn đến tình trạng phân mảnh nhân đáng kể.

Chi phí của việc phân mảnh

Phân mảnh nhân có một số tác động tiêu cực đến cộng đồng Android.

Các bản cập nhật bảo mật đòi hỏi nhiều công sức

Các bản vá bảo mật được đề cập trong Bản tin bảo mật Android (ASB) phải được chuyển ngược vào từng nhân thiết bị. Tuy nhiên, do phân mảnh hạt nhân, việc truyền các bản sửa lỗi bảo mật đến các thiết bị Android tại hiện trường là vô cùng tốn kém.

Khó hợp nhất các bản cập nhật được hỗ trợ dài hạn

Các bản phát hành Được hỗ trợ dài hạn (LTS) bao gồm các bản sửa lỗi bảo mật và các bản sửa lỗi quan trọng khác. Việc cập nhật các bản phát hành LTS đã được chứng minh là cách hiệu quả nhất để cung cấp các bản sửa lỗi bảo mật. Trên các thiết bị Pixel, chúng tôi nhận thấy 90% vấn đề bảo mật về nhân được báo cáo trong ASB đã được khắc phục cho những thiết bị luôn được cập nhật.

Tuy nhiên, với tất cả các điểm sửa đổi tuỳ chỉnh trong nhân thiết bị, bạn khó có thể chỉ hợp nhất các bản sửa lỗi LTS vào nhân thiết bị.

Ngăn chặn việc nâng cấp bản phát hành nền tảng Android

Sự phân mảnh khiến việc thêm các tính năng mới của Android yêu cầu thay đổi kernel vào các thiết bị tại hiện trường trở nên khó khăn. Mã Android Framework phải tính đến các biến thể hạt nhân khác nhau và không thể dựa vào các tính năng mới của Android được triển khai trong hạt nhân. Điều này làm chậm quá trình đổi mới và làm tăng kích thước cũng như độ phức tạp của mã.

Khó đóng góp các thay đổi về nhân cho Linux nguồn

Cách kéo các bản vá vào nhân sản xuất theo từng phần gây ra sự chậm trễ lên đến 18 tháng kể từ thời điểm bản phát hành LTS có sẵn ở nguồn thượng nguồn, cho đến khi bản phát hành đó có trong một thiết bị. Sự chậm trễ kéo dài này giữa bản phát hành kernel nguồn và các sản phẩm khiến cộng đồng Android khó đưa các tính năng và trình điều khiển cần thiết vào các kernel nguồn. Vào thời điểm người dùng gửi đề xuất cải tiến, cơ sở mã đã thay đổi, khiến việc cho thấy mức độ liên quan của bản vá trở nên khó khăn.

Khắc phục tình trạng phân mảnh: Hình ảnh hạt nhân chung

Dự án Hình ảnh hạt nhân chung (GKI) giải quyết tình trạng phân mảnh hạt nhân bằng cách hợp nhất hạt nhân cốt lõi và di chuyển SoC cũng như hỗ trợ bo mạch ra khỏi hạt nhân cốt lõi vào các mô-đun có thể tải của nhà cung cấp. GKI cũng cung cấp một Giao diện mô-đun nhân (KMI) ổn định cho các mô-đun của nhà cung cấp, nhờ đó, các mô-đun và nhân có thể được cập nhật độc lập. Sau đây là một số đặc điểm của nhân GKI:

  • Nhân GKI được tạo từ các nguồn ACK.
  • Nhân GKI là một tệp nhị phân nhân đơn cộng với các mô-đun có thể tải được liên kết cho mỗi cấu trúc, cho mỗi bản phát hành LTS.
  • Hạt nhân GKI được kiểm thử với tất cả các bản phát hành Nền tảng Android được hỗ trợ cho ACK liên kết. Không có tính năng nào bị ngừng sử dụng trong suốt thời gian tồn tại của phiên bản nhân GKI.
  • Nhân GKI cung cấp KMI ổn định cho trình điều khiển trong một LTS nhất định.
  • Nhân GKI không chứa mã dành riêng cho SoC hoặc mã dành riêng cho bảng.

Để xem hình ảnh về cấu trúc GKI, hãy tham khảo bài viết Tổng quan về nhân.

Hình ảnh chung

Kể từ Android 12, các thiết bị đi kèm với phiên bản nhân 5.10 trở lên phải đi kèm với nhân GKI. Các bản dựng phát hành Hình ảnh hạt nhân chung (GKI) được cập nhật thường xuyên bằng LTS và các bản sửa lỗi quan trọng. Vì tính ổn định của tệp nhị phân được duy trì cho KMI, nên bạn có thể cài đặt các hình ảnh khởi động này mà không cần thay đổi hình ảnh nhà cung cấp. Dự án GKI có những mục tiêu sau:

  • Không gây ra sự sụt giảm đáng kể về hiệu suất hoặc nguồn điện khi thay thế nhân sản phẩm bằng nhân GKI.
  • Cho phép các đối tác cung cấp bản sửa lỗi bảo mật và bản sửa lỗi nhân mà không cần sự tham gia của nhà cung cấp.
  • Giảm chi phí nâng cấp phiên bản kernel chính cho các thiết bị.
  • Duy trì một tệp nhị phân nhân GKI duy nhất cho mỗi cấu trúc bằng cách cập nhật các phiên bản nhân theo một quy trình nâng cấp rõ ràng.