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

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

इस्तेमाल किए जा सकने वाले kernel मेनिफ़ेस्ट

Cuttlefish, मुख्य और AOSP GSI रिलीज़ पर, इन कर्नेल मेनिफ़ेस्ट के साथ काम करता है.

  • aosp-main को
    • common-android-mainline
    • 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