מתחילים

בדף הזה מוסבר איך להפעיל גרסת build של AOSP באמצעות Cuttlefish.

אימות הזמינות של KVM

‫Cuttlefish הוא מכשיר וירטואלי והוא תלוי בוירטואליזציה שזמינה במחשב המארח.

בטרמינל במכונת המארח, מוודאים שהווירטואליזציה עם מכונה וירטואלית מבוססת-ליבה (KVM) זמינה:

grep -c -w "vmx\|svm" /proc/cpuinfo

הפקודה הזו צריכה להחזיר ערך שונה מאפס.

כשמריצים במכונת ARM64, הדרך הכי ישירה היא לבדוק אם יש /dev/kvm:

find /dev -name kvm

הפעלת Cuttlefish

  1. בחלון המסוף, מורידים, בונים ומתקינים את חבילות Debian של המארח:

    sudo apt install -y git devscripts equivs config-package-dev debhelper-compat golang curl
    git clone https://github.com/google/android-cuttlefish
    cd android-cuttlefish
    tools/buildutils/build_packages.sh
    sudo dpkg -i ./cuttlefish-base_*_*64.deb || sudo apt-get install -f
    sudo dpkg -i ./cuttlefish-user_*_*64.deb || sudo apt-get install -f
    sudo usermod -aG kvm,cvdnetwork,render $USER
    sudo reboot

    ההפעלה מחדש מפעילה התקנה של מודולי ליבה נוספים ומחילת כללי udev.

  2. ‫Cuttlefish הוא חלק מפלטפורמת Android בקוד פתוח (AOSP). גרסאות build של המכשיר הווירטואלי נמצאות באתר Android Continuous Integration. כדי למצוא אינדקס של כל הגרסאות של Android, עוברים לאתר של Android Continuous Integration בכתובת http://ci.android.com/.

  3. מזינים שם של ענף. משתמשים בסניף ברירת המחדל aosp-android-latest-release או בסניף של תמונת מערכת גנרית (GSI), כמו aosp-android13-gsi.

  4. עוברים אל יעד ה-Build‏ aosp_cf_x86_64_only_phone ולוחצים על userdebug ל-Build האחרון.

  5. לוחצים על התיבה הירוקה שמתחת ל-userdebug כדי לבחור את הגרסה הזו. תופיע חלונית פרטים עם מידע נוסף שספציפי לגרסה הזו. בחלונית הזו, לוחצים על Artifacts (ארטיפקטים) כדי לראות רשימה של כל הארטיפקטים שמצורפים לבנייה הזו.

  6. בחלונית Artifacts, מורידים את הארטיפקטים של Cuttlefish.

    1. לוחצים על ארטיפקט aosp_cf_x86_64_phone-img-xxxxxx.zip ל-x86_64 או על ארטיפקט aosp_cf_arm64_only_phone-xxxxxx.zip ל-ARM64, שמכיל את תמונות המכשיר. בשם הקובץ, 'xxxxxx' הוא מזהה ה-build של המכשיר.

    2. גוללים למטה בחלונית ומורידים את cvd-host_package.tar.gz. תמיד צריך להוריד את חבילת המארח מאותו build כמו התמונות.

  7. במערכת המקומית, יוצרים תיקיית מאגר ומחלצים את החבילות:

    1. ארכיטקטורת x86_64:

      mkdir cf
      cd cf
      tar -xvf /path/to/cvd-host_package.tar.gz
      unzip /path/to/aosp_cf_x86_64_phone-img-xxxxxx.zip

    2. ארכיטקטורת ARM64:

      mkdir cf
      cd cf
      tar -xvf /path/to/cvd-host_package.tar.gz
      unzip /path/to/aosp_cf_arm64_only_phone-img-xxxxxx.zip

  8. מפעילים את Cuttlefish:

    HOME=$PWD ./bin/launch_cvd --daemon

אימות הניראות של Cuttlefish דרך adb

בדומה למכשיר פיזי, אפשר לראות את Cuttlefish דרך ממשק הגישור של Android‏ (adb).

באותה תיקייה שבה הפעלתם את Cuttlefish, מריצים את הפקודה הבאה כדי לראות רשימה של כל מכשירי Android שזמינים דרך adb במחשב המארח:

./bin/adb devices

צפייה במכשיר הווירטואלי ואינטראקציה איתו באינטרנט

כברירת מחדל, Cuttlefish מופעל עם --start_webrtc, שמאפשר תצוגת אינטרנט דרך יציאה 8443 במחשב המארח.

כדי לראות את המכשירים הווירטואליים ולבצע בהם פעולות, עוברים אל https://localhost:8443 בדפדפן האינטרנט.

מידע נוסף זמין במאמר Cuttlefish: WebRTC Streaming.

הפסקת Cuttlefish

מפסיקים את המכשיר הווירטואלי באותה ספרייה שבה השתמשתם כדי להפעיל את המכשיר:

HOME=$PWD ./bin/stop_cvd