אני רוצה לנסות

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

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

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

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

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

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

הדרך הישירה ביותר היא לבדוק את /dev/kvm:

find /dev -name kvm

הפעלת דיונון

  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). פיתוחים של המכשיר הווירטואלי נמצאים באתר של Android CI. כדי למצוא אינדקס של כל גרסאות ה-build של Android, נכנסים לאתר של Android CI, בכתובת http://ci.android.com/.

  3. צריך להזין שם סניף. משתמשים בהסתעפות aosp-main שמוגדרת כברירת מחדל או בהסתעפות של תמונת מערכת גנרית (GSI) כמו aosp-android13-gsi.

  4. עוברים אל יעד ה-build aosp_cf_x86_64_phone ולוחצים על userdebug כדי לראות את ה-build העדכני.

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

  6. בחלונית Artifacts, מורידים את פריטי המידע שנוצרו בתהליך הפיתוח (Artifact) של Cuttlefish.

    1. לוחצים על פריט המידע שנוצר בתהליך הפיתוח (Artifact) 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. מפעילים את הדיונון:

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

צריך לוודא שניתן לראות את הדיונון באמצעות adb

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

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

./bin/adb devices

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

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

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

למידע נוסף, ראו Cuttlefish: WebRTC Streaming.

עוצרים דיונון

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

HOME=$PWD ./bin/stop_cvd