เฟรมเวิร์กการจำลองการทำงานแบบเสมือนของ Android (AVF) มีสภาพแวดล้อมการดำเนินการที่ปลอดภัยและเป็นส่วนตัว สำหรับการเรียกใช้โค้ด AVF เหมาะอย่างยิ่งสำหรับกรณีการใช้งานที่เน้นความปลอดภัย ซึ่งต้องมีการรับประกันการแยกที่เข้มงวดกว่าหรือแม้แต่ได้รับการยืนยันอย่างเป็นทางการ มากกว่าที่แซนด์บ็อกซ์ของแอป Android มีให้ Android มีการใช้งานอ้างอิง ของคอมโพเนนต์ทั้งหมดที่จำเป็นต่อการใช้งาน AVF AVF รองรับเฉพาะ ในอุปกรณ์ ARM64 รูปที่ 1 แสดงสถาปัตยกรรมของ AVF
รูปที่ 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 ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมของเคอร์เนล
- ไฮเปอร์ไวเซอร์
- เทคโนโลยีการจำลองเสมือนที่ AVF ใช้ หรือที่เรียกว่า pKVM ไฮเปอร์ไวเซอร์จะรักษาความสมบูรณ์ของโค้ดที่ดำเนินการและความลับของ ชิ้นงานของ pVM แม้ว่า Android ของโฮสต์หรือ pVM อื่นๆ จะถูกบุกรุกก็ตาม
- Java API
- Java API ของ VirtualizationService ซึ่งมีอยู่ในอุปกรณ์ที่รองรับ AVF เท่านั้น
API เหล่านี้เป็นตัวเลือกและไม่ได้เป็นส่วนหนึ่งของ
thebootclasspath - Microdroid
- ระบบปฏิบัติการ Android ขนาดเล็กที่ Google จัดหาให้ซึ่งทำงานใน pVM
- Microdroid Manager
- จัดการวงจรของ pVM ภายใน pVM และดิสก์อินสแตนซ์
- API ดั้งเดิม
- ชุดย่อยของ Android Native Developers Kit (NDK)
- เครื่องเสมือนที่ใช้เคอร์เนลที่ได้รับการปกป้อง (pKVM)
- ดู Hypervisor
- เฟิร์มแวร์ pVM (
pvmfw) - โค้ดแรกที่ทำงานใน pVM
pvmfwจะยืนยันเพย์โหลดและสร้าง ข้อมูลลับต่อ VM - เครื่องเสมือนที่ได้รับการปกป้อง (pVM)
- VM ที่จัดการโดยไฮเปอร์ไวเซอร์ ซึ่งทำงานในโลกที่ไม่ปลอดภัยหรือใน Realm และแยกออกจากระบบปฏิบัติการโฮสต์ Android เพื่อป้องกันการเข้าถึงแม้ในกรณีที่โฮสต์ Android ถูกบุกรุก
pVM รองรับสภาพแวดล้อมที่หลากหลาย ซึ่งรวมถึงการกระจายข้อมูลที่ใช้ Linux แนวคิด pVM ไม่ใช่แนวคิดเฉพาะของ Google นอกจากนี้ VM ที่พาร์ทเนอร์กำหนด (SoC/OEM) ซึ่งมีข้อจำกัดด้านการแยก / การเข้าถึงหน่วยความจำก็เป็น pVM ด้วย
- VirtualizationService
- บริการ Android ที่จัดการวงจรของ pVM
สิ่งต่อไปที่ควรทำ
- หากต้องการทำความเข้าใจความจำเป็นของ AVF ให้ดียิ่งขึ้น โปรดดูเหตุผลที่ต้องใช้ AVF
- หากต้องการอ่านเกี่ยวกับวิธีใช้ AVF สำหรับการคอมไพล์แบบแยก ให้ไปที่กรณีการใช้งาน
- หากต้องการคำอธิบายเชิงลึกเพิ่มเติมเกี่ยวกับสถาปัตยกรรมของการใช้งานอ้างอิง AVF โปรดดูสถาปัตยกรรม AVF
- หากต้องการดูข้อมูลเกี่ยวกับ Microdroid โปรดดูที่ Microdroid
- หากคุณสนใจวิธีที่ AVF จัดการด้านความปลอดภัย โปรดดูความปลอดภัย
- หากต้องการทำความเข้าใจบทบาทของบริการการจำลองเสมือน โปรดดูที่ VirtualizationService
- สำหรับซอร์สโค้ดของ AVF หรือคำอธิบายเชิงลึกเกี่ยวกับคอมโพเนนต์แต่ละรายการ โปรดดูที่เก็บ AOSP