Android Virtualization Framework (AVF) ให้สภาพแวดล้อมการทำงานที่ปลอดภัยและเป็นส่วนตัวสำหรับการรันโค้ด AVF เหมาะอย่างยิ่งสำหรับกรณีการใช้งานที่เน้นการรักษาความปลอดภัย ซึ่งต้องการการรับรองการแยกที่แข็งแกร่ง แม้จะได้รับการยืนยันอย่างเป็นทางการแล้วก็ตาม เหนือสิ่งที่เสนอโดยแซนด์บ็อกซ์แอปของ Android Android มีการใช้งานอ้างอิงของส่วนประกอบทั้งหมดที่จำเป็นในการใช้งาน AVF ปัจจุบัน AVF รองรับเฉพาะอุปกรณ์ ARM64 รูปที่ 1 แสดงสถาปัตยกรรมของ AVF:
นี่คือคำจำกัดความของคำศัพท์ที่สำคัญที่สุดจากรูปที่ 1:
- apexd และ zipfuse
- ติดตั้ง APEX และ APK ที่นำเข้าจากโฮสต์อย่างปลอดภัย
- authfs
- ระบบไฟล์ฟิวส์สำหรับการแชร์ไฟล์หลายไฟล์ระหว่าง Android และ pVM (โฮสต์และแขก)
- เครื่องผูก
- วิธีการหลักในการสื่อสารระหว่าง VM
- crossvm
- จอภาพเครื่องเสมือนเขียนขึ้นสนิม crossvm จัดสรรหน่วยความจำ VM สร้างเธรด CPU เสมือน และใช้แบ็คเอนด์ของอุปกรณ์เสมือน
- รูปภาพเคอร์เนลทั่วไป (GKI)
- อิมเมจสำหรับบูตที่รับรองโดย Google ที่มีเคอร์เนล GKI ที่สร้างจากทรีซอร์สของ Android Common Kernel (ACK) และเหมาะสมที่จะแฟลชไปยังพาร์ติชั่นสำหรับเริ่มระบบของอุปกรณ์ Android สำหรับข้อมูลเพิ่มเติม โปรดดูที่ ภาพรวมเคอร์เนล
- ไฮเปอร์ไวเซอร์
- เทคโนโลยีการจำลองเสมือนที่ใช้โดย AVF หรือที่เรียกว่า pKVM ไฮเปอร์ไวเซอร์รักษาความสมบูรณ์ของโค้ดที่ดำเนินการและการรักษาความลับของสินทรัพย์ของ pVM แม้ว่า Android หรือ pVM อื่นๆ จะถูกบุกรุกก็ตาม
- Java API
- VirtualizationService Java APIs ซึ่งมีอยู่ในอุปกรณ์ที่รองรับ AVF เท่านั้น API เหล่านี้เป็นทางเลือกและไม่ได้เป็นส่วนหนึ่งของ
thebootclasspath
- ไมโครดรอยด์
- ระบบปฏิบัติการ Android ขนาดเล็กที่ Google จัดหาให้ซึ่งทำงานใน pVM
- Microdroid Manager
- จัดการวงจรชีวิต pVM ภายใน pVM และดิสก์อินสแตนซ์
- Native API
- ชุดย่อยของ Android Native Developers Kit (NDK)
- เครื่องเสมือนที่ใช้เคอร์เนลที่ได้รับการป้องกัน (pKVM)
- ดู ไฮเปอร์ ไวเซอร์
- เฟิร์มแวร์ pVM (
pvmfw
) - รหัสแรกที่รันบน pVM,
pvmfw
ตรวจสอบเพย์โหลดและรับความลับต่อ VM - เครื่องเสมือนที่ได้รับการป้องกัน (pVM)
สภาพแวดล้อมการทำงานที่แยกจากกันที่ไม่น่าเชื่อถือร่วมกัน ("แขก") ซึ่งทำงานควบคู่ไปกับระบบปฏิบัติการ Android หลัก ("โฮสต์") pVM ได้รับการจัดการโดย pKVM
เมื่อเปรียบเทียบกับสภาพแวดล้อมการดำเนินการที่เชื่อถือได้ (TEE) แล้ว pVM ให้สภาพแวดล้อมที่สมบูรณ์ยิ่งขึ้น รวมถึงการแจกจ่าย mini-Android ที่เรียกว่า Microdroid สามารถใช้ pVM แบบไดนามิกและจัดเตรียมชุด API มาตรฐานที่มีอยู่ในอุปกรณ์ทั้งหมดที่รองรับ
- VirutalizationService
บริการ Android ที่จัดการวงจรชีวิตของ pVM
อะไรต่อไป?
- หากคุณต้องการเข้าใจความต้องการ AVF มากขึ้น ให้ดูที่ ทำไมต้อง AVF? .
- หากต้องการอ่านเกี่ยวกับวิธีใช้ AVF สำหรับการรวบรวมแบบแยก โปรดดู กรณีการใช้ งาน
- หากคุณต้องการคำอธิบายเชิงลึกเพิ่มเติมเกี่ยวกับสถาปัตยกรรมของการนำการอ้างอิง AVF ไปใช้งาน โปรดดูที่ สถาปัตยกรรม AVF
- หากคุณต้องการเรียนรู้เกี่ยวกับ Microdroid โปรดดูที่ Microdroid
- หากคุณสนใจวิธีที่ AVF จัดการกับความปลอดภัย โปรดดูที่ Security
- เพื่อทำความเข้าใจบทบาทของบริการเวอร์ชวลไลเซชัน โปรดดู VirtualizationService