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 phần Tổng quan về 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 những thay đổi không ảnh hưởng đến KMI hiện có vào các nhân đã được cố định. Những thay đổi này bao gồm các hàm đã xuất và mục danh sách biểu tượng mới. Để 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ác cấu trúc mà 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 thuộc giao diện KMI trong các nhân có KMI cố định. 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 gián đoạn khả năng tương thích với 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 phần 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 nhân, hãy tham khảo 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 thao tác ghi đè đối với các mô-đun GKI hiện có?
Nếu tạo một mô-đun của nhà cung cấp dựa trên trình điều khiển trong Nhân chung Android (ACK), bạn phải đảm bảo rằng các bản sửa lỗi từ nguồn và ACK được truyền đến mô-đun của bạn. Nhìn 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 quy trình kiểm thử dành riêng cho GKI không?
Có các kiểm thử Bộ kiểm thử của 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 từng bản phát hành. Ví dụ: có các kiểm thử VTS 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 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 đoạn cấu hình để mô tả các lựa chọn cấu hình cần thiết, ngoài gki_defconfig
, để tạo các mô-đun của nhà cung cấp.
Các ví dụ thuộc cơ sở mã ACK bao gồm Cuttlefish 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 lựa chọn cấu hình nhằm tối ưu hoá đoạn mã, nhưng scripts/diffconfig
từ các nguồn của nhân là hữu ích để so sánh kết quả của gki_defconfig
và gki_defconfig+device.fragment
.
Có giải pháp nào để modprobe coi - và _ là tương đương không?
Trang hướng dẫn modprobe có nội dung mô tả này: "modprobe
thêm hoặc xoá một mô-đun khỏi nhân Linux một cách thông minh: xin lưu ý rằng để thuận tiện, không có sự khác biệt giữa _ và - trong tên mô-đun (hệ thống sẽ tự động chuyển đổi dấu gạch dưới)." Nhóm GKI tuân thủ quy ước tiêu chuẩn ở nguồn thượng nguồn, vì vậy, các quy ước đặt tên cho mô-đun hoặc công cụ của nhà cung cấp 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 các tính năng gỡ lỗi hạ nguồn xâm nhập.
Làm cách nào để giải quyết vấn đề ABI không khớp giữa nhân GKI với một cấu hình mô-đun cụ thể đã bật?
ABI không khớp giữa cấu hình mô-đun và nhân GKI thể hiện một phần phụ thuộc cấu hình mô-đun ngầm, trong đó việc bật một mô-đun sẽ khiến cấu hình nhị phân được tạo thành hình ảnh nhân kết quả. Liên hệ với nhóm hạt nhân Android (kernel-team@android.com) để xác định hướng đi tiếp theo. Sau khi xác định danh sách biểu tượng, hãy tạo một lỗi trong Công cụ theo dõi lỗi và tải một thay đổi lên danh sách biểu tượng.