چارچوب مجازیسازی اندروید (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)
- یک ماشین مجازی که توسط یک هایپروایزر مدیریت میشود، در دنیای غیر امن یا Realm اجرا میشود و از سیستم عامل میزبان اندروید جدا شده است، به طوری که حتی در صورت به خطر افتادن میزبان اندروید، از دسترسی به آن جلوگیری میشود.
ماشینهای مجازی مجازی (pVM) از محیطهای غنی، از جمله توزیعهای مبتنی بر لینوکس، پشتیبانی میکنند. مفهوم pVM منحصر به گوگل نیست. ماشینهای مجازی مجازی تعریفشده توسط شرکا (SoC/OEM) که دارای جداسازی جلسه/محدودیتهای دسترسی به حافظه هستند نیز pVM محسوب میشوند.
- سرویس مجازیسازی
- سرویس اندرویدی که چرخه حیات pVMها را مدیریت میکند.
بعدش چی؟
- اگر میخواهید نیاز به AVF را بهتر درک کنید، به «چرا AVF؟» مراجعه کنید.
- برای مطالعه در مورد نحوه استفاده از AVF برای کامپایل ایزوله، به موارد استفاده مراجعه کنید.
- اگر توضیح عمیقتری در مورد معماری پیادهسازی مرجع AVF میخواهید، به معماری AVF مراجعه کنید.
- اگر میخواهید درباره میکرودروید اطلاعات کسب کنید، به میکرودروید مراجعه کنید.
- اگر به نحوه مدیریت امنیت توسط AVF علاقهمند هستید، به بخش امنیت مراجعه کنید.
- برای درک نقش سرویس مجازیسازی، به VirtualizationService مراجعه کنید.
- برای کد منبع AVF یا توضیحات کامل در مورد اجزای جداگانه، به مخزن AOSP مراجعه کنید.