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ề hạt nhân Android, còn gọi là hạt nhân Hình ảnh hạt nhân chung (GKI). Nếu bạn chưa quen với các thuật ngữ về hạt nhân GKI và GKI, hãy tham khảo phần Tổng quan về hạt nhân.

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

Bạn có thể thêm các thay đổi không ảnh hưởng đến KMI hiện có vào các hạt nhân bị đóng băng. Những thay đổi này bao gồm các hàm mới được 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 bài viết Quản lý danh sách ký hiệu.

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

Bạn không thể thay đổi các cấu trúc thuộc giao diện KMI trong các hạt nhân có KMI bị đóng băng. Trước khi KMI được đó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 miễn là không làm hỏng khả năng tương thích của tệp nhị phân hoặc nguồn không?

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

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 hạt nhân, hãy tham khảo phần Thay đổi đối với gki_defconfig.

Làm cách nào để xử lý các bản sửa lỗi ngược dòng cho các bản ghi đè vào 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 Android phổ biến (ACK), bạn có thể đảm bảo rằng các bản sửa lỗi từ nguồn cấp trên và ACK được truyền đến mô-đun của bạn. Nhìn chung, bạn nên sử dụng hạt nhân GKI và các mô-đun GKI mà không sửa đổi để Google cung cấp các bản cập nhật này một cách nhất quán.

Có kiểm thử cụ thể nào cho GKI không?

Có các bài kiểm thử Bộ kiểm thử nhà cung cấp (VTS) xác minh rằng bản dựng GKI được chứng nhận đã được cài đặt và cũng để thực thi các yêu cầu GKI theo bản phát hành. Ví dụ: có các bài kiểm thử VTS trên Android 12 cho tiêu đề khởi động phiên bản 3 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 nhân hệ điều hành 5.10.

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

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

Có giải pháp nào để modprobe coi - và _ là tương đương không?

Trang man modprobe chứa nội dung mô tả sau: "modprobe thêm hoặc xoá một mô-đun khỏi hạt nhân Linux một cách thông minh: lưu ý rằng để thuận tiện, 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)." Nhóm GKI tuân thủ quy ước chuẩn về luồng ngược (upstream), vì vậy, các công cụ của nhà cung cấp hoặc quy ước đặt tên mô-đun phải tính đến việc tuân thủ này.

Làm cách nào để bật debugfs cho mục đích 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 các tính năng gỡ lỗi xâm nhập ở hạ nguồn.

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

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

Tôi có các thiết bị tuân thủ GKI 1.0 trong trường hợp thực tế chạy nhân 5.4 được phát hành cùng với Android 11 và 12. Có những tuỳ chọn nâng cấp nhân nào và làm cách nào để tôi có thể kiểm thử các thiết bị này khi nâng cấp lên Android 12 và 13?

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

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

  • Nâng cấp lên hạt nhân android12-5.10 GKI 2.0 (nên làm).

  • 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 với nhân android12-5.4 hoặc android12-5.10 có thể chọn bất kỳ tuỳ chọn nào trong số này khi nâng cấp lên Android 13:

  • Nâng cấp lên hạt nhân GKI 2.0 android13-5.10 hoặc android13-5.15 (nên dùng).

  • Giữ lại hạt nhân android12-5.4 GKI 1.0.

  • Giữ lại hạt nhân android12-5.10 GKI 2.0.

Cụ thể đối với việc kiểm thử tuân thủ Treble, bạn nên làm theo một trong những cách sau:

  • Thay thế hạt nhân của đối tác bằng hạt nhân GKI 1.0 được chứng nhận (android11-5.4 hoặc android12-5.4).

  • Phân phối hạt nhân GKI 2.0 được chứng nhận (android12-5.10, android13-5.10 hoặc android13-5.15) tuỳ thuộc vào lựa chọn của bạn.

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