اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release بدلاً من aosp-main لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
محاكاة Cuttlefish بحجم صفحة 16 كيلوبايت على x86_64
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يتطلب هذا الإعداد مضيفًا يعمل بنظام التشغيل x86_64 Linux. توضِّح هذه الصفحة كيفية إنشاء "حبَّار" و
بدء تشغيله مع إتاحة حجم الصفحة 16 كيلوبايت على x86_64. تفترض التعليمات الواردة في
هذه الصفحة أنّ حِزم Cuttlefish مثبَّتة على جهازك. للحصول على
تعليمات تثبيتها، يُرجى الاطّلاع على الخطوة 1 من مقالة تثبيت Cuttlefish.
يمكنك تشغيل Cuttlefish إما من خلال تنزيل العناصر المُنشأة مسبقًا مباشرةً من
موقع الويب الخاص بالتكامل المستمر لنظام Android أو إنشائها من AOSP إذا كنت بحاجة إلى تعديل رمز المصدر.
تنفيذ النواة
تمت إضافة إمكانية محاكاة x86_64 صفحات بحجم 16 كيلوبايت في الإصدار 6.6
GKI من Android 14 في
سلسلة تصحيحات page_size_emulation.
يؤدي إدخال page_shift=14 في سطر الأوامر إلى تفعيل هذا المحاكاة.
إنّ استهدافات x86_64 التي تحتوي على اللاحقة _16k (أو الاستهدافات القديمة التي تحتوي على اللاحقة _pgagnostic
)، مثل aosp_cf_x86_64_phone_pgagnostic، تُمرِّر هذا الخيار تلقائيًا وتعمل في وضع 16 كيلوبايت تلقائيًا.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Simulate Cuttlefish with 16 KB page size on x86_64\n\nThis setup requires an `x86_64` Linux host. This page shows how to build and\nstart Cuttlefish with 16 KB page size support on `x86_64`. The instructions on\nthis page assume that Cuttlefish packages are installed in your machine. For\ninstructions to install them, see Step 1 of [Install Cuttlefish](/docs/devices/cuttlefish/get-started#launch).\n\nYou can launch Cuttlefish by either [downloading the prebuilt artifacts](#download-build-artifacts) directly from the Android Continuous Integration\nsite or [build them from AOSP](#sync-build) if you need to modify the source\ncode.\n| **Important:** Cuttlefish with 16 KB page size support on x86_64 simulates a 16 KB page size kernel and userspace due x86_64 arch does not support 16 KB page size.\n\nKernel implementation\n---------------------\n\nSupport for emulating `x86_64` 16 KB pages is added in the Android 14 6.6\nGKI in the\n[`page_size_emulation` patch series](https://android-review.googlesource.com/q/hashtag:page_size_emulation).\nPassing `page_shift=14` on the command-line enables this emulation.\n`x86_64` targets with the `_16k` suffix (or old targets with the `_pgagnostic`\nsuffix), such as `aosp_cf_x86_64_phone_pgagnostic`, pass this option by\ndefault and work in 16 KB mode by default.\n\nLaunch Cuttlefish by downloading the artifacts\n----------------------------------------------\n\nNavigate to [Android Continuous Integration site](https://ci.android.com) and\nenter `aosp-main-throttled` as the branch name. Click the latest build for the\n`aosp_cf_x86_64_only_phone_pgagnostic` target. Now, follow the instructions from\nStep 5 of [Install Cuttlefish](/docs/devices/cuttlefish/get-started#launch).\n\nLaunch Cuttlefish by building from AOSP\n---------------------------------------\n\nBuild and launch Cuttlefish with a page-agnostic target: \n\n $ mkdir android-latest-release && cd android-latest-release\n $ repo init -u https://android.googlesource.com/platform/manifest -b android-latest-release\n $ repo sync -c -j32\n\n # Build cf agnostic target.\n $ source build/envsetup.sh\n $ lunch aosp_cf_x86_64_only_phone_pgagnostic-aosp_current-userdebug\n $ m\n\n # Launch cf with a kernel with 16 KB page size support.\n $ launch_cvd\n ...\n ...\n VIRTUAL_DEVICE_DISPLAY_POWER_MODE_CHANGED\n virtio_input_hid_handle_status: unknown type 20\n virtio_input_hid_handle_status: unknown type 20\n virtio_input_hid_handle_status: unknown type 20\n virtio_input_hid_handle_status: unknown type 20\n Generating new secret with slot ID: 4\n VIRTUAL_DEVICE_BOOT_STARTED\n VIRTUAL_DEVICE_NETWORK_MOBILE_CONNECTED\n\nVerify page size and boot\n-------------------------\n\nTo verify page size and boot status:\n\n1. Access the shell as root:\n\n $ adb root\n adbd is already running as root\n $ adb shell\n vsoc_x86_64_pgagnostic:/ #\n\n2. Verify page size and boot status:\n\n vsoc_x86_64_pgagnostic::/ # getconf PAGE_SIZE\n 16384\n vsoc_x86_64_pgagnostic::/ # getprop | grep sys.boot.completed\n sys.boot_completed: 1"]]