בדף הזה מוסבר איך להפעיל גרסה זמינה ל-AOSP באמצעות Cuttlefish.
איך בודקים את הזמינות של KVM
Cuttlefish הוא מכשיר וירטואלי ותלוי בכך שהווירטואליזציה תהיה זמינה במכונה המארחת.
בטרמינל במכונה המארחת, מוודאים שהווירטואליזציה עם מכונה וירטואלית מבוססת-ליבה (KVM) זמינה:
grep -c -w "vmx\|svm" /proc/cpuinfoהפקודה הזו אמורה להחזיר ערך שאינו אפס.
כשמריצים את הקוד במכונה עם ARM64, הדרך הישירה ביותר היא לבדוק אם /dev/kvm קיים:
find /dev -name kvmהפעלת Cuttlefish
בחלון מסוף, מורידים, יוצרים ומתקינים את חבילות Debian של המארח:
sudo apt install -y git devscripts equivs config-package-dev debhelper-compat golang curlgit clone https://github.com/google/android-cuttlefishcd android-cuttlefishtools/buildutils/build_packages.shsudo dpkg -i ./cuttlefish-base_*_*64.deb || sudo apt-get install -fsudo dpkg -i ./cuttlefish-user_*_*64.deb || sudo apt-get install -fsudo usermod -aG kvm,cvdnetwork,render $USERsudo rebootההפעלה מחדש מפעילה התקנה של מודולים נוספים של הליבה ומחילה כללי
udev.Cuttlefish הוא חלק מפלטפורמת Android Open Source Platform (AOSP). גרסאות build של המכשיר הווירטואלי נמצאות באתר Android Continuous Integration. כדי למצוא אינדקס של כל גרסאות ה-build של Android, עוברים לאתר Android Continuous Integration בכתובת http://ci.android.com/.
מזינים שם להסתעפות. משתמשים בהסתעפות
aosp-android-latest-releaseשמוגדרת כברירת מחדל, או בהסתעפות של תמונה גנרית של מערכת (GSI), כמוaosp-android13-gsi.עוברים ליעד ה-build aosp_cf_x86_64_only_phone ולוחצים על userdebug כדי לקבל את ה-build העדכני ביותר.
לוחצים על התיבה הירוקה מתחת ל-userdebug כדי לבחור את הגרסה הזו. תופיע חלונית Details עם מידע נוסף ספציפי לגרסה הזו. בחלונית הזו, לוחצים על Artifacts כדי לראות רשימה של כל הפריטים שנוצרו ממנה שמצורפים לגרסה הזו.
בחלונית Artifacts, מורידים את הארטיפקטים של Cuttlefish.
לוחצים על הארטיפקט
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 cfcd cftar -xvf /path/to/cvd-host_package.tar.gzunzip /path/to/aosp_cf_x86_64_phone-img-xxxxxx.zipארכיטקטורת ARM64:
mkdir cfcd cftar -xvf /path/to/cvd-host_package.tar.gzunzip /path/to/aosp_cf_arm64_only_phone-img-xxxxxx.zip
הפעלת 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