एंड्रॉइड कर्नेल विकसित करें

यह पृष्ठ बताता है कि कटलफ़िश उपकरणों पर एंड्रॉइड कर्नेल कैसे विकसित किया जाए।

समर्थित कर्नेल मैनिफ़ेस्ट

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

  • aosp-main पर
    • common-android14-6.1
    • common-android14-5.15
    • common-android-mainline
  • 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

कटलफिश उपकरणों पर कर्नेल विकास के लिए कर्नेल स्रोत निम्नलिखित हैं।

एंड्रॉइड कर्नेल विकसित करें

कटलफिश उपकरणों पर कर्नेल विकसित करने के लिए, इन चरणों का पालन करें:

  1. अपने कटलफिश डिवाइस के लिए उपयुक्त कर्नेल रेपो मेनिफेस्ट को क्लोन करें और कोई भी बदलाव करें।

    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) -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. कटलफिश के साथ कर्नेल और रैमडिस्क लॉन्च करें।

    cvd start \
        -kernel_path=/$PATH/$TO/common-android14-6.1/out/android14-6.1/dist/bzImage \
        -initramfs_path=/$PATH/$TO/common-android14-6.1/out/android14-6.1/dist/initramfs.img
    

    यदि गैर-जीकेआई कर्नेल (4.19 पर या उससे कम कुछ भी) लॉन्च कर रहे हैं, तो -initramfs_path तर्क को छोड़ दें।

    यदि आप कटलफिश के aarch64 संस्करण पर कर्नेल लॉन्च कर रहे हैं, तो aarch64 बिल्ड कॉन्फ़िगरेशन का उपयोग करें और bzImage के बजाय Image आर्टिफैक्ट का उपयोग करें।

    cvd start \
        -kernel_path=/$PATH/$TO/common-android14-6.1/out/android14-5.15/dist/Image \
        -initramfs_path=/$PATH/$TO/common-android14-6.1/out/android14-5.15/dist/initramfs.img