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

Tài liệu này chứa các câu hỏi thường gặp về nhân Android, còn được gọi là 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 phần Tổng quan về hạt nhân .

Danh sách ký hiệu Giao diện mô-đun hạt nhân (KMI) có thể được thay đổi trong hạ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ị đóng băng. Những thay đổi này bao gồm các hàm được xuất mới và các mục nhập danh sách ký hiệu. Để biết chi tiết, xem Quản lý danh sách biểu tượng .

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

Không thể thay đổi các cấu trúc là một phần của giao diện KMI trong hạt nhân bằng KMI bị đóng băng. Trước khi đóng băng KMI, các cấu trúc này có thể được thay đổi.

Tôi có thể thay đổi kernel miễn là tôi không phá vỡ khả năng tương thích nhị phân/nguồn không?

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

GKI xử lý cấu hình kernel như thế nào?

Để biết thông tin về cấu hình kernel, hãy tham khảo 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 để 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 Android Common Kernel (ACK) , bạn có trách nhiệm đảm bảo rằng các bản sửa lỗi từ thượng nguồn và ACK được truyền tới mô-đun của bạn. Nói chung, lợi ích tốt nhất của bạn là sử dụng nhân GKI và các mô-đun GKI mà không sửa đổi để những bản cập nhật này được Google cung cấp một cách nhất quán.

Có bài kiểm tra cụ thể về GKI không?

Có các thử nghiệm Bộ kiểm tra 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 trên mỗi bản phát hành. Ví dụ: có các bài kiểm tra Android 12 VTS 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 thiết bị chạy kernel 5.10.

Làm cách nào để tạo tệp phân đoạn defconfig 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 đoạn cấu hình để mô tả các tùy chọn cấu hình cần thiết, ngoài gki_defconfig , để xây dựng 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 Cuttlefish và DB845c. Không có cách nào để tránh việc kiểm tra thủ công các tùy chọn cấu hình để tối ưu hóa đoạn này, nhưng scripts/diffconfig từ nguồn kernel rất hữu ích để so sánh kết quả của gki_defconfiggki_defconfig+device.fragment .

Có cách giải quyết nào để xử lý modprobe - và _ tương đương không?

Trang man của modprobe chứa mô tả này: " modprobe thêm hoặc xóa một mô-đun khỏi 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 (chuyển đổi dấu gạch dưới tự động được thực hiện)." Nhóm GKI tuân thủ quy ước ngược dòng tiêu chuẩn, do đó, 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 debugf để sử dụng nội bộ?

Để biết chi tiết về cách bật gỡ lỗi, hãy xem các tính năng gỡ lỗi xâm nhập xuôi dòng .

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

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

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

Tham khảo ma trận tương thích để biết danh sách các phiên bản kernel được hỗ trợ cho các phiên bản khởi chạy và nâng cấp. Dưới đây là hai ví dụ nâng cấp.

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

  • Nâng cấp lên kernel android12-5.10 GKI 2.0 (rất khuyến khích).

  • Giữ hạt nhân android11-5.4 .

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

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

  • Nâng cấp lên nhân android13-5.10 hoặc android13-5.15 GKI 2.0 (rất khuyến khích).

  • Giữ kernel android12-5.4 GKI 1.0 .

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

Cụ thể để kiểm tra tuân thủ Treble, chúng tôi khuyên bạn nên thực hiện một trong những thao tác sau:

  • Thay thế hạt nhân đố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 ).

  • Gửi kèm hạt nhân GKI 2.0 được chứng nhận ( android12-5.10 , android13-5.10 hoặc android13-5.15 ) tùy thuộc vào lựa chọn của bạn.

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