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 बिल्ड कॉन्फ़िगरेशन का इस्तेमाल करें. साथ ही, bzImage के बजाय Image आर्टफ़ैक्ट का इस्तेमाल करें.

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