מתחילים

בדף הזה מוסבר איך להפעיל גרסה זמינה ל-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 Open-Source Platform‏ (AOSP). גרסאות build של המכשיר הווירטואלי נמצאות באתר Android Continuous Integration. כדי למצוא אינדקס של כל גרסאות ה-build של 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 כדי לבחור את הגרסה הזו. תופיע חלונית Details עם מידע נוסף ספציפי לגרסה הזו. בחלונית הזו, לוחצים על Artifacts כדי לראות רשימה של כל הפריטים שנוצרו מ-build הזה.

  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