Khung ảo hoá cho Android (AVF) cung cấp môi trường thực thi riêng tư và an toàn để thực thi mã. AVF là lựa chọn lý tưởng cho các trường hợp sử dụng hướng đến bảo mật, đòi hỏi sự đảm bảo về khả năng cô lập mạnh mẽ hơn, thậm chí được xác minh chính thức so với những trường hợ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 của 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:
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
- Một hệ thống tệp cầu nối để chia sẻ an toàn nhiều tệp giữa Android và pVM (máy chủ và khách).
- binder
- Phương tiện giao tiếp chính giữa các VM.
- crosvm
- Một 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 các phần phụ trợ của thiết bị ảo.
- Hình ảnh hạt nhân chung (GKI)
- Một hình ảnh khởi động được Google chứng nhận, chứa một nhân GKI được tạo từ cây nguồn Nhân chung của Android (ACK) và phù hợp để cài đặt vào phân vùng khởi động của một thiết bị Android. Để biết thêm thông tin, hãy xem bài viết Tổng quan về nhân.
- hypervisor
- Công nghệ ảo hoá mà AVF sử dụng, còn được gọi là pKVM. Hypervisor duy trì tính toàn vẹn của mã đã thực thi và tính bảo mật của các thành phần pVM, ngay cả khi Android trên máy chủ lưu trữ hoặc bất kỳ pVM nào khác bị xâm phạm.
- Java API
- Các API Java VirtualizationService, chỉ có trên những thiết bị có hỗ trợ AVF. Các API này không bắt buộc và không nằm trong
thebootclasspath
. - Microdroid
- Một hệ điều hành Android thu nhỏ do Google cung cấp, chạy trong pVM.
- Microdroid Manager
- Quản lý vòng đời pVM, bên trong pVM và đĩa thực thể.
- Native API
- Một phần của Android Native Developers Kit (NDK).
- máy ảo dựa trên nhân được bảo vệ (pKVM)
- Xem Trình điều khiển ảo hoá.
- Phần mềm cơ sở 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 VM. - máy ảo được bảo vệ (pVM)
Một môi trường thực thi biệt lập (khách) không tin tưởng lẫn nhau, 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 tính bảo mật pVM là ngay cả khi máy chủ bị xâm nhập, máy chủ cũng không có quyền truy cập vào bộ nhớ của pVM. pKVM là trình giám sát siêu ảo 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 một bản phân phối Android thu nhỏ có tên là Microdroid (mặc dù Microdroid cũng có thể chạy trên một VM không được bảo vệ). pVM có thể được dùng linh hoạt và cung cấp một bộ API tiêu chuẩn trong một môi trường đáng tin cậy có trên tất cả các thiết bị hỗ trợ chúng.
- 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 đối với AVF, hãy tham khảo phần Tại sao cần AVF?
- Để tìm hiểu cách dùng AVF cho quá trình biên dịch riêng biệt, hãy tham khảo Các trường hợp sử dụng.
- Nếu bạn muốn biết thông tin giải thích chi tiết hơn về cấu trúc của quá trình triển khai tham chiếu AVF, hãy tham khảo 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ý vấn đề bảo mật, hãy tham khảo phần Bảo mật.
- Để hiểu rõ vai trò của dịch vụ ảo hoá, hãy tham khảo VirtualizationService.
- Để biết 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