מתחילים

בדף הזה מוסבר איך להפעיל גרסת 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