Android बूटलोडर सुविधाएँ विकसित करें

यह पृष्ठ वर्णन करता है कि कटलफिश डिवाइस पर एंड्रॉइड बूटलोडर सुविधाओं को कैसे बनाया जाए, चलाया जाए और विकसित किया जाए।

एओएसपी स्रोत

एंड्रॉइड बूटलोडर सुविधाओं को विकसित करने के लिए, एंड्रॉइड 11 या उच्चतर के लिए aosp-main या जेनेरिक सिस्टम इमेज (जीएसआई) शाखाओं में कटलफिश के साथ यू-बूट के कटलफिश कॉन्फ़िगरेशन का उपयोग करें। AOSP में निम्नलिखित स्रोत हैं:

एक बूटलोडर विकसित करें

बूटलोडर सुविधाओं को स्थानीय रूप से बनाने, चलाने और विकसित करने के लिए, इन चरणों का पालन करें:

  1. यू-बूट के एंड्रॉइड फोर्क के लिए मेनिफेस्ट को क्लोन करें:

    $ mkdir u-boot-mainline
    $ cd u-boot-mainline
    $ repo init -u https://android.googlesource.com/kernel/manifest -b u-boot-mainline
    $ repo sync -j$(nproc) -q
    
  2. अपने कटलफिश आर्किटेक्चर के लिए उपयुक्त बूटलोडर लक्ष्य बनाएं। उदाहरण के लिए:

    • x86_64

      $ tools/bazel run //u-boot:crosvm_x86_64_dist
      
    • अराजकता64

      $ tools/bazel run //u-boot:crosvm_aarch64_dist
      

    परिणामी बूटलोडर बाइनरी (arm64 के लिए u-boot.bin और x86_64 के लिए u-boot.rom ) $PATH_TO_REPO/out/u-boot-mainline/dist में पाया जाता है।

  3. बूटलोडर के साथ कटलफिश डिवाइस लॉन्च करें। ऑटोबूट को अक्षम करने और आपको बूटलोडर के साथ इंटरैक्ट करने के लिए pause_in_bootloader पैरामीटर शामिल करें।

    $ launch_cvd \
        -bootloader /$PATH/$TO/u-boot-mainline/out/u-boot-mainline/dist/u-boot.rom \
        -pause_in_bootloader -console=true
    
  4. बूटलोडर के साथ इंटरैक्ट करने के लिए, बूटलोडर कंसोल से कनेक्ट करें।

    $ screen ~/cuttlefish_runtime/console
    
  5. जब बूटलोडर इंटरैक्शन पूरा हो जाए, तो कंसोल में boot टाइप करके बूट जारी रखें।

विभिन्न कर्नेल के साथ बूटलोडर प्रवाह का परीक्षण करें

विभिन्न कर्नेल या कर्नेल मॉड्यूल के साथ बूटलोडर प्रवाह का परीक्षण करने के लिए, --kernel_path और --initramfs_path तर्कों का उपयोग करके लक्ष्य कलाकृतियों (कर्नेल और कर्नेल मॉड्यूल) में पास करें। असेंबलर तर्कों में पारित कलाकृतियों के आधार पर बूट छवियों को दोबारा पैक करता है।

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

अधिक जानकारी के लिए, Android कर्नेल विकसित करें देखें।