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