Android Virtualization Framework (AVF) محیط های اجرایی امن و خصوصی را برای اجرای کد فراهم می کند. AVF برای موارد استفاده مبتنی بر امنیت که به تضمین های ایزوله قوی تر، حتی به طور رسمی تأیید شده، نسبت به موارد ارائه شده توسط سندباکس برنامه اندروید نیاز دارند، ایده آل است. اندروید یک پیاده سازی مرجع از تمام اجزای مورد نیاز برای پیاده سازی AVF ارائه می دهد. در حال حاضر، AVF فقط در دستگاه های ARM64 پشتیبانی می شود. شکل 1 معماری AVF را نشان می دهد:
در اینجا تعاریف مهم ترین اصطلاحات از شکل 1 آورده شده است:
- apexd و zipfuse
- APEXها و APKهای وارد شده از میزبان را ایمن نصب می کند.
- authfs
- یک سیستم فایل فیوز برای به اشتراک گذاری ایمن چندین فایل بین Android و pVM (میزبان و مهمان).
- کلاسور
- ابزار اصلی ارتباط بین VM.
- crosvm
- مانیتور ماشین مجازی که با زنگ زدگی نوشته شده است. crosvm حافظه VM را اختصاص میدهد، رشتههای CPU مجازی ایجاد میکند و بکاندهای دستگاه مجازی را پیادهسازی میکند.
- تصویر هسته عمومی (GKI)
- یک تصویر بوت تایید شده توسط Google که حاوی یک هسته GKI است که از درخت منبع Android Common Kernel (ACK) ساخته شده است و برای فلش شدن در پارتیشن بوت دستگاه اندرویدی مناسب است. برای اطلاعات بیشتر، به نمای کلی Kernel مراجعه کنید.
- هایپروایزر
- فناوری مجازی سازی که توسط AVF استفاده می شود، همچنین به عنوان pKVM شناخته می شود. هایپروایزر یکپارچگی کد اجرا شده و محرمانه بودن دارایی های pVM را حفظ می کند، حتی اگر اندروید میزبان یا هر یک از pVM های دیگر به خطر بیفتد.
- Java API
- API های جاوا VirtualizationService که فقط در دستگاه هایی با پشتیبانی AVF وجود دارند. این APIها اختیاری هستند و بخشی از
thebootclasspath
نیستند. - میکرودروئید
- یک سیستم عامل مینی اندروید ارائه شده توسط گوگل که در یک pVM اجرا می شود.
- مدیر میکرودروید
- چرخه حیات pVM، داخل pVM و دیسک نمونه را مدیریت می کند.
- Native API
- زیرمجموعه ای از کیت توسعه دهندگان بومی Android (NDK).
- ماشین مجازی مبتنی بر هسته محافظت شده (pKVM)
- به Hypervisor مراجعه کنید.
- سیستم عامل pVM (
pvmfw
) - اولین کدی که بر روی یک pVM اجرا میشود،
pvmfw
بار بار را تأیید میکند و رمز هر VM را استخراج میکند. - ماشین مجازی محافظت شده (pVM)
یک محیط اجرای مجزا ("مهمان") که در کنار سیستم عامل اصلی اندروید ("میزبان") اجرا می شود. pVM ها توسط pKVM مدیریت می شوند.
در مقایسه با محیطهای اجرایی قابل اعتماد موجود (TEE)، pVMها محیط غنیتری از جمله توزیع مینی اندروید به نام Microdroid ارائه میکنند. pVM ها را می توان به صورت پویا مورد استفاده قرار داد و مجموعه ای استاندارد از API ها را در همه دستگاه هایی که از آنها پشتیبانی می کنند در دسترس است.
- سرویس مجازی سازی
سرویس اندرویدی که چرخه حیات pVM ها را مدیریت می کند.
بعدش چی؟
- اگر می خواهید نیاز به AVF را بهتر درک کنید، به چرا AVF مراجعه کنید؟ .
- برای مطالعه نحوه استفاده از AVF برای کامپایل کردن جدا شده، به موارد استفاده مراجعه کنید.
- اگر توضیح عمیق تری در مورد معماری پیاده سازی مرجع AVF می خواهید، به معماری AVF مراجعه کنید.
- اگر می خواهید در مورد Microdroid بیاموزید، به Microdroid مراجعه کنید.
- اگر علاقه مند هستید که AVF چگونه امنیت را مدیریت می کند، به امنیت مراجعه کنید.
- برای درک نقش سرویس مجازی سازی، به VirtualizationService مراجعه کنید.
- برای کد منبع AVF یا توضیح عمیق در مورد اجزای جداگانه، به مخزن AOSP مراجعه کنید.