এই পৃষ্ঠাটি ব্যাখ্যা করে কিভাবে GBL বাইনারি স্থাপন করতে হয়।
বুট ফার্মওয়্যার প্রয়োজনীয়তা
GBL ব্যবহার করতে, বুট ফার্মওয়্যারকে অবশ্যই নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করতে হবে:
UEFI সম্মতি। ফার্মওয়্যারকে অবশ্যই প্রয়োজনীয় UEFI প্রোটোকল প্রয়োগ এবং ব্যবহার করতে হবে। ফার্মওয়্যারকে অবশ্যই সংজ্ঞায়িত UEFI প্রোটোকল ব্যবহার করে বিক্রেতা-নির্দিষ্ট এক্সটেনশনের অনুমতি দিতে হবে।
নিরাপত্তা ফার্মওয়্যারকে অবশ্যই অ্যান্ড্রয়েড ভেরিফাইড বুট (AVB) এর সমস্ত দিক বাস্তবায়ন করতে হবে, শুধুমাত্র প্রমাণীকৃত ছবি লোড করা হয়েছে তা নিশ্চিত করে।
বুট মোড। বাইনারিটি বিভিন্ন বুট মোড যেমন সাধারণ বুট, রিকভারি বুট এবং ফাস্টবুট পরিচালনা করতে সক্ষম হওয়া উচিত।
ডাইনামিক পার্টিশনিং। বুট ফার্মওয়্যারকে অবশ্যই স্লট নির্বাচনের যুক্তি প্রয়োগ করতে হবে যাতে এটি সঠিক A/B বুট স্লট পড়তে সমর্থন করে এবং সুপারে ডায়নামিক পার্টিশন এবং ব্যবহারকারীর ডেটার সাথে সামঞ্জস্যপূর্ণ।
ওএস কনফিগারেশন। ফার্মওয়্যারটি অবশ্যই কার্নেল কমান্ড লাইন, ডিভাইস ট্রি (DTB) এবং ডিভাইস বুট করার জন্য প্রয়োজনীয় OEM কাস্টমাইজেশন সহ bootconfig পরিবর্তন করতে সক্ষম হবে।
সুরক্ষিত VM লোড হচ্ছে। সুরক্ষিত VM-এর উপস্থিতিতে অ্যান্ড্রয়েড কার্নেলের আগে বাইনারিটি সঠিকভাবে পূর্বনির্ধারিত সুরক্ষিত VM ফার্মওয়্যার লোড করা উচিত। আরও তথ্যের জন্য, Microdroid বুট ক্রম দেখুন।
মেমরি ব্যবস্থাপনা। বুট ফার্মওয়্যার অবশ্যই UEFI মেমরি বরাদ্দ API সমর্থন করবে।
সামঞ্জস্য এবং পশ্চাদপদ সামঞ্জস্য। ফার্মওয়্যারটি বিভিন্ন বিক্রেতা, এসওসি সহ ডিভাইসগুলিতে কাজ করা উচিত এবং সংশ্লিষ্ট Android সংস্করণের সাথে পশ্চাদপদ সামঞ্জস্য বজায় রাখা উচিত।
বুট ফার্মওয়্যার সমর্থন
পূর্ববর্তী বিভাগে প্রয়োজনীয়তা সমর্থন করার জন্য প্রয়োজনীয় পরিবর্তনগুলির সাথে, নিম্নলিখিত UEFI ফার্মওয়্যার বাস্তবায়ন GBF এর সাথে কাজ করে:
- EDK2 (Tianocore) । একটি EDK2 একটি জনপ্রিয় ওপেন সোর্স UEFI বাস্তবায়ন। EDK2-ভিত্তিক বুটলোডারদের জন্য GBL সমর্থন প্রয়োজন, এবং UEFI সমর্থন ইতিমধ্যেই বিদ্যমান।
- ইউ-বুট । একটি নমনীয় এবং ব্যাপকভাবে ব্যবহৃত ওপেন-সোর্স বুটলোডার প্রকল্প যা GBL ব্যবহারের জন্য UEFI সামঞ্জস্য অর্জন করছে।
- লিটল কার্নেল (এলকে) । কিছু বিক্রেতাদের দ্বারা ব্যবহৃত একটি ওপেন-সোর্স বুটলোডার।
GBL চালান
আপনি একটি প্রি-বিল্ট GBL বাইনারি পেতে পারেন বা আপনার নিজের তৈরি করতে এবং এটি চালাতে পারেন।
GBL বাইনারি প্রাপ্ত করুন এবং চালান
GBL একটি একক EFI অ্যাপ বাইনারি হিসাবে বিতরণ করা হয়। আপনি অ্যান্ড্রয়েডের স্ট্যান্ডার্ড আপডেট মেকানিজম ব্যবহার করে ডিভাইসের বেস ফার্মওয়্যার থেকে স্বাধীনভাবে এই বাইনারি আপডেট করতে পারেন।
অ্যান্ড্রয়েড 16 দিয়ে শুরু করে, আপনি যদি ARM-64 চিপসেটের উপর ভিত্তি করে একটি ডিভাইস পাঠান, আমরা দৃঢ়ভাবে সুপারিশ করি যে আপনি GBL-এর সর্বশেষতম Google-স্বাক্ষরিত সংস্করণ স্থাপন করুন এবং এটিকে আপনার বুট চেইনে একীভূত করুন।
GBL তৈরি করুন এবং চালান
GBL তৈরি এবং চালানোর জন্য:
আপনার রেপো টুল এবং বেজেল বুটস্ট্র্যাপ ইনস্টল করা আছে তা যাচাই করুন:
sudo apt install repo bazel-bootstrap
uefi-gbl-mainline
ম্যানিফেস্ট ফাইল ব্যবহার করে উৎস নিয়ন্ত্রণের জন্য আপনার বর্তমান ডিরেক্টরি শুরু করুন:repo init -u https://android.googlesource.com/kernel/manifest -b uefi-gbl-mainline repo sync -j16
EFI অ্যাপ তৈরি করুন:
./tools/bazel run //bootable/libbootloader:gbl_efi_dist --extra_toolchains=@gbl//toolchain:all
Cuttlefish এর মধ্যে EFI অ্যাপ চালান:
cvd start --android_efi_loader=path_to_the_EFI_app ...
সরাসরি Android বুট করার পরিবর্তে, এই
cvd start
কমান্ডটি Android বুট করতে EFI অ্যাপ ব্যবহার করে।
বাগ ফাইল করুন এবং বুটলোডার দলের সাথে যোগাযোগ করুন
GBL-এর জন্য একটি বাগ রিপোর্ট করতে, Buganizer-এ Android জেনেরিক বুটলোডার উপাদানটিতে নেভিগেট করুন।
প্রশ্নের জন্য, GBL টিমের সাথে যোগাযোগ করুন, android-gbl@google.com
এ একটি ইমেল পাঠান।