این صفحه نحوه استقرار باینری GBL را توضیح می دهد.
الزامات سیستم عامل بوت
برای استفاده از GBL، سیستم عامل بوت باید شرایط زیر را برآورده کند:
مطابقت با UEFI سیستم عامل باید پروتکل های مورد نیاز UEFI را پیاده سازی و استفاده کند. سفتافزار باید با استفاده از پروتکلهای تعریفشده UEFI، افزونههای خاص فروشنده را نیز اجازه دهد.
امنیت. سفتافزار باید تمام جنبههای Android Verified Boot (AVB) را اجرا کند و مطمئن شود که فقط تصاویر تأیید شده بارگیری میشوند.
حالت های بوت باینری باید بتواند حالت های مختلف بوت، مانند بوت معمولی، بوت بازیابی و فست بوت را مدیریت کند.
پارتیشن بندی پویا سفتافزار بوت باید منطق انتخاب اسلات را پیادهسازی کند تا از خواندن شکاف راهاندازی A/B صحیح پشتیبانی کند و با پارتیشنهای پویا و دادههای کاربر در حالت فوقالعاده سازگار باشد.
پیکربندی سیستم عامل سفتافزار باید بتواند خط فرمان هسته، درخت دستگاه (DTB) و bootconfig را با سفارشیسازیهای OEM مورد نیاز برای بوت کردن دستگاه تغییر دهد.
بارگذاری VM محافظت شده باینری باید به درستی سیستم عامل VM محافظت شده از قبل تایید شده را قبل از هسته اندروید در حضور ماشین های مجازی محافظت شده بارگیری کند. برای اطلاعات بیشتر، دنباله راهاندازی Microdroid را ببینید.
مدیریت حافظه سیستم عامل بوت باید از API تخصیص حافظه UEFI پشتیبانی کند.
سازگاری و سازگاری با عقب. سفتافزار باید روی دستگاههایی با فروشندههای مختلف، SOC کار کند و سازگاری با نسخه اندروید مربوطه را حفظ کند.
پشتیبانی از سیستم عامل بوت
با تغییرات لازم برای پشتیبانی از الزامات در بخش قبل، پیادهسازیهای میانافزار UEFI زیر با GBF کار میکنند:
- EDK2 (Tianocore) . EDK2 یک پیاده سازی UEFI منبع باز محبوب است. پشتیبانی GBL برای بوت لودرهای مبتنی بر EDK2 مورد نیاز است و پشتیبانی UEFI در حال حاضر وجود دارد.
- یو بوت . یک پروژه بوت لودر منبع باز انعطاف پذیر و پرکاربرد که در حال به دست آوردن سازگاری با UEFI برای استفاده از GBL است.
- لیتل کرنل (LK) . یک بوت لودر منبع باز که توسط برخی از فروشندگان استفاده می شود.
GBL را اجرا کنید
می توانید یک باینری GBL از پیش ساخته شده برای اجرا یا ساختن خود و اجرای آن تهیه کنید.
باینری GBL را دریافت و اجرا کنید
GBL به عنوان یک برنامه باینری واحد EFI توزیع می شود. شما می توانید این باینری را به طور مستقل از سیستم عامل پایه دستگاه با استفاده از مکانیزم به روز رسانی استاندارد اندروید به روز کنید.
با شروع اندروید 16، اگر دستگاهی مبتنی بر چیپست ARM-64 ارسال میکنید، اکیداً توصیه میکنیم که آخرین نسخه GBL را که توسط Google امضا شده است، نصب کنید و آن را در زنجیره راهاندازی خود ادغام کنید.
GBL را بسازید و اجرا کنید
برای ساخت و اجرای GBL:
بررسی کنید که ابزار repo و بوت استرپ Bazel را نصب کرده اید:
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
برنامه EFI را در Cuttlefish اجرا کنید:
cvd start --android_efi_loader=path_to_the_EFI_app ...
این دستور
cvd start
به جای راهاندازی مستقیم اندروید، از برنامه EFI برای بوت کردن اندروید استفاده میکند.
اشکالات را وارد کنید و با تیم بوت لودر تماس بگیرید
برای گزارش یک اشکال برای GBL، به مؤلفه Android Generic Bootloader در Buganizer بروید.
برای سؤالات، با تیم GBL تماس بگیرید، یک ایمیل به android-gbl@google.com
ارسال کنید.