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

Hạt nhân của sản phẩm, còn gọi là nhân của thiết bị hay nhân của OEM, là mà bạn gửi trên thiết bị của mình. Trước GKI, hạt nhân của sản phẩm là bắt nguồn từ một loạt thay đổi hạt nhân ngược dòng. Hình 1 thể hiện cách kernel các bổ sung mang lại nhân sản phẩm (OEM/nhân thiết bị):

Xây dựng nhân sản phẩm trước GKI

Hình 1. Xây dựng nhân hệ điều hành sản phẩm trước GKI.

  1. Nhân hệ điều hành hỗ trợ dài hạn cho Linux (LTS) của kernel.org đã được sửa đổi với các bản vá dành riêng cho Android dẫn đến Hạt nhân phổ biến (ACK) của Android.
  2. ACK đã được sửa đổi bởi các nhà cung cấp đã thêm tính năng hỗ trợ cho hệ thống trên một chip của họ (SoC). Các nhà cung cấp cũng có thể thêm tính năng tối ưu hoá hiệu suất hoặc nguồn pin. Chiến lược phát hành đĩa đơn hạt nhân thu được được gọi là hạt nhân của nhà cung cấp.
  3. Cuối cùng, nhân hệ điều hành của nhà cung cấp được OEM sửa đổi thêm bằng cách bổ sung trình điều khiển thiết bị và tuỳ chỉnh mà họ cho là cần thiết. Hạt nhân thu được được gọi là nhân sản phẩm.

Tất cả những sửa đổi này có thể dẫn đến tới 50% mã nhân hệ điều hành là mã ngoài cây chứ không phải từ nhân hệ điều hành Linux hoặc ACK ngược dòng. Trước khi có GKI, gần như mọi thiết bị đều có một nhân tuỳ chỉnh dẫn đến nhân hệ điều hành phân mảnh.

Chi phí do phân mảnh

Sự phân mảnh hạt nhân có một số ảnh hưởng tiêu cực đến cộng đồng Android.

Bản cập nhật bảo mật tốn nhiều nhân công

Các bản vá bảo mật được trích dẫn trong Bản tin về bảo mật trên Android (ASB) phải được điều chỉnh cho phiên bản cũ vào từng nhân của thiết bị. Tuy nhiên, do kernel phân mảnh, rất tốn kém khi áp dụng các bản sửa lỗi bảo mật cho Các thiết bị Android trong trường.

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 phát hành khác các bản sửa lỗi quan trọng. Việc nắm bắt các bản phát hành LTS mới nhất đã được chứng minh là cách hiệu quả nhất để đưa ra các bản sửa lỗi bảo mật. Trên các thiết bị Pixel, phát hiện ra rằng 90% vấn đề bảo mật hạt nhân được báo cáo trong ASB đã đã được khắc phục cho các thiết bị được cập nhật.

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

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

Sự phân mảnh gây khó khăn cho các tính năng mới của Android yêu cầu nhân hệ điều hành các thay đổi sẽ được thêm vào thiết bị trong trường này. Mã Khung Android phải giả định hỗ trợ tối đa 5 phiên bản nhân và không thay đổi nhân hệ điều hành được tạo cho bản phát hành nền tảng mới (Android 10 hỗ trợ các hạt nhân 3.18, 4.4, 4.9, 4.14 và 4.19, mà trong một số trường hợp thì không đã được cải tiến với các tính năng mới kể từ Android 8 vào năm 2017).

Khó đóng góp các thay đổi về nhân hệ điều hành trở lại cho Linux ngược dòng

Với tất cả thay đổi được thực hiện cho hạt nhân, hầu hết các thiết bị hàng đầu đều được bằng phiên bản kernel đã tồn tại ít nhất 18 tháng. Ví dụ: Kernel 4.14 được phát hành bởi kernel.org vào tháng 11 năm 2017 và những chiếc điện thoại Android đầu tiên sử dụng hạt nhân 4.14 sẽ được ra mắt vào mùa xuân năm 2019.

Sự chậm trễ dài giữa việc phát hành hạt nhân ngược dòng và các sản phẩm gây khó khăn để cộng đồng Android cung cấp các tính năng và trình điều khiển cần thiết cho giai đoạn ngược dòng nhân hệ điều hành.

