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

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

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

कटलफ़िश मुख्य और एओएसपी जीएसआई रिलीज़ पर, इन कर्नेल मेनिफ़ेस्ट के साथ काम करती है.

  • 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

कटलफ़िश डिवाइस पर कर्नेल के डेवलपमेंट के लिए, कर्नेल सोर्स नीचे दिए गए हैं.

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

कटलफ़िश डिवाइस पर कर्नेल डेवलप करने के लिए, यह तरीका अपनाएं:

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

    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