כדי להגדיר את האפשרות הזו, צריך מארח Linux מסוג ARM64
. בדף הזה נסביר איך לפתח ולהפעיל
Cuttlefish עם תמיכה בגודל דף של 16KB ב-ARM64
. ההוראות בדף הזה מבוססות על ההנחה שחבילות Cuttlefish מותקנות במחשב שלכם. כדי להתקין אותם, תוכלו להיעזר בשלב 1 במאמר התקנת דיונון.
אם צריך לשנות את קוד המקור, אפשר להפעיל את Cuttlefish על ידי הורדה של הארטיפקטים המוכנים מראש ישירות מהאתר של אינטגרציה רציפה (CI) של Android, או פיתוח שלהם מ-AOSP.
הורדת ה-artifacts להפעלת Cuttlefish
עוברים לאתר של Android אינטגרציה רציפה (CI) ומזינים את aosp-main-throttled
בתור שם ההסתעפות. לוחצים על ה-build האחרון של היעד aosp_cf_arm64_phone_pgagnostic
. עכשיו פועלים לפי ההוראות שמפורטות בשלב 5 בקטע התקנת Cuttlefish.
איך מפעילים את Cuttlefish על ידי פיתוח מ-AOSP
פיתוח והפעלה של Cuttlefish עם יעד שלא תלוי בדף:
$ mkdir main && cd main
$ repo init -u https://android.googlesource.com/platform/manifest -b main
$ repo sync -c -j32
# Build cf agnostic target.
$ source build/envsetup.sh
$ lunch aosp_cf_arm64_phone_pgagnostic-trunk_staging-userdebug
$ m
# Launch cf with a kernel with 16 KB page size support.
$ launch_cvd
...
...
VIRTUAL_DEVICE_DISPLAY_POWER_MODE_CHANGED
virtio_input_hid_handle_status: unknown type 20
virtio_input_hid_handle_status: unknown type 20
virtio_input_hid_handle_status: unknown type 20
virtio_input_hid_handle_status: unknown type 20
Generating new secret with slot ID: 4
VIRTUAL_DEVICE_BOOT_STARTED
VIRTUAL_DEVICE_NETWORK_MOBILE_CONNECTED
אימות גודל הדף והפעלה
כדי לאמת את גודל הדף ואת סטטוס ההפעלה:
נכנסים לקליפת הפקודה כ-root:
$ adb root adbd is already running as root $ adb shell vsoc_arm64_pgagnostic:/ #
בודקים את גודל הדף ואת סטטוס האתחול:
vsoc_arm64_pgagnostic:/ # getconf PAGE_SIZE 16384 vsoc_arm64_pgagnostic:/ # getprop | grep sys.boot.completed sys.boot_completed: 1
שימוש ב-Cuttlefish עם ליבה בהתאמה אישית בגודל דף של 16KB
כדי להשתמש בליבה (kernel) מותאמת אישית, במקום בליבה מובנית מראש:
יוצרים ספריית מאגר לליבת Android משותפת ומסנכרנים את הספרייה:
$ mkdir common-android14-6.1 && cd common-android14-6.1 $ repo init -u https://android.googlesource.com/kernel/manifest -b common-android14-6.1 $ repo sync -c -j$(nproc)
ליבה (kernel) של גודל דף ב-Build 16KB:
$ tools/bazel run --lto=none //common:kernel_aarch64_16k_dist $ tools/bazel run --lto=none //common-modules/virtual-device:virtual_device_aarch64_16k_dist -- \ --dist_dir=out/android14-6.1/dist
מוודאים שה-build בוצע בהצלחה:
# Generated files $ ls out/android14-6.1/dist/Image $ ls out/android14-6.1/dist/initramfs.img
הפעלת Cuttlefish עם ליבה בהתאמה אישית בגודל דף של 16KB
כדי להשתמש בליבה (kernel) החדשה שיצרה ב-Cuttlefish:
$ launch_cvd -kernel_path ~/common-android14-6.1/out/android14-6.1/dist/Image \
-initramfs_path ~/common-android14-6.1/out/android14-6.1/dist/initramfs.img \
--resume=false --userdata_format=ext4 \
--data_policy=always_create --blank_data_image_mb=8000
-userdata_format=ext4