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

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

AOSP के सोर्स

Android बूटलोडर की सुविधाएं डेवलप करने के लिए, Android 11 या इसके बाद के वर्शन के लिए, Cuttlefish के साथ U-boot के Cuttlefish कॉन्फ़िगरेशन का इस्तेमाल करें. इसके लिए, android16-release या जेनेरिक सिस्टम इमेज (जीएसआई) ब्रांच का इस्तेमाल करें. 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 कर्नल डेवलप करना लेख पढ़ें.