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

এই পৃষ্ঠায় বর্ণনা করা হয়েছে কীভাবে একটি কাটলফিশ ডিভাইসে অ্যান্ড্রয়েড বুটলোডার ফিচারগুলো বিল্ড, রান এবং ডেভেলপ করতে হয়।

AOSP সূত্র

অ্যান্ড্রয়েড বুটলোডার ফিচার ডেভেলপ করার জন্য, U-boot- এর Cuttlefish কনফিগারেশন ব্যবহার করুন এবং Cuttlefish-এর সর্বশেষ রিলিজ ব্রাঞ্চ ( android17-release ) অথবা অ্যান্ড্রয়েড ১১ বা তার উচ্চতর সংস্করণের জন্য জেনেরিক সিস্টেম ইমেজ (GSI) ব্রাঞ্চগুলো ব্যবহার করুন। AOSP-তে নিম্নলিখিত সোর্সগুলো রয়েছে:

একটি বুটলোডার তৈরি করুন

স্থানীয়ভাবে বুটলোডার ফিচার তৈরি, চালানো এবং উন্নত করতে, এই ধাপগুলো অনুসরণ করুন:

  1. U-boot-এর অ্যান্ড্রয়েড ফর্কের জন্য ম্যানিফেস্টটি ক্লোন করুন:

    $ 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

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