Android Virtualization Framework (AVF) מספק סביבות הרצה מאובטחות ופרטיות להרצת קוד. ה-AVF מתאים במיוחד לתרחישי שימוש שמתמקדים באבטחה ודורשים בידוד חזק יותר, אפילו בידוד מאומת רשמית, בהשוואה לבידוד שמציע ארגז החול של האפליקציות ב-Android. Android מספקת הטמעה לדוגמה של כל הרכיבים שנדרשים להטמעה של AVF. AVF נתמך רק במכשירי ARM64. איור 1 מציג את הארכיטקטורה של AVF:
איור 1. ארכיטקטורת AVF.
הנה הגדרות של המונחים החשובים ביותר מאיור 1:
- apexd ו-zipfuse
- מבצעת באופן מאובטח פעולות Mount של קובצי APEX ו-APK שיובאו מהמארח.
- authfs
- מערכת קבצים של fuse לשיתוף מאובטח של כמה קבצים בין Android לבין pVM (מארח ואורח).
- binder
- הדרך העיקרית לתקשורת בין מכונות וירטואליות.
- crosvm
- A virtual machine monitor written in rust. crosvm מקצה זיכרון למכונה הווירטואלית, יוצר שרשורים של מעבד וירטואלי ומטמיע את הקצה העורפי של המכשיר הווירטואלי.
- Generic Kernel Image (GKI)
- קובץ אימג' לאתחול שאושר על ידי Google ומכיל ליבת GKI שנבנתה מעץ מקור של Android Common Kernel (ACK) ומתאים להעברה למחיצת האתחול של מכשיר Android. מידע נוסף מפורט בסקירה הכללית בנושא ליבת המערכת.
- hypervisor
- טכנולוגיית הווירטואליזציה שבה נעשה שימוש ב-AVF, שנקראת גם pKVM. ההיפר-ויזור שומר על השלמות של הקוד המופעל ועל הסודיות של הנכסים של ה-pVM, גם אם מערכת Android במארח או אחד מה-pVM האחרים נפגעו.
- Java API
- ממשקי ה-API של Java VirtualizationService, שקיימים רק במכשירים עם תמיכה ב-AVF. ממשקי ה-API האלה הם אופציונליים ולא חלק מ-
thebootclasspath. - Microdroid
- מערכת הפעלה מינימלית של Android ש-Google מספקת, שפועלת ב-pVM.
- Microdroid Manager
- ניהול מחזור החיים של pVM, בתוך pVM ודיסק של מכונה.
- Native API
- קבוצת משנה של Android Native Developers Kit (NDK).
- מכונה וירטואלית מוגנת מבוססת-ליבה (pKVM)
- ראו Hypervisor.
- קושחה של pVM (
pvmfw) - הקוד הראשון שמופעל ב-pVM,
pvmfwמאמת את מטען הייעודי וגוזר את הסוד לכל מכונה וירטואלית. - מכונה וירטואלית מוגנת (pVM)
- מכונת VM שמנוהלת על ידי hypervisor, פועלת בעולם לא מאובטח או בתחום, ומבודדת ממערכת ההפעלה המארחת של Android, כך שהגישה נמנעת גם במקרה של פריצה למארח Android.
מכונות pVM תומכות בסביבות עשירות, כולל הפצות מבוססות-Linux. המושג pVM לא בלעדי ל-Google. מכונות וירטואליות (SoC/OEM) שהוגדרו על ידי שותף ועומדות בדרישות של בידוד או הגבלות גישה לזיכרון הן גם מכונות וירטואליות פרטיות.
- VirtualizationService
- שירות Android שמנהל את מחזור החיים של מכונות pVM.
מה השלב הבא?
- כדי להבין טוב יותר למה צריך אימות באמצעות וידאו, אפשר לעיין במאמר למה צריך אימות באמצעות וידאו?.
- כדי לקרוא על האופן שבו אפשר להשתמש ב-AVF לצורך קומפילציה מבודדת, אפשר לעיין בתרחישי שימוש.
- אם אתם רוצים לקבל הסבר מפורט יותר על הארכיטקטורה של יישום ההפניה של AVF, תוכלו לעיין במאמר בנושא ארכיטקטורת AVF.
- מידע על Microdroid זמין במאמר Microdroid.
- אם אתם רוצים לדעת איך AVF מטפל באבטחה, כדאי לעיין במאמר בנושא אבטחה.
- כדי להבין את התפקיד של שירות הווירטואליזציה, אפשר לעיין במאמר בנושא VirtualizationService.
- לקבלת קוד המקור של AVF או הסבר מפורט על רכיבים ספציפיים, אפשר לעיין במאגר AOSP.