ตั้งแต่วันที่ 27 มีนาคม 2025 เป็นต้นไป เราขอแนะนำให้ใช้ android-latest-release
แทน aosp-main
เพื่อสร้างและมีส่วนร่วมใน AOSP โปรดดูข้อมูลเพิ่มเติมที่หัวข้อการเปลี่ยนแปลงใน AOSP
ภาพรวมของเฟรมเวิร์กการจำลองการทำงานแบบเสมือนของ Android (AVF)
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
เฟรมเวิร์กการจำลองการทำงานแบบเสมือนของ Android (AVF) ให้สภาพแวดล้อมการเรียกใช้ที่ปลอดภัยและเป็นส่วนตัวสําหรับการเรียกใช้โค้ด AVF เหมาะสําหรับกรณีการใช้งานที่มุ่งเน้นการรักษาความปลอดภัยซึ่งจําเป็นต้องมีการรับประกันการแยกที่เข้มงวดกว่าหรือได้รับการยืนยันอย่างเป็นทางการมากกว่ากรณีการใช้งานที่ App Sandbox ของ 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 ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมของเคอร์เนล
- 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
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-07-27 UTC
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2025-07-27 UTC"],[],[],null,["# Android Virtualization Framework (AVF) overview\n\n*Android Virtualization Framework (AVF)* provides secure and private execution\nenvironments for executing code. AVF is ideal for security-oriented use cases\nthat require stronger, even formally verified, isolation assurances over those\noffered by Android's app sandbox. Android provides a reference implementation\nof all the components needed to implement AVF. AVF is supported only\non ARM64 devices. Figure 1 shows the architecture of AVF:\n\n**Figure 1.** AVF architecture.\n\nHere are the definitions for the most important terms from figure 1:\n\n*apexd and zipfuse*\n: Securely mounts APEXes and APKs imported from host.\n\n*authfs*\n: A fuse file system for securely sharing multiple files between Android and pVM\n (host and guest).\n\n*binder*\n: Primary means of inter-VM communication.\n\n*crosvm*\n: A virtual machine monitor written in rust. crosvm allocates VM memory,\n creates virtual CPU threads, and implements the virtual device's back-ends.\n\n*Generic Kernel Image (GKI)*\n: A boot image certified by Google that contains a GKI kernel built from an\n Android Common Kernel (ACK) source tree and is suitable to be flashed to the\n boot partition of an Android device. For further information, see the [Kernel\n overview](/docs/core/architecture/kernel).\n\n*hypervisor*\n: The virtualization technology used by AVF, also known as *pKVM*. The\n hypervisor maintains the integrity of the executed code and confidentiality of\n the pVM's assets, even if host Android or any of the other pVMs are compromised.\n\n*Java API*\n: The VirtualizationService Java APIs, which are present only on devices with\n AVF support. These APIs are optional and not part of `thebootclasspath`.\n\n*Microdroid*\n: A Google-provided mini-Android OS that runs in a pVM.\n\n*Microdroid Manager*\n: Manages the pVM lifecycle, inside the pVM, and instance disk.\n\n*Native API*\n: A subset of the Android Native Developers Kit (NDK).\n\n*protected kernel-based virtual machine (pKVM)*\n: See [Hypervisor](#hyper).\n\n*pVM firmware (`pvmfw`)*\n: The first code that runs on a pVM, `pvmfw` verifies the payload and derives\n the per-VM secret.\n\n*protected virtual machine (pVM)*\n\n: A mutually distrusted isolated execution environment (*guest* ) that runs\n alongside the main Android operating system (*host*). One important aspect of\n pVM security is even if the host is compromised, the host doesn't have access\n to a pVM's memory. pKVM is the standard hypervisor for running pVMs.\n\n Compared to existing trusted execution environments (TEEs), pVMs provide a\n richer environment, including the ability to run a mini-Android distribution\n called [Microdroid](#micro) (though Microdroid can also run on an\n unprotected VM). pVMs can be used dynamically and provide a\n standard set of APIs in a trusted environment available across all devices\n that support them.\n\n*VirtualizationService*\n\n: The Android service that manages the lifecycle of pVMs.\n\nWhat's next?\n------------\n\n- If you want to better understand the need for AVF, refer to [Why AVF?](/docs/core/virtualization/whyavf).\n- To read about how AVF can be used for isolated compilation, refer to [Use cases](/docs/core/virtualization/usecases).\n- If you want a more in-depth explanation of the AVF reference implementation's architecture, refer to [AVF architecture](/docs/core/virtualization/architecture).\n- If you want to learn about Microdroid, refer to [Microdroid](/docs/core/virtualization/microdroid).\n- If you are interested in how AVF handles security, refer to [Security](/docs/core/virtualization/security).\n- To understand the role of the virtualization service, refer to [VirtualizationService](/docs/core/virtualization/virtualization-service).\n- For source code of AVF or in-depth explanation about individual components, refer to [AOSP\n repository](https://android.googlesource.com/platform/packages/modules/Virtualization/+/refs/heads/main)"]]