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 nhân chung (GKI). Nếu bạn chưa hiểu rõ về GKI và thuật ngữ nhân GKI, hãy tham khảo bài viết Tổng quan về nhân.

Có thể thay đổi danh sách ký hiệu Giao diện mô-đun nhân (KMI) trong mộ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 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à các mục trong danh sách ký hiệu. Để 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 nhà cung cấp sử dụng trong một nhân ổn định không?

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

Để biết thông tin về cấu hình nhân, hãy tham khảo bài viết Các 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 đè đối với các mô-đun GKI hiện có?

Nếu bạn tạo một mô-đun nhà cung cấp dựa trên trình điều khiển trong Nhân chung Android (ACK), thì bạn phải đảm bảo rằng các bản sửa lỗi từ ngược dòng và ACK được truyền đến mô-đun của bạn. Nói chung, bạn nên sử dụng nhân GKI và các mô-đun GKI mà không cần 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ó các bài kiểm thử dành riêng 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 một 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 cho mỗi bản phát hành. Ví dụ: có các bài kiểm thử VTS 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 nhân 5.10.

Làm cách nào để tạo tệp phân mảnh 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 phân mảnh cấu hình để mô tả các tuỳ chọn cấu hình cần thiết, ngoài gki_defconfig, để xây dựng các mô-đun nhà cung cấp. Các ví dụ là một phần của toàn bộ mã nguồn ACK bao gồm Cuttlefish và DB845c. Bạn không thể tránh việc kiểm tra thủ công một số tuỳ chọn cấu hình để tối ưu hoá phân mảnh, nhưng scripts/diffconfig từ các nguồn nhân sẽ hữu ích khi so sánh kết quả của gki_defconfiggki_defconfig+device.fragment.

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

Trang hướng dẫn modprobe chứa nội dung mô tả sau: "modprobe sẽ thêm hoặc xoá 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 (quá trình chuyển đổi dấu gạch dưới tự động sẽ được thực hiện)." Nhóm GKI tuân thủ quy ước ngược dòng tiêu chuẩn, vì vậy, các công cụ 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 debugfs, hãy xem phần các tính năng gỡ lỗi xuôi dòng xâm nhập features.

Làm cách nào để giải quyết các ABI không khớp giữa 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 nhân GKI và cấu hình mô-đun thể hiện 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ích hợp vào hình ảnh nhân kết quả. Hãy liên hệ với nhóm nhân Android kernel (kernel-team@android.com) để xác định lộ trình tiếp theo. Sau khi xác định danh sách ký hiệu, hãy tạo một sự cố trong Trình theo dõi sự cố và tải một thay đổi lên danh sách ký hiệu.