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