ภาพรวมเฟรมเวิร์ก Android Virtualization (AVF)

Android Virtualization Framework (AVF) มีสภาพแวดล้อมการดำเนินการที่ปลอดภัยและเป็นส่วนตัวสำหรับการเรียกใช้โค้ด AVF เหมาะสําหรับ Use Case ที่มุ่งเน้นการรักษาความปลอดภัยซึ่งจําเป็นต้องมีการรับประกันการแยกที่เข้มงวดกว่าหรือได้รับการยืนยันอย่างเป็นทางการมากกว่าที่ App Sandbox ของ Android เสนอ Android มีการใช้งานอ้างอิงสำหรับคอมโพเนนต์ทั้งหมดที่จำเป็นในการใช้งาน AVF ปัจจุบัน AVF ใช้งานได้ในอุปกรณ์ ARM64 เท่านั้น รูปที่ 1 แสดงสถาปัตยกรรมของ AVF

สถาปัตยกรรม 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 ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมเคอร์เนล
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