סימולציה של Cuttlefish עם גודל דף של 16KB ב-x86_64

כדי להגדיר את האפשרות הזו, צריך מארח Linux מסוג x86_64. בדף הזה מוסבר איך ליצור ולהפעיל את Cuttlefish עם תמיכה בדפים בגודל 16KB ב-x86_64. ההנחיות בדף הזה מבוססות על ההנחה שחבילות Cuttlefish מותקנות במחשב. להוראות להתקנה, ראו שלב 1 במאמר התקנת Cuttlefish.

אפשר להפעיל את Cuttlefish על ידי הורדת פריטי המידע שנוצרו מראש ארטיפקטים ישירות מהשילוב הרציף של Android או ליצור אותם מ-AOSP אם צריך לשנות את המקור

הטמעת ליבה

לגרסה 6.6 של Android 14 יש תמיכה באמולציה של x86_64 דפים בגודל 16KB GKI ב- page_size_emulation סדרת תיקונים. העברת page_shift=14 בשורת הפקודה מפעילה את ההדמיה הזו. x86_64 יעדים עם הסיומת _16k (או יעדים ישנים עם _pgagnostic סיומת), כמו aosp_cf_x86_64_phone_pgagnostic, תעביר את האפשרות הזו כברירת מחדל ועובדות במצב של 16KB כברירת מחדל.

מפעילים את הדיונון על ידי הורדת פריטי המידע שנוצרו בתהליך הפיתוח (Artifact)

עוברים אל אתר האינטגרציה הרצייפה של Android ומזינים את aosp-main-throttled בתור שם ההסתעפות. לוחצים על ה-build האחרון של היעד aosp_cf_x86_64_phone_pgagnostic. עכשיו פועלים לפי ההוראות שמפורטות בשלב 5 בקטע התקנת Cuttlefish.

השיקו דיונון על ידי בנייה מ-AOSP

בונים ומפעילים 'דיונון' עם יעד שעבר דפדוף בין דפים:

$ 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_x86_64_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

אימות גודל הדף והאתחול

כדי לאמת את גודל הדף ואת סטטוס ההפעלה:

  1. גישה למעטפת ברמה הבסיסית (root):

    $ adb root
    adbd is already running as root
    $ adb shell
    vsoc_x86_64_pgagnostic:/ #
    
  2. אימות גודל הדף וסטטוס ההפעלה:

    vsoc_x86_64_pgagnostic::/ # getconf PAGE_SIZE
    16384
    vsoc_x86_64_pgagnostic::/ # getprop | grep sys.boot.completed
    sys.boot_completed: 1