Khắc phục sự 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 sự phân mảnh hạt nhân theo hợp nhất nhân hệ điều hành cốt lõi, đồng thời di chuyển tính năng hỗ trợ bảng và SoC ra khỏi nhân lõi vào các mô-đun nhà cung cấp có thể tải. GKI cũng giới thiệu Mô-đun hạt nhân ổn định Giao diện (KMI) cho các mô-đun của nhà cung cấp để có thể cập nhật mô-đun và nhân hệ điều hành một cách độc lập. Một số đặc điểm của hạt nhân GKI là:

  • Hạt nhân GKI được xây dựng từ các nguồn ACK.
  • Nhân GKI là một tệp nhị phân đơn nhân cùng với các mô-đun có thể tải được liên kết mỗi cấu trúc, mỗi bản phát hành LTS (hiện chỉ có arm64 cho android11-5.4android12-5.4).
  • Nhân GKI được thử nghiệm với tất cả các bản phát hành Nền tảng Android được hỗ trợ cho ACK được liên kết. GKI sẽ không ngừng sử dụng các tính năng trong suốt thời gian hoạt động phiên bản kernel.
  • Hạt nhân GKI hiển thị một KMI ổn định cho các 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ề kiến trúc GKI, hãy tham khảo Tổng quan về kernel.

GKI là một thay đổi phức tạp, được triển khai qua nhiều giai đoạn, bắt đầu bằng nhân v5.4 trong bản phát hành nền tảng Android 11.

Có 2 giai đoạn GKI:

  • GKI 1.0 đã được giới thiệu trong Android 11 cho các thiết bị có 5.4 hạt nhân. GKI 1.0 áp dụng cho mọi thiết bị được xuất xưởng có 5,4 nhân, ngay cả những thiết bị đã ra mắt cùng với Android 12 hoặc Android 13.
  • GKI 2.0 đã được giới thiệu trong Android 12 dành cho các thiết bị có 5.10 và là tiêu chuẩn mới cho tất cả các thiết bị xuất xưởng với 5.10 hoặc hạt nhân sau này.

GKI 1.0

Trong GKI 1.0, các thiết bị khởi chạy với phiên bản kernel 5.4 phải vượt qua kiểm tra GKI (Các bản phát hành nền tảng Android 11 trở lên). Sau đây là các mục tiêu của GKI 1.0:

  • Tránh lỗi hồi quy trong Bộ thử nghiệm dành cho nhà cung cấp (VTS) hoặc Bộ kiểm tra tính tương thích (CTS) khi thay thế nhân sản phẩm bằng nhân GKI.
  • Giảm gánh nặng cho đối tác trong việc cập nhật nhân hệ điều hành bằng AOSP (Dự án nguồn mở Android) các nhân phổ biến.
  • Bao gồm những thay đổi cốt lõi của Android trong nhân của những thiết bị nâng cấp và chạy với các bản phát hành Android mới.
  • Không phá vỡ không gian người dùng Android.
  • Tách biệt các thành phần dành riêng cho phần cứng khỏi nhân cốt lõi dưới dạng các mô-đun có thể tải.

Đối với tài liệu về GKI 1.0, hãy xem Mục GKI 1.0.

GKI 2.0

Trong GKI 2.0, thiết bị khởi chạy phiên bản kernel 5.10 trở lên phải kèm theo nhân GKI (kể từ Android 12). Khởi động có chữ ký hình ảnh luôn có sẵn và được cập nhật thường xuyên cùng với tính năng LTS (hỗ trợ dài hạn) và các bản sửa lỗi nghiêm trọng. Vì độ ổn định nhị phân được duy trì cho KMI, bạn có thể cài đặt những khởi động này mà không cần thay đổi hình ảnh của nhà cung cấp. Các mục tiêu của GKI 2.0 bao gồm sau:

  • Không được tạo ra sự hồi quy về hiệu suất hoặc hiệu suất đáng kể khi thay thế nhân sản phẩm với nhân GKI.
  • Cho phép đối tác cung cấp các bản vá bảo mật và bản sửa lỗi cho nhân hệ điều hành mà không cần nhà cung cấp sự tham gia của họ.
  • Giảm chi phí cập nhật phiên bản nhân hệ điều hành chính cho thiết bị (ví dụ: từ phiên bản 5.10 sang nhân LTS 2021).
  • Duy trì một tệp nhị phân hạt nhân GKI cho mỗi cấu trúc bằng cách cập nhật nhân hệ điều hành có quy trình nâng cấp rõ ràng.

GKI 2.0 đại diện cho trạng thái mới nhất của nhân hệ điều hành Android. Kernel tài liệu bên ngoài GKI 1.0Các nhân trước (<=4,19) các tiểu mục phản ánh kiến trúc GKI 2.0.