ภาพรวมของเฟรมเวิร์กการจำลองการทำงานแบบเสมือนของ Android (AVF)

เฟรมเวิร์กการจำลองการทำงานแบบเสมือนของ Android (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 ฮไฮเปอร์วิซอร์จะรักษาความสมบูรณ์ของโค้ดที่ดำเนินการและรักษาความลับของเนื้อหาใน 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