हमारा सुझाव है कि 27 मार्च, 2025 से AOSP को बनाने और उसमें योगदान देने के लिए, aosp-main
के बजाय android-latest-release
का इस्तेमाल करें. ज़्यादा जानकारी के लिए, AOSP में हुए बदलाव लेख पढ़ें.
ARM64 पर 16 केबी पेज साइज़ के साथ Cuttlefish का इस्तेमाल करना
संग्रह की मदद से व्यवस्थित रहें
अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.
इस सेटअप के लिए, ARM64
Linux होस्ट की ज़रूरत होती है. इस पेज पर, ARM64
पर 16 केबी वाले पेज साइज़ के साथ Cuttlefish को बनाने और शुरू करने का तरीका बताया गया है. इस पेज पर दिए गए निर्देशों के मुताबिक, आपकी मशीन में Cuttlefish पैकेज इंस्टॉल होने चाहिए. इन्हें इंस्टॉल करने के निर्देशों के लिए, Cuttlefish इंस्टॉल करें का पहला चरण देखें.
Cuttlefish को लॉन्च करने के लिए, सीधे Android Continuous Integration साइट से पहले से बने आर्टफ़ैक्ट डाउनलोड करें. इसके अलावा, अगर आपको सोर्स कोड में बदलाव करना है, तो AOSP से आर्टफ़ैक्ट बनाएं.
आर्टफ़ैक्ट डाउनलोड करके, Cuttlefish को लॉन्च करना
Android के लिए लगातार इंटिग्रेशन की सुविधा देने वाली साइट पर जाएं और शाखा के नाम के तौर पर aosp-main-throttled
डालें. aosp_cf_arm64_phone_pgagnostic
टारगेट के लिए, सबसे नए बिल्ड पर क्लिक करें. अब, Cuttlefish इंस्टॉल करें के पांचवें चरण में दिए गए निर्देशों का पालन करें.
AOSP से बिल्ड करके Cuttlefish लॉन्च करना
पेज के हिसाब से टारगेट किए बिना, Cuttlefish को बनाएं और लॉन्च करें:
$ mkdir android-latest-branch && cd android-latest-branch
$ repo init -u https://android.googlesource.com/platform/manifest -b android-latest-release
$ 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
पेज के साइज़ और बूट की पुष्टि करना
पेज के साइज़ और बूट की स्थिति की पुष्टि करने के लिए:
रूट के तौर पर शेल को ऐक्सेस करने के लिए:
$ 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
कस्टम 16 केबी पेज साइज़ वाले कर्नेल के साथ Cuttlefish का इस्तेमाल करना
पहले से बने कर्नेल के बजाय, कस्टम कर्नेल का इस्तेमाल करने के लिए:
Android के सामान्य कर्नेल के लिए एक repo डायरेक्ट्री बनाएं और डायरेक्ट्री को सिंक करें:
$ 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)
16 केबी वाला पेज साइज़ वाला कर्नेल बनाएं:
$ 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
पुष्टि करें कि बिल्ड सही तरीके से पूरा हुआ है:
# Generated files
$ ls out/android14-6.1/dist/Image
$ ls out/android14-6.1/dist/initramfs.img
पसंद के मुताबिक 16 केबी पेज साइज़ वाले कर्नेल के साथ Cuttlefish शुरू करना
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
इस पेज पर मौजूद कॉन्टेंट और कोड सैंपल कॉन्टेंट के लाइसेंस में बताए गए लाइसेंस के हिसाब से हैं. Java और OpenJDK, Oracle और/या इससे जुड़ी हुई कंपनियों के ट्रेडमार्क या रजिस्टर किए हुए ट्रेडमार्क हैं.
आखिरी बार 2025-07-27 (UTC) को अपडेट किया गया.
[[["समझने में आसान है","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 (UTC) को अपडेट किया गया."],[],[],null,["# Use Cuttlefish with 16 KB page size on ARM64\n\nThis setup requires an `ARM64` Linux host. This page shows how to build and\nstart Cuttlefish with 16 KB page size support on `ARM64`. 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\nartifacts](#download-build-artifacts) directly from the Android Continuous\nIntegration site or [build them from AOSP](#sync-build) if you need to modify\nthe source code.\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_arm64_phone_pgagnostic` target. Now, follow the instructions from Step\n5 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-branch && cd android-latest-branch\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_arm64_phone_pgagnostic-trunk_staging-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_arm64_pgagnostic:/ #\n\n2. Verify page size and boot status:\n\n vsoc_arm64_pgagnostic:/ # getconf PAGE_SIZE\n 16384\n vsoc_arm64_pgagnostic:/ # getprop | grep sys.boot.completed\n sys.boot_completed: 1\n\nUse Cuttlefish with custom 16 KB page size kernel\n-------------------------------------------------\n\nTo use a custom kernel, instead of a prebuilt kernel:\n\n1. Create a repo directory for an android common kernel and sync the directory:\n\n $ mkdir common-android14-6.1 && cd common-android14-6.1\n $ repo init -u https://android.googlesource.com/kernel/manifest -b common-android14-6.1\n $ repo sync -c -j$(nproc)\n\n2. Build 16 KB page size kernel:\n\n $ tools/bazel run --lto=none //common:kernel_aarch64_16k_dist\n $ tools/bazel run --lto=none //common-modules/virtual-device:virtual_device_aarch64_16k_dist -- \\\n --dist_dir=out/android14-6.1/dist\n\n3. Verify that the build executed successfully:\n\n # Generated files\n $ ls out/android14-6.1/dist/Image\n $ ls out/android14-6.1/dist/initramfs.img\n\n### Start Cuttlefish with the custom 16 KB page size kernel\n\nTo use your newly built kernel in Cuttlefish: \n\n $ launch_cvd -kernel_path ~/common-android14-6.1/out/android14-6.1/dist/Image \\\n -initramfs_path ~/common-android14-6.1/out/android14-6.1/dist/initramfs.img \\\n --resume=false --userdata_format=ext4 \\\n --data_policy=always_create --blank_data_image_mb=8000\n -userdata_format=ext4"]]