অ্যান্ড্রয়েড বুটলোডার বৈশিষ্ট্যগুলি বিকাশ করুন

এই পৃষ্ঠাটি বর্ণনা করে কিভাবে একটি Cuttlefish ডিভাইসে Android বুটলোডার বৈশিষ্ট্য তৈরি, চালানো এবং বিকাশ করতে হয়।

AOSP সূত্র

অ্যান্ড্রয়েড বুটলোডার বৈশিষ্ট্যগুলি বিকাশ করতে, সর্বশেষ রিলিজ শাখায় ( android16-qpr2-release ) অথবা অ্যান্ড্রয়েড 11 বা উচ্চতর সংস্করণের জন্য জেনেরিক সিস্টেম ইমেজ (GSI) শাখায় কাটলফিশের সাথে ইউ-বুটের কাটলফিশ কনফিগারেশন ব্যবহার করুন। 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
    • 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. বুটলোডার দিয়ে কাটলফিশ ডিভাইসটি চালু করুন। অটোবুট নিষ্ক্রিয় করতে এবং বুটলোডারের সাথে ইন্টারঅ্যাক্ট করার জন্য 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

আরও তথ্যের জন্য, অ্যান্ড্রয়েড কার্নেল তৈরি করুন দেখুন।