Android Virtualization Framework (AVF) มอบสภาพแวดล้อมการดำเนินการที่ปลอดภัยและเป็นส่วนตัวสำหรับการรันโค้ด AVF เหมาะอย่างยิ่งสำหรับกรณีการใช้งานที่เน้นความปลอดภัย ซึ่งต้องมีการรับประกันการแยกส่วนที่เข้มงวดยิ่งขึ้น แม้จะผ่านการตรวจสอบอย่างเป็นทางการแล้ว เหนือกว่าที่แซนด์บ็อกซ์ของแอป Android นำเสนอ Android มีการใช้งานอ้างอิงขององค์ประกอบทั้งหมดที่จำเป็นในการใช้งาน AVF ปัจจุบัน AVF รองรับเฉพาะอุปกรณ์ ARM64 เท่านั้น รูปที่ 1 แสดงสถาปัตยกรรมของ AVF:
ต่อไปนี้เป็นคำจำกัดความสำหรับคำศัพท์ที่สำคัญที่สุดจากรูปที่ 1:
- apexd และ zipfuse
- ติดตั้ง APEX และ APK ที่นำเข้าจากโฮสต์อย่างปลอดภัย
- การตรวจสอบสิทธิ์
- ระบบไฟล์ฟิวส์สำหรับการแชร์ไฟล์หลายไฟล์อย่างปลอดภัยระหว่าง Android และ pVM (โฮสต์และแขก)
- เครื่องผูก
- วิธีหลักของการสื่อสารระหว่าง VM
- ครอสวีม
- มอนิเตอร์เครื่องเสมือนเขียนด้วยสนิม crosvm จัดสรรหน่วยความจำ VM สร้างเธรด CPU เสมือน และใช้แบ็คเอนด์ของอุปกรณ์เสมือน
- เคอร์เนลอิมเมจทั่วไป (GKI)
- อิมเมจสำหรับบูตที่ได้รับการรับรองโดย Google ซึ่งมีเคอร์เนล GKI ที่สร้างจากแผนผังต้นทางของ Android Common Kernel (ACK) และเหมาะที่จะแฟลชไปยังพาร์ติชันสำหรับบูตของอุปกรณ์ Android สำหรับข้อมูลเพิ่มเติม โปรดดู ภาพรวมเคอร์เนล
- ไฮเปอร์ไวเซอร์
- เทคโนโลยีการจำลองเสมือนที่ใช้โดย AVF หรือที่เรียกว่า pKVM ไฮเปอร์ไวเซอร์จะรักษาความสมบูรณ์ของโค้ดที่ดำเนินการและการรักษาความลับของทรัพย์สินของ pVM แม้ว่า Android หรือ pVM อื่นๆ จะถูกบุกรุกก็ตาม
- จาวา API
- VirtualizationService Java API ซึ่งมีเฉพาะบนอุปกรณ์ที่รองรับ AVF เท่านั้น API เหล่านี้เป็นทางเลือกและไม่ได้เป็นส่วนหนึ่งของ
thebootclasspath
- ไมโครดรอยด์
- ระบบปฏิบัติการ mini-Android ที่ Google จัดหาให้ซึ่งทำงานใน pVM
- ผู้จัดการไมโครดรอยด์
- จัดการวงจรการใช้งาน pVM ภายใน pVM และดิสก์อินสแตนซ์
- API ดั้งเดิม
- ชุดย่อยของ Android Native Developers Kit (NDK)
- เครื่องเสมือนที่ใช้เคอร์เนลที่ได้รับการป้องกัน (pKVM)
- ดู ไฮเปอร์ไวเซอร์
- เฟิร์มแวร์ pVM (
pvmfw
) - โค้ดแรกที่รันบน pVM คือ
pvmfw
จะตรวจสอบเพย์โหลดและรับข้อมูลลับต่อ VM - เครื่องเสมือนที่ได้รับการป้องกัน (pVM)
สภาพแวดล้อมการดำเนินการแบบแยกที่ไม่น่าเชื่อถือร่วมกัน ("แขก") ที่ทำงานควบคู่ไปกับระบบปฏิบัติการ Android หลัก ("โฮสต์") pVM ได้รับการจัดการโดย pKVM
เมื่อเปรียบเทียบกับสภาพแวดล้อมการดำเนินการที่เชื่อถือได้ (TEE) ที่มีอยู่แล้ว pVM จะให้สภาพแวดล้อมที่สมบูรณ์ยิ่งขึ้น รวมถึงการเผยแพร่ mini-Android ที่เรียกว่า Microdroid pVM สามารถใช้งานได้แบบไดนามิกและจัดเตรียมชุด API มาตรฐานที่พร้อมใช้งานในทุกอุปกรณ์ที่รองรับ
- บริการการจำลองเสมือน
บริการ Android ที่จัดการวงจรชีวิตของ pVM
อะไรต่อไป?
- หากคุณต้องการเข้าใจถึงความจำเป็นของ AVF มากขึ้น โปรดดูที่ ทำไมต้อง AVF? -
- หากต้องการอ่านเกี่ยวกับวิธีการใช้ AVF สำหรับการรวบรวมแบบแยก โปรดดู กรณีการใช้งาน
- หากคุณต้องการคำอธิบายเชิงลึกเพิ่มเติมเกี่ยวกับสถาปัตยกรรมการใช้งานอ้างอิง AVF โปรดดูที่ สถาปัตยกรรม AVF
- หากคุณต้องการเรียนรู้เกี่ยวกับ Microdroid โปรดดูที่ Microdroid
- หากคุณสนใจว่า AVF จัดการกับความปลอดภัยอย่างไร โปรดดูที่ ความปลอดภัย
- หากต้องการทำความเข้าใจบทบาทของบริการการจำลองเสมือน โปรดดูที่ VirtualizationService
- สำหรับซอร์สโค้ดของ AVF หรือคำอธิบายเชิงลึกเกี่ยวกับส่วนประกอบแต่ละรายการ โปรดดูที่ พื้นที่เก็บข้อมูล AOSP
Android Virtualization Framework (AVF) มอบสภาพแวดล้อมการดำเนินการที่ปลอดภัยและเป็นส่วนตัวสำหรับการรันโค้ด AVF เหมาะอย่างยิ่งสำหรับกรณีการใช้งานที่เน้นความปลอดภัย ซึ่งต้องมีการรับประกันการแยกส่วนที่เข้มงวดยิ่งขึ้น แม้จะผ่านการตรวจสอบอย่างเป็นทางการแล้ว เหนือกว่าที่แซนด์บ็อกซ์ของแอป Android นำเสนอ Android มีการใช้งานอ้างอิงขององค์ประกอบทั้งหมดที่จำเป็นในการใช้งาน AVF ปัจจุบัน AVF รองรับเฉพาะอุปกรณ์ ARM64 เท่านั้น รูปที่ 1 แสดงสถาปัตยกรรมของ AVF:
ต่อไปนี้เป็นคำจำกัดความสำหรับคำศัพท์ที่สำคัญที่สุดจากรูปที่ 1:
- apexd และ zipfuse
- ติดตั้ง APEX และ APK ที่นำเข้าจากโฮสต์อย่างปลอดภัย
- การตรวจสอบสิทธิ์
- ระบบไฟล์ฟิวส์สำหรับการแชร์ไฟล์หลายไฟล์อย่างปลอดภัยระหว่าง Android และ pVM (โฮสต์และแขก)
- เครื่องผูก
- วิธีหลักของการสื่อสารระหว่าง VM
- ครอสวีม
- มอนิเตอร์เครื่องเสมือนเขียนด้วยสนิม crosvm จัดสรรหน่วยความจำ VM สร้างเธรด CPU เสมือน และใช้แบ็คเอนด์ของอุปกรณ์เสมือน
- เคอร์เนลอิมเมจทั่วไป (GKI)
- อิมเมจสำหรับบูตที่ได้รับการรับรองโดย Google ซึ่งมีเคอร์เนล GKI ที่สร้างจากแผนผังต้นทางของ Android Common Kernel (ACK) และเหมาะที่จะแฟลชไปยังพาร์ติชันสำหรับบูตของอุปกรณ์ Android สำหรับข้อมูลเพิ่มเติม โปรดดู ภาพรวมเคอร์เนล
- ไฮเปอร์ไวเซอร์
- เทคโนโลยีการจำลองเสมือนที่ใช้โดย AVF หรือที่เรียกว่า pKVM ไฮเปอร์ไวเซอร์จะรักษาความสมบูรณ์ของโค้ดที่ดำเนินการและการรักษาความลับของทรัพย์สินของ pVM แม้ว่า Android หรือ pVM อื่นๆ จะถูกบุกรุกก็ตาม
- จาวา API
- VirtualizationService Java API ซึ่งมีเฉพาะบนอุปกรณ์ที่รองรับ AVF เท่านั้น API เหล่านี้เป็นทางเลือกและไม่ได้เป็นส่วนหนึ่งของ
thebootclasspath
- ไมโครดรอยด์
- ระบบปฏิบัติการ mini-Android ที่ Google จัดหาให้ซึ่งทำงานใน pVM
- ผู้จัดการไมโครดรอยด์
- จัดการวงจรการใช้งาน pVM ภายใน pVM และดิสก์อินสแตนซ์
- API ดั้งเดิม
- ชุดย่อยของ Android Native Developers Kit (NDK)
- เครื่องเสมือนที่ใช้เคอร์เนลที่ได้รับการป้องกัน (pKVM)
- ดู ไฮเปอร์ไวเซอร์
- เฟิร์มแวร์ pVM (
pvmfw
) - โค้ดแรกที่รันบน pVM คือ
pvmfw
จะตรวจสอบเพย์โหลดและรับข้อมูลลับต่อ VM - เครื่องเสมือนที่ได้รับการป้องกัน (pVM)
สภาพแวดล้อมการดำเนินการแบบแยกที่ไม่น่าเชื่อถือร่วมกัน ("แขก") ที่ทำงานควบคู่ไปกับระบบปฏิบัติการ Android หลัก ("โฮสต์") pVM ได้รับการจัดการโดย pKVM
เมื่อเปรียบเทียบกับสภาพแวดล้อมการดำเนินการที่เชื่อถือได้ (TEE) ที่มีอยู่แล้ว pVM จะให้สภาพแวดล้อมที่สมบูรณ์ยิ่งขึ้น รวมถึงการเผยแพร่ mini-Android ที่เรียกว่า Microdroid pVM สามารถใช้งานได้แบบไดนามิกและจัดเตรียมชุด API มาตรฐานที่พร้อมใช้งานในทุกอุปกรณ์ที่รองรับ
- บริการการจำลองเสมือน
บริการ Android ที่จัดการวงจรชีวิตของ pVM
อะไรต่อไป?
- หากคุณต้องการเข้าใจถึงความจำเป็นของ AVF มากขึ้น โปรดดูที่ ทำไมต้อง AVF? -
- หากต้องการอ่านเกี่ยวกับวิธีการใช้ AVF สำหรับการรวบรวมแบบแยก โปรดดู กรณีการใช้งาน
- หากคุณต้องการคำอธิบายเชิงลึกเพิ่มเติมเกี่ยวกับสถาปัตยกรรมการใช้งานอ้างอิง AVF โปรดดูที่ สถาปัตยกรรม AVF
- หากคุณต้องการเรียนรู้เกี่ยวกับ Microdroid โปรดดูที่ Microdroid
- หากคุณสนใจว่า AVF จัดการกับความปลอดภัยอย่างไร โปรดดูที่ ความปลอดภัย
- หากต้องการทำความเข้าใจบทบาทของบริการการจำลองเสมือน โปรดดูที่ VirtualizationService
- สำหรับซอร์สโค้ดของ AVF หรือคำอธิบายเชิงลึกเกี่ยวกับส่วนประกอบแต่ละรายการ โปรดดูที่ พื้นที่เก็บข้อมูล AOSP