Tổng quan về Khung ảo hoá Android (AVF)

Khung ảo hoá cho Android (AVF) cung cấp môi trường thực thi an toàn và riêng tư để thực thi mã. AVF là lựa chọn lý tưởng cho các trường hợp sử dụng chú trọng đến bảo mật, đòi hỏi các biện pháp đảm bảo cách ly mạnh mẽ hơn, thậm chí được xác minh chính thức, so với các biện pháp do hộp cát ứng dụng của Android cung cấp. Android cung cấp một cách triển khai tham chiếu cho tất cả các thành phần cần thiết để triển khai AVF. AVF chỉ được hỗ trợ trên các thiết bị ARM64. Hình 1 cho thấy cấu trúc của AVF:

Cấu trúc AVF

Hình 1. Cấu trúc AVF.

Sau đây là định nghĩa của các thuật ngữ quan trọng nhất trong hình 1:

apexd và zipfuse
Gắn APEX và APK được nhập từ máy chủ một cách an toàn.
authfs
Hệ thống tệp cầu chì để chia sẻ nhiều tệp một cách an toàn giữa Android và pVM (máy chủ và khách).
binder
Phương tiện chính để giao tiếp giữa các máy ảo.
crosvm
Trình giám sát máy ảo được viết bằng Rust. crosvm phân bổ bộ nhớ máy ảo, tạo các luồng CPU ảo và triển khai phần phụ trợ của thiết bị ảo.
Hình ảnh kernel chung (GKI)
Hình ảnh khởi động được Google chứng nhận, chứa kernel GKI được xây dựng từ cây nguồn Kernel chung của Android (ACK) và phù hợp để ghi vào phân vùng khởi động của thiết bị Android. Để biết thêm thông tin, hãy xem bài viết Tổng quan về kernel.
trình điều khiển ảo hoá
Công nghệ ảo hoá mà AVF sử dụng, còn được gọi là pKVM. Trình điều khiển ảo hoá duy trì tính toàn vẹn của mã được thực thi và tính bảo mật của các thành phần của pVM, ngay cả khi Android máy chủ hoặc bất kỳ pVM nào khác bị xâm phạm.
API Java
API VirtualizationService Java, chỉ có trên các thiết bị hỗ trợ AVF. Các API này là không bắt buộc và không thuộc thebootclasspath.
Microdroid
Hệ điều hành Android mini do Google cung cấp, chạy trong pVM.
Trình quản lý Microdroid
Quản lý vòng đời pVM, bên trong pVM và ổ đĩa thực thể.
API gốc
Một tập hợp con của Android Native Developers Kit (NDK).
máy ảo dựa trên kernel được bảo vệ (pKVM)
Xem Trình điều khiển ảo hoá.
firmware pVM (pvmfw)
Mã đầu tiên chạy trên pVM, pvmfw xác minh tải trọng và lấy bí mật cho mỗi máy ảo.
máy ảo được bảo vệ (pVM)

Môi trường thực thi cách ly không tin cậy lẫn nhau (khách) chạy cùng với hệ điều hành Android chính (máy chủ). Một khía cạnh quan trọng của bảo mật pVM là ngay cả khi máy chủ bị xâm phạm, máy chủ cũng không có quyền truy cập vào bộ nhớ của pVM. pKVM là trình điều khiển ảo hoá tiêu chuẩn để chạy pVM.

So với các môi trường thực thi đáng tin cậy (TEE) hiện có, pVM cung cấp một môi trường phong phú hơn, bao gồm cả khả năng chạy bản phân phối Android mini có tên là Microdroid (mặc dù Microdroid cũng có thể chạy trên máy ảo không được bảo vệ). Bạn có thể sử dụng pVM một cách linh hoạt và cung cấp một tập hợp API tiêu chuẩn trong môi trường đáng tin cậy có trên tất cả các thiết bị hỗ trợ pVM.

VirtualizationService

Dịch vụ Android quản lý vòng đời của pVM.

Tiếp theo là gì?

  • Nếu bạn muốn hiểu rõ hơn về nhu cầu sử dụng AVF, hãy tham khảo bài viết Tại sao nên dùng AVF?.
  • Để đọc về cách sử dụng AVF cho quá trình biên dịch cách ly, hãy tham khảo bài viết Các trường hợp sử dụng.
  • Nếu bạn muốn biết giải thích chi tiết hơn về cấu trúc của cách triển khai tham chiếu AVF, hãy tham khảo bài viết Cấu trúc AVF.
  • Nếu bạn muốn tìm hiểu về Microdroid, hãy tham khảo bài viết Microdroid.
  • Nếu bạn quan tâm đến cách AVF xử lý bảo mật, hãy tham khảo bài viết Bảo mật.
  • Để hiểu vai trò của dịch vụ ảo hoá, hãy tham khảo bài viết VirtualizationService.
  • Để xem mã nguồn của AVF hoặc giải thích chi tiết về từng thành phần, hãy tham khảo kho lưu trữ AOSP