Android बूटलोडर की सुविधाएं डेवलप करना

इस पेज में Cuttleफ़िश डिवाइस पर Android बूटलोडर की सुविधाएं बनाने, चलाने, और उन्हें डेवलप करने का तरीका बताया गया है.

AOSP सोर्स

Android बूटलोडर की सुविधाएं बनाने के लिए, aosp-main में Cuttlefish के साथ U-boot के Cuttlefish कॉन्फ़िगरेशन का इस्तेमाल करें. इसके अलावा, Android 11 या इसके बाद के वर्शन के लिए, सामान्य सिस्टम इमेज (GSI) शाखाओं पर भी ऐसा किया जा सकता है. एओएसपी के सोर्स यहां दिए गए हैं:

बूटलोडर डेवलप करना

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

  1. U-boot के Android फ़ॉर्क के लिए मेनिफ़ेस्ट को क्लोन करें:

    $ 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. अपने Cuttlefish आर्किटेक्चर के हिसाब से, बूटलोडर टारगेट बनाएं. उदाहरण के लिए:

    • x86_64

      $ tools/bazel run //u-boot:crosvm_x86_64_dist
    • aarch64

      $ 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. बूटलोडर के साथ Cuttlefish डिवाइस लॉन्च करें. ऑटोबूट की सुविधा बंद करने और बूटलोडर के साथ इंटरैक्ट करने के लिए, 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 create \
    -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 के लिए कर्नेल डेवलप करना लेख पढ़ें.