בדף הזה נסביר איך להשיק גרסת build של AOSP באמצעות דג דיונון.
אימות הזמינות של 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). מבנים של המכשיר הווירטואלי נמצאים באתר של Android CI. שפת תרגום כדי למצוא אינדקס של כל גרסאות ה-build של Android, עוברים אל אתר השילוב ב- http://ci.android.com/.
צריך להזין שם סניף. אפשר להשתמש בהסתעפות
aosp-main
שמוגדרת כברירת מחדל או להשתמש הסתעפות של תמונת מערכת גנרית (GSI) כמוaosp-android13-gsi
.מנווטים אל יעד ה-build aosp_cf_x86_64_phone ולוחצים userdebug בשביל ה-build האחרון.
כדי לבחור את ה-build הזה, לוחצים על התיבה הירוקה שמתחת ל-userdebug. פרטים תופיע עם מידע נוסף ספציפי לגבי גרסת ה-build הזאת. בחלונית הזו לוחצים על Artifact כדי לראות רשימה של כל ארטיפקטים המצורפים ל-build הזה.
בחלונית Artifacts, מורידים את פריטי המידע שנוצרו בתהליך הפיתוח (Artifact) של 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
בדומה למכשיר פיזי, הדיונון נראה דרך 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