Android Virtualization Framework (AVF) มีสภาพแวดล้อมการดำเนินการที่ปลอดภัยและเป็นส่วนตัวสำหรับการเรียกใช้โค้ด AVF เหมาะสําหรับ Use Case ที่มุ่งเน้นการรักษาความปลอดภัยซึ่งจําเป็นต้องมีการรับประกันการแยกที่เข้มงวดกว่าหรือได้รับการยืนยันอย่างเป็นทางการมากกว่าที่ App Sandbox ของ Android เสนอ Android มีการใช้งานอ้างอิงสำหรับคอมโพเนนต์ทั้งหมดที่จำเป็นในการใช้งาน AVF ปัจจุบัน AVF ใช้งานได้ในอุปกรณ์ ARM64 เท่านั้น รูปที่ 1 แสดงสถาปัตยกรรมของ AVF
คําจํากัดความสําคัญที่สุดจากรูปที่ 1 มีดังนี้
- apexd และ zipfuse
- ต่อเชื่อม APEX และ APK ที่นำเข้าจากโฮสต์อย่างปลอดภัย
- authfs
- ระบบไฟล์ Fuse สำหรับการแชร์ไฟล์หลายรายการระหว่าง Android กับ pVM (โฮสต์และผู้ใช้ชั่วคราว) อย่างปลอดภัย
- binder
- ช่องทางหลักในการสื่อสารระหว่าง VM
- crosvm
- เครื่องมือตรวจสอบเครื่องเสมือนที่เขียนด้วย Rust โดย crosvm จะจัดสรรหน่วยความจำ VM, สร้างเธรด CPU เสมือน และใช้แบ็กเอนด์ของอุปกรณ์เสมือน
- Generic Kernel Image (GKI)
- รูปภาพสำหรับบูตที่ Google รับรองซึ่งมีเคอร์เนล GKI ที่สร้างขึ้นจากซอร์สทรี Android Common Kernel (ACK) และเหมาะสำหรับแฟลชลงในพาร์ติชันสำหรับบูตของอุปกรณ์ Android ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมเคอร์เนล
- hypervisor
- เทคโนโลยีการจําลองเสมือนที่ใช้โดย AVF หรือที่เรียกว่า pKVM Hypervisor จะรักษาความสมบูรณ์ของโค้ดที่เรียกใช้และรักษาข้อมูลที่เป็นความลับของเนื้อหา pVM แม้ว่าโฮสต์ Android หรือ pVM อื่นๆ จะถูกบุกรุกก็ตาม
- Java API
- Java API ของ VirtualizationService ซึ่งจะอยู่ในอุปกรณ์ที่รองรับ AVF เท่านั้น คุณจะใช้ API เหล่านี้หรือไม่ก็ได้ และ API เหล่านี้ไม่ได้เป็นส่วนหนึ่งของ
thebootclasspath
- Microdroid
- ระบบปฏิบัติการ Android ขนาดเล็กที่ Google ให้มาซึ่งทำงานใน pVM
- Microdroid Manager
- จัดการวงจรของ pVM, ภายใน pVM และดิสก์อินสแตนซ์
- API แบบดั้งเดิม
- ชุดย่อยของ Android Native Developers Kit (NDK)
- เครื่องเสมือนที่อิงตามเคอร์เนลที่ได้รับการปกป้อง (pKVM)
- ดูไฮเปอร์วิซอร์
- เฟิร์มแวร์ pVM (
pvmfw
) - โค้ดแรกที่ใช้ใน pVM
pvmfw
จะยืนยันเพย์โหลดและดึงข้อมูลลับต่อ VM - เครื่องเสมือนที่ได้รับการปกป้อง (pVM)
สภาพแวดล้อมการดำเนินการที่แยกจากกัน ("ผู้มาเยือน") ซึ่งทำงานข้างระบบปฏิบัติการ Android หลัก ("โฮสต์") pVM จะได้รับการจัดการโดย pKVM
เมื่อเทียบกับสภาพแวดล้อมการดำเนินการที่เชื่อถือได้ (TEE) ที่มีอยู่ pVM ให้สภาพแวดล้อมที่สมบูรณ์ยิ่งขึ้น ซึ่งรวมถึงการแจกจ่าย Android ขนาดเล็กที่เรียกว่า Microdroid โดย pVM สามารถใช้แบบไดนามิกและมีชุด API มาตรฐานที่ใช้ได้กับอุปกรณ์ทั้งหมดที่รองรับ
- VirtualizationService
บริการ Android ที่จัดการวงจรชีวิตของ pVM
สิ่งต่อไปที่ควรทำ
- หากต้องการทําความเข้าใจความจําเป็นในการใช้ AVF ให้ดียิ่งขึ้น โปรดดูเหตุผลที่ควรใช้ AVF
- หากต้องการอ่านเกี่ยวกับวิธีใช้ AVF ในการคอมไพล์แบบแยกต่างหาก โปรดดูกรณีการใช้งาน
- หากต้องการคำอธิบายเชิงลึกเพิ่มเติมเกี่ยวกับสถาปัตยกรรมของการใช้งานอ้างอิง AVF โปรดดูสถาปัตยกรรม AVF
- หากต้องการเรียนรู้เกี่ยวกับ Microdroid โปรดดู Microdroid
- หากสนใจวิธีที่ AVF จัดการความปลอดภัย โปรดดูความปลอดภัย
- หากต้องการทำความเข้าใจบทบาทของบริการการจำลองเสมือน โปรดดูที่ VirtualizationService
- ดูซอร์สโค้ดของ AVF หรือคำอธิบายเชิงลึกเกี่ยวกับคอมโพเนนต์แต่ละรายการได้ที่ที่เก็บ AOSP