چارچوب مجازیسازی اندروید (AVF) محیطهای اجرایی امن و خصوصی را برای اجرای کد فراهم میکند. AVF برای موارد استفاده امنیتی که نیاز به تضمینهای جداسازی قویتر و حتی رسماً تأیید شده نسبت به آنچه که توسط جعبه شنی برنامه اندروید ارائه میشود، دارند، ایدهآل است. اندروید یک پیادهسازی مرجع از تمام اجزای مورد نیاز برای پیادهسازی AVF ارائه میدهد. AVF فقط در دستگاههای ARM64 پشتیبانی میشود. شکل 1 معماری AVF را نشان میدهد:

شکل 1. معماری AVF.
در اینجا تعاریف مهمترین اصطلاحات شکل ۱ آمده است:
- اپکسد و زیپفیوز
- APEXها و APKهای وارد شده از میزبان را به طور ایمن نصب میکند.
- مجوزها
- یک سیستم فایل فیوز برای اشتراکگذاری ایمن چندین فایل بین اندروید و pVM (میزبان و مهمان).
- چسب
- وسیله اصلی ارتباط بین ماشینهای مجازی.
- کراسویام
- یک مانیتور ماشین مجازی که با Rust نوشته شده است. crosvm حافظه ماشین مجازی را اختصاص میدهد، رشتههای CPU مجازی ایجاد میکند و back-endهای دستگاه مجازی را پیادهسازی میکند.
- تصویر هسته عمومی (GKI)
- یک تصویر بوت که توسط گوگل تأیید شده و حاوی یک هسته GKI است که از یک درخت منبع هسته مشترک اندروید (ACK) ساخته شده و برای فلش شدن در پارتیشن بوت یک دستگاه اندرویدی مناسب است. برای اطلاعات بیشتر، به نمای کلی هسته مراجعه کنید.
- هایپروایزر
- فناوری مجازیسازی مورد استفاده توسط AVF، که با نام pKVM نیز شناخته میشود. هایپروایزر، یکپارچگی کد اجرا شده و محرمانگی داراییهای pVM را حفظ میکند، حتی اگر اندروید میزبان یا هر یک از pVMهای دیگر به خطر بیفتند.
- رابط برنامهنویسی جاوا
- رابطهای برنامهنویسی کاربردی جاوای سرویس مجازیسازی، که فقط در دستگاههایی با پشتیبانی AVF وجود دارند. این رابطهای برنامهنویسی کاربردی اختیاری هستند و بخشی از
thebootclasspathنیستند. - میکرودروید
- یک سیستم عامل مینی اندروید ارائه شده توسط گوگل که در یک pVM اجرا میشود.
- مدیر میکرودروید
- چرخه حیات pVM را درون pVM و دیسک نمونه مدیریت میکند.
- API بومی
- زیرمجموعهای از کیت توسعهدهندگان بومی اندروید (NDK).
- ماشین مجازی مبتنی بر هسته محافظتشده (pKVM)
- به هایپروایزر مراجعه کنید.
- سیستم عامل pVM (
pvmfw) - اولین کدی که روی pVM اجرا میشود،
pvmfwبار داده را تأیید میکند و رمز هر ماشین مجازی را استخراج میکند. - ماشین مجازی محافظتشده (pVM)
یک محیط اجرایی ایزوله و غیرقابل اعتماد متقابل ( مهمان ) که در کنار سیستم عامل اصلی اندروید ( میزبان ) اجرا میشود. یکی از جنبههای مهم امنیت pVM این است که حتی اگر میزبان به خطر بیفتد، میزبان به حافظه pVM دسترسی ندارد. pKVM هایپروایزر استاندارد برای اجرای pVMها است.
در مقایسه با محیطهای اجرایی قابل اعتماد (TEE) موجود، pVMها محیط غنیتری را فراهم میکنند، از جمله امکان اجرای یک توزیع مینی اندروید به نام Microdroid (اگرچه Microdroid میتواند روی یک ماشین مجازی محافظت نشده نیز اجرا شود). pVMها میتوانند به صورت پویا مورد استفاده قرار گیرند و مجموعهای استاندارد از APIها را در یک محیط قابل اعتماد که در تمام دستگاههایی که از آنها پشتیبانی میکنند، موجود است، ارائه دهند.
- سرویس مجازیسازی
سرویس اندرویدی که چرخه حیات pVMها را مدیریت میکند.
بعدش چی؟
- اگر میخواهید نیاز به AVF را بهتر درک کنید، به «چرا AVF؟» مراجعه کنید.
- برای مطالعه در مورد نحوه استفاده از AVF برای کامپایل ایزوله، به موارد استفاده مراجعه کنید.
- اگر توضیح عمیقتری در مورد معماری پیادهسازی مرجع AVF میخواهید، به معماری AVF مراجعه کنید.
- اگر میخواهید درباره میکرودروید اطلاعات کسب کنید، به میکرودروید مراجعه کنید.
- اگر به نحوه مدیریت امنیت توسط AVF علاقهمند هستید، به بخش امنیت مراجعه کنید.
- برای درک نقش سرویس مجازیسازی، به VirtualizationService مراجعه کنید.
- برای کد منبع AVF یا توضیحات کامل در مورد اجزای جداگانه، به مخزن AOSP مراجعه کنید.