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

इस पेज पर, Cuttlefish डिवाइस पर Android बूटलोडर की सुविधाओं को बनाने, चलाने, और डेवलप करने का तरीका बताया गया है.

AOSP सोर्स

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

बूटलोडर बनाना

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

  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 के Kernel डेवलप करना लेख पढ़ें.