בדף הזה נסביר איך להשיק build של AOSP באמצעות Cuttlefish.
אימות הזמינות של KVM
דיונון הוא מכשיר וירטואלי והוא תלוי בזמינות של הווירטואליזציה במכונה המארחת.
בטרמינל במכונה המארחת, מוודאים שהווירטואליזציה באמצעות מכונה וירטואלית מבוססת-ליבה (KVM) זמינה:
grep -c -w "vmx\|svm" /proc/cpuinfo
הפקודה הזו אמורה להחזיר ערך שאינו אפס.
כשמריצים את הקוד במכונה עם ARM64, הדרך הישירה ביותר היא לבדוק אם הערך של /dev/kvm
הוא:
find /dev -name kvm
הפעלת דיונון
בחלון מסוף, מורידים, יוצרים ומתקינים את חבילות 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
.Cuttlefish הוא חלק מפלטפורמת הקוד הפתוח של Android (AOSP). גרסאות build של המכשיר הווירטואלי נמצאות באתר Android Continuous Integration. כדי למצוא אינדקס של כל גרסאות ה-build של Android, עוברים לאתר Android Continuous Integration בכתובת http://ci.android.com/.
מזינים שם להסתעפות. משתמשים בהסתעפות
aosp-main
שמוגדרת כברירת מחדל או בהסתעפות של קובץ אימג' גנרי (GSI) כמוaosp-android13-gsi
.עוברים אל יעד ה-build aosp_cf_x86_64_phone ולוחצים על userdebug כדי להשתמש בגרסת ה-build העדכנית.
כדי לבחור את ה-build הזה, לוחצים על התיבה הירוקה שמתחת ל-userdebug. תופיע חלונית Details עם מידע נוסף ספציפי לגרסה הזו. בחלונית הזו לוחצים על Artifacts כדי לראות רשימה של כל פריטי המידע שנוצרו בתהליך הפיתוח (Artifact) שמצורפים ל-build הזה.
בחלונית Artifacts, מורידים את הארטיפקטים של Cuttlefish.
לוחצים על פריט המידע שנוצר בתהליך הפיתוח (Artifact)
aosp_cf_x86_64_phone-img-xxxxxx.zip
של x86_64 או על ארטיפקטaosp_cf_arm64_only_phone-xxxxxx.zip
של ARM64, שמכיל את תמונות המכשיר. בשם הקובץ, xxxxxx הוא מזהה ה-build של המכשיר הזה.גוללים למטה בחלונית ומורידים את
cvd-host_package.tar.gz
. צריך להוריד תמיד את חבילת המארח מאותו build כמו התמונות.
במערכת המקומית, יוצרים תיקיית קונטיינרים ומחלצים את החבילות:
ארכיטקטורה 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
ארכיטקטורת 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
מפעילים את הדיונון:
HOME=$PWD ./bin/launch_cvd --daemon
צריך לוודא שניתן לראות את הדיונון באמצעות adb
בדומה למכשיר פיזי, אפשר לראות את Cuttlefish דרך ממשק הגישור של Android (adb).
באותה תיקייה שבה הפעלתם את Cuttlefish, מריצים את הפקודה הבאה כדי לראות רשימה של כל מכשירי Android הזמינים באמצעות adb במכונה המארחת:
./bin/adb devices
הצגה של המכשיר הווירטואלי באינטרנט ואינטראקציה איתו
כברירת מחדל, Cuttlefish מופעל עם --start_webrtc
, מה שמאפשר WebView דרך יציאה 8443 במכונה המארחת.
כדי להציג את המכשירים הווירטואליים ולקיים איתם אינטראקציה, עוברים אל https://localhost:8443 בדפדפן האינטרנט.
למידע נוסף, ראו Cuttlefish: WebRTC Streaming.
עוצרים דיונון
מפסיקים את המכשיר הווירטואלי באותה ספרייה שבה השתמשתם כדי להפעיל את המכשיר:
HOME=$PWD ./bin/stop_cvd