Câu hỏi thường gặp về Android kernel

Tài liệu này chứa các câu hỏi thường gặp về nhân hệ điều hành Android, còn được gọi là hạt nhân Hình ảnh hạt nhân chung (GKI). Nếu bạn không quen với thuật ngữ hạt nhân GKI và GKI, hãy tham khảo Tổng quan về kernel.

Có thể thay đổi danh sách biểu tượng Giao diện mô-đun hạt nhân (KMI) trong một nhân ổn định không?

Những thay đổi không ảnh hưởng đến KMI hiện có có thể được thêm vào các hạt nhân bị treo. Những thay đổi này bao gồm các hàm mới đã xuất và mục nhập danh sách biểu tượng. Để biết thông tin chi tiết, hãy xem phần Quản lý danh sách biểu tượng.

Tôi có thể thay đổi cấu trúc mà mô-đun của nhà cung cấp sử dụng trong một nhân ổn định không?

Các cấu trúc thuộc giao diện KMI không thể thay đổi được trong các hạt nhân bằng KMI bị treo. Trước khi KMI đóng băng, bạn có thể thay đổi các cấu trúc này.

Tôi có thể thay đổi nhân hệ điều hành miễn là tôi không làm hỏng khả năng tương thích tệp nhị phân hoặc nguồn không?

Bạn có thể thực hiện những thay đổi không ảnh hưởng đến KMI như mô tả trong phần Dành riêng cho Android bản vá.

GKI xử lý cấu hình nhân hệ điều hành như thế nào?

Để biết thông tin về cấu hình nhân, hãy tham khảo Các thay đổi đối với gki_defconfig.

Làm cách nào để xử lý bản sửa lỗi ngược dòng (upstream) cho các lượt ghi đè lên các mô-đun GKI hiện có?

Nếu bạn tạo mô-đun nhà cung cấp dựa trên trình điều khiển trong Hạt nhân phổ biến của Android (ACK), bạn có trách nhiệm đảm bảo rằng các bản sửa lỗi từ luồng ngược dòng (upstream) và ACK được phổ biến vào mô-đun của bạn. Nhìn chung, việc sử dụng hạt nhân GKI và Các mô-đun GKI không bị sửa đổi để những nội dung cập nhật này được cung cấp một cách nhất quán của Google.

Có chương trình kiểm tra cụ thể nào của GKI không?

Có các chương trình kiểm thử Bộ thử nghiệm dành cho nhà cung cấp (VTS) xác minh một bản dựng GKI được chứng nhận sẽ được cài đặt, đồng thời để thực thi GKI cho mỗi bản phát hành các yêu cầu liên quan. Ví dụ: có các bài kiểm thử VTS trên Android 12 cho tiêu đề khởi động v3 và để xác minh sự tồn tại của các phân vùng bắt buộc trong một thiết bị chạy 5.10 nhân hệ điều hành.

Làm cách nào để tạo tệp phân đoạn defconfig của dự án cho các bản dựng thiết bị?

Nhiều thiết bị tuân thủ GKI sử dụng một mảnh cấu hình để mô tả cấu hình cần thiết, ngoài gki_defconfig, để tạo các mô-đun nhà cung cấp. Các ví dụ là một phần của cơ sở mã ACK bao gồm Cá mực và DB845c. Không có cách nào để tránh việc kiểm tra các lựa chọn cấu hình theo cách thủ công để tối ưu hoá mảnh, nhưng scripts/diffconfig từ các nguồn hạt nhân rất hữu ích khi so sánh kết quả của gki_defconfiggki_defconfig+device.fragment.

Có cách nào để phương pháp sửa đổi xử lý - và _ là tương đương không?

Chiến lược phát hành đĩa đơn trang modprobe man chứa nội dung mô tả sau: "modprobe thêm một cách thông minh hoặc xoá một mô-đun khỏi nhân hệ điều hành Linux: lưu ý rằng để thuận tiện, có không có sự khác biệt giữa _ và - trong tên mô-đun (tự động chuyển đổi dấu gạch dưới có thực hiện thao tác không)." Nhóm GKI tuân thủ quy ước tiêu chuẩn về luồng ngược dòng (upstream), vì vậy công cụ của nhà cung cấp hoặc quy ước đặt tên mô-đun phải tính đến sự tuân thủ này.

Làm cách nào để bật debugfs để sử dụng nội bộ?

Để biết thông tin chi tiết về cách bật các tệp gỡ lỗi, hãy xem nội dung gỡ lỗi xâm nhập truyền xuống .

Làm cách nào để giải quyết các ABI không khớp giữa nhân GKI khi đã bật cấu hình mô-đun cụ thể?

Các ABI không khớp giữa cấu hình hạt nhân GKI và cấu hình mô-đun biểu thị phần phụ thuộc cấu hình mô-đun ngầm ẩn, trong đó việc bật một mô-đun sẽ dẫn đến tệp nhị phân config được tích hợp vào hình ảnh hạt nhân thu được. Liên hệ với Android nhóm nhân hệ điều hành (kernel-team@android.com) để xác định đường dẫn tiến lên. Sau khi danh sách các biểu tượng được xác định, hãy tạo một lỗi trong Công cụ theo dõi lỗi và cách tải lên thay đổi đối với danh sách biểu tượng.

Tôi có các thiết bị tương thích với GKI 1.0 trong lĩnh vực chạy hạt nhân 5.4 được khởi chạy với Android 11 và 12. Có những lựa chọn nâng cấp nhân kernel nào và làm cách nào để kiểm thử các thiết bị này khi nâng cấp lên Android 12 và 13?

Tham khảo khả năng tương thích ma trận để biết danh sách phiên bản nhân hệ điều hành được hỗ trợ để khởi chạy và nâng cấp phiên bản. Ở đây là hai ví dụ về nâng cấp:

Ví dụ 1: Người dùng sở hữu thiết bị chạy Android 11 có Hạt nhân android11-5.4 (GKI 1.0) có thể chọn bất kỳ lựa chọn nào sau đây khi nâng cấp lên Android 12:

  • Nâng cấp lên nhân android12-5.10 GKI 2.0 (rất nên dùng).

  • Giữ lại nhân android11-5.4.

  • Nâng cấp lên nhân android12-5.4.

Ví dụ 2: Người dùng sở hữu thiết bị chạy Android 12 có nhân android12-5.4 hoặc android12-5.10 có thể chọn bất kỳ tuỳ chọn nào sau đây khi nâng cấp lên Android 13:

Cụ thể, đối với quá trình kiểm tra tính tuân thủ của Treble, bạn nên thực hiện một trong sau:

Bạn có thể tải các bản dựng GKI 2.0 xuống từ bản phát hành Hình ảnh hạt nhân chung (GKI) bản dựng.