Android के कर्नेल डेवलप करना

इस पेज पर, Cuttlefish डिवाइसों पर Android कर्नल डेवलप करने का तरीका बताया गया है.

कर्नल के लिए काम करने वाले मेनिफ़ेस्ट

Cuttlefish, Android के सबसे नए रिलीज़ ब्रांच और AOSP GSI रिलीज़ पर, कर्नल के इन मेनिफ़ेस्ट के साथ काम करता है.

  • android-latest-release
      पर
    • common-android-mainline
  • android-15.0.0_r36
      पर
    • common-android16-6.12
    • common-android15-6.6
    • common-android14-6.1
    • common-android14-5.15
  • aosp-android13-gsi
      पर
    • common-android13-5.15
    • common-android13-5.10
  • aosp-android12-gsi
      पर
    • common-android12-5.10
    • common-android12-5.4
    • common-android-4.19-stable
  • aosp-android11-gsi
      पर
    • common-android11-5.4
    • common-android-4.19-stable
    • common-android-4.14-stable

यहां Cuttlefish डिवाइसों पर कर्नल डेवलप करने के लिए, कर्नल के सोर्स दिए गए हैं.

Android कर्नल डेवलप करना

Cuttlefish डिवाइसों पर कर्नल डेवलप करने के लिए, यह तरीका अपनाएं:

  1. अपने Cuttlefish डिवाइस के लिए, कर्नल के सही रेपो मेनिफ़ेस्ट का क्लोन बनाएं और उसमें ज़रूरी बदलाव करें.

    mkdir common-android-mainline
    cd common-android-mainline
    repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
    repo sync -c -j$(nproc) -q
  2. कर्नल और रैमडिस्क बनाएं. ज़्यादा जानकारी के लिए, वर्चुअल डिवाइस के लिए वेंडर मॉड्यूल बनाना लेख पढ़ें.

    tools/bazel run //common-modules/virtual-device:virtual_device_x86_64_dist

    अगर common-android-4.19-stable, common-android-4.14-stable या common-android11-5.4 कर्नल मेनिफ़ेस्ट का इस्तेमाल किया जा रहा है, तो यह कमांड चलाएं:

    BUILD_CONFIG=common/build.config.gki.x86_64 build/build.sh && BUILD_CONFIG=common-modules/virtual-device/build.config.cuttlefish.x86_64 build/build.sh

    कर्नल सोर्स डाउनलोड करने और कर्नल डेवलपमेंट एनवायरमेंट सेट अप करने से बचने के लिए, स्थानीय तौर पर बनाने के बजाय, ci.android.com पर जाकर काम के आर्टफ़ैक्ट डाउनलोड किए जा सकते हैं.

  3. Cuttlefish की मदद से, कर्नल और रैमडिस्क लॉन्च करें.

    cvd create \
        -kernel_path=./out/virtual_device_x86_64/dist/bzImage \
        -initramfs_path=./out/virtual_device_x86_64/dist/initramfs.img

    अगर GKI के अलावा किसी और कर्नल (4.19 या उससे कम वर्शन) को लॉन्च किया जा रहा है, तो -initramfs_path आर्ग्युमेंट को छोड़ दें.

    अगर Cuttlefish के aarch64 वर्शन पर कर्नल लॉन्च किया जा रहा है, तो aarch64 बिल्ड कॉन्फ़िगरेशन का इस्तेमाल करें. साथ ही, Image आर्टफ़ैक्ट का इस्तेमाल करें, न कि bzImage का.

    cvd create \
        -kernel_path=./out/virtual_device_aarch64/dist/Image \
        -initramfs_path=./out/virtual_device_aarch64/dist/initramfs.img