เฟรมเวิร์กการจำลองการทำงานแบบเสมือนของ 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)
สภาพแวดล้อมการดำเนินการที่แยกจากกันซึ่งไม่น่าเชื่อถือ (แขกรับเชิญ) ที่ทำงาน ควบคู่ไปกับระบบปฏิบัติการ Android หลัก (โฮสต์) แง่มุมที่สำคัญอย่างหนึ่งของการรักษาความปลอดภัย pVM คือแม้ว่าโฮสต์จะถูกบุกรุก แต่โฮสต์ก็ไม่มีสิทธิ์เข้าถึงหน่วยความจำของ pVM pKVM เป็นไฮเปอร์ไวเซอร์มาตรฐานสำหรับการเรียกใช้ pVM
เมื่อเทียบกับสภาพแวดล้อมการดำเนินการที่เชื่อถือได้ (TEE) ที่มีอยู่ pVM มี สภาพแวดล้อมที่สมบูรณ์ยิ่งขึ้น รวมถึงความสามารถในการเรียกใช้การกระจาย Android ขนาดเล็ก ที่เรียกว่า Microdroid (แม้ว่า Microdroid จะเรียกใช้ใน VM ที่ไม่มีการป้องกันได้ด้วย) คุณใช้ pVM แบบไดนามิกได้ และมี ชุด API มาตรฐานในสภาพแวดล้อมที่เชื่อถือได้ซึ่งพร้อมใช้งานในอุปกรณ์ทั้งหมด ที่รองรับ
- VirtualizationService
บริการ Android ที่จัดการวงจรของ pVM
สิ่งต่อไปที่ควรทำ
- หากต้องการทำความเข้าใจความจำเป็นของ AVF ให้ดียิ่งขึ้น โปรดดูเหตุใดจึงต้องมี AVF
- หากต้องการอ่านเกี่ยวกับวิธีใช้ AVF สำหรับการคอมไพล์แบบแยก ให้ไปที่กรณีการใช้งาน
- หากต้องการคำอธิบายเชิงลึกเพิ่มเติมเกี่ยวกับสถาปัตยกรรมของการใช้งานอ้างอิง AVF โปรดดูสถาปัตยกรรม AVF
- หากต้องการดูข้อมูลเกี่ยวกับ Microdroid โปรดดูที่ Microdroid
- หากสนใจวิธีที่ AVF จัดการด้านความปลอดภัย โปรดดูความปลอดภัย
- หากต้องการทำความเข้าใจบทบาทของบริการการจำลองเสมือน โปรดดูที่ VirtualizationService
- สำหรับซอร์สโค้ดของ AVF หรือคำอธิบายเชิงลึกเกี่ยวกับคอมโพเนนต์แต่ละรายการ โปรดดูที่เก็บ AOSP