Khung ảo hoá Android (AVF) cung cấp môi trường thực thi bảo mật và riêng tư để thực thi mã. AVF là giải pháp lý tưởng cho các trường hợp sử dụng theo định hướng bảo mật yêu cầu phải có các đả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 những bảo mật do hộp cát của ứng dụng của Android cung cấp. Android cung cấp cách triển khai tham chiếu tất cả các thành phần cần thiết để triển khai AVF. Hiện tại, AVF chỉ được hỗ trợ trên các thiết bị ARM64. Hình 1 thể hiện cấu trúc của 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 an toàn các tệp APEX và APK được nhập từ máy chủ lưu trữ.
- 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).
- Trình liên kết
- Các phương tiện chính để giao tiếp giữa các máy ảo.
- crosvm
- Một màn hình máy ảo được viết bằng màu gỉ. 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 hạt nhân chung (GKI)
- Hình ảnh khởi động được Google chứng nhận, chứa hạt nhân GKI được tạo từ cây nguồn của Hạt nhân Android phổ biến (ACK) và phù hợp để cài đặt ROM 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 phần Tổng quan về nhân.
- 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ã đã thực thi và tính bảo mật của các tài sản của pVM, ngay cả khi máy chủ lưu trữ Android hoặc bất kỳ pVM nào khác bị xâm phạm.
- API Java
- Các API Java VirtualizationService, 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 Bộ công cụ dành cho nhà phát triển gốc Android (NDK).
- máy ảo bảo vệ dựa trên nhân (pKVM)
- Hãy 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 khoá bí mật cho mỗi máy ảo. - máy ảo được bảo vệ (pVM)
Một môi trường thực thi tách biệt lẫn nhau ("khách") chạy cùng với hệ điều hành Android ("máy chủ") chính sẽ do pKVM quản lý.
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ả một bản phân phối Android mini có tên là Microdroid. Bạn có thể sử dụng pVM một cách linh động và cung cấp một bộ API tiêu chuẩn có sẵn 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 riêng biệt, hãy tham khảo phần Trường hợp sử dụng.
- Nếu bạn muốn tìm hiểu thêm về cấu trúc 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 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 nội dung giải thích chuyên sâu về từng thành phần, hãy tham khảo Kho lưu trữ AOSP