סקירה כללית על Android Virtualization Framework ‏ (AVF)

Android Virtualization Framework‏ (AVF) מספק סביבות הרצה מאובטחות ופרטיות להרצת קוד. ה-AVF מתאים במיוחד לתרחישי שימוש שמתמקדים באבטחה ודורשים בידוד חזק יותר, אפילו בידוד מאומת רשמית, בהשוואה לבידוד שמציע ארגז החול של האפליקציות ב-Android. ‫Android מספקת הטמעה לדוגמה של כל הרכיבים שנדרשים להטמעה של AVF. ‫AVF נתמך רק במכשירי ARM64. איור 1 מציג את הארכיטקטורה של AVF:

ארכיטקטורת 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